Skip to content

Instantly share code, notes, and snippets.

@t-mat
Created October 5, 2012 02:36
Show Gist options
  • Save t-mat/3837754 to your computer and use it in GitHub Desktop.
Save t-mat/3837754 to your computer and use it in GitHub Desktop.
curl-7.27.0 を VC++2012 でビルドする

curl-7.27.0 を VC++2012 でビルドする

全工程を行うと、30~60分程度かかります

前準備 : いろいろインストール

以下が正常に実行できることを確認してください

set PATH="%USERPROFILE%\bin";%PATH%
7za
perl -v
nasm -v
curl -V

ビルド用のテンポラリディレクトリを作る

mkdir "%USERPROFILE%\curl-build"

OpenSSL 1.0.1c をダウンロード、ビルドする

ドキュメントに従ってビルドします

mkdir "%USERPROFILE%\curl-build"
cd "%USERPROFILE%\curl-build"
mkdir deps\bin
mkdir deps\include\openssl
mkdir deps\lib
curl -O -L http://www.openssl.org/source/openssl-1.0.1c.tar.gz
7za x openssl-1.0.1c.tar.gz
7za x openssl-1.0.1c.tar
cd openssl-1.0.1c
perl Configure VC-WIN32 --prefix=.
ms\do_nasm
"%VS110COMNTOOLS%\vsvars32.bat"
nmake -f ms\nt.mak
copy /y out32\*.exe ..\deps\bin
copy /y out32\*.lib ..\deps\lib
copy /y inc32\openssl\*.* ..\deps\include\openssl
cd ..
rmdir /S /Q openssl-1.0.1c
del openssl-1.0.1c.tar

zlib 1.2.7 をダウンロード、ビルドする

ドキュメントに従ってビルドします

mkdir "%USERPROFILE%\curl-build"
cd "%USERPROFILE%\curl-build"
mkdir deps\bin
mkdir deps\include
mkdir deps\lib
curl -L http://sourceforge.net/projects/libpng/files/zlib/1.2.7/zlib-1.2.7.tar.bz2/download -o zlib-1.2.7.tar.bz2
7za x zlib-1.2.7.tar.bz2
7za x zlib-1.2.7.tar
cd zlib-1.2.7
"%VS110COMNTOOLS%\vsvars32.bat"
nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="inffas32.obj match686.obj"
copy /y *.exe ..\deps\bin
copy /y *.dll ..\deps\bin
copy /y *.lib ..\deps\lib
copy /y zlib.lib ..\deps\lib\zlib_a.lib
copy /y zlib.h ..\deps\include
copy /y zconf.h ..\deps\include
cd ..
rmdir /S /Q zlib-1.2.7
del zlib-1.2.7.tar

curl 7.27.0 をダウンロード、ビルドする

ドキュメントに従ってビルドしたいところですが、何か見落としているのか、どうもうまくいかないので、テキトーに修正しつつビルドします

cd "%USERPROFILE%\curl-build"
curl -O -L http://curl.haxx.se/download/curl-7.27.0.tar.lzma
7za x curl-7.27.0.tar.lzma
7za x curl-7.27.0.tar

そのままではうまくビルドできなかったので curl-7.27.0\winbuild\MakefileBuild.vc をちょっと修正します

	!IFDEF USE_SSL
-	SSL_CFLAGS   = /DUSE_SSLEAY /I"$(DEVEL_INCLUDE)/openssl"
+	SSL_CFLAGS   = /DUSE_SSLEAY /I"$(DEVEL_INCLUDE)/openssl" /DUSE_OPENSSL
	!ENDIF

続きを実行

cd "%USERPROFILE%\curl-build\curl-7.27.0\winbuild"
"%VS110COMNTOOLS%\vsvars32.bat"
nmake Makefile.vc mode=static VC=11 WITH_SSL=static WITH_ZLIB=static ENABLE_WINSSL=no ENABLE_IDN=no ENABLE_IPV6=no GEN_PDB=no DEBUG=no

ビルドが終了したら、curl-7.27.0\builds\libcurl-release-static-ssl-static-zlib-static-sspi\ に結果 (bin, include, lib) が出力されます。 とりあえずバイナリが欲しいだけなので、テキトー (以下では %USERPROFILE%\bin) にコピーします

mkdir "%USERPROFILE%\bin"
cd "%USERPROFILE%\curl-build\curl-7.27.0builds\libcurl-release-static-ssl-static-zlib-static-sspi\bin"
copy /y curl.exe "%USERPROFILE%\bin"

後始末 : ビルドに用いた全ファイルを削除

cd "%USERPROFILE%"
rmdir /S /Q curl-build
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment