4f3711c68ce84818c455ebe9afc28e8261339469
[oweals/openssl.git] / crypto / opensslconf.h.in
1 /* crypto/opensslconf.h.in */
2
3 /* Generate 80386 code? */
4 #undef I386_ONLY
5
6 #if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
7 #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
8 #define OPENSSLDIR "/usr/local/ssl"
9 #endif
10 #endif
11
12 #undef OPENSSL_UNISTD
13 #define OPENSSL_UNISTD <unistd.h>
14
15 #undef OPENSSL_EXPORT_VAR_AS_FUNCTION
16
17 #if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
18 #define IDEA_INT unsigned int
19 #endif
20
21 #if defined(HEADER_MD2_H) && !defined(MD2_INT)
22 #define MD2_INT unsigned int
23 #endif
24
25 #if defined(HEADER_RC2_H) && !defined(RC2_INT)
26 /* I need to put in a mod for the alpha - eay */
27 #define RC2_INT unsigned int
28 #endif
29
30 #if defined(HEADER_RC4_H)
31 #if !defined(RC4_INT)
32 /* using int types make the structure larger but make the code faster
33  * on most boxes I have tested - up to %20 faster. */
34 /*
35  * I don't know what does "most" mean, but declaring "int" is a must on:
36  * - Intel P6 because partial register stalls are very expensive;
37  * - elder Alpha because it lacks byte load/store instructions;
38  */
39 #define RC4_INT unsigned int
40 #endif
41 #if !defined(RC4_CHUNK)
42 /*
43  * This enables code handling data aligned at natural CPU word
44  * boundary. See crypto/rc4/rc4_enc.c for further details.
45  */
46 #undef RC4_CHUNK
47 #endif
48 #endif
49
50 #if (defined(HEADER_DES_H) || defined(HEADER_DES_OLD_H)) && !defined(DES_LONG)
51 /* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
52  * %20 speed up (longs are 8 bytes, int's are 4). */
53 #ifndef DES_LONG
54 #define DES_LONG unsigned long
55 #endif
56 #endif
57
58 #if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
59 #define CONFIG_HEADER_BN_H
60 #undef BN_LLONG
61
62 /* Should we define BN_DIV2W here? */
63
64 /* Only one for the following should be defined */
65 /* The prime number generation stuff may not work when
66  * EIGHT_BIT but I don't care since I've only used this mode
67  * for debuging the bignum libraries */
68 #undef SIXTY_FOUR_BIT_LONG
69 #undef SIXTY_FOUR_BIT
70 #define THIRTY_TWO_BIT
71 #undef SIXTEEN_BIT
72 #undef EIGHT_BIT
73 #endif
74
75 #if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)
76 #define CONFIG_HEADER_RC4_LOCL_H
77 /* if this is defined data[i] is used instead of *data, this is a %20
78  * speedup on x86 */
79 #undef RC4_INDEX
80 #endif
81
82 #if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
83 #define CONFIG_HEADER_BF_LOCL_H
84 #undef BF_PTR
85 #endif /* HEADER_BF_LOCL_H */
86
87 #if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
88 #define CONFIG_HEADER_DES_LOCL_H
89 #ifndef DES_DEFAULT_OPTIONS
90 /* the following is tweaked from a config script, that is why it is a
91  * protected undef/define */
92 #ifndef DES_PTR
93 #undef DES_PTR
94 #endif
95
96 /* This helps C compiler generate the correct code for multiple functional
97  * units.  It reduces register dependancies at the expense of 2 more
98  * registers */
99 #ifndef DES_RISC1
100 #undef DES_RISC1
101 #endif
102
103 #ifndef DES_RISC2
104 #undef DES_RISC2
105 #endif
106
107 #if defined(DES_RISC1) && defined(DES_RISC2)
108 YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
109 #endif
110
111 /* Unroll the inner loop, this sometimes helps, sometimes hinders.
112  * Very mucy CPU dependant */
113 #ifndef DES_UNROLL
114 #undef DES_UNROLL
115 #endif
116
117 /* These default values were supplied by
118  * Peter Gutman <pgut001@cs.auckland.ac.nz>
119  * They are only used if nothing else has been defined */
120 #if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
121 /* Special defines which change the way the code is built depending on the
122    CPU and OS.  For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
123    even newer MIPS CPU's, but at the moment one size fits all for
124    optimization options.  Older Sparc's work better with only UNROLL, but
125    there's no way to tell at compile time what it is you're running on */
126  
127 #if defined( sun )              /* Newer Sparc's */
128 #  define DES_PTR
129 #  define DES_RISC1
130 #  define DES_UNROLL
131 #elif defined( __ultrix )       /* Older MIPS */
132 #  define DES_PTR
133 #  define DES_RISC2
134 #  define DES_UNROLL
135 #elif defined( __osf1__ )       /* Alpha */
136 #  define DES_PTR
137 #  define DES_RISC2
138 #elif defined ( _AIX )          /* RS6000 */
139   /* Unknown */
140 #elif defined( __hpux )         /* HP-PA */
141   /* Unknown */
142 #elif defined( __aux )          /* 68K */
143   /* Unknown */
144 #elif defined( __dgux )         /* 88K (but P6 in latest boxes) */
145 #  define DES_UNROLL
146 #elif defined( __sgi )          /* Newer MIPS */
147 #  define DES_PTR
148 #  define DES_RISC2
149 #  define DES_UNROLL
150 #elif defined( i386 )           /* x86 boxes, should be gcc */
151 #  define DES_PTR
152 #  define DES_RISC1
153 #  define DES_UNROLL
154 #endif /* Systems-specific speed defines */
155 #endif
156
157 #endif /* DES_DEFAULT_OPTIONS */
158 #endif /* HEADER_DES_LOCL_H */