~ubuntu-branches/ubuntu/lucid/openssl/lucid-proposed

« back to all changes in this revision

Viewing changes to Configure

  • Committer: Bazaar Package Importer
  • Author(s): Nicolas Valcárcel Scerpella (Canonical)
  • Date: 2009-12-06 20:16:24 UTC
  • mfrom: (11.1.9 sid)
  • Revision ID: james.westby@ubuntu.com-20091206201624-u126qjpqm2n2uuhu
Tags: 0.9.8k-7ubuntu1
* Merge from debian unstable, remaining changes (LP: #493392):
  - Link using -Bsymbolic-functions
  - Add support for lpia
  - Disable SSLv2 during compile
  - Ship documentation in openssl-doc, suggested by the package.
  - Use a different priority for libssl0.9.8/restart-services
    depending on whether a desktop, or server dist-upgrade is being
    performed.
  - Display a system restart required notification bubble on libssl0.9.8
    upgrade.
  - Replace duplicate files in the doc directory with symlinks.
  - Move runtime libraries to /lib, for the benefit of wpasupplicant
* Strip the patches out of the source into quilt patches
* Disable CVE-2009-3555.patch

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
##
7
7
 
8
8
require 5.000;
9
 
use strict;
 
9
eval 'use strict;';
 
10
 
 
11
print STDERR "Warning: perl module strict not found.\n" if ($@);
10
12
 
11
13
# see INSTALL for instructions.
12
14
 
13
 
my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-dso] [no-krb5] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity] os/compiler[:flags]\n";
 
15
my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [experimental-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [enable-montasm] [no-asm] [no-dso] [no-krb5] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity] os/compiler[:flags]\n";
14
16
 
15
17
# Options:
16
18
#
54
56
# [no-]zlib     [don't] compile support for zlib compression.
55
57
# zlib-dynamic  Like "zlib", but the zlib library is expected to be a shared
56
58
#               library and will be loaded in run-time by the OpenSSL library.
 
59
# enable-montasm 0.9.8 branch only: enable Montgomery x86 assembler backport
 
60
#               from 0.9.9
57
61
# 386           generate 80386 code
58
62
# no-sse2       disables IA-32 SSE2 code, above option implies no-sse2
59
63
# no-<cipher>   build without specified algorithm (rsa, idea, rc5, ...)
97
101
# SHA512_ASM    sha512_block is implemented in assembler
98
102
# AES_ASM       ASE_[en|de]crypt is implemented in assembler
99
103
 
 
104
# Minimum warning options... any contributions to OpenSSL should at least get
 
105
# past these. 
 
106
 
 
107
my $gcc_devteam_warn = "-Wall -pedantic -DPEDANTIC -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wshadow -Wformat -Werror -DCRYPTO_MDEBUG_ALL -DCRYPTO_MDEBUG_ABORT -DREF_CHECK -DOPENSSL_NO_DEPRECATED";
 
108
 
100
109
my $x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL";
101
110
 
102
111
# MD2_CHAR slags pentium pros
114
123
my $bits1="THIRTY_TWO_BIT ";
115
124
my $bits2="SIXTY_FOUR_BIT ";
116
125
 
117
 
my $x86_elf_asm="x86cpuid-elf.o:bn86-elf.o co86-elf.o:dx86-elf.o yx86-elf.o:ax86-elf.o:bx86-elf.o:mx86-elf.o:sx86-elf.o s512sse2-elf.o:cx86-elf.o:rx86-elf.o:rm86-elf.o:r586-elf.o";
118
 
my $x86_coff_asm="x86cpuid-cof.o:bn86-cof.o co86-cof.o:dx86-cof.o yx86-cof.o:ax86-cof.o:bx86-cof.o:mx86-cof.o:sx86-cof.o s512sse2-cof.o:cx86-cof.o:rx86-cof.o:rm86-cof.o:r586-cof.o";
119
 
my $x86_out_asm="x86cpuid-out.o:bn86-out.o co86-out.o:dx86-out.o yx86-out.o:ax86-out.o:bx86-out.o:mx86-out.o:sx86-out.o s512sse2-out.o:cx86-out.o:rx86-out.o:rm86-out.o:r586-out.o";
 
126
my $x86_elf_asm="x86cpuid-elf.o:bn86-elf.o co86-elf.o MAYBE-MO86-elf.o:dx86-elf.o yx86-elf.o:ax86-elf.o:bx86-elf.o:mx86-elf.o:sx86-elf.o s512sse2-elf.o:cx86-elf.o:rx86-elf.o rc4_skey.o:rm86-elf.o:r586-elf.o";
 
127
my $x86_coff_asm="x86cpuid-cof.o:bn86-cof.o co86-cof.o MAYBE-MO86-cof.o:dx86-cof.o yx86-cof.o:ax86-cof.o:bx86-cof.o:mx86-cof.o:sx86-cof.o s512sse2-cof.o:cx86-cof.o:rx86-cof.o rc4_skey.o:rm86-cof.o:r586-cof.o";
 
128
my $x86_out_asm="x86cpuid-out.o:bn86-out.o co86-out.o MAYBE-MO86-out.o:dx86-out.o yx86-out.o:ax86-out.o:bx86-out.o:mx86-out.o:sx86-out.o s512sse2-out.o:cx86-out.o:rx86-out.o rc4_skey.o:rm86-out.o:r586-out.o";
120
129
 
121
 
#my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o::::md5-x86_64.o:::rc4-x86_64.o::";
122
 
my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o::::md5-x86_64.o:::::";
123
 
my $ia64_asm=":bn-ia64.o::aes_core.o aes_cbc.o aes-ia64.o:::sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o::";
 
130
my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o::aes-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o::";
 
131
my $ia64_asm=":bn-ia64.o::aes_core.o aes_cbc.o aes-ia64.o:::sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o::";
124
132
 
125
133
my $no_asm="::::::::::";
126
134
 
151
159
"debug-ben",    "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown):::::bn86-elf.o co86-elf.o",
152
160
"debug-ben-openbsd","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
153
161
"debug-ben-openbsd-debug","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
154
 
"debug-ben-debug",      "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::::",
 
162
"debug-ben-debug",      "gcc:$gcc_devteam_warn -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG  -DDEBUG_SAFESTACK -g3 -O2 -pipe::(unknown)::::::",
155
163
"debug-ben-strict",     "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe::(unknown)::::::",
156
164
"debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
157
 
"debug-bodo",   "gcc:-DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBIO_PAIR_DEBUG -DPEDANTIC -g -march=i486 -pedantic -Wshadow -Wall::-D_REENTRANT:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
 
165
"debug-bodo",   "gcc:-DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBIO_PAIR_DEBUG -DPEDANTIC -g -march=i486 -pedantic -Wshadow -Wall -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
158
166
"debug-ulf", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DBN_DEBUG_RAND -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations:::CYGWIN32:::${no_asm}:win32:cygwin-shared:::.dll",
 
167
"debug-steve64", "gcc:$gcc_devteam_warn -m64 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
168
"debug-steve32", "gcc:$gcc_devteam_warn -m32 -DL_ENDIAN -DCONF_DEBUG -DDEBUG_SAFESTACK -g -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
169
"debug-steve-opt", "gcc:$gcc_devteam_warn -m64 -O3 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
159
170
"debug-steve",  "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -m32 -g -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared",
160
171
"debug-steve-linux-pseudo64",   "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DOPENSSL_NO_ASM -g -mcpu=i486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:SIXTY_FOUR_BIT:${no_asm}:dlfcn:linux-shared",
161
172
"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
202
213
"solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
203
214
"solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
204
215
# -m32 should be safe to add as long as driver recognizes -mcpu=ultrasparc
205
 
"solaris-sparcv9-gcc","gcc:-m32 -mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
206
 
"solaris64-sparcv9-gcc","gcc:-m64 -mcpu=ultrasparc -O3 -Wall -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:::des_enc-sparc.o fcrypt_b.o:::md5-sparcv9.o::::::dlfcn:solaris-shared:-fPIC:-m64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
216
"solaris-sparcv9-gcc","gcc:-m32 -mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
217
"solaris64-sparcv9-gcc","gcc:-m64 -mcpu=ultrasparc -O3 -Wall -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:::des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-fPIC:-m64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
207
218
####
208
219
"debug-solaris-sparcv8-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o::::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
209
 
"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -O -g -mcpu=ultrasparc -pedantic -ansi -Wall -Wshadow -Wno-long-long -D__EXTENSIONS__ -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
220
"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -O -g -mcpu=ultrasparc -pedantic -ansi -Wall -Wshadow -Wno-long-long -D__EXTENSIONS__ -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
210
221
 
211
222
#### SPARC Solaris with Sun C setups
212
223
# SC4.0 doesn't pass 'make test', upgrade to SC5.0 or SC4.2.
214
225
# SC5.0 note: Compiler common patch 107357-01 or later is required!
215
226
"solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
216
227
"solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
217
 
"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
218
 
"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:::des_enc-sparc.o fcrypt_b.o:::md5-sparcv9.o::::::dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs",
 
228
"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
229
"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:::des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs",
219
230
####
220
231
"debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8.o::::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
221
 
"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o::::md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", 
 
232
"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o::::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", 
222
233
 
223
234
#### SunOS configs, assuming sparc for the gcc one.
224
235
#"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):SUNOS::DES_UNROLL:${no_asm}::",
309
320
"osf1-alpha-cc",  "cc:-std1 -tune host -O4 -readonly_strings::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${no_asm}:dlfcn:alpha-osf1-shared:::.so",
310
321
"tru64-alpha-cc", "cc:-std1 -tune host -fast -readonly_strings::-pthread:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${no_asm}:dlfcn:alpha-osf1-shared::-msym:.so",
311
322
 
312
 
# Debian GNU/* (various architectures)
313
 
"debian-alpha","gcc:-DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
314
 
"debian-alpha-ev4","gcc:-DTERMIO -O3 -Wa,--noexecstack -mcpu=ev4 -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
315
 
"debian-alpha-ev5","gcc:-DTERMIO -O3 -Wa,--noexecstack -mcpu=ev5 -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
316
 
"debian-arm","gcc:-DL_ENDIAN -DTERMIO -O2 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1::::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
317
 
"debian-armeb","gcc:-DB_ENDIAN -DTERMIO -O2 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1::::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
318
 
"debian-armel","gcc:-DL_ENDIAN -DTERMIO -O2 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1::::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
319
 
#"debian-amd64","gcc:-DL_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
320
 
"debian-amd64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl -Wl,-Bsymbolic-functions:SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
321
 
"debian-kfreebsd-amd64","gcc:-m64 -DL_ENDIAN -DTERMIOS -O3 -Wa,--noexecstack -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
322
 
#"debian-freebsd-alpha","gcc:-DTERMIOS -O -Wa,--noexecstack -fomit-frame-pointer::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC2::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
323
 
"debian-kfreebsd-i386","gcc:-DL_ENDIAN -DTERMIOS -O3 -Wa,--noexecstack -g -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
324
 
"debian-hppa","gcc:-DB_ENDIAN -DTERMIO -O2 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl -Wl,-Bsymbolic-functions:BN_LLONG MD2_CHAR RC4_INDEX::::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
325
 
"debian-hurd-i386","gcc:-DL_ENDIAN -DTERMIOS -O3 -Wa,--noexecstack -g -m486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
326
 
"debian-ia64","gcc:-DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl -Wl,-Bsymbolic-functions:SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
327
 
#"debian-i386","gcc:-DL_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -fomit-frame-pointer -m486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC",
328
 
"debian-i386","gcc:-DL_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl -Wl,-Bsymbolic-functions:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
329
 
"debian-i386-i486","gcc:-DL_ENDIAN -DTERMIO -O3 -march=i486 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl -Wl,-Bsymbolic-functions:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
330
 
"debian-i386-i586","gcc:-DL_ENDIAN -DTERMIO -O3 -march=i586 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl -Wl,-Bsymbolic-functions:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
331
 
"debian-i386-i686/cmov","gcc:-DL_ENDIAN -DTERMIO -O3 -march=i686 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl -Wl,-Bsymbolic-functions:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
332
 
