2016/08/27

Windows版curlをビルドしてみた

Windows版curlをビルドしてみました。
ほとんど参考にしたサイトで行っていることそのままです。

TweetVimで使用するためです。

相変わらずやっていることはよく分かっていませんが、とりあえず動いています。


(1) Visual Studio Community 2015のダウンロードとインストール
https://www.visualstudio.com/ から取得しインストールしました。


(2) Microsoft Foundation Classes for C++をインストール
http://www.cppdrive.jp/vc/install/index3.html を参考にインストールしました。


以下では、コマンドの実行は「VS2015 x64 Naive Tools コマンドプロンプト」で行っています。




(3) zlib-1.2.8 のビルド
http://www.limber.jp/2011/08/25/889 及び http://qiita.com/bamchoh/items/86630f732a6e728c29df を参考にしました。

C:\Users\hanaguro\Documents\work\zlib-1.2.8 に解凍しました。

win32\Makefile.msc の下記の場所を修正しました。

29行目、-MDを-MTに変更しました。
CFLAGS  = -nologo -MT -W3 -O2 -Oy- -Zi -Fd"zlib" $(LOC)

32行目、-machine:x64を追加しました。
LDFLAGS = -nologo -machine:x64 -debug -incremental:no -opt:ref

下記のコマンドでビルドしました。
> nmake -f win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -I." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj"

(4) openssl-1.0.2g のビルド
http://www.limber.jp/2011/08/23/820 を参考にしました。

C:\Users\hanaguro\Documents\work\openssl-1.0.2g に解凍しました。

次のコマンドを実行します。
> perl Configure VC-WIN64A --prefix=C:\Users\hanaguro\Documents\Apps\openssl
> ms\do_win64a
ms\ntdll.mak の下記の場所を修正しました。

21行目、/MDを/MTに変更
CFLAG= /MT /Ox -DOPENSSL_THREADS  -DDSO_WIN32 -W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DOPENSSL_USE_APPLINK -I. -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_SSL2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAKE -DOPENSSL_NO_WEAK_SSL_CIPHERS -DOPENSSL_NO_STATIC_ENGINE    

下記のコマンドでビルドしました。
> nmake -f ms\ntdll.mak
out32dllフォルダをout32にリネームしました。


(5) curl-7.50.1 のビルド
http://www.limber.jp/2011/08/29/898 を参考にしました。

環境変数ZLIB_PATHとOPENSSL_PATHを設定しました。
> set ZLIB_PATH=C:\Users\hanaguro\Documents\work\zlib-1.2.8

> set OPENSSL_PATH=C:\Users\hanaguro\Documents\work\openssl-1.0.2g
下記のコマンドでビルドしました。
> nmake vc-x64-ssl-zlib VC=vc14 RTLIBCFG=static

以上で終了です。
curl-7.50.1\src\curl.exe が作成されます。

実行するにはopenssl-1.0.2g\out32 にあるlibeay32.dllとssleay32.dllが必要ですので、curl.exeと同じフォルダに入れてください。
>curl --version
curl 7.50.1 (x86_64-pc-win32) libcurl/7.50.1 OpenSSL/1.0.2g zlib/1.2.8
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS Largefile NTLM SSL libz

0 件のコメント: