2012-03-04 色々と更新
2012-03-05 Tcl/Tkを追加
2012-04-03 Termcap は Ruby のビルドに必要ないことが判明したので削除
いい加減に1.9系に移行するためにRubyをビルドしてみた。その作業メモ。
(しかし、どの拡張ライブラリがビルドされていないのか簡単に確認する方法はないのだろうか。)
変数
OpenSSL
展開に使用するtarはMSYSに入っている物にしなければならない。詳しくはINSTALL.W32を参照。
wget http://www.openssl.org/source/openssl-1.0.0g.tar.gz tar zxf openssl-1.0.0g.tar.gz cd openssl-1.0.0g sh ./config --prefix=%LIBS_PATH% no-shared make make test make install_sw
libiconv
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tar zxf libiconv-1.14.tar.gz cd libiconv-1.14 sh ./configure --prefix=%LIBS_PATH% --enable-static --disable-shared --disable-nls make make check make install
GDBM
GDBM 1.8.3にパッチを当ててビルド。
wget ftp://ftp.gnu.org/gnu/gdbm/gdbm-1.8.3.tar.gz wget http://sites.google.com/site/wantora/download/gdbm-1.8.3-mingw.patch --content-disposition tar zxf gdbm-1.8.3.tar.gz cd gdbm-1.8.3 patch -p1 < ../gdbm-1.8.3-mingw.patch sh ./configure --prefix=%LIBS_PATH% --enable-static --disable-shared make make install make install-compat
PDCurses
wget http://sourceforge.net/projects/pdcurses/files/pdcurses/3.4/PDCurses-3.4.tar.gz/download tar zxf PDCurses-3.4.tar.gz cd PDCurses-3.4/win32 make -f mingwin32.mak cp ../curses.h %LIBS_PATH%/include cp pdcurses.a %LIBS_PATH%/lib/libcurses.a
zlib
wget http://prdownloads.sourceforge.net/libpng/zlib-1.2.6.tar.bz2?download tar jxf zlib-1.2.6.tar.bz2 cd zlib-1.2.6 make -f win32/Makefile.gcc make -f win32/Makefile.gcc test make -f win32/Makefile.gcc install INCLUDE_PATH=%LIBS_PATH%/include LIBRARY_PATH=%LIBS_PATH%/lib BINARY_PATH=%LIBS_PATH%/bin
Readline
最新版はうちの環境*1ではなぜか動作がもっさりするので、Index of /win32のソースを使用。
wget http://jarp.does.notwork.org/win32/readline-4.3-2-src.zip unzip readline-4.3-2-src.zip cd readline-4.3-2/win32 make DLL=0 CC=gcc make DLL=0 install prefix=%LIBS_PATH% mv %LIBS_PATH%/lib/libhistory-static.a %LIBS_PATH%/lib/libhistory.a mv %LIBS_PATH%/lib/libreadline-static.a %LIBS_PATH%/lib/libreadline.a
LibYAML
wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz tar zxf yaml-0.1.4.tar.gz cd yaml-0.1.4 sh ./configure --prefix=%LIBS_PATH% --enable-static --disable-shared CFLAGS=-DYAML_DECLARE_STATIC make make check make install
libffi
wget ftp://sourceware.org/pub/libffi/libffi-3.0.10.tar.gz tar zxf libffi-3.0.10.tar.gz cd libffi-3.0.10 sh ./configure --prefix=%LIBS_PATH% --enable-static --disable-shared make make check make install
Tcl/Tk
静的リンクだとうまく動かないので動的リンクにしている。
wget http://prdownloads.sourceforge.net/tcl/tcl8.5.11-src.tar.gz wget http://prdownloads.sourceforge.net/tcl/tk8.5.11-src.tar.gz tar zxf tcl8.5.11-src.tar.gz tar zxf tk8.5.11-src.tar.gz cd tcl8.5.11/win sh ./configure --prefix=%LIBS_PATH% --enable-shared --enable-threads make make test make install cd ../../tk8.5.11/win sh ./configure --prefix=%LIBS_PATH% --enable-shared --enable-threads make make test make install
Ruby 1.9
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p125.tar.bz2 tar jxf ruby-1.9.3-p125.tar.bz2 cd ruby-1.9.3-p125 sh ./configure --prefix=%RUBY19_PATH% --enable-shared --with-opt-dir=%LIBS_PATH% --with-libffi-include=%LIBS_PATH%/lib/libffi-3.0.10/include --with-tclConfig-file=%LIBS_PATH%/lib/tclConfig.sh --with-tkConfig-file=%LIBS_PATH%/lib/tkConfig.sh CFLAGS="-DYAML_DECLARE_STATIC -DREADLINE_STATIC" make make check 2>&1 | tee make-check.log make install-all cd %LIBS_PATH% cp -r lib/tcl8 lib/tcl8.5 lib/tk8.5 %RUBY19_PATH%/lib cp bin/tcl85.dll bin/tk85.dll %RUBY19_PATH%/bin
Ruby 1.8
wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p358.tar.bz2 tar jxf ruby-1.8.7-p358.tar.bz2 cd ruby-1.8.7-p358 sh ./configure --prefix=%RUBY18_PATH% --enable-shared --with-winsock2 --with-opt-dir=%LIBS_PATH% --with-tclConfig-file=%LIBS_PATH%/lib/tclConfig.sh --with-tkConfig-file=%LIBS_PATH%/lib/tkConfig.sh CFLAGS="-DREADLINE_STATIC" make make check 2>&1 | tee make-check.log make install-all cd %LIBS_PATH% cp -r lib/tcl8 lib/tcl8.5 lib/tk8.5 %RUBY18_PATH%/lib cp bin/tcl85.dll bin/tk85.dll %RUBY18_PATH%/bin