準備
- OpenSSL 1.0.1f のソースをダウンロードして展開
- Win32 用 nasm 2.11.02 バイナリをダウンロードして展開
- Perl は以前からインストールされていた ActivePerl 5.16.2 を使用
- nasm, Perl, VC++ にパスを通す
ここでは VS 2013 に含まれる VC++ 12 を使用した。
ビルド
OpenSSL のソースは D:\Temp\openssl-1.0.1f
に展開されており、ビルド後に D:\Libraries\openssl
にインストールすると仮定する。
-
D:\Temp\openssl-1.0.1f
に移動 -
> perl Configure VC-WIN32 --prefix=D:/Libraries/openssl
で Makefile を生成 -
> ms\do_nasm
でアセンブリソースを生成 -
> nmake -f ms\ntdll.mak install
で DLL をビルド&インストール -
> nmake -f ms\nt.mak install
でスタティックライブラリをビルド&インストール
テストを実行するならビルドターゲットを test にして > nmake -f ms\nt.mak test
などとする。最後に passed all tests と表示されれば正常。
デフォルトでは、DLL は CRT に動的リンク、スタティックライブラリは CRT に静的リンクされるようなコード生成オプションになっている。したがって、DLL の方は、原則として実行時に VC++ ランタイムが必要。
未確認だが、VC++ 11 以上でコンパイルする場合、XP でも動作するバイナリをビルドするには XP ツールセットを使った方が無難かもしれない(.mak ファイルの CFLAGS に /D_USING_V110_SDK71_
を追加)。
デバッグ版をビルドする場合は
> perl Configure debug-VC-WIN32 --prefix=D:/Libraries/openssl
のようにする。