提交 7d5d27b9 编写于 作者: U Ulf Möller

Generate DLLs with Mingw32.

上级 12d7d32f
......@@ -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
......
@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
......@@ -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
......
#!/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
......
#!/usr/local/bin/perl
#
# unix.pl - the standard unix makefile stuff.
# Mingw32f.pl -- copy files; Mingw32.pl is needed to do the compiling.
#
$o='\\';
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册