Fix OpenSSL::Test::Simple to take more than one algorithm
[openssl.git] / crypto / opensslconf.h.in
index e4a8f8a..00bc866 100644 (file)
-/* crypto/opensslconf.h */
-/* WARNING: This file is autogenerated by Configure */
+/* 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
+ * declarations of functions deprecated in or before <version>. Otherwise, they
+ * still won't see them if the library has been built to disable deprecated
+ * functions.
+ */
+#if defined(OPENSSL_NO_DEPRECATED)
+# define DECLARE_DEPRECATED(f)
+#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0)
+# define DECLARE_DEPRECATED(f)    f __attribute__ ((deprecated));
+#else
+# define DECLARE_DEPRECATED(f)   f;
+#endif
+
+#ifndef OPENSSL_MIN_API
+#define OPENSSL_MIN_API 0
+#endif
+
+#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API
+#undef OPENSSL_API_COMPAT
+#define OPENSSL_API_COMPAT OPENSSL_MIN_API
+#endif
+
+#if OPENSSL_API_COMPAT < 0x10100000L
+# define DEPRECATEDIN_1_1_0(f)   DECLARE_DEPRECATED(f)
+#else
+# define DEPRECATEDIN_1_1_0(f)
+#endif
+
+#if OPENSSL_API_COMPAT < 0x10000000L
+# define DEPRECATEDIN_1_0_0(f)   DECLARE_DEPRECATED(f)
+#else
+# define DEPRECATEDIN_1_0_0(f)
+#endif
+
+#if OPENSSL_API_COMPAT < 0x00908000L
+# define DEPRECATEDIN_0_9_8(f)   DECLARE_DEPRECATED(f)
+#else
+# define DEPRECATEDIN_0_9_8(f)
+#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 OPENSSLDIR "/usr/local/ssl"
+#define ENGINESDIR {- quotify1($config{enginesdir}) -}
+#define OPENSSLDIR {- quotify1($config{openssldir}) -}
 #endif
 #endif
 
-#define OPENSSL_UNISTD <unistd.h>
+#undef OPENSSL_UNISTD
+#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) && !defined(RC4_INT)
+#if defined(HEADER_RC4_H)
+#if !defined(RC4_INT)
 /* using int types make the structure larger but make the code faster
  * on most boxes I have tested - up to %20 faster. */
-#define RC4_INT unsigned int
+/*
+ * I don't know what does "most" mean, but declaring "int" is a must on:
+ * - Intel P6 because partial register stalls are very expensive;
+ * - elder Alpha because it lacks byte load/store instructions;
+ */
+#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.
+ */
+{-
+    $config{rc4_chunk}
+      ? "#define RC4_CHUNK ".$config{rc4_chunk}
+      : "#undef RC4_CHUNK";
+-}
+#endif
 #endif
 
-#if defined(HEADER_DES_H) && !defined(DES_LONG)
+#ifndef OSSL_DES_LONG
 /* 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 DES_LONG
-#define DES_LONG unsigned long
+#ifndef OSSL_DES_LONG
+#define OSSL_DES_LONG {- $config{des_int} -}
 #endif
 #endif
 
-#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
+#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 */
-/* The prime number generation stuff may not work when
- * EIGHT_BIT but I don't care since I've only used this mode
- * for debuging the bignum libraries */
-#undef SIXTY_FOUR_BIT_LONG
-#undef SIXTY_FOUR_BIT
-#define THIRTY_TWO_BIT
-#undef SIXTEEN_BIT
-#undef EIGHT_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)
 /* 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)
-YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
+#error YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
 #endif
 
 /* 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
@@ -108,7 +265,7 @@ YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
    optimization options.  Older Sparc's work better with only UNROLL, but
    there's no way to tell at compile time what it is you're running on */
  
-#if defined( sun )             /* Newer Sparc's */
+#if defined(sparc) || defined(__sparc__)       /* Newer Sparc's */
 #  define DES_PTR
 #  define DES_RISC1
 #  define DES_UNROLL
@@ -125,13 +282,11 @@ YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
   /* Unknown */
 #elif defined( __aux )         /* 68K */
   /* Unknown */
-#elif defined( __dgux )                /* 88K (but P6 in latest boxes) */
-#  define DES_UNROLL
 #elif defined( __sgi )         /* Newer MIPS */
 #  define DES_PTR
 #  define DES_RISC2
 #  define DES_UNROLL
-#elif defined( i386 )          /* x86 boxes, should be gcc */
+#elif defined(i386) || defined(__i386__)       /* x86 boxes, should be gcc */
 #  define DES_PTR
 #  define DES_RISC1
 #  define DES_UNROLL
@@ -140,3 +295,6 @@ YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
 
 #endif /* DES_DEFAULT_OPTIONS */
 #endif /* HEADER_DES_LOCL_H */
+#ifdef  __cplusplus
+}
+#endif