gtk-doc-1.13対応

gtk-docが1.13になってからビルドできなくなるソースパッケージが増えています。基本的な対応として、ソースのトップディレクトリで

$ gtkdocize --copy

を実行すればよく、これで、ソースのトップディレクトリに gtk-doc.make が作成されます。Makefile.amでincludeしてあげると良いでしょう。しかし、パッケージによってはgtk-doc.makeのインストール先を変更している場合もあるので、既存のパッケージにgtk-doc.makeがある場合は(例えばdocsディレクトリ)そのディレクトリを指定しましょう。探しかたはfindコマンドを利用します。

$ find . -name gtk-doc.make

docsディレクトリは以下のように指定します。

$ gtkdocize --copy --docdir docs

しかし、gtkdocizeコマンドで以下のようなエラーになる場合があります。

gtkdocize: GTK_DOC_CHECK not called in configure.in

configure.inではなく、configure.acになる場合もあります。
この場合は、configure.inまたはconfigure.acに GTK_DOC_CHECK というマクロを書いてあげれば良いでしょう。

GTK_DOC_CHECK([1.13])

稀に、acinclude.m4などにGTK_DOC_CHECKを実装しているソースパッケージもあるので、その場合は、acinclude.m4の当該部分を削除しましょう。

そして、おもむろにautoreconfを実行します。

$ autoreconf -vfi

gtk-doc関係のエラーは出ないと思いますので、エラーが出る場合はそれ以外の原因を探しましょう。

ビルド後に、以下のようなエラーに遭遇する場合があります。

Use of uninitialized value $MODULE in concatenation (.) or string at /usr/bin/gtkdoc-fixxref line 171.
Use of uninitialized value $MODULE in concatenation (.) or string at /usr/bin/gtkdoc-fixxref line 171.
Can't open -sections.txt: No such file or directory at /usr/bin/gtkdoc-fixxref line 171.

この場合は、Makefile.am(または、Makefile.amからincludeされているファイル)に以下のような行があると思います。

gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)

この場合は、--module=$(DOC_MODULE) を追加しましょう。

gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)

おそらく、この方法でほとんどのパッケージでgtk-doc-1.13に対応することができると思います。

Momongaは残り7パッケージ。。。