summaryrefslogtreecommitdiffstats
path: root/crypto/opensslconf.h.in
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2015-05-19 01:40:54 +0200
committerRichard Levitte <richard@levitte.org>2016-01-23 09:37:39 +0100
commit7d130f68fc429609df9fd2ddec3218306d66206e (patch)
tree8b07197b4efa58d0d648e29943d835ed56119579 /crypto/opensslconf.h.in
parent3fa04f0d72c22d45213bec1b26c7d84a5b31ac68 (diff)
Refactor file writing - rewrite crypto/opensslconf.h.in as template
The turn has come to have crypto/opensslconf.h.in get run through util/dofile.pl. The consequence is that a large number of variables get moved to the %config table. Also, the string variables $openssl_*, which were populated with cpp lines, all being of the form "#define SOMETHING", were converted into ARRAY refs in %config values, containing just the list of macros to be defined. Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'crypto/opensslconf.h.in')
-rw-r--r--crypto/opensslconf.h.in149
1 files changed, 128 insertions, 21 deletions
diff --git a/crypto/opensslconf.h.in b/crypto/opensslconf.h.in
index 27c725fc6e..00bc866134 100644
--- a/crypto/opensslconf.h.in
+++ b/crypto/opensslconf.h.in
@@ -1,4 +1,95 @@
-/* crypto/opensslconf.h.in */
+/* opensslconf.h */
+/* WARNING: Generated automatically from opensslconf.h.in by Configure. */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/* OpenSSL was configured with the following options: */
+{-
+ if (@{$config{openssl_sys_defines}}) {
+ foreach (@{$config{openssl_sys_defines}}) {
+ $OUT .= "#ifndef $_\n";
+ $OUT .= "# define $_ 1\n";
+ $OUT .= "#endif\n";
+ }
+ }
+ "";
+-}
+#ifndef OPENSSL_DOING_MAKEDEPEND
+
+{-
+ if (@{$config{openssl_experimental_defines}}) {
+ foreach (@{$config{openssl_experimental_defines}}) {
+ (my $ex = $_) =~ s/_NO_/_EXPERIMENTAL_/;
+ $OUT .= "#ifndef $ex\n";
+ $OUT .= "# ifndef $_\n";
+ $OUT .= "# define $_\n";
+ $OUT .= "# endif\n";
+ $OUT .= "#endif\n";
+ }
+ }
+ "";
+-}
+{-
+ foreach (@{$config{openssl_api_defines}}) {
+ (my $macro, my $value) = $_ =~ /^(.*?)=(.*?)$/;
+ $OUT .= "#define OPENSSL_MIN_API $value\n";
+ }
+-}
+{-
+ if (@{$config{openssl_algorithm_defines}}) {
+ foreach (@{$config{openssl_algorithm_defines}}) {
+ $OUT .= "#ifndef $_\n";
+ $OUT .= "# define $_\n";
+ $OUT .= "#endif\n";
+ }
+ } else {
+ " /* no ciphers excluded */\n";
+ }
+-}
+
+#endif /* OPENSSL_DOING_MAKEDEPEND */
+
+{-
+ if (@{$config{openssl_thread_defines}}) {
+ foreach (@{$config{openssl_thread_defines}}) {
+ $OUT .= "#ifndef $_\n";
+ $OUT .= "# define $_\n";
+ $OUT .= "#endif\n";
+ }
+ }
+ "";
+-}
+{-
+ if (@{$config{openssl_other_defines}}) {
+ foreach (@{$config{openssl_other_defines}}) {
+ $OUT .= "#ifndef $_\n";
+ $OUT .= "# define $_\n";
+ $OUT .= "#endif\n";
+ }
+ }
+ "";
+-}
+
+/* The OPENSSL_NO_* macros are also defined as NO_* if the application
+ asks for it. This is a transient feature that is provided for those
+ who haven't had the time to do the appropriate changes in their
+ applications. */
+#ifdef OPENSSL_ALGORITHM_DEFINES
+{-
+ if (@{$config{openssl_algorithm_defines}}) {
+ foreach (@{$config{openssl_algorithm_defines}}) {
+ (my $ex = $_) =~ s/^OPENSSL_//;
+ $OUT .= "# if defined($_) \&\& !defined($ex)\n";
+ $OUT .= "# define $ex\n";
+ $OUT .= "# endif\n";
+ }
+ }
+ "";
+-}
+#endif
+
+{- $target{cpuid_obj} ne "mem_clr.o" ? "#define OPENSSL_CPUID_OBJ" : "" -}
/*
* Applications should use -DOPENSSL_API_COMPAT=<version> to suppress the
@@ -42,31 +133,32 @@
#endif
/* Generate 80386 code? */
-#undef I386_ONLY
+{- $config{processor} eq "386" ? "#define" : "#undef" -} I386_ONLY
#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
-#define ENGINESDIR "/usr/local/lib/engines"
-#define OPENSSLDIR "/usr/local/ssl"
+#define ENGINESDIR {- quotify1($config{enginesdir}) -}
+#define OPENSSLDIR {- quotify1($config{openssldir}) -}
#endif
#endif
#undef OPENSSL_UNISTD
-#define OPENSSL_UNISTD <unistd.h>
+#define OPENSSL_UNISTD {- $target{unistd} -}
#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
+{- $config{export_var_as_fn} ? "#define OPENSSL_EXPORT_VAR_AS_FUNCTION" : "" -}
#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
-#define IDEA_INT unsigned int
+#define IDEA_INT {- $config{idea_int} -}
#endif
#if defined(HEADER_MD2_H) && !defined(MD2_INT)
-#define MD2_INT unsigned int
+#define MD2_INT {- $config{md2_int} -}
#endif
#if defined(HEADER_RC2_H) && !defined(RC2_INT)
/* I need to put in a mod for the alpha - eay */
-#define RC2_INT unsigned int
+#define RC2_INT {- $config{rc2_int} -}
#endif
#if defined(HEADER_RC4_H)
@@ -78,14 +170,18 @@
* - Intel P6 because partial register stalls are very expensive;
* - elder Alpha because it lacks byte load/store instructions;
*/
-#define RC4_INT unsigned int
+#define RC4_INT {- $config{rc4_int} -}
#endif
#if !defined(RC4_CHUNK)
/*
* This enables code handling data aligned at natural CPU word
* boundary. See crypto/rc4/rc4_enc.c for further details.
*/
-#undef RC4_CHUNK
+{-
+ $config{rc4_chunk}
+ ? "#define RC4_CHUNK ".$config{rc4_chunk}
+ : "#undef RC4_CHUNK";
+-}
#endif
#endif
@@ -93,32 +189,40 @@
/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
* %20 speed up (longs are 8 bytes, int's are 4). */
#ifndef OSSL_DES_LONG
-#define OSSL_DES_LONG unsigned long
+#define OSSL_DES_LONG {- $config{des_int} -}
#endif
#endif
#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H) && !defined(OPENSSL_SYS_UEFI)
#define CONFIG_HEADER_BN_H
-#undef BN_LLONG
+{- $config{bn_ll} ? "#define" : "#undef" -} BN_LLONG
/* Should we define BN_DIV2W here? */
/* Only one for the following should be defined */
-#undef SIXTY_FOUR_BIT_LONG
-#undef SIXTY_FOUR_BIT
-#define THIRTY_TWO_BIT
+{- $config{b64l} ? "#define" : "#undef" -} SIXTY_FOUR_BIT_LONG
+{- $config{b64} ? "#define" : "#undef" -} SIXTY_FOUR_BIT
+{- $config{b32} ? "#define" : "#undef" -} THIRTY_TWO_BIT
#endif
#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)
#define CONFIG_HEADER_RC4_LOCL_H
/* if this is defined data[i] is used instead of *data, this is a %20
* speedup on x86 */
-#undef RC4_INDEX
+{- $config{rc4_idx} ? "#define" : "#undef" -} RC4_INDEX
#endif
#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
#define CONFIG_HEADER_BF_LOCL_H
-#undef BF_PTR
+{-
+ if ($config{bf_ptr} == 0) {
+ "#undef BF_PTR";
+ } elsif ($config{bf_ptr} == 1) {
+ "#define BF_PTR";
+ } elsif ($config{bf_ptr} == 2) {
+ "#define BF_PTR2";
+ }
+-}
#endif /* HEADER_BF_LOCL_H */
#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
@@ -127,18 +231,18 @@
/* the following is tweaked from a config script, that is why it is a
* protected undef/define */
#ifndef DES_PTR
-#undef DES_PTR
+{- $config{des_ptr} ? "#define" : "#undef" -} DES_PTR
#endif
/* This helps C compiler generate the correct code for multiple functional
* units. It reduces register dependancies at the expense of 2 more
* registers */
#ifndef DES_RISC1
-#undef DES_RISC1
+{- $config{des_risc1} ? "#define" : "#undef" -} DES_RISC1
#endif
#ifndef DES_RISC2
-#undef DES_RISC2
+{- $config{des_risc2} ? "#define" : "#undef" -} DES_RISC2
#endif
#if defined(DES_RISC1) && defined(DES_RISC2)
@@ -148,7 +252,7 @@
/* Unroll the inner loop, this sometimes helps, sometimes hinders.
* Very mucy CPU dependant */
#ifndef DES_UNROLL
-#undef DES_UNROLL
+{- $config{des_unroll} ? "#define" : "#undef" -} DES_UNROLL
#endif
/* These default values were supplied by
@@ -191,3 +295,6 @@
#endif /* DES_DEFAULT_OPTIONS */
#endif /* HEADER_DES_LOCL_H */
+#ifdef __cplusplus
+}
+#endif