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 defined(_MSC_VER) /* vbox */
|
---|
74 | # ifdef __cplusplus /* vbox */
|
---|
75 | # define DECLARE_DEPRECATED(f) __declspec(deprecated) f; /* vbox */
|
---|
76 | # else /* vbox */
|
---|
77 | # define DECLARE_DEPRECATED(f) f; /* vbox */
|
---|
78 | # endif /* vbox */
|
---|
79 | #elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0)
|
---|
80 | # define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated));
|
---|
81 | #else
|
---|
82 | # define DECLARE_DEPRECATED(f) f;
|
---|
83 | #endif */
|
---|
84 |
|
---|
85 | #ifndef OPENSSL_FILE
|
---|
86 | # ifdef OPENSSL_NO_FILENAMES
|
---|
87 | # define OPENSSL_FILE ""
|
---|
88 | # define OPENSSL_LINE 0
|
---|
89 | # else
|
---|
90 | # define OPENSSL_FILE __FILE__
|
---|
91 | # define OPENSSL_LINE __LINE__
|
---|
92 | # endif
|
---|
93 | #endif
|
---|
94 |
|
---|
95 | #ifndef OPENSSL_MIN_API
|
---|
96 | # define OPENSSL_MIN_API 0
|
---|
97 | #endif
|
---|
98 |
|
---|
99 | #if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API
|
---|
100 | # undef OPENSSL_API_COMPAT
|
---|
101 | # define OPENSSL_API_COMPAT OPENSSL_MIN_API
|
---|
102 | #endif
|
---|
103 |
|
---|
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 | {- $target{cpuid_obj} ne "mem_clr.o" ? "#define OPENSSL_CPUID_OBJ" : "" -}
|
---|
123 |
|
---|
124 | /* Generate 80386 code? */
|
---|
125 | {- $config{processor} eq "386" ? "#define" : "#undef" -} I386_ONLY
|
---|
126 |
|
---|
127 | #undef OPENSSL_UNISTD
|
---|
128 | #define OPENSSL_UNISTD {- $target{unistd} -}
|
---|
129 |
|
---|
130 | {- $config{export_var_as_fn} ? "#define" : "#undef" -} OPENSSL_EXPORT_VAR_AS_FUNCTION
|
---|
131 |
|
---|
132 | /*
|
---|
133 | * The following are cipher-specific, but are part of the public API.
|
---|
134 | */
|
---|
135 | #if !defined(OPENSSL_SYS_UEFI)
|
---|
136 | {- $config{bn_ll} ? "# define" : "# undef" -} BN_LLONG
|
---|
137 | /* Only one for the following should be defined */
|
---|
138 | {- $config{b64l} ? "# define" : "# undef" -} SIXTY_FOUR_BIT_LONG
|
---|
139 | {- $config{b64} ? "# define" : "# undef" -} SIXTY_FOUR_BIT
|
---|
140 | {- $config{b32} ? "# define" : "# undef" -} THIRTY_TWO_BIT
|
---|
141 | #endif
|
---|
142 |
|
---|
143 | #define RC4_INT {- $config{rc4_int} -}
|
---|
144 |
|
---|
145 | #ifdef __cplusplus
|
---|
146 | }
|
---|
147 | #endif
|
---|