bec5bd09d2d4899b4d0b591221a33a6bbf535c44
[openssl.git] / include / openssl / opensslconf.h.in
1 /*
2  * {- join("\n * ", @autowarntext) -}
3  *
4  * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
5  *
6  * Licensed under the OpenSSL license (the "License").  You may not use
7  * this file except in compliance with the License.  You can obtain a copy
8  * in the file LICENSE in the source distribution or at
9  * https://www.openssl.org/source/license.html
10  */
11
12 #ifdef  __cplusplus
13 extern "C" {
14 #endif
15
16 #ifdef OPENSSL_ALGORITHM_DEFINES
17 # error OPENSSL_ALGORITHM_DEFINES no longer supported
18 #endif
19
20 /*
21  * OpenSSL was configured with the following options:
22  */
23
24 {- if (@{$config{openssl_sys_defines}}) {
25       foreach (@{$config{openssl_sys_defines}}) {
26         $OUT .= "#ifndef $_\n";
27         $OUT .= "# define $_ 1\n";
28         $OUT .= "#endif\n";
29       }
30     }
31     foreach (@{$config{openssl_api_defines}}) {
32         (my $macro, my $value) = $_ =~ /^(.*?)=(.*?)$/;
33         $OUT .= "#define OPENSSL_MIN_API $value\n";
34     }
35     if (@{$config{openssl_algorithm_defines}}) {
36       foreach (@{$config{openssl_algorithm_defines}}) {
37         $OUT .= "#ifndef $_\n";
38         $OUT .= "# define $_\n";
39         $OUT .= "#endif\n";
40       }
41     }
42     if (@{$config{openssl_thread_defines}}) {
43       foreach (@{$config{openssl_thread_defines}}) {
44         $OUT .= "#ifndef $_\n";
45         $OUT .= "# define $_\n";
46         $OUT .= "#endif\n";
47       }
48     }
49     if (@{$config{openssl_other_defines}}) {
50       foreach (@{$config{openssl_other_defines}}) {
51         $OUT .= "#ifndef $_\n";
52         $OUT .= "# define $_\n";
53         $OUT .= "#endif\n";
54       }
55     }
56     "";
57 -}
58
59 /*
60  * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers
61  * don't like that.  This will hopefully silence them.
62  */
63 #define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy;
64
65 /*
66  * Applications should use -DOPENSSL_API_COMPAT=<version> to suppress the
67  * declarations of functions deprecated in or before <version>. Otherwise, they
68  * still won't see them if the library has been built to disable deprecated
69  * functions.
70  */
71 #if defined(OPENSSL_NO_DEPRECATED)
72 # define DECLARE_DEPRECATED(f)
73 #elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0)
74 # define DECLARE_DEPRECATED(f)    f __attribute__ ((deprecated));
75 #else
76 # define DECLARE_DEPRECATED(f)   f;
77 #endif
78
79 #ifndef OPENSSL_FILE
80 # ifdef OPENSSL_NO_FILENAMES
81 #  define OPENSSL_FILE ""
82 #  define OPENSSL_LINE 0
83 # else
84 #  define OPENSSL_FILE __FILE__
85 #  define OPENSSL_LINE __LINE__
86 # endif
87 #endif
88
89 #ifndef OPENSSL_MIN_API
90 # define OPENSSL_MIN_API 0
91 #endif
92
93 #if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API
94 # undef OPENSSL_API_COMPAT
95 # define OPENSSL_API_COMPAT OPENSSL_MIN_API
96 #endif
97
98 #if OPENSSL_API_COMPAT < 0x10100000L
99 # define DEPRECATEDIN_1_1_0(f)   DECLARE_DEPRECATED(f)
100 #else
101 # define DEPRECATEDIN_1_1_0(f)
102 #endif
103
104 #if OPENSSL_API_COMPAT < 0x10000000L
105 # define DEPRECATEDIN_1_0_0(f)   DECLARE_DEPRECATED(f)
106 #else
107 # define DEPRECATEDIN_1_0_0(f)
108 #endif
109
110 #if OPENSSL_API_COMPAT < 0x00908000L
111 # define DEPRECATEDIN_0_9_8(f)   DECLARE_DEPRECATED(f)
112 #else
113 # define DEPRECATEDIN_0_9_8(f)
114 #endif
115
116 {- $target{cpuid_obj} ne "mem_clr.o" ? "#define OPENSSL_CPUID_OBJ" : "" -}
117
118 /* Generate 80386 code? */
119 {- $config{processor} eq "386" ? "#define" : "#undef" -} I386_ONLY
120
121 #undef OPENSSL_UNISTD
122 #define OPENSSL_UNISTD {- $target{unistd} -}
123
124 {- $config{export_var_as_fn} ? "#define" : "#undef" -} OPENSSL_EXPORT_VAR_AS_FUNCTION
125
126 /*
127  * The following are cipher-specific, but are part of the public API.
128  */
129 #if !defined(OPENSSL_SYS_UEFI)
130 {- $config{bn_ll} ? "# define" : "# undef" -} BN_LLONG
131 /* Only one for the following should be defined */
132 {- $config{b64l} ? "# define" : "# undef" -} SIXTY_FOUR_BIT_LONG
133 {- $config{b64}  ? "# define" : "# undef" -} SIXTY_FOUR_BIT
134 {- $config{b32}  ? "# define" : "# undef" -} THIRTY_TWO_BIT
135 #endif
136
137 #define RC4_INT {- $config{rc4_int} -}
138
139 #ifdef  __cplusplus
140 }
141 #endif