Commit 5c00879e authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

More Win32 fixes and upsdate INSTALL.W32 documentation.

parent 9becf666
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -5,6 +5,12 @@

 Changes between 0.9.1c and 0.9.2

  *) Modify ms/do_ms.bat to not generate assembly language makefiles since
     not many people have the assembler. Various Win32 compilation fixes and
     update to the INSTALL.W32 file with (hopefully) more accurate Win32
     build instructions.
     [Steve Henson]

  *) Modify configure script 'Configure' to automatically create crypto/date.h
     file under Win32 and also build pem.h from pem.org. New script
     util/mkfiles.pl to create the MINFO file on environments that can't do a
+82 −0
Original line number Diff line number Diff line
Building OpenSSL under Win32.

Heres a few comments about building OpenSSL in Windows environments. Most of
this is tested on Win32 but it may also work in Win 3.1 with some modification.
See the end of this file for Eric's original comments.

You will need perl for Win32 (which can be got from various sources) and Visual
C++. 

If you are compiling from a tarball or a CVS snapshot then the Win32 files may
well be not up to date. This may mean that some "tweaking" is required to get
it all to work. See the trouble shooting section later on for if (when?) it
goes wrong.

Firstly you should run Configure:

perl Configure VC-WIN32

Then rebuild the Win32 Makefiles and friends:

ms\do_ms

if you get errors about things not having numbers assigned then check the
troubleshooting section: you probably wont be able to compile it as it stands.

then from the VC++ environment at a prompt do:

nmake -f ms\ntdll.mak

you may get a warning about too many rules but if all is well it should all
compile and you will have some DLLs and executables in out32dll.

Troubleshooting.

Since the Win32 build is only occasionally tested it may not always compile
cleanly.

If you get an error about functions not having numbers assigned when you
run ms\do_ms then this means the Win32 ordinal files are not up to date. You
can do:

perl util\mkdef.pl crypto ssl update

then ms\do_ms should not give a warning any more. However the numbers that get
assigned by this technique may not match those that eventually get assigned
in the CVS tree: so you anything linked against this version of the library
may need to be recompiled.

If you get errors about unresolved externals then this means that either you
didn't read the note above about functions not having numbers assigned or
someone forgot to add a function to the header file.

In this latter case check out the header file to see if the function is defined
in the header file: it should be defined twice: once with ANSI prototypes and
once without. If its missing from the non ASNI section then add an entry for
it: check that ms\do_ms now reports missing numbers and update the numbers as
above.

If you get warnings in the code then the compilation will halt.

The default Makefile for Win32 halts whenever any warnings occur. Since VC++
has its own ideas about warnings which don't always match up to other
environments this can happen. The best fix is to edit the file with the warning
in and fix it. Alternatively you can turn off the halt on warnings by editing
the CFLAG line in the Makefile and deleting the /WX option.

Finally you might get compilation errors. Again you will have to fix these or
report them.

Tweaks.

There are various changes you can make to the Win32 compile environment. If you
have the MASM assembler 'ml' then you can try the assembly language code. To
do this remove the 'no-asm' part from do_ms.bat.

You can also build a static version of the library using the Makefile ms\nt.mak

--------------------------------------------------------------------------------
The orignal Windows build instructions from SSLeay follow. Note: some of this
may be out of date and no longer applicable
--------------------------------------------------------------------------------

The Microsoft World.

The good news, to build SSLeay for the Microsft World
+1 −2
Original line number Diff line number Diff line
@@ -633,8 +633,7 @@ char **argv;
		count*=2;
		Time_F(START);
		for (i=count; i; i--)
			des_ecb_encrypt((C_Block *)buf,(C_Block *)buf,
				&(sch[0]),DES_ENCRYPT);
			des_ecb_encrypt(buf,buf, &(sch[0]),DES_ENCRYPT);
		d=Time_F(STOP);
		} while (d <3);
	c[D_MD2][0]=count/10;
+1 −0
Original line number Diff line number Diff line
@@ -271,6 +271,7 @@ void des_encrypt2();
void des_encrypt3();
void des_decrypt3();
void des_ede3_cbc_encrypt();
void des_ede3_cbcm_encrypt();
int des_enc_read();
int des_enc_write();
char *des_fcrypt();
+1 −1
Original line number Diff line number Diff line
@@ -204,7 +204,7 @@ int num;
		MD_Final(md,&m);
		md_count[1]++;

		buf+=j;
		buf=(char *)buf + j;

		for (k=0; k<j; k++)
			{
Loading