"debian-lpia","gcc:-DL_ENDIAN -DTERMIO -O3 -march=i686 -mtune=i586 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl -Wl,-Bsymbolic-functions:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
333
 
"debian-m68k","gcc:-DB_ENDIAN -DTERMIO -O2 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG MD2_CHAR RC4_INDEX::::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
334
 
"debian-mips",   "gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2::::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
335
 
"debian-mipsel",   "gcc:-DL_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2::::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
336
 
"debian-netbsd-i386",   "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wa,--noexecstack -g -m486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
337
 
"debian-netbsd-m68k",   "gcc:-DB_ENDIAN -DTERMIOS -O3 -Wa,--noexecstack -g -Wall::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL::::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
338
 
"debian-netbsd-sparc",  "gcc:-DB_ENDIAN -DTERMIOS -O3 -Wa,--noexecstack -g -mv8 -Wall::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL::::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
339
 
"debian-openbsd-alpha","gcc:-DTERMIOS -O3 -Wa,--noexecstack -g::(unknown):::SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2::::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
340
 
"debian-openbsd-i386",  "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wa,--noexecstack -g -m486::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
341
 
"debian-openbsd-mips","gcc:-O2 -Wa,--noexecstack -g -DL_ENDIAN::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC2 DES_PTR BF_PTR:::::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
342
 
"debian-powerpc","gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl -Wl,-Bsymbolic-functions:BN_LLONG DES_UNROLL DES_RISC2 DES_PTR MD2_CHAR RC4_INDEX::linux_ppc32.o::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
343
 
"debian-ppc64","gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::linux_ppc64.o::::::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
344
 
"debian-s390","gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", 
345
 
"debian-sh3",   "gcc:-DL_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
346
 
"debian-sh4",   "gcc:-DL_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
347
 
"debian-sh3eb",   "gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
348
 
"debian-sh4eb",   "gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
349
 
"debian-m32r","gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
350
 
"debian-sparc","gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl -Wl,-Bsymbolic-functions:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
351
 
"debian-sparc-v8","gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -mcpu=v8 -g -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
352
 
"debian-sparc-v9","gcc:-DB_ENDIAN -DTERMIO -O3 -mcpu=v9 -Wa,--noexecstack -Wa,-Av8plus -g -Wall -DULTRASPARC -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
353
 
 
354
323
####
355
324
#### Variety of LINUX:-)
356
325
####
375
344
"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
376
345
# it's a real mess with -mcpu=ultrasparc option under Linux, but
377
346
# -Wa,-Av8plus should do the trick no matter what.
378
 
"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o::::::dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
347
"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
379
348
# GCC 3.1 is a requirement
380
 
"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::::::md5-sparcv9.o::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
349
"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::::::::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
381
350
#### Alpha Linux with GNU C and Compaq C setups
382
351
# Special notes:
383
352
# - linux-alpha+bwx-gcc is ment to be used from ./config only. If you
407
376
# -DMD32_REG_T=int doesn't actually belong in sparc64 target, it
408
377
# simply *happens* to work around a compiler bug in gcc 3.3.3,
409
378
# triggered by RIPEMD160 code.
410
 
"BSD-sparc64",  "gcc:-DB_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR:::des_enc-sparc.o fcrypt_b.o:::md5-sparcv9.o::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
379
"BSD-sparc64",  "gcc:-DB_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR:::des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
411
380
"BSD-ia64",     "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
412
381
"BSD-x86_64",   "gcc:-DL_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
413
382
 
445
414
 
446
415
#### IBM's AIX.
447
416
"aix3-cc",  "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::",
448
 
"aix-gcc",  "gcc:-O -DB_ENDIAN::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
449
 
"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-maix64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64",
 
417
"aix-gcc",  "gcc:-O -DB_ENDIAN::-pthread:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
 
418
"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-pthread:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-maix64 -shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64",
450
419
# Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE
451
420
# at build time. $OBJECT_MODE is respected at ./config stage!
452
 
"aix-cc",   "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-q32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
453
 
"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-q64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
 
421
"aix-cc",   "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
 
422
"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
454
423
 
455
424
#
456
425
# Cray T90 and similar (SDSC)
519
488
# Cygwin
520
489
"Cygwin-pre1.3", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown):CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:win32",
521
490
"Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_coff_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
522
 
-"debug-Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::CYGWIN32:::${no_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
 
491
"debug-Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::CYGWIN32:::${no_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
523
492
 
524
 
# NetWare from David Ward (dsward@novell.com) - requires MetroWerks NLM development tools
 
493
# NetWare from David Ward (dsward@novell.com)
 
494
# requires either MetroWerks NLM development tools, or gcc / nlmconv
 
495
# NetWare defaults socket bio to WinSock sockets. However,
 
496
# the builds can be configured to use BSD sockets instead.
525
497
# netware-clib => legacy CLib c-runtime support
526
 
"netware-clib", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::",
 
498
"netware-clib", "mwccnlm::::::${x86_gcc_opts}::",
 
499
"netware-clib-bsdsock", "mwccnlm::::::${x86_gcc_opts}::",
 
500
"netware-clib-gcc", "i586-netware-gcc:-nostdinc -I/ndk/nwsdk/include/nlm -I/ndk/ws295sdk/include -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYSNAME_NETWARE -O2 -Wall:::::${x86_gcc_opts}::",
 
501
"netware-clib-bsdsock-gcc", "i586-netware-gcc:-nostdinc -I/ndk/nwsdk/include/nlm -DNETWARE_BSDSOCK -DNETDB_USE_INTERNET -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYSNAME_NETWARE -O2 -Wall:::::${x86_gcc_opts}::",
527
502
# netware-libc => LibC/NKS support
528
 
# NetWare defaults socket bio to WinSock sockets. However, the LibC build can be
529
 
# configured to use BSD sockets instead.
530
503
"netware-libc", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::",
531
504
"netware-libc-bsdsock", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::",
532
505
"netware-libc-gcc", "i586-netware-gcc:-nostdinc -I/ndk/libc/include -I/ndk/libc/include/winsock -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall:::::BN_LLONG ${x86_gcc_opts}::",
 
