GIMP プラグイン のコンパイルとインストール


今回は久々のコンパイル関連のネタだ. GIMP にプラグインを追加する方法を紹 介しよう. といっても, 標準のディストリビューションには, すでに手に負えない程たくさんのプラグインが付いてるので, あまり追加するようなものも無いのだが, それでもちょっとした手間で 気になるプラグインが追加出来るのは悪くない. たとえば, これ は, "Screen Shot" メニューを追加した GIMP 0.99.18 の様子です.

GIMPのソースを展開したディレクトリを, 以下 ~gimp とする.

  1. ~gimp/plug-ins/ でプラグインのソースを展開する.
    blackhole:~gimp/plug-ins% gunzip -c new-plugin.tar.gz | tar xv
    
    プラグイン名を new-plugin とすると, ~gimp/plug-ins/new-plugin というディレクトリが できる.

  2. ~gimp で ./configure する. すると, コンパイルしたいプラグインのための Makefile もできる(多分). ただし, gimp をインストールした時に, configure のオプションに ./configure --prefix= /usr/local/hoge とかした場合には, 忘れずに そのオプションも付ける事. でないと, ライブラリが動的にリンクされ ない.
    プラグインの配布形態によっては, new-plugin.c のみというものも多い. そんな時は, 自分でプラグイン名のディレクトリを掘って, ソースをその中に 入れる. 無論, Makefile は付いてない.

  3. この場合は他のプラグインの Makefile を下敷にして, Makefile を作る. 特殊なライブラリを必要とするものでない限りは, たとえば gz(gzip を GIMP から使うためのプラグイン)とかの Makefile を元に,
    blackhole:~gimp/plug-ins% cat gz/Makefile | sed 's/gz/new-plugin/g' > new-plugin/Makefile
    
    同様の操作を Makefile.am と Makefile.in に対しても行えば, new-plugin 用の Makefile が一丁あがり. こういう手が通用しないプラグインに関しては, たいてい Makefile の サンプルが付いているようだ.

  4. ~gimp/libgimp/ で make . 必要なライブラリを, ../../libs から参照するこ とになっているので, ここで make しとけば, Makefile の $CFLAGS とかを手で書かなくてもコンパイルできる(かも). GIMP 本体を make した直後ならば, ここらへんは全部 make されているので, このプロセスは不要だ. まあ, コンパイルした後の, ソースコードを展開しっぱなしで放っとける程 ドライブが余っている人ばかりではないだろうから, 改めてプラグインを追加す るときは, この作業は必要になる.

  5. ~gimp/plug-ins/new-plugin で make . うまくいけば, ~gimp/plug-ins/new-plugin に, 実行ファ イルが一つと, ~gimp/plug-ins/new-plugin/.libs/ というディレクトリができ, その 中にも実行ファイルが一つ出来る. これら 2つの実行ファイルの関係はいまいち 謎なのだが, ".libs/" にあるファイルの方が実体で, 上のディレクトリの実行 ファイルから呼ばれているらしい.
    だめだったら, make の返すエラーメッセージに従って, 問題を解決し てくれ. 大概は 「libhoge が無い」とか「hoge.h が無い」とかいう やつだから, Makefile の CFLAGS に -I/usr/hoge/include とか -L/user/hoge/lib とかを追加すれば, コンパイルはできるだろう.

  6. gimp をインストールしたディレクトリ, これはデフォルトでは /usr/local/ 以下だが, 以下 ~prefix とする. ~prefix/lib/gimp/0.99/plug-ins/ 以下に各 種プラグインはインストールされている.

  7. 大抵のシステムでは, ここで管理者権限を使う事になる.
    blackhole:/usr/local/lib/gimp/plug-ins/% su
    password: ********
    
    そこに, やはり ".libs/" というディ レクトリを掘る. make を実行したディレクトリの実行ファイルは, ~prefix/lib/gimp/0.99/plug-ins/ 以下に, .libs の中の実行ファイルは, ~prefix/lib/gimp/0.99/plug-ins/.libs 以下にコピーする.

  8. 自分のホームディレクトリにプラグインをインストールする事もできる. その場合は, ~/.gimp/plug-ins/ の中で, 上記と類似の操作を行う. すなわち, .libs を掘り, 2つの 実行ファイルをそれぞれ対応するディレクトリにコピーすると良い. この場合は, 管理者権限は必要無い. ただし. gimp を upgrade するたびに, .gimp を新しくつくるが, その時に間違ってファイルを失う事もあるので, どちらが良いかは簡単には決め られない.

  9. GIMP起動. プラグインは, 自分がメニューの何処に出現すべきか知っている ので, 勝手にメニューの項目が増加するであろう. 何処に出現するかは, ソースコードの中の
    #define PLUG_IN_MENU_PATH   "/Xtns/Screen Shot"
    
    という変数に書いてある. ソースコードを grep して探せ. この場合は メインウィンドウ直下, Xtn から開ける Screen Shot という名前のプラグインである. 無論, メニューに出現しないプラグインも多い. ファイル入出力などがそうだ. その場合は読み書きできるフォーマットの数が増加してたりする.

デフォルトではコンパイルされないプラグインが, たまにある. ソースのプ ラグインのディレクトリで ls した結果と, バイナリのプラグインのディレクトリで ls した結果を diff とか で比べてみると良いかも.

ここ は GIMPのプラグインを集めたサイトです. プラグインがバージョンアップしてたりもするので, たまに見に行ってみよう. ただし, たいていむちゃくちゃ混んでます. ここ に置いてあるようなプラグインであれば, たいていはこの方法 でコンパイルできるでしょう.