ソースを解凍しカレントを移動します。
tar -jxf gimp-2.2.10.tar.bz2
cd gimp-2.2.10
mkdir build
mkdir target
cd build
build、target ディレクトリを作成していますが、これは僕の趣味です ;-)
いくつか configure オプションを指定し実行します。
${XMINGW}/cross-ppconfigure --prefix=`pwd`/../target --enable-shared --disable-static --disable-print --disable-python --disable-largefile --without-x --without-gtk-doc CFLAGS="-L${XLOCAL}/lib -DXPM_NO_X"
- --prefix=`pwd`/../target
- 下記「現在分かっている問題」をご覧ください。
- --disable-print
- 印刷機能を無効にする。コンパイルできないので。開発版 Gimp 2.3.11 では Gtk+ の機能を利用しているためコンパイル可能。
- --disable-python
- Python-fu を作成しないオプションです。
- --disable-largefile
- 4G以上のファイルをサポートしないオプションです。
- CFLAGS
- クロス環境対策です。
libtool を書き換えます。
- allow_undefined_flag の値を supported にする。
- always_export_symbols の値を yes にする。
前者は shared にするため。後者は ライブラリ名.dll.a の形式のライブラリを見つけられるようにするためです。--enable-shared オプションをつけても修正しなければならないのは、 configure を調べて原因を探すべきですが、現状、そこまでできてません。
../app/core/gimpdata.c を書き換えます。この行を削除します。
#error GIMP 2.2 for Win32 must be compiled against GLib 2.4
plug-ins/common/Makefile を書き換えます。次の行の値を削除します。
am__EXEEXT_3=mail
am__EXEEXT_10=url
アイコン リソースをコンパイルします。
${XMINGW}/cross mingw32-windres -I ../app -i ../app/gimp.rc -o gimp.rc.o
make を実行します。
${XMINGW}/cross make CFLAGS="-O2 -march=pentiumpro -I${XLOCAL}/include/freetype2" mwindows="-mwindows `pwd`/gimp.rc.o" LDFLAGS="-s -lwsock32" >make.log 2>&1
- -I${XLOCAL}/include/freetype2
- freetype/freetype.h が見つからないというエラーが出るため。
- mwindows=-mwindows
- コンソールが開かないように Windows アプリとしてコンパイルする。
- -lwsock32
- _select@20 が未解決というエラーが出るため。だったと思う。
1時間以上かかると思います。 make.log にエラーが記録されてなければ成功です。
インストールします。と言ってもクロス環境にインストールしても実行できないので、先に作った target ディレクトリに入れます。※ 下記「現在分かっている問題」をご覧ください。
${XMINGW}/cross make install >install.log 2>&1
install.log にエラーが記録されてなければ成功です。
target ディレクトリに移動します。
cd ../target
次のランタイムをコピーするか unzip してください。
libXpm-noX4.dll
libart_lgpl_2-2.dll
libcroco-0.6-3.dll
libexif-12.dll
libgsf-1-1.dll
liblcms-1.dll
libmng.1.dll (*)
libpopt-0.dll
librsvg-2-2.dll
libwmf-0-2-7.dll
libwmflite-0-2-7.dll
libxml2-2.dll
パッケージ化します。
tar -jcf gimp-2.2.10-bin.tar.bz2 bin/*.exe bin/*.dll etc `find lib/gimp -xtype f -not -iname \*.a -and -not -iname \*.la` lib/locale share/gimp
開発ライブラリをパッケージ化します。
tar -jcf gimp-dev-2.2.10.tar.bz2 bin/gimptool-2.0 include `find lib -xtype f -iname \*.a` lib/pkgconfig share/aclocal