506
"netware-libc-bsdsock-gcc", "i586-netware-gcc:-nostdinc -I/ndk/libc/include -DNETWARE_BSDSOCK -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall:::::BN_LLONG ${x86_gcc_opts}::",
533
507
 
534
508
# DJGPP
535
509
"DJGPP", "gcc:-I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall:::MSDOS:-L/dev/env/WATT_ROOT/lib -lwatt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:",
543
517
##### MacOS X (a.k.a. Rhapsody or Darwin) setup
544
518
"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::",
545
519
"darwin-ppc-cc","cc:-arch ppc -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
546
 
"darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:ppccpuid_osx64.o:osx_ppc64.o osx_ppc64-mont.o:::::sha1-ppc_osx64.o sha256-ppc_osx64.o sha512-ppc_osx64.o:::::::dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
547
 
"darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -fno-common::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
 
520
"darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc64.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
 
521
"darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
 
522
"debug-darwin-i386-cc","cc:-arch i386 -g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
548
523
"darwin64-x86_64-cc","cc:-arch x86_64 -O3 -fomit-frame-pointer -DL_ENDIAN -DMD32_REG_T=int -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
549
524
"debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
550
525
 
574
549
 
575
550
my @MK1MF_Builds=qw(VC-WIN64I VC-WIN64A
576
551
                    VC-NT VC-CE VC-WIN32
577
 
                    BC-32 OS2-EMX netware-clib netware-libc netware-libc-bsdsock);
 
552
                    BC-32 OS2-EMX
 
553
                    netware-clib netware-clib-bsdsock
 
554
                    netware-libc netware-libc-bsdsock);
578
555
 
579
556
my $idx = 0;
580
557
my $idx_cc = $idx++;
607
584
my $openssldir="";
608
585
my $exe_ext="";
609
586
my $install_prefix="";
 
587
my $fipslibdir="/usr/local/ssl/fips-1.0/lib/";
 
588
my $nofipscanistercheck=0;
 
589
my $fipsdso=0;
 
590
my $fipscanisterinternal="n";
 
591
my $baseaddr="0xFB00000";
610
592
my $no_threads=0;
611
593
my $threads=0;
612
594
my $no_shared=0; # but "no-shared" is default
613
595
my $zlib=1;      # but "no-zlib" is default
614
596
my $no_krb5=0;   # but "no-krb5" is implied unless "--with-krb5-..." is used
615
597
my $no_rfc3779=1; # but "no-rfc3779" is default
 
598
my $montasm=1;   # but "no-montasm" is default
616
599
my $no_asm=0;
617
600
my $no_dso=0;
618
601
my $no_gmp=0;
629
612
my $bf  ="crypto/bf/bf_locl.h";
630
613
my $bn_asm      ="bn_asm.o";
631
614
my $des_enc="des_enc.o fcrypt_b.o";
 
615
my $fips_des_enc="fips_des_enc.o";
632
616
my $aes_enc="aes_core.o aes_cbc.o";
633
617
my $bf_enc      ="bf_enc.o";
634
618
my $cast_enc="c_enc.o";
635
 
my $rc4_enc="rc4_enc.o";
 
619
my $rc4_enc="rc4_enc.o rc4_skey.o";
636
620
my $rc5_enc="rc5_enc.o";
637
621
my $md5_obj="";
638
622
my $sha1_obj="";
640
624
my $processor="";
641
625
my $default_ranlib;
642
626
my $perl;
 
627
my $fips=0;
643
628
 
644
629
 
645
630
# All of the following is disabled by default (RC5 was enabled before 0.9.8):
646
631
 
647
 
