internals:windows:libs:openssl

This is an old revision of the document!


OpenSSL Windows, How to compile

Building OpenSSL 0.9.8

Requirements

Configure

Configure for Win32

cd  C:\phpbuild\libs\openssl-0.9.8h
perl Configure --openssldir=C:/phpbuild/apps_install/ VC-WIN32

Configure for Win64

cd  C:\phpbuild\libs\openssl-0.9.8h
perl Configure --openssldir=C:/phpbuild/apps_install/ VC-WIN64A

The configure will prepare the sources to compile OpenSSL for windows 32bit and install it under c:\phpbuilds\apps.

Modify the path using your configurations. Please not the unix directory separators / instead of the Windows backslash \.

Assembly languages options

PHP build default in 5.2 don't use ASM. PHP build default in 5.3 and later uses ASM.

For 0.9.8h you have to modify  the file crypto\perlasm\x86ms.pl. On the line 273 remove "$extra".

For Win64 builds, use only:

ms\do_win64a

For win32 builds only:

If you don't want to use assembly language:

ms\do_ms

If you like to use the assembly language files:

If you have MASM (aka “ml”), run:

ms\do_masm

Or if you use NASM:

ms\do_nasm

You should not get any error until now. If you see errors messages, please check the troubleshooting section in “INSTALL.W32” in the OpenSSL sources.

And for win64:

ms\do_win64a

Compiling

nmake -f ms\ntdll.mak

If you prefer to build a static library, use this command:

nmake -f ms\nt.mak

If you get the following compilation error (with other letters):

.\crypto\cversion.c(105) : warning C4129: 'p' : unrecognized character escape sequence
.\crypto\cversion.c(105) : warning C4129: 'l' : unrecognized character escape sequence

Go back to the configure phase and be sure to use only slashed and no backslashes for --openssldir (or --prefix)

Testing

The possible point of failures in the OpenSSL implementations are numerous. Thanks to their tests suite, it is possible to minimize the risk by running it after each update:

nmake -f ms\ntdll.mak test

Install

nmake -f ms\ntdll.mak install

or

nmake -f ms\nt.mak install

if you built the static library.

Copy OpenSSL 0.9.8 development files in the PHP SDK

To be done

Copy OpenSSL 0.9.8 in the PHP release Template

To be done

internals/windows/libs/openssl.1216825520.txt.gz · Last modified: 2017/09/22 13:28 (external edit)