diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2006-05-05 13:19:35 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2006-05-05 13:19:35 +0000 |
commit | b03a4917be536c299d4b9cbb31ae998cdf365a1d (patch) | |
tree | 2d7a47e8a1d6781e158bca01738e5f81b9fe0b4a | |
parent | 84971b39f571649eb635a70d31e22250fe7e56fd (diff) |
Backport of CPUID support in mk1mf and update Mingw32 batch file to build
cpuid source file.
-rw-r--r-- | ms/mingw32.bat | 184 | ||||
-rwxr-xr-x | util/mk1mf.pl | 8 | ||||
-rw-r--r-- | util/pl/Mingw32.pl | 4 |
3 files changed, 105 insertions, 91 deletions
diff --git a/ms/mingw32.bat b/ms/mingw32.bat index 8c7c63e0f2..f9377a8695 100644 --- a/ms/mingw32.bat +++ b/ms/mingw32.bat @@ -1,90 +1,94 @@ -@rem OpenSSL with Mingw32+GNU as
-@rem ---------------------------
-
-perl Configure mingw %1 %2 %3 %4 %5 %6 %7 %8
-
-@echo off
-
-perl -e "exit 1 if '%1' eq 'no-asm'"
-if errorlevel 1 goto noasm
-
-echo Generating x86 for GNU assember
-
-echo Bignum
-cd crypto\bn\asm
-perl bn-586.pl gaswin > bn-win32.s
-perl co-586.pl gaswin > co-win32.s
-cd ..\..\..
-
-echo DES
-cd crypto\des\asm
-perl des-586.pl gaswin > d-win32.s
-cd ..\..\..
-
-echo crypt
-cd crypto\des\asm
-perl crypt586.pl gaswin > y-win32.s
-cd ..\..\..
-
-echo Blowfish
-cd crypto\bf\asm
-perl bf-586.pl gaswin > b-win32.s
-cd ..\..\..
-
-echo CAST5
-cd crypto\cast\asm
-perl cast-586.pl gaswin > c-win32.s
-cd ..\..\..
-
-echo RC4
-cd crypto\rc4\asm
-perl rc4-586.pl gaswin > r4-win32.s
-cd ..\..\..
-
-echo MD5
-cd crypto\md5\asm
-perl md5-586.pl gaswin > m5-win32.s
-cd ..\..\..
-
-echo SHA1
-cd crypto\sha\asm
-perl sha1-586.pl gaswin > s1-win32.s
-cd ..\..\..
-
-echo RIPEMD160
-cd crypto\ripemd\asm
-perl rmd-586.pl gaswin > rm-win32.s
-cd ..\..\..
-
-echo RC5\32
-cd crypto\rc5\asm
-perl rc5-586.pl gaswin > r5-win32.s
-cd ..\..\..
-
-:noasm
-
-echo Generating makefile
-perl util\mkfiles.pl >MINFO
-perl util\mk1mf.pl gaswin Mingw32 >ms\mingw32a.mak
-echo Generating DLL definition files
-perl util\mkdef.pl 32 libeay >ms\libeay32.def
-if errorlevel 1 goto end
-perl util\mkdef.pl 32 ssleay >ms\ssleay32.def
-if errorlevel 1 goto end
-
-rem copy ms\tlhelp32.h outinc
-
-echo Building the libraries
-mingw32-make -f ms/mingw32a.mak
-if errorlevel 1 goto end
-
-echo Generating the DLLs and input libraries
-dllwrap --dllname libeay32.dll --output-lib out/libeay32.a --def ms/libeay32.def out/libcrypto.a -lwsock32 -lgdi32
-if errorlevel 1 goto end
-dllwrap --dllname libssl32.dll --output-lib out/libssl32.a --def ms/ssleay32.def out/libssl.a out/libeay32.a
-if errorlevel 1 goto end
-
-echo Done compiling OpenSSL
-
-:end
-
+@rem OpenSSL with Mingw32+GNU as +@rem --------------------------- + +perl Configure mingw %1 %2 %3 %4 %5 %6 %7 %8 + +@echo off + +perl -e "exit 1 if '%1' eq 'no-asm'" +if errorlevel 1 goto noasm + +echo Generating x86 for GNU assember + +echo Bignum +cd crypto\bn\asm +perl bn-586.pl gaswin > bn-win32.s +perl co-586.pl gaswin > co-win32.s +cd ..\..\.. + +echo DES +cd crypto\des\asm +perl des-586.pl gaswin > d-win32.s +cd ..\..\.. + +echo crypt +cd crypto\des\asm +perl crypt586.pl gaswin > y-win32.s +cd ..\..\.. + +echo Blowfish +cd crypto\bf\asm +perl bf-586.pl gaswin > b-win32.s +cd ..\..\.. + +echo CAST5 +cd crypto\cast\asm +perl cast-586.pl gaswin > c-win32.s +cd ..\..\.. + +echo RC4 +cd crypto\rc4\asm +perl rc4-586.pl gaswin > r4-win32.s +cd ..\..\.. + +echo MD5 +cd crypto\md5\asm +perl md5-586.pl gaswin > m5-win32.s +cd ..\..\.. + +echo SHA1 +cd crypto\sha\asm +perl sha1-586.pl gaswin > s1-win32.s +cd ..\..\.. + +echo RIPEMD160 +cd crypto\ripemd\asm +perl rmd-586.pl gaswin > rm-win32.s +cd ..\..\.. + +echo RC5\32 +cd crypto\rc5\asm +perl rc5-586.pl gaswin > r5-win32.s +cd ..\..\.. +echo CPUID +cd crypto +perl x86cpuid.pl gaswin > cpu-win32.s +cd .. + +:noasm + +echo Generating makefile +perl util\mkfiles.pl >MINFO +perl util\mk1mf.pl gaswin Mingw32 >ms\mingw32a.mak +echo Generating DLL definition files +perl util\mkdef.pl 32 libeay >ms\libeay32.def +if errorlevel 1 goto end +perl util\mkdef.pl 32 ssleay >ms\ssleay32.def +if errorlevel 1 goto end + +rem copy ms\tlhelp32.h outinc + +echo Building the libraries +mingw32-make -f ms/mingw32a.mak +if errorlevel 1 goto end + +echo Generating the DLLs and input libraries +dllwrap --dllname libeay32.dll --output-lib out/libeay32.a --def ms/libeay32.def out/libcrypto.a -lwsock32 -lgdi32 +if errorlevel 1 goto end +dllwrap --dllname libssl32.dll --output-lib out/libssl32.a --def ms/ssleay32.def out/libssl.a out/libeay32.a +if errorlevel 1 goto end + +echo Done compiling OpenSSL + +:end + diff --git a/util/mk1mf.pl b/util/mk1mf.pl index 10eb19c671..dc5416af4d 100755 --- a/util/mk1mf.pl +++ b/util/mk1mf.pl @@ -413,6 +413,8 @@ SHA1_ASM_OBJ=$sha1_asm_obj SHA1_ASM_SRC=$sha1_asm_src RMD160_ASM_OBJ=$rmd160_asm_obj RMD160_ASM_SRC=$rmd160_asm_src +CPUID_ASM_OBJ=$cpuid_asm_obj +CPUID_ASM_SRC=$cpuid_asm_src # The output directory for everything intersting OUT_D=$out_dir @@ -656,6 +658,11 @@ foreach (values %lib_nam) $lib_obj =~ s/\s(\S*\/rmd_dgst\S*)/ $1 \$(RMD160_ASM_OBJ)/; $rules.=&do_asm_rule($rmd160_asm_obj,$rmd160_asm_src); } + if (($cpuid_asm_obj ne "") && ($_ eq "CRYPTO")) + { + $lib_obj =~ s/\s(\S*\/cversion\S*)/ $1 \$(CPUID_ASM_OBJ)/; + $rules.=&do_asm_rule($cpuid_asm_obj,$cpuid_asm_src); + } $defs.=&do_defs(${_}."OBJ",$lib_obj,"\$(OBJ_D)",$obj); $lib=($slib)?" \$(SHLIB_CFLAGS)".$shlib_ex_cflags{$_}:" \$(LIB_CFLAGS)"; $rules.=&do_compile_rule("\$(OBJ_D)",$lib_obj{$_},$lib); @@ -838,6 +845,7 @@ sub do_defs elsif ($_ =~ /MD5_ASM/) { $t="$_ "; } elsif ($_ =~ /SHA1_ASM/){ $t="$_ "; } elsif ($_ =~ /RMD160_ASM/){ $t="$_ "; } + elsif ($_ =~ /CPUID_ASM/){ $t="$_ "; } else { $t="$location${o}$_$pf "; } $Vars{$var}.="$t "; diff --git a/util/pl/Mingw32.pl b/util/pl/Mingw32.pl index b76b7afd27..8f0483fb93 100644 --- a/util/pl/Mingw32.pl +++ b/util/pl/Mingw32.pl @@ -19,7 +19,7 @@ $cc='gcc'; if ($debug) { $cflags="-DL_ENDIAN -DDSO_WIN32 -g2 -ggdb"; } else - { $cflags="-DL_ENDIAN -DDSO_WIN32 -fomit-frame-pointer -O3 -mcpu=i486 -Wall"; } + { $cflags="-DL_ENDIAN -DDSO_WIN32 -fomit-frame-pointer -O3 -march=i486 -Wall"; } if ($gaswin and !$no_asm) { @@ -43,6 +43,8 @@ if ($gaswin and !$no_asm) $rmd160_asm_src='crypto/ripemd/asm/rm-win32.s'; $sha1_asm_obj='$(OBJ_D)\s1-win32.o'; $sha1_asm_src='crypto/sha/asm/s1-win32.s'; + $cpuid_asm_obj='$(OBJ_D)\cpu-win32.o'; + $cpuid_asm_src='crypto/cpu-win32.s'; $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_BN_ASM_PART_WORDS"; } |