MinGWでSSLが使えるcurlをビルドするのはちょっと大変でした。以下に私が行った手順を記録しておきます。
First, build OpenSSL
まずOpenSSLをダウンロードし展開します。以下の操作はすべてMinGWのbashを想定しています。
$ wget http://www.openssl.org/source/openssl-1.0.1i.tar.gz
$ tar xzf openssl-1.0.1i.tar.gz
$ cd openssl-1.0.1i
ここでOpenSSLのConfigure
に工夫が必要です。このConfigure
にはperlが必要っぽいので、なければ入れてください。
$ ./Configure mingw shared zlib-dynamic
ポイントは./config
を使わないことと、shared
を指定することです。zlib-dynamic
はオマケですが、まぁ指定しておいて損はないでしょう、たぶん。
あとは普通にコンパイルとインストールをしましょう。
$ make && make install
インストールディレクトリは/usr/local/ssl
になります。またその下のbin
ディレクトリには2つdllがあるはずですから、それらを/usr/local/bin
にコピーしておきます。
$ cp /usr/local/ssl/bin/*.dll /usr/local/bin
Then, build curl
次にcurlをダウンロードして展開しましょう。
$ wget http://curl.haxx.se/download/curl-7.37.1.tar.bz2
$ tar xjf curl-7.37.1.tar.bz2
$ cd curl-7.37.1
curlのconfigure
にも一工夫が必要でした。
$ ./configure --with-ssl --enable-shared --disable-static
SSLを使うように--with-ssl
を指定するのは当然として、--enable-shared
と--disable-static
を指定して、DLLを利用するバージョンだけを作るようにしましょう。
あとは普通にコンパイルとインストールです。
$ make && make install
おっと最後にcurlのルート証明書をインストールしなきゃいけません。
$ wget http://curl.haxx.se/ca/cacert.pem
$ cp cacert.pem /usr/local/bin/curl-ca-bundle.crt
以上。MinGWでSSLが有効になったcurlを使えるようになりました。