序
あえて茨の道を行きたい人向けです。
Ruby
Rubyをソースコードからビルドする場合、特にtarballからではなくリポジトリから取得した場合にはbisonやsed、rubyといったUnixツールが必要です。個別に調達すると大変なので、たとえVisual C++でビルドするのだとしても、RubyInstaller 及びdevkitを取得すると一通り揃うので大変楽です。
なお、CRubyは現在Visual C++ 2015 (14) には対応していません。動くブランチはありますが、差分を見ればわかるとおり、人様に使って頂けるような物にはなり得ません。
環境変数
ビルド用の環境変数。なお、VS2013 x64 Native Tools コマンド プロンプトなどを用いてコンパイラ等の環境変数はあらかじめ設定しているものとします。
set PATH=%PATH%;C:\Ruby22-x64\bin;C:\Program Files (x86)\Git\bin
set TERM=xterm
OpenSSL
後述のLibreSSLでもいけます。
まずOpenSSL Downloadsから1.0.2dなどを取ってきます。devkitの付録のperlを使う場合、msysなためか外から来るパスが\になっているせいで、文字列に埋め込んだ際におかしくなるので以下の修正を当てます。(ActivePerlのperlだったら不要かもしれない)
--- ms\uplink-x86_64.pl.orig 2015-11-21 14:24:17 +0900
+++ ms\uplink-x86_64.pl 2015-11-21 14:25:02 +0900
@@ -1,7 +1,7 @@
#!/usr/bin/env perl
$output=shift;
-$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
+$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=quotemeta $1;
open OUT,"| \"$^X\" ${dir}../crypto/perlasm/x86_64-xlate.pl $output";
*STDOUT=*OUT;
push(@INC,"${dir}.");
あとは以下の通りにビルドします。
perl Configure VC-WIN64A no-asm --prefix=/Users/naruse/local/ruby
ms\do_win64a
nmake -f ms\ntdll.mak
なお、no-asmをつけないと、少なくともさっきのパス変換の修正が大量に必要になります。
目当てのバイナリはout32dll\libeay32.dllとout32dll\ssleay32.dllです。
これをrubyをビルドするフォルダと、インストール先のbinフォルダにコピーします。
LibreSSL
OpenSSLを用意した人は必要ありません。
LibreSSL Downloadに行き、libressl-2.2.4-windows.zipなどをダウンロードして解凍します。x64フォルダに入り、libcrypto-35.libとlibssl-35.libを、それぞれcrypto.libとssl.libにリネームします。また、libcrypto-35.dllとlibssl-35.dllをrubyをビルドするフォルダと、インストール先のbinフォルダにコピーします。
zlib
http://zlib.net/zlib128.zip をダウンロードし、解凍して、nmake -f win32/Makefile.msc
してできたzlib1.dllをrubyをビルドするフォルダと、インストール先のbinフォルダにコピー。
Ruby
以下の通りでビルド・インストールできます。(パスは適当に読み替えてください)
win32\configure.bat --disable-install-doc --with-openssl-include=/Users/naruse/local/libressl-2.2.4-windows/include --with-openssl-lib=/Users/naruse/local/libressl-2.2.4-windows/x64 --with-zlib-include=/Users/naruse/local/zlib-1.2.8 --with-zlib-lib=/Users/naruse/local/zlib-1.2.8
nmake install
追記
Visual C++ではなくmingwを使いたいときはGit for Windows SDKの話を読みましょう