RMagick をビルドする(下準備編)
RMagick の前に ImageMagick をビルドしますが、素の ImageMagick はjpegやpng を扱えないので、まず主要ライブラリをビルドします。
libpng, jpeg6b, lcms, libexif, freetype, GhostScriptFont の tarball を落として展開します。
パスに空白を含むディレクトリだと、configure や make で失敗することがあるので、マイドキュメントの下に展開してはダメです。(MSYS の ~ はOK)
各ライブラリのビルドの基本は、configure 〜 make 〜 make check 〜 make install です。
今回開発キットということで Msys じゃなくて MinGW の方にインストールしています。
で、MinGW で共有ライブラリをビルドすると警告でまくるので、基本的に --disable-shared をつけています。
枠内は MSYS の bash コンソールだと思ってください。$ で始まる行がコマンド入力です。
configure や make のメッセージは省略していますが、エラーメッセージを一部残しています。
それから「/c/」はDOSのいわゆる「C:\」の MinGW 的表現。
libpng
libpng-1.2.39
PNGライブラリ
http://www.libpng.org/pub/png/libpng.html
$ ./configure --prefix=/c/MinGW --disable-shared $ make $ make check $ make install
lcms
lcms-1.18a
カラーマネジメントエンジンLittle CMS
http://www.littlecms.com/
$ ./configure --prefix=/c/MinGW --disable-shared $ make $ make check $ make install
(9/4 configure オプションに --disable-shared 追加。これで dll のいらないスタティックリンクな RMagick gem になります。……そもそもなんで抜けてたんだろ)
freetype
freetype-2.3.9
フォントエンジン FreeType 2
http://freetype.sourceforge.net/index2.html
make check はありません。
$ ./configure --prefix=/c/MinGW --disable-shared $ make $ make install
libexif
libexif-0.6.17
C EXIF ライブラリ
http://libexif.sourceforge.net/
make check に失敗します。使えないかも。
$ ./configure --prefix=/c/MinGW --disable-shared $ make $ make check (略) Makefile and binary disagree on localedir. Bad. - Makefile says `/c/MinGW/share/locale'. - binary says `c:/MinGW/share/locale'. Error: Could not determine binary localedir. FAIL: check-localedir.sh ==================================================== 1 of 1 tests failed Please report to libexif-devel@lists.sourceforge.net ==================================================== $ make install
jpeg6b
JPEG ライブラリ
jpegsrc.v6b *1
http://quox.org/install/graphics/jpeg-6b.html
これだけ --enable-shared 必要です。あと make install-lib なのに注意。
$ ./configure --prefix=/c/MinGW --enable-static --enable-shared $ make $ make check $ make install-lib
GhostScript fonts
GhostScript 用のフォント(いらないかも)
ghostscript-fonts-std-8.11
http://sourceforge.net/projects/gs-fonts/
これはフォントなのでコンパイルの必要はありません。手作業でディレクトリ掘ってコピーします。
つい /usr/local/share/ghostscript あたりにコピーしたくなりますが、MinGW は「Win32 native」環境なので c:/gs の下にコピーします。
でないと ImageMagick の configure が見つけてくれません。
$ mkdir /c/gs $ mv fonts /c/g
入れなかったライブラリ
jbigとtiff, wv2 の3つのライブラリも入れようと思いましたが、結局抜きました。
- jbigkit-2.0 は MinGW では改行コードの関係でテストに失敗するうえ、インストールしても ImageMagick の configure でスキップされます。
- tiff-3.9.0 は、ImageMagick のテストでエラーが出るためパス。
- wv2-0.4.0 は、コンパイルに必要な CMake を入れる手間を惜しみました。(こら)
*1:v7 だと、ImageMagick のテストに失敗します