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にセットしてあげるのが親切な気もする。