my %disabled = ( # "what"         => "comment"
 
632
my %disabled = ( # "what"         => "comment" [or special keyword "experimental"]
648
633
                 "camellia"       => "default",
 
634
                 "capieng"        => "default",
 
635
                 "cms"            => "default",
649
636
                 "gmp"            => "default",
 
637
                 "jpake"          => "experimental",
650
638
                 "mdc2"           => "default",
 
639
                 "montasm"        => "default", # explicit option in 0.9.8 only (implicitly enabled in 0.9.9)
651
640
                 "rc5"            => "default",
652
641
                 "rfc3779"        => "default",
653
642
                 "seed"           => "default",
654
643
                 "shared"         => "default",
655
 
                 "tlsext"         => "default",
656
644
                 "zlib"           => "default",
657
645
                 "zlib-dynamic"   => "default"
658
646
               );
659
 
 
660
 
# Additional "no-..." options will be collected in %disabled.
661
 
# To remove something from %disabled, use e.g. "enable-rc5".
662
 
# For symmetry, "disable-..." is a synonym for "no-...".
663
 
 
664
 
# This is what $depflags will look like with the above default:
665
 
my $default_depflags = "-DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_GMP -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SEED -DOPENSSL_NO_TLSEXT ";
 
647
my @experimental = ();
 
648
 
 
649
# This is what $depflags will look like with the above defaults
 
650
# (we need this to see if we should advise the user to run "make depend"):
 
651
my $default_depflags = " -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_CMS -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SEED";
 
652
 
 
653
 
 
654
# Explicit "no-..." options will be collected in %disabled along with the defaults.
 
655
# To remove something from %disabled, use "enable-foo" (unless it's experimental).
 
656
# For symmetry, "disable-foo" is a synonym for "no-foo".
 
657
 
 
658
# For features called "experimental" here, a more explicit "experimental-foo" is needed to enable.
 
659
# We will collect such requests in @experimental.
 
660
# To avoid accidental use of experimental features, applications will have to use -DOPENSSL_EXPERIMENTAL_FOO.
666
661
 
667
662
 
668
663
my $no_sse2=0;
671
666
 
672
667
my $flags;
673
668
my $depflags;
 
669
my $openssl_experimental_defines;
674
670
my $openssl_algorithm_defines;
675
671
my $openssl_thread_defines;
676
672
my $openssl_sys_defines="";
691
687
        {
692
688
        $flags="";
693
689
        $depflags="";
 
690
        $openssl_experimental_defines="";
694
691
        $openssl_algorithm_defines="";
695
692
        $openssl_thread_defines="";
696
693
        $openssl_sys_defines="";
716
713
 
717
714
                if (/^no-(.+)$/ || /^disable-(.+)$/)
718
715
                        {
719
 
                        if ($1 eq "ssl")
720
 
                                {
721
 
                                $disabled{"ssl2"} = "option(ssl)";
722
 
                                $disabled{"ssl3"} = "option(ssl)";
723
 
                                }
724
 
                        elsif ($1 eq "tls")
725
 
                                {
726
 
                                $disabled{"tls1"} = "option(tls)"
727
 
                                }
728
 
                        else
729
 
                                {
730
 
                                $disabled{$1} = "option";
 
716
                        if (!($disabled{$1} eq "experimental"))
 
717
                                {
 
718
                                if ($1 eq "ssl")
 
719
                                        {
 
720
                                        $disabled{"ssl2"} = "option(ssl)";
 
721
                                        $disabled{"ssl3"} = "option(ssl)";
 
722
                                        }
 
723
                                elsif ($1 eq "tls")
 
724
                                        {
 
725
                                        $disabled{"tls1"} = "option(tls)"
 
726
                                        }
 
727
                                else
 
728
                                        {
 
729
                                        $disabled{$1} = "option";
 
730
                                        }
731
731
                                }
732
732
                        }                       
733
 
                elsif (/^enable-(.+)$/)
 
733
                elsif (/^enable-(.+)$/ || /^experimental-(.+)$/)
734
734
                        {
735
 
                        delete $disabled{$1};
 
735
                        my $algo = $1;
 
736
                        if ($disabled{$algo} eq "experimental")
 
737
                                {
 
738
                                die "You are requesting an experimental feature; please say 'experimental-$algo' if you are sure\n"
 
739
                                        unless (/^experimental-/);
 
740
                                push @experimental, $algo;
 
741
                                }
 
742
                        delete $disabled{$algo};
736
743
 
737
 
                        $threads = 1 if ($1 eq "threads");
 
744
                        $threads = 1 if ($algo eq "threads");
738
745
                        }
739
746
                elsif (/^--test-sanity$/)
740
747
                        {
765
772
                        }
766
773
                elsif (/^386$/)
767
774
                        { $processor=386; }
 
775
                elsif (/^fips$/)
 
776
                        {
 
777
                        $fips=1;
 
778
                        }
768
779
                elsif (/^rsaref$/)
769
780
                        {
770
781
                        # No RSAref support any more since it's not needed.
771
782
                        # The check for the option is there so scripts aren't
772
783
                        # broken
773
784
                        }
 
785
                elsif (/^nofipscanistercheck$/)
 
786
                        {
 
787
                        $fips = 1;
 
788
                        $nofipscanistercheck = 1;
 
789
                        }
 
790
                elsif (/^fipscanisterbuild$/)
 
791
                        {
 
792
                        $fips = 1;
 
793
                        $nofipscanistercheck = 1;
 
794
                        $fipslibdir="";
 
795
                        $fipscanisterinternal="y";
 
796
                        }
 
797
                elsif (/^fipsdso$/)
 
798
                        {
 
799
                        $fips = 1;
 
800
                        $nofipscanistercheck = 1;
 
801
                        $fipslibdir="";
 
802
                        $fipscanisterinternal="y";
 
803
                        $fipsdso = 1;
 
804
                        }
774
805
                elsif (/^[-+]/)
775
806
                        {
776
807
                        if (/^-[lL](.*)$/)
805
836
                                {
806
837
                                $withargs{"zlib-include"}="-I$1";
807
838
                                }
 
839
                        elsif (/^--with-fipslibdir=(.*)$/)
 
840
                                {
 
841
                                $fipslibdir="$1/";
 
842
                                }
 
843
                        elsif (/^--with-baseaddr=(.*)$/)
 
844
                                {
 
845
                                $baseaddr="$1";
 
846
                                }
808
847
                        else
809
848
                                {
810
849
                                print STDERR $usage;
912
951
 
913
952
&usage if (!defined($table{$target}));
914
953
 
 
954
my @fields = split(/\s*:\s*/,$table{$target} . ":" x 30 , -1);
 
955
my $cc = $fields[$idx_cc];
 
956
# Allow environment CC to override compiler...
 
957
if($ENV{CC}) {
 
958
    $cc = $ENV{CC};
 
959
}
 
960
my $cflags = $fields[$idx_cflags];
 
961
my $unistd = $fields[$idx_unistd];
 
962
my $thread_cflag = $fields[$idx_thread_cflag];
 
963
my $sys_id = $fields[$idx_sys_id];
 
964
my $lflags = $fields[$idx_lflags];
 
965
my $bn_ops = $fields[$idx_bn_ops];
 
966
my $cpuid_obj = $fields[$idx_cpuid_obj];
 
967
my $bn_obj = $fields[$idx_bn_obj];
 
968
my $des_obj = $fields[$idx_des_obj];
 
969
my $aes_obj = $fields[$idx_aes_obj];
 
970
my $bf_obj = $fields[$idx_bf_obj];
 
971
my $md5_obj = $fields[$idx_md5_obj];
 
972
my $sha1_obj = $fields[$idx_sha1_obj];
 
973
my $cast_obj = $fields[$idx_cast_obj];
 
974
my $rc4_obj = $fields[$idx_rc4_obj];
 
975
my $rmd160_obj = $fields[$idx_rmd160_obj];
 
976
my $rc5_obj = $fields[$idx_rc5_obj];
 
977
my $dso_scheme = $fields[$idx_dso_scheme];
 
978
my $shared_target = $fields[$idx_shared_target];
 
979
my $shared_cflag = $fields[$idx_shared_cflag];
 
980
my $shared_ldflag = $fields[$idx_shared_ldflag];
 
981
my $shared_extension = $fields[$idx_shared_extension];
 
982
my $ranlib = $fields[$idx_ranlib];
 
983
my $arflags = $fields[$idx_arflags];
 
984
 
 
985
if ($fips)
 
986
        {
 
987
        delete $disabled{"shared"} if ($disabled{"shared"} eq "default");
 
988
        $disabled{"asm"}="forced"
 
989
                if ($target !~ "VC\-.*" &&
 
990
                    "$cpuid_obj:$bn_obj:$aes_obj:$des_obj:$sha1_obj" eq "::::");
 
991
        }
 
992
 
 
993
foreach (sort @experimental)
 
994
        {
 
995
        my $ALGO;
 
996
        ($ALGO = $_) =~ tr/[a-z]/[A-Z]/;
 
997
 
 
998
        # opensslconf.h will set OPENSSL_NO_... unless OPENSSL_EXPERIMENTAL_... is defined
 
999
        $openssl_experimental_defines .= "#define OPENSSL_NO_$ALGO\n";
 
1000
        $cflags .= " -DOPENSSL_EXPERIMENTAL_$ALGO";
 
1001
        }
915
1002
 
916
1003
foreach (sort (keys %disabled))
917
1004
        {
927
1014
                { $no_shared = 1; }
928
1015
        elsif (/^zlib$/)
929
1016
                { $zlib = 0; }
 
1017
        elsif (/^montasm$/)
 
1018
                { $montasm = 0; }
930
1019
        elsif (/^static-engine$/)
931
1020
                { }
932
1021
        elsif (/^zlib-dynamic$/)
960
1049
                                push @skip, $algo;
961
1050
                                print " (skip dir)";
962
1051
 
963
 
                                $depflags .="-DOPENSSL_NO_$ALGO ";
 
1052
                                $depflags .= " -DOPENSSL_NO_$ALGO";
964
1053
                                }
965
1054
                        }
966
1055
                }
968
1057
        print "\n";
969
1058
        }
970
1059
 
971
 
 
972
1060
my $IsMK1MF=scalar grep /^$target$/,@MK1MF_Builds;
973
1061
 
974
1062
$IsMK1MF=1 if ($target eq "mingw" && $^O ne "cygwin" && !is_msys());
975
1063
 
 
1064
$no_shared = 0 if ($fipsdso && !$IsMK1MF);
 
1065
 
976
1066
$exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target eq "mingw");
 
1067
$exe_ext=".nlm" if ($target =~ /netware/);
977
1068
$exe_ext=".pm"  if ($target =~ /vos/);
978
 
$openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq "");
 
