From: Ulf Möller Date: Fri, 7 May 1999 22:55:27 +0000 (+0000) Subject: Generate DLLs with Mingw32. X-Git-Tag: OpenSSL_0_9_3beta1~135 X-Git-Url: https://git.openssl.org/?p=openssl.git;a=commitdiff_plain;h=7d5d27b9a3edf37e6752a961b0da969b6813fa75;hp=12d7d32f24a3fb1ea804cfeebdbbcb91308150bd Generate DLLs with Mingw32. --- diff --git a/INSTALL.W32 b/INSTALL.W32 index 80ea905049..3da0cb4477 100644 --- a/INSTALL.W32 +++ b/INSTALL.W32 @@ -72,44 +72,31 @@ To build OpenSSL, you need the Mingw32 package and GNU make. - Compiler installation: + * Compiler installation: - Mingw32 is available from . GNU make is at - . Install both of them in C:\egcs-1.1.2 and run - C:\egcs-1.1.2\mingw32.bat to set the PATH. + Mingw32 is available from . GNU make is at + . Install both of them in C:\egcs-1.1.2 and run + C:\egcs-1.1.2\mingw32.bat to set the PATH. - * Configure OpenSSL: + * Compile OpenSSL: - > perl Configure Mingw32 - > perl util\mkfiles.pl >MINFO - > perl util\mk1mf.pl Mingw32 >ms\mingw32.mak + Run ms\mw.bat - * This step can be skipped if you have the GNU file utitilities (cp, rm, ...) - installed: + This will create the library and binaries in out. - > perl util\mk1mf.pl Mingw32-files >ms\mingw32f.mak - > make -f ms/mingw32f.mak + libcrypto.a and libssl.a are the static libraries. To use the DLLs, + link with libeay32.a and libssl32.a instead. - This will end with an error message. If you don't like that, install - the file utilities. :) + See troubleshooting if you get error messages about functions not having + a number assigned. - * Compile the library: - > make -f ms/mingw32.mak - - You can now try the tests: + * You can now try the tests: > cd out > ..\ms\test - * Build the OpenSSL DLLs: - - > perl util\mkdef.pl 32 libeay > ms\libeay32.def - > perl util\mkdef.pl 32 ssleay > ms\ssleay32.def - - [to be done] - Troubleshooting --------------- @@ -151,9 +138,6 @@ program will almost certainly crash: see the original SSLeay description below for more details. - Tweaks - ------ - -------------------------------------------------------------------------------- The orignal Windows build instructions from SSLeay follow. Note: some of this may be out of date and no longer applicable diff --git a/ms/mw.bat b/ms/mw.bat new file mode 100644 index 0000000000..1f4372c81a --- /dev/null +++ b/ms/mw.bat @@ -0,0 +1,34 @@ +@rem OpenSSL with Mingw32 +@rem -------------------- + +perl Configure Mingw32 +if errorlevel 1 goto end + +@rem Makefile +perl util\mkfiles.pl >MINFO +perl util\mk1mf.pl Mingw32 >ms\mingw32.mak +perl util\mk1mf.pl Mingw32-files >ms\mingw32f.mak +@rem DLL defintion 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 Create files -- this can be skipped if using the GNU file utilities +make -f ms/mingw32f.mak +echo You can ignore the error messages above + +@rem Build the libraries +make -f ms/mingw32.mak +if errorlevel 1 goto end + +@rem Generate 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/libssl32.def out/libssl.a out/libeay32.a +if errorlevel 1 goto end + +echo Done compiling OpenSSL + +:end + diff --git a/util/mkdef.pl b/util/mkdef.pl index 230644130b..d3263b6408 100755 --- a/util/mkdef.pl +++ b/util/mkdef.pl @@ -109,13 +109,13 @@ if($do_crypto == 1) { } } else { - - &print_def_file(*STDOUT,"SSLEAY",*ssl_list,@ssl_func) + my $err = 0; + $err += &print_def_file(*STDOUT,"SSLEAY",*ssl_list,@ssl_func) if $do_ssl == 1; - &print_def_file(*STDOUT,"LIBEAY",*crypto_list,@crypto_func) + $err += &print_def_file(*STDOUT,"LIBEAY",*crypto_list,@crypto_func) if $do_crypto == 1; - + exit($err); } @@ -290,6 +290,7 @@ sub print_def_file { (*OUT,my $name,*nums,@functions)=@_; my $n =1; + my $nodef=0; if ($W32) { $name.="32"; } @@ -329,14 +330,17 @@ EOF foreach $func (@functions) { if (!defined($nums{$func})) { - printf STDERR "$func does not have a number assigned\n" - if(!$do_update); + if(!$do_update) { + printf STDERR "$func does not have a number assigned\n"; + $nodef = 1; + } } else { $n=$nums{$func}; printf OUT " %s%-40s@%d\n",($W32)?"":"_",$func,$n; } } printf OUT "\n"; + return ($nodef); } sub load_numbers diff --git a/util/pl/Mingw32.pl b/util/pl/Mingw32.pl index f99b015aba..a47a961c27 100644 --- a/util/pl/Mingw32.pl +++ b/util/pl/Mingw32.pl @@ -1,12 +1,11 @@ #!/usr/local/bin/perl # -# unix.pl - the standard unix makefile stuff. +# Mingw32.pl -- Mingw32 with GNU cp (Mingw32f.pl uses DOS tools) # -# Need the Cygwin32 file utilities $o='/'; $cp='cp'; -$rm='rm'; +$rm='del'; # use 'rm -f' if using GNU file utilities $mkdir='gmkdir'; # gcc wouldn't accept backslashes in paths diff --git a/util/pl/Mingw32f.pl b/util/pl/Mingw32f.pl index d523d70153..8d8ad96f91 100644 --- a/util/pl/Mingw32f.pl +++ b/util/pl/Mingw32f.pl @@ -1,6 +1,6 @@ #!/usr/local/bin/perl # -# unix.pl - the standard unix makefile stuff. +# Mingw32f.pl -- copy files; Mingw32.pl is needed to do the compiling. # $o='\\';