]>
Commit | Line | Data |
---|---|---|
cde052f5 RS |
1 | /* |
2 | * {- join("\n * ", @autowarntext) -} | |
e0a65194 | 3 | * |
2ad2281a | 4 | * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. |
e0a65194 RS |
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 | |
cde052f5 | 10 | */ |
dc193c9c RS |
11 | |
12 | #ifdef __cplusplus | |
13 | extern "C" { | |
14 | #endif | |
cde052f5 RS |
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}}) { | |
dc193c9c RS |
25 | foreach (@{$config{openssl_sys_defines}}) { |
26 | $OUT .= "#ifndef $_\n"; | |
27 | $OUT .= "# define $_ 1\n"; | |
28 | $OUT .= "#endif\n"; | |
dc193c9c RS |
29 | } |
30 | } | |
dc193c9c RS |
31 | foreach (@{$config{openssl_api_defines}}) { |
32 | (my $macro, my $value) = $_ =~ /^(.*?)=(.*?)$/; | |
cd15cb4d | 33 | $OUT .= "#define $macro $value\n"; |
dc193c9c | 34 | } |
dc193c9c RS |
35 | if (@{$config{openssl_algorithm_defines}}) { |
36 | foreach (@{$config{openssl_algorithm_defines}}) { | |
f2adbd85 RS |
37 | $OUT .= "#ifndef $_\n"; |
38 | $OUT .= "# define $_\n"; | |
39 | $OUT .= "#endif\n"; | |
dc193c9c | 40 | } |
dc193c9c | 41 | } |
dc193c9c RS |
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 | } | |
dc193c9c RS |
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 | ||
effaf4de RS |
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 | ||
dc193c9c RS |
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 | ||
3ba84717 | 79 | #ifndef OPENSSL_FILE |
f2adbd85 RS |
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 | |
3ba84717 DW |
87 | #endif |
88 | ||
dc193c9c | 89 | #ifndef OPENSSL_MIN_API |
cde052f5 | 90 | # define OPENSSL_MIN_API 0 |
dc193c9c RS |
91 | #endif |
92 | ||
93 | #if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API | |
cde052f5 RS |
94 | # undef OPENSSL_API_COMPAT |
95 | # define OPENSSL_API_COMPAT OPENSSL_MIN_API | |
dc193c9c RS |
96 | #endif |
97 | ||
5ecff87d RS |
98 | #if OPENSSL_API_COMPAT < 0x10200000L |
99 | # define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) | |
100 | #else | |
101 | # define DEPRECATEDIN_1_2_0(f) | |
102 | #endif | |
103 | ||
dc193c9c RS |
104 | #if OPENSSL_API_COMPAT < 0x10100000L |
105 | # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) | |
106 | #else | |
107 | # define DEPRECATEDIN_1_1_0(f) | |
108 | #endif | |
109 | ||
110 | #if OPENSSL_API_COMPAT < 0x10000000L | |
111 | # define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) | |
112 | #else | |
113 | # define DEPRECATEDIN_1_0_0(f) | |
114 | #endif | |
115 | ||
116 | #if OPENSSL_API_COMPAT < 0x00908000L | |
117 | # define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) | |
118 | #else | |
119 | # define DEPRECATEDIN_0_9_8(f) | |
120 | #endif | |
121 | ||
122 | /* Generate 80386 code? */ | |
123 | {- $config{processor} eq "386" ? "#define" : "#undef" -} I386_ONLY | |
124 | ||
dc193c9c RS |
125 | #undef OPENSSL_UNISTD |
126 | #define OPENSSL_UNISTD {- $target{unistd} -} | |
127 | ||
cde052f5 | 128 | {- $config{export_var_as_fn} ? "#define" : "#undef" -} OPENSSL_EXPORT_VAR_AS_FUNCTION |
dc193c9c RS |
129 | |
130 | /* | |
131 | * The following are cipher-specific, but are part of the public API. | |
132 | */ | |
dc193c9c | 133 | #if !defined(OPENSSL_SYS_UEFI) |
cde052f5 | 134 | {- $config{bn_ll} ? "# define" : "# undef" -} BN_LLONG |
dc193c9c | 135 | /* Only one for the following should be defined */ |
cde052f5 RS |
136 | {- $config{b64l} ? "# define" : "# undef" -} SIXTY_FOUR_BIT_LONG |
137 | {- $config{b64} ? "# define" : "# undef" -} SIXTY_FOUR_BIT | |
138 | {- $config{b32} ? "# define" : "# undef" -} THIRTY_TWO_BIT | |
dc193c9c RS |
139 | #endif |
140 | ||
cde052f5 | 141 | #define RC4_INT {- $config{rc4_int} -} |
dc193c9c RS |
142 | |
143 | #ifdef __cplusplus | |
144 | } | |
145 | #endif |