AM_MAINTAINER_MODE
批判されており、主な反対意見は、メタファイルへの依存関係が検出されない場合、誤ったビルドにつながることだと思います。また、生成されたファイルはバージョン管理システムに属していないという議論もよくあります(私はその立場に同意します)。私は現在configure
、vcsに属していない場合、configure.ac
およびMakefile.am
tarballに属していないことを信じています。そのために、Makefile.inから特定のターゲットを削除する簡単なスクリプトを作成し、次のターゲットをトップレベルのMakefile.amに追加しました。
dist-hook:
@rm $(distdir)/configure.ac
@rm $(distdir)/aclocal.m4
@find $(distdir) -name Makefile.am -exec rm {} \;
@find $(distdir) -name Makefile.in -exec $(top_srcdir)/clean-Makefile {} \;
AM_MAINTAINER_MODE
このソリューションは、変更するメタファイルがないために発生する問題のある問題を回避します。
autoconfの最大の失敗の1つは、autoconfを使用して構築されたすべてのプロジェクトがautoconfに依存しているという誤解であり(これはautoconfの失敗ではなく、マーケティング/教育の失敗です)、この誤解は主にメタファイルを含むtarball。
質問:autotoolメタファイルを含まないtarballを作成するという望ましい目標を達成するためのより良い方法はありますか?(その目標が単に「おそらく望ましくない」か「本当に悪」であるかという問題は、このフォーラムにはあまりにも開かれています!)