]> git.ipfire.org Git - thirdparty/openssl.git/blame - include/openssl/opensslconf.h.in
DH: fix: add simple getters for commonly used struct members
[thirdparty/openssl.git] / include / openssl / opensslconf.h.in
CommitLineData
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
13extern "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