1069
if ($openssldir eq "" and $prefix eq "")
 
1070
        {
 
1071
        if ($fips)
 
1072
                {
 
1073
                $openssldir="/usr/local/ssl/fips";
 
1074
                }
 
1075
        else
 
1076
                {
 
1077
                $openssldir="/usr/local/ssl";
 
1078
                }
 
1079
        }
979
1080
$prefix=$openssldir if $prefix eq "";
980
1081
 
981
1082
$default_ranlib= &which("ranlib") or $default_ranlib="true";
983
1084
  or $perl="perl";
984
1085
 
985
1086
chop $openssldir if $openssldir =~ /\/$/;
986
 
chop $prefix if $prefix =~ /\/$/;
 
1087
chop $prefix if $prefix =~ /.\/$/;
987
1088
 
988
1089
$openssldir=$prefix . "/ssl" if $openssldir eq "";
989
1090
$openssldir=$prefix . "/" . $openssldir if $openssldir !~ /(^\/|^[a-zA-Z]:[\\\/])/;
991
1092
 
992
1093
print "IsMK1MF=$IsMK1MF\n";
993
1094
 
994
 
my @fields = split(/\s*:\s*/,$table{$target} . ":" x 30 , -1);
995
 
my $cc = $fields[$idx_cc];
996
 
my $cflags = $fields[$idx_cflags];
997
 
my $unistd = $fields[$idx_unistd];
998
 
my $thread_cflag = $fields[$idx_thread_cflag];
999
 
my $sys_id = $fields[$idx_sys_id];
1000
 
my $lflags = $fields[$idx_lflags];
1001
 
my $bn_ops = $fields[$idx_bn_ops];
1002
 
my $cpuid_obj = $fields[$idx_cpuid_obj];
1003
 
my $bn_obj = $fields[$idx_bn_obj];
1004
 
my $des_obj = $fields[$idx_des_obj];
1005
 
my $aes_obj = $fields[$idx_aes_obj];
1006
 
my $bf_obj = $fields[$idx_bf_obj];
1007
 
my $md5_obj = $fields[$idx_md5_obj];
1008
 
my $sha1_obj = $fields[$idx_sha1_obj];
1009
 
my $cast_obj = $fields[$idx_cast_obj];
1010
 
my $rc4_obj = $fields[$idx_rc4_obj];
1011
 
my $rmd160_obj = $fields[$idx_rmd160_obj];
1012
 
my $rc5_obj = $fields[$idx_rc5_obj];
1013
 
my $dso_scheme = $fields[$idx_dso_scheme];
1014
 
my $shared_target = $fields[$idx_shared_target];
1015
 
my $shared_cflag = $fields[$idx_shared_cflag];
1016
 
my $shared_ldflag = $fields[$idx_shared_ldflag];
1017
 
my $shared_extension = $fields[$idx_shared_extension];
1018
 
my $ranlib = $fields[$idx_ranlib];
1019
 
my $arflags = $fields[$idx_arflags];
1020
 
 
1021
1095
# '%' in $lflags is used to split flags to "pre-" and post-flags
1022
1096
my ($prelflags,$postlflags)=split('%',$lflags);
1023
1097
if (defined($postlflags))       { $lflags=$postlflags;  }
1151
1225
        {
1152
1226
        $cpuid_obj=$bn_obj=$des_obj=$aes_obj=$bf_obj=$cast_obj=$rc4_obj=$rc5_obj="";
1153
1227
        $sha1_obj=$md5_obj=$rmd160_obj="";
 
1228
        $cflags=~s/\-D[BL]_ENDIAN//             if ($fips);
 
1229
        $thread_cflags=~s/\-D[BL]_ENDIAN//      if ($fips);
 
1230
        }
 
1231
if ($montasm)
 
1232
        {
 
1233
        $bn_obj =~ s/MAYBE-MO86-/mo86-/;
 
1234
        }
 
1235
else
 
