OpenSSLは、以下の場所にあります。
http://www.openssl.org/左サイドバーのSourceから、
http://www.openssl.org/source/openssl-1.0.2.tar.gz
を、適当なディレクトリに保存します。
MSYSで、ファイルを保存したディレクトリに移動し、
$ tar xzf openssl-1.0.2.tar.gz
$ cd openssl-1.0.2
$ ./Configure mingw --prefix=/mingw
$ make
$ make install_sw
以上で終了です。
2011/05/08 追記ちなみに、Configureの後、
$ make PERLASM_SCHEME=win32n AS=nasm ASFLAGS="-f win32"
とすると、アセンブラはGNU AS(GAS)の代わりにNASMが使われます。
libcrypto.aのファイルサイズが、NASMの方がGNU ASより若干大きくなりました。
動作的には違いは無いと思います。
【補足】
Configureの先頭は大文字なのでご注意ください。
$ make install
とすると、普段あまり使用しないmanページファイル(説明書)が大量にインストールされるため、
$ make install_sw
としています。
動作確認する場合は、
$ make test
の途中で、ファイルサイズ0バイトの空のファイルをコンパイルしようとして、
undefined reference to `_WinMain@16'
というエラーでストップしてしまうので、以下のファイルをコピーしてからmake testします。
$ cp test/dummytest.c test/jpaketest.c
$ cp test/dummytest.c test/md2test.c
$ cp test/dummytest.c test/rc5test.c
2011/09/08 追記ソースコードをMSYSのtarコマンドで解凍すると、0バイトのファイルが出来てしまうことは無いようです。
Configureの前に、
$ rm test/jpaketest.c test/md2test.c test/rc5test.c
と、ファイルをあらかじめ削除しておくと、Configureした時に、
test/dummytest.c
が、削除した3つのファイルと同じ名前でコピーされます。
【更新履歴】を見る
2010/06/01 追記
最新版は、openssl-1.0.0a.tar.gz です。
openssl-1.0.0 を openssl-1.0.0a に修正しました。
パッチの変更はありません。
2010/11/21 追記
最新版は、openssl-1.0.0b.tar.gz です。
前回までのengines/e_capi.c のパッチに加えて、Configure内のCFLAGの-mno-cygwinオプションを削除するように変更しました。
openssl-1.0.0b-mingw.diff
2010/12/06 追記
最新版は、openssl-1.0.0c.tar.gz です。
パッチは「openssl-1.0.0b」となっていますが、「openssl-1.0.0c」に適用できます。
2011/02/09 追記
最新版は、openssl-1.0.0d.tar.gz です。
パッチは「openssl-1.0.0b」となっていますが、「openssl-1.0.0d」に適用できます。
2011/02/26 追記
パッチを更新しました。
-march=i486 を -march=i686 に変更しました。
openssl-1.0.0d-mingw.diff
2011/09/08 追記
最新版は、openssl-1.0.0e.tar.gz です。
2011/09/08 追記
パッチを更新しました。
不要な修正箇所を削除しました。
openssl-1.0.0e-mingw.diff
2012/01/05 追記
最新版は、openssl-1.0.0f.tar.gz です。
パッチは「openssl-1.0.0e」となっていますが、「openssl-1.0.0f」に適用できます。
2012/01/19 追記
最新版は、openssl-1.0.0g.tar.gz です。
パッチは「openssl-1.0.0e」となっていますが、「openssl-1.0.0g」に適用できます。
2012/03/14 追記
最新版は、openssl-1.0.0h.tar.gz です。
パッチは「openssl-1.0.0e」となっていますが、「openssl-1.0.0h」に適用できます。
2012/03/15 追記
最新版は、openssl-1.0.1.tar.gz です。
2012/03/15 追記
パッチを更新しました。
変更点は以前と同じです。
openssl-1.0.1-mingw.diff
2012/04/23 追記
最新版は、openssl-1.0.1a.tar.gz です。
パッチは「openssl-1.0.1」となっていますが、「openssl-1.0.1a」に適用できます。
2012/04/23 追記
mingw32環境にmingw-w64をインストールしている場合、パッチを適用するとエラーになりますので、適用しないでください。
2012/05/03 追記
最新版は、openssl-1.0.1b.tar.gz です。
パッチは「openssl-1.0.1」となっていますが、「openssl-1.0.1b」に適用できます。
2012/05/12 追記
最新版は、openssl-1.0.1c.tar.gz です。
パッチは「openssl-1.0.1」となっていますが、「openssl-1.0.1c」に適用できます。
2013/02/09 追記
最新版は、openssl-1.0.1d.tar.gz です。
パッチは「openssl-1.0.1」となっていますが、「openssl-1.0.1d」に適用できます。
2013/02/14 追記
最新版は、openssl-1.0.1e.tar.gz です。
パッチは「openssl-1.0.1」となっていますが、「openssl-1.0.1e」に適用できます。
2013/02/14 追記
最新版は、openssl-1.0.1f.tar.gz です。
パッチの記述を削除しました。
以下のパッチを適用します。
openssl-1.0.0-mingw.diff
このパッチは以下の情報を参考にしました。(蓄電さん情報)
http://fledna-tech.blogspot.com/2010/04/compile-openssl-100-with-mingw-gcc-44.html
$ patch -p1 < openssl-1.0.1-mingw.diff
その後、
2014/04/26 追記
最新版は、openssl-1.0.1g.tar.gz です。
2014/06/06 追記
最新版は、openssl-1.0.1h.tar.gz です。
2014/09/13 追記
最新版は、openssl-1.0.1i.tar.gz です。
2014/10/22 追記
最新版は、openssl-1.0.1j.tar.gz です。
2015/01/25 追記
最新版は、openssl-1.0.2.tar.gz です。
【更新履歴】を閉じる
>tar xzf openssl-1.0.0.tar.gz
このコマンドで解凍したところ、シンボリックリンクファイルの処理がうまくいってないようで、エラーを吐いて解凍に失敗しました。
Lhaplusなどのソフトで解凍すると上手くいくようです。
なお、opensslの最新SNAPSHOT(20100512)ではtarコマンドによる解凍に成功し、こちらのパッチを当てる事によりコンパイルも完走しました。
zlibのエントリへのコメントも私でした
つたない私のコメントへの返信ありがとうございました
見落としていたり、分からなくて放置していることなどもありますので、指摘していただけると本当に助かります。
実はGUIの解凍ソフトばかり使っていたので、シンボリックリンクのエラーには気が付かなかったのですが、確かにエラーになりますね。
確認したところ、以下のような違いがありました。
・tar
シンボリックリンクに失敗して、ファイルが作成されない。
Configureを実行すると必要なファイルがコピーされるため、結局は問題なし。
・解凍ソフト
シンボリックリンクされているファイルは、0バイトのファイルが作成される。
Configureを実行すると必要なファイルがコピーされるため、ライブラリのコンパイルは問題なし。
ただし、test用のファイル3つ
test/jpaketest.c
test/md2test.c
test/rc5test.c
は、0バイトのファイルが存在するためにコピーされないらしく、手動でコピーする必要がある。
ということのようです。
ご報告ありがとうございました。
$ ./Configure mingw --prefix=/mingwをやると./Configure: line 2: exec: perl: not foundと出ます
解決策を教えていただけませんか?
MinGW + MSYSの環境は整えてあります。
NASM〜opencoreまでは問題なくコンパイル&インストール出来ました
申し訳ありません。説明不足でした。
標準ではperlがインストールされていないため、別途インストールする必要があります。
以下のページを参考に、MSYS DTKをインストールしてみてください。
Installing old MSys DTK
http://ffmpeg.arrozcru.org/wiki/index.php?title=Installing_old_MSys_DTK
ありがとうございます。
ビルドは完成しますが、気持ち悪くて。
openssl_warning.txt
http://goo.gl/EgvMl
私も以前から気になってはいましたが、warningの元がアセンブリのソースなので、どうしようもないと思います。
X5-452さんが、warningを消す方法を見つけたら、ご報告いただけると助かります。
よろしくお願いします。
http://www.libressl.org/
情報ありがとうございます。
OpenSSLよりLibreSSLの方が良さそうな感じですね。
私としては、CyaSSLがGPLで、サイズが小さいので、置き換えられないか試しているところです。
http://www.yassl.com/jp/Home.html