RMagick をビルドする(下準備編)

RMagick の前に ImageMagick をビルドしますが、素の ImageMagickjpegpng を扱えないので、まず主要ライブラリをビルドします。

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 のテストに失敗します