1236
        {
 
1237
        $bn_obj =~ s/MAYBE-MO86-[a-z.]*//;
1154
1238
        }
1155
1239
 
1156
1240
if (!$no_shared)
1181
1265
my $shared_mark = "";
1182
1266
if ($shared_target eq "")
1183
1267
        {
1184
 
        $no_shared_warn = 1 if !$no_shared;
 
1268
        $no_shared_warn = 1 if !$no_shared && !$fips;
1185
1269
        $no_shared = 1;
1186
1270
        }
1187
1271
if (!$no_shared)
1271
1355
$cflags.=" -DOPENSSL_BN_ASM_PART_WORDS" if ($bn_obj =~ /bn86/);
1272
1356
$cflags.=" -DOPENSSL_IA32_SSE2" if (!$no_sse2 && $bn_obj =~ /bn86/);
1273
1357
 
 
1358
$cflags.=" -DOPENSSL_BN_ASM_MONT" if ($bn_obj =~ /\-mont|mo86\-/);
 
1359
 
 
1360
if ($fips)
 
1361
        {
 
1362
        $openssl_other_defines.="#define OPENSSL_FIPS\n";
 
1363
        }
 
1364
 
1274
1365
$des_obj=$des_enc       unless ($des_obj =~ /\.o$/);
1275
1366
$bf_obj=$bf_enc         unless ($bf_obj =~ /\.o$/);
1276
1367
$cast_obj=$cast_enc     unless ($cast_obj =~ /\.o$/);
1343
1434
        $shlib_minor=$2;
1344
1435
        }
1345
1436
 
1346
 
$shared_ldflag .= " -Wl,--version-script=openssl.ld";
1347
 
 
1348
1437
open(IN,'<Makefile.org') || die "unable to read Makefile.org:$!\n";
1349
1438
unlink("$Makefile.new") || die "unable to remove old $Makefile.new:$!\n" if -e "$Makefile.new";
1350
1439
open(OUT,">$Makefile.new") || die "unable to create $Makefile.new:$!\n";
1357
1446
        if ($sdirs) {
1358
1447
                my $dir;
1359
1448
                foreach $dir (@skip) {
1360
 
                        s/([    ])$dir /\1/;
 
1449
                        s/(\s)$dir\s/$1/;
 
1450
                        s/\s$dir$//;
1361
1451
                        }
1362
1452
                }
1363
1453
        $sdirs = 0 unless /\\$/;
 
1454
        s/fips // if (/^DIRS=/ && !$fips);
 
1455
        s/engines // if (/^DIRS=/ && $disabled{"engine"});
1364
1456
        s/^VERSION=.*/VERSION=$version/;
1365
1457
        s/^MAJOR=.*/MAJOR=$major/;
1366
1458
        s/^MINOR=.*/MINOR=$minor/;
1378
1470
        s/^CC=.*$/CC= $cc/;
1379
1471
        s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $cc eq "gcc";
1380
1472
        s/^CFLAG=.*$/CFLAG= $cflags/;
1381
 
        s/^DEPFLAG=.*$/DEPFLAG= $depflags/;
 
1473
        s/^DEPFLAG=.*$/DEPFLAG=$depflags/;
1382
1474
        s/^PEX_LIBS=.*$/PEX_LIBS= $prelflags/;
1383
1475
        s/^EX_LIBS=.*$/EX_LIBS= $lflags/;
1384
1476
        s/^EXE_EXT=.*$/EXE_EXT= $exe_ext/;
1401
1493
        s/^LIBKRB5=.*/LIBKRB5=$withargs{"krb5-lib"}/;
1402
1494
        s/^LIBZLIB=.*/LIBZLIB=$withargs{"zlib-lib"}/;
1403
1495
        s/^ZLIB_INCLUDE=.*/ZLIB_INCLUDE=$withargs{"zlib-include"}/;
 
1496
        s/^FIPSLIBDIR=.*/FIPSLIBDIR=$fipslibdir/;
 
1497
        if ($fipsdso)
 
1498
                {
 
1499
                s/^FIPSCANLIB=.*/FIPSCANLIB=libfips/;
 
1500
                s/^SHARED_FIPS=.*/SHARED_FIPS=libfips\$(SHLIB_EXT)/;
 
1501
                s/^SHLIBDIRS=.*/SHLIBDIRS= crypto ssl fips/;
 
1502
                }
 
1503
        else
 
1504
                {
 
1505
                s/^FIPSCANLIB=.*/FIPSCANLIB=libcrypto/ if $fips;
 
1506
                s/^SHARED_FIPS=.*/SHARED_FIPS=/;
 
1507
                s/^SHLIBDIRS=.*/SHLIBDIRS= crypto ssl/;
 
1508
                }
 
1509
        s/^FIPSCANISTERINTERNAL=.*/FIPSCANISTERINTERNAL=$fipscanisterinternal/;
 
1510
        s/^BASEADDR=.*/BASEADDR=$baseaddr/;
1404
1511
        s/^SHLIB_TARGET=.*/SHLIB_TARGET=$shared_target/;
1405
1512
        s/^SHLIB_MARK=.*/SHLIB_MARK=$shared_mark/;
1406
 
        s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL)/ if (!$no_shared);
 
1513
        s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_FIPS) \$(SHARED_CRYPTO) \$(SHARED_SSL)/ if (!$no_shared);
1407
1514
        if ($shared_extension ne "" && $shared_extension =~ /^\.s([ol])\.[^\.]*$/)
1408
1515
                {
1409
1516
                my $sotmp = $1;
1416
1523
        elsif ($shared_extension ne "" && $shared_extension =~ /^\.s([ol])\.[^\.]*\.[^\.]*$/)
1417
1524
                {
1418
1525
                my $sotmp = $1;
1419
 
#               s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=.s$sotmp.\$(SHLIB_MAJOR) .s$sotmp/;
1420
 
                s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=.s$sotmp/;
 
1526
                s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=.s$sotmp.\$(SHLIB_MAJOR) .s$sotmp/;
1421
1527
                }
1422
1528
        elsif ($shared_extension ne "" && $shared_extension =~ /^\.[^\.]*\.[^\.]*\.dylib$/)
1423
1529
                {
1508
1614
 
1509
1615
print OUT "/* OpenSSL was configured with the following options: */\n";
1510
1616
my $openssl_algorithm_defines_trans = $openssl_algorithm_defines;
 
1617
$openssl_experimental_defines =~ s/^\s*#\s*define\s+OPENSSL_NO_(.*)/#ifndef OPENSSL_EXPERIMENTAL_$1\n# ifndef OPENSSL_NO_$1\n#  define OPENSSL_NO_$1\n# endif\n#endif/mg;
1511
1618
$openssl_algorithm_defines_trans =~ s/^\s*#\s*define\s+OPENSSL_(.*)/# if defined(OPENSSL_$1) \&\& !defined($1)\n#  define $1\n# endif/mg;
1512
1619
$openssl_algorithm_defines =~ s/^\s*#\s*define\s+(.*)/#ifndef $1\n# define $1\n#endif/mg;
1513
1620
$openssl_algorithm_defines = "   /* no ciphers excluded */\n" if $openssl_algorithm_defines eq "";
1516
1623
$openssl_other_defines =~ s/^\s*#\s*define\s+(.*)/#ifndef $1\n# define $1\n#endif/mg;
1517
1624
print OUT $openssl_sys_defines;
1518
1625
print OUT "#ifndef OPENSSL_DOING_MAKEDEPEND\n\n";
 
1626
print OUT $openssl_experimental_defines;
 
1627
print OUT "\n";
1519
1628
print OUT $openssl_algorithm_defines;
1520
 
print OUT "\n#endif /* OPENSSL_DOING_MAKEDEPEND */\n";
 
1629
print OUT "\n#endif /* OPENSSL_DOING_MAKEDEPEND */\n\n";
1521
1630
print OUT $openssl_thread_defines;
1522
1631
print OUT $openssl_other_defines,"\n";
1523
1632
 
1536
1645
        if      (/^#define\s+OPENSSLDIR/)
1537
1646
                { print OUT "#define OPENSSLDIR \"$openssldir\"\n"; }
1538
1647
        elsif   (/^#define\s+ENGINESDIR/)
1539
 
                { print OUT "#define ENGINESDIR \"$prefix/lib/ssl/engines\"\n"; }
 
1648
                { print OUT "#define ENGINESDIR \"$prefix/lib/engines\"\n"; }
1540
1649
        elsif   (/^#((define)|(undef))\s+OPENSSL_EXPORT_VAR_AS_FUNCTION/)
1541
1650
                { printf OUT "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION\n"
1542
1651
                        if $export_var_as_fn;
1668
1777
}
1669
1778
 
1670
1779
# create the ms/version32.rc file if needed
1671
 
if ($IsMK1MF) {
 
1780
if ($IsMK1MF && ($target !~ /^netware/)) {
1672
1781
        my ($v1, $v2, $v3, $v4);
1673
1782
        if ($version_num =~ /(^[0-9a-f]{1})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i) {
1674
1783
                $v1=hex $1;
1699
1808
    BEGIN
1700
1809
        BLOCK "040904b0"
1701
1810
        BEGIN
 
1811
#if defined(FIPS)
 
1812
            VALUE "Comments", "WARNING: TEST VERSION ONLY ***NOT*** FIPS 140-2 VALIDATED.\\0"
 
1813
#endif
1702
1814
            // Required:            
1703
1815
            VALUE "CompanyName", "The OpenSSL Project, http://www.openssl.org/\\0"
 
1816
#if defined(FIPS)
 
1817
            VALUE "FileDescription", "TEST UNVALIDATED FIPS140-2 DLL\\0"
 
1818
#else
1704
1819
            VALUE "FileDescription", "OpenSSL Shared Library\\0"
 
1820
#endif
1705
1821
            VALUE "FileVersion", "$version\\0"
1706
1822
#if defined(CRYPTO)
1707
1823
            VALUE "InternalName", "libeay32\\0"
1709
1825
#elif defined(SSL)
1710
1826
            VALUE "InternalName", "ssleay32\\0"
1711
1827
            VALUE "OriginalFilename", "ssleay32.dll\\0"
 
1828
#elif defined(FIPS)
 
1829
            VALUE "InternalName", "libosslfips\\0"
 
1830
            VALUE "OriginalFilename", "libosslfips.dll\\0"
1712
1831
#endif
1713
1832
            VALUE "ProductName", "The OpenSSL Toolkit\\0"
1714
1833
            VALUE "ProductVersion", "$version\\0"
1715
1834
            // Optional:
1716
1835
            //VALUE "Comments", "\\0"
1717
 
            VALUE "LegalCopyright", "Copyright � 1998-2005 The OpenSSL Project. Copyright � 1995-1998 Eric A. Young, Tim J. Hudson. All rights reserved.\\0"
 
1836
            VALUE "LegalCopyright", "Copyright � 1998-2007 The OpenSSL Project. Copyright � 1995-1998 Eric A. Young, Tim J. Hudson. All rights reserved.\\0"
1718
1837
            //VALUE "LegalTrademarks", "\\0"
1719
1838
            //VALUE "PrivateBuild", "\\0"
1720
1839
            //VALUE "SpecialBuild", "\\0"
1751
1870
(but please first make sure you have tried with a current version of OpenSSL).
1752
1871
EOF
1753
1872
 
 
1873
print <<\EOF if ($fipscanisterinternal eq "y");
 
1874
 
 
1875
WARNING: OpenSSL has been configured using unsupported option(s) to internally
 
1876
generate a fipscanister.o object module for TESTING PURPOSES ONLY; that
 
1877
compiled module is NOT FIPS 140-2 validated and CANNOT be used to replace the
 
1878
OpenSSL FIPS Object Module as identified by the CMVP
 
1879
(http://csrc.nist.gov/cryptval/) in any application requiring the use of FIPS
 
1880
140-2 validated software. 
 
1881
 
 
1882
This is an OpenSSL 0.9.8 test version.
 
1883
 
 
1884
See the file README.FIPS for details of how to build a test library.
 
1885
 
 
1886
EOF
 
1887
 
1754
1888
exit(0);
1755
1889
 
1756
1890
sub usage