diff options
author | Richard Levitte <levitte@openssl.org> | 2015-05-19 01:40:54 +0200 |
---|---|---|
committer | Richard Levitte <richard@levitte.org> | 2016-01-23 09:37:39 +0100 |
commit | 7d130f68fc429609df9fd2ddec3218306d66206e (patch) | |
tree | 8b07197b4efa58d0d648e29943d835ed56119579 /crypto/opensslconf.h.in | |
parent | 3fa04f0d72c22d45213bec1b26c7d84a5b31ac68 (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.in | 149 |
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 |