cURLビルドメモ

ver.7.25.0をソースからビルドを行う。
WindowsSolarisMac OS Xのビルド済のものはあるのだが、一部バージョンが古かったりするので、ソースから行う。

cURLは、様々なビルド構成が選択できる。
デバッグ版、リリース版
・DLLビルド、スタティックビルド
SSLなし、あり
・zlibなし、あり
sshなし、あり
・OpenSSLにするか、SSPIにするか(Windowsのみ)

Windowsの場合、VC6.0用のプロジェクトをアップグレードして、Visual Studio 2010のIDEからビルドすることもできるが、さまざまなビルドオプションが指定でき、バッチビルドが行えるコンソールビルドを行った。

<Makefileの変更点(私の場合)>
[ Makefile ]
# modified by mizoguchi
# vc6 -> vc10
VC=vc10

[ lib\Makefile.vc10 ]
# modified by mizoguchi
# OpenSSLのライブラリ構成を見ながら、適切なインクルードパスに変更(int32 -> include)(環境依存)
CFLAGSSSL  = /DUSE_SSLEAY /I "$(OPENSSL_PATH)/include" /I "$(OPENSSL_PATH)/include/openssl"

# OpenSSLのライブラリ構成を見ながら、ライブラリのパスを適切に設定(環境依存)
SSLLIBS    = $(OPENSSL_PATH)/lib/libeay32.lib $(OPENSSL_PATH)/lib/ssleay32.lib

そして各種ライブラリのパスを指定するために、以下のようなバッチファイルを作成。
(私の場合はOpenSSLを採用しSSPIは使用しなかったが、参考のために掲載しておく)

[ build_vc10.bat ]
set ZLIB_PATH=C:\Users\mizop\git_repository\GameServer\library\zlib\Windows
set OPENSSL_PATH=C:\Users\mizop\git_repository\GameServer\library\OpenSSL
set WINDOWS_SDK_PATH="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A"

以下に、Visual Studio 2010で、全ビルドをバッチ実行する手順を記載する。

[ビルド手順]
(1)Visual Studio 2010のコマンドプロンプトを立ち上げる
(2)cURLのルートフォルダにcd
(3)上記で作成した build_vc10.bat を実行
(4)「nmake vc-all」と打つ
     ==> vcの全ビルド、つまり以下が実行される
	nmake -f Makefile.$(VC) cfg=release
	nmake -f Makefile.$(VC) cfg=release-ssl
	nmake -f Makefile.$(VC) cfg=release-zlib
	nmake -f Makefile.$(VC) cfg=release-ssl-zlib
	nmake -f Makefile.$(VC) cfg=release-ssl-dll
	nmake -f Makefile.$(VC) cfg=release-zlib-dll
	nmake -f Makefile.$(VC) cfg=release-ssl-dll-zlib-dll
	nmake -f Makefile.$(VC) cfg=release-dll
	nmake -f Makefile.$(VC) cfg=release-dll-ssl-dll
	nmake -f Makefile.$(VC) cfg=release-dll-zlib-dll
	nmake -f Makefile.$(VC) cfg=release-dll-ssl-dll-zlib-dll
	nmake -f Makefile.$(VC) cfg=debug
	nmake -f Makefile.$(VC) cfg=debug-ssl
	nmake -f Makefile.$(VC) cfg=debug-zlib
	nmake -f Makefile.$(VC) cfg=debug-ssl-zlib
	nmake -f Makefile.$(VC) cfg=debug-ssl-dll
	nmake -f Makefile.$(VC) cfg=debug-zlib-dll
	nmake -f Makefile.$(VC) cfg=debug-ssl-dll-zlib-dll
	nmake -f Makefile.$(VC) cfg=debug-dll
	nmake -f Makefile.$(VC) cfg=debug-dll-ssl-dll
	nmake -f Makefile.$(VC) cfg=debug-dll-zlib-dll
	nmake -f Makefile.$(VC) cfg=debug-dll-ssl-dll-zlib-dll

    私は実験のためにすべてをビルドしたが、もちろん自分に必要なビルドだけ行うのでもよい。

私はcURLを利用するアプリケーションがcURLのDLLを利用しているため、最終的に「debug-dll-ssl-dll」ビルドを採用した。ここでひとつ注意点だが、 ==> cURLをdllビルドした場合は、ビルドコンフィグの名前から類推できるように、OpenSSLやZlibなどもDLLビルドされていなければならない。OpenSSLなどがスタティックビルドされていると、アプリケーションがうまく立ち上がらなかった(私は数時間ハマり)。
またもし、cURLを利用するアプリケーションがスタティックビルドのライブラリを利用する場合は、#include の前にスタティックライブラリを利用する旨の CURL_STATICLIB を定義しておく必要があるかもしれない(未検証)。

ちなみに、cURLのビルドのために用意したOpenSSLライブラリは、始め自分でビルドしたものを採用していたが、最終的には「http://slproweb.com/products/Win32OpenSSL.html」にある「Win32OpenSSL-1_0_1c.exe」との相性が良かったので、これを利用させてもらってビルドを行った。

http://curl.haxx.se/