このページの情報は古くなっています。ここにある情報でなければならない特別な理由がなければこちらをご覧ください。MinGW Cross Compile on Ubuntu
Gentoo coLinux で MinGW クロスコンパイル >> GIMPクロスコンパイルへの茨の道 >> GIMP のコンパイル
GIMP をコンパイルし、パッケージ化を行います。
使えない機能が多数あります。
(*) Gimp 2.3.11 では使えるかも。
GIMP ソースが必要です。
ソースを解凍しカレントを移動します。
build、target ディレクトリを作成していますが、これは僕の趣味です ;-)
いくつか configure オプションを指定し実行します。
libtool を書き換えます。
前者は shared にするため。後者は ライブラリ名.dll.a の形式のライブラリを見つけられるようにするためです。--enable-shared オプションをつけても修正しなければならないのは、 configure を調べて原因を探すべきですが、現状、そこまでできてません。
../app/core/gimpdata.c を書き換えます。この行を削除します。
plug-ins/common/Makefile を書き換えます。次の行の値を削除します。
アイコン リソースをコンパイルします。
make を実行します。
1時間以上かかると思います。 make.log にエラーが記録されてなければ成功です。
インストールします。と言ってもクロス環境にインストールしても実行できないので、先に作った target ディレクトリに入れます。※ 下記「現在分かっている問題」をご覧ください。
install.log にエラーが記録されてなければ成功です。
target ディレクトリに移動します。
次のランタイムをコピーするか unzip してください。
パッケージ化します。
開発ライブラリをパッケージ化します。
自ビルド版と Simoncic もしくは他のパッケージと混在させる場合は、-g スイッチをつけてデフォルトと異なる gimprc を指定し起動してください。
Gentoo coLinux で MinGW クロスコンパイル >> GIMPクロスコンパイルへの茨の道 >> GIMP のコンパイル
GIMP をコンパイルし、パッケージ化を行います。
使えない機能が多数あります。
- GIMP Print (*)
- Python-fu
- URL(URI)
(*) Gimp 2.3.11 では使えるかも。
GIMP ソースが必要です。
GIMP - The GNU Image Manipulation Program
http://www.gimp.org/
SourceForge.net: Files
http://sourceforge.net/project/showfiles.php?group...
- gimp-2.2.10.tar.bz2
ソースを解凍しカレントを移動します。
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
- テーマを変えようとすると落ちます。
- 相性があるのか Lillqvist 氏の libgsf ランタイムで落ちる場合があります。 libgsf をコンパイルし直してください。
- ???.dll が見つからないというエラーが表示され gimp の起動に失敗します。
- libwmf と libgsf ランタイムが古い dll をリンクしようとしてエラーが表示されている可能性があります。現在手元にある、 Tor Lillqvist 氏が配布されているランタイムで発生しています。ライブラリをソースからコンパイルし、ランタイムを新しくしてください。
- wmf プラグインのコンパイルに失敗する。
-
調査中。plug-ins/common/Makefile の am__EXEEXT_13 = wmf$(EXEEXT) の値を削除するかコメントアウトしてください。- libwmf/types.h を書き換える。 freetype/freetype.h の前に #include <ft2build.h> 行を追加する。
-
- "libtool: install: error: cannot install `libgimpmodule-2.0.la' to a directory not ending in /opt/xmingw32/local/lib" というエラーが表示されインストールできない。
- configure で指定した prefix とは異なる場所にインストールを試みた場合表示されます。 la ファイルの当該箇所を書き換えるか、 rm `find ./ -name \*.la` を実行し la ファイルを削除してからインストールしてみてください。
自ビルド版と Simoncic もしくは他のパッケージと混在させる場合は、-g スイッチをつけてデフォルトと異なる gimprc を指定し起動してください。
タグ
コメントをかく