doygenでmanpageを自動生成
コマンド類のドキュメントはdocbook+xsltで作成していたのですが、いまひとつ面倒なのでdoxygenメインに切り替えました。マシンの再セットアップ後はインストールすらしていなかったので改めて最新版をゲット。以前はビルドで苦労したのですがfixされているようです。manpageには関係ありませんが、htmlドキュメント作成もあり得るのでgraphvizもインストールしています。
doxygenの使い方は簡単で設定ファイルを作成し、コマンドを実行するだけ。デフォルト設定ファイル自体もdoxygenコマンドで作成できるので特に難しいことはありません。
doxygen -gこれでまず、設定ファイルを作成します。ファイル名を指定しなければカレントにDoxyfileファイルが作成されますので必要な箇所を適時修正します。manpageを作成するだけなら下の設定くらいでOK。
- PROJECT_NAME
- プロジェクト名称
- OUTPUT_LANGUAGE
- 出力する言語。もちろん日本語
- INPUT
- ソースファイルのパス
- FILE_PATERNS
- 対象とするファイルの拡張子フィルター
- OUTPUT_DIRECTORY
- 出力ファイルのディレクトリ
- GENERATE_MAN
- manページを出力する
- MAN_OUTPUT
- manpageの出力先
- MAN_EXTENSION
- man pageのロケーション拡張子
設定ファイルはプロジェクト毎に作成してもいいのですが毎回作成するのも面倒なので、置換用プレースフォルダを置いて適当なところに保存し、必要なときは各パラメータを置換して使用します。XCodeのビルドフェーズ([追加]-[新規ビルドフェーズ]-[新規スクリプトを実行])に以下のようなスクリプトを仕込めば自動でmanpageを作成することができます。DOXYGEN とDOXYFILE_PATH はXcodeでユーザ定義環境変数として設定しておきます。
if ! [ -d $SOURCE_ROOT/doc/share/man/ ] ; then
mkdir -p $SOURCE_ROOT/doc/share/man/
fi
sed -e s%##_PROJECT_NAME_##%$PRODUCT_NAME%g \
-e s%##_OUTPUT_DIRECTORY_##%$SOURCE_ROOT/doc/share/man/%g \
-e s%##_INPUT_##%$SOURCE_ROOT%g < $DOXYFILE_PATH/Doxyfile > $SOURCE_ROOT/doxy.conf
$DOXYGEN $SOURCE_ROOT/doxy.conf
autoconf+automake+docbook+xsltよりは楽ちん。もちろん、HTMLドキュメントも同様な手順で自動生成することができます。








Comments