autotools勉強中 MONADIRの存在チェック
autotools勉強中です。
autotoolsは入門のドキュメント(実際にはあまり役立たない)と、難解なリファレンスはあるんだけれどもかゆいところに手が届くドキュメントは意外と見つからない。
詳しい人が見たら常識かもしれませんが、勉強の過程を書いておくことには多少の意義はあるかもということでだらだらっと書いておきます。
fat_write関連のヘッダや、fat_template.imgはMONADIRのどこかにインストールされるので、./configureの時点でMONADIRの存在が必須となる。
なので少し大げさかもしれないがマクロ AM_CHECK_MONADIRを定義しよう。
これを定義してconfigure.acのなかで
AM_CHECK_MONADIR
と書いておくとMONADIRのチェックをしてくれて、チェックしてなかったらエラーにしてくれる、ってなイメージ。
さてマクロを書く場所ですが、高林さんのgonzuiを参考にしてacinclude.m4というファイルに書いてみる。
このシチュエーションでこれが、正しいお作法なのかはよく分かっていないのですが動いているから良いか。
acinclude.m4(なかったら作る)
AC_DEFUN([AM_CHECK_MONADIR], [dnl # dnl # Check env MONADIR exists? dnl # AC_MSG_CHECKING([MONADIR...]) if test "$MONADIR" != "" ; then AC_MSG_RESULT(yes $MONADIR) else AC_MSG_ERROR(Please set MONADIR) fi])
aclocal autoconf ./configure
MONADIRがあった場合
checking MONADIR...... yes /usr/local/mona
MONADIRがなかった場合
checking MONADIR...... configure: error: Please set MONADIR
と表示されます。
よく考えたらMONADIRがセットされていなかったら、/usr/local/monaにセットしてあげるのが親切な気もする。