Previous: Build Directories, Up: Makefile Substitutions


4.7.4 自動的なリメイク

コンフィグレーションファイルを変更したとき自動的にコンフィグレーション情 報を更新するため,パッケージに対するトップレベルのMakefile.in に 以下のようなルールを書くことが可能でます.以下の例には, aclocal.m4やそれらが関連するるコンフィグレーションヘッダファイル のような,全てのオプションのファイルが含まれています.パッケージで使用し ないこれらのファイルに対するMakefile.inルールは削除してください.

${srcdir}/’プレフィクスはVPATHメカニズムの制限のため含ま れています.

config.h.inconfig.hのタイムスタンプは,内容が変化しない 場合には変化しないので,stamp-ファイルが必要です.この機能は不必 要な再コンパイルを避けます.パッケージの配布物にstamp-h.in を含め るべきで,そうすることでmakeconfig.h.inが最新だというこ とを考慮します.touch (see Limitations of Usual Tools)を使 用せず,代わりにechoを使用してください(dateを使用す ると不必要な差異を生じ,CVSで矛盾したりするでしょう).

     $(srcdir)/configure: configure.ac aclocal.m4
             cd $(srcdir) && autoconf
     
     # autoheader might not change config.h.in, so touch a stamp file.
     $(srcdir)/config.h.in: stamp-h.in
     $(srcdir)/stamp-h.in: configure.ac aclocal.m4
             cd $(srcdir) && autoheader
             echo timestamp > $(srcdir)/stamp-h.in
     
     config.h: stamp-h
     stamp-h: config.h.in config.status
             ./config.status
     
     Makefile: Makefile.in config.status
             ./config.status
     
     config.status: configure
             ./config.status --recheck

この行を直接Makefileにコピーするときは,インデントされた行がタブ 文字で始まるように置換する必要があるので注意してください.)

更に,‘AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h])’を使 用すべきで,そうすることでconfig.statusconfig.hが最新で あることを確かめます.AC_OUTPUTの詳細は,See Output.

依存性に関係するコンフィグレーションの例は,See config.status Invocation.