summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Möller <ulf@openssl.org>1999-05-07 22:55:27 +0000
committerUlf Möller <ulf@openssl.org>1999-05-07 22:55:27 +0000
commit7d5d27b9a3edf37e6752a961b0da969b6813fa75 (patch)
tree5f7a6007d694e8e45360b722118f1897484b76dd
parent12d7d32f24a3fb1ea804cfeebdbbcb91308150bd (diff)
Generate DLLs with Mingw32.
-rw-r--r--INSTALL.W3244
-rw-r--r--ms/mw.bat34
-rwxr-xr-xutil/mkdef.pl16
-rw-r--r--util/pl/Mingw32.pl5
-rw-r--r--util/pl/Mingw32f.pl2
5 files changed, 61 insertions, 40 deletions
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 <ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/
- mingw32/egcs-1.1.2/egcs-1.1.2-mingw32.zip>. GNU make is at
- <ftp://agnes.dida.physik.uni-essen.de/home/janjaap/mingw32/binaries/
- make-3.76.1.zip>. 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 <ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/
+ mingw32/egcs-1.1.2/egcs-1.1.2-mingw32.zip>. GNU make is at
+ <ftp://agnes.dida.physik.uni-essen.de/home/janjaap/mingw32/binaries/
+ make-3.76.1.zip>. 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='\\';