GNU Autotoolsでmake distで作成されるtar.gzファイルに中身が足りない
Autotool(automake)で、make dist
で生成される~~~.tar.gz
ファイルにどのようなファイルが含まれるかは、依存関係を自動的に察してくれるようになっているが、必要なものが含まれていない場合がたまにある。
例えばbin
サブディレクトリにシェルスクリプトファイルを置いて、Makefile.am
に
bin/Makefile.am
bin_SCRIPTS = a.sh b.sh c.sh
と記述されている場合には、これらのファイルには生成されるアーカイブファイルに含めない挙動のようである。たとえば、'configure.ac'のAC_CONFIG_FILES
に含まれている場合(./configure
で、a.sh.in
からa.sh
が生成されるような場合)には、生成元の~~.in
はアーカイブに含める挙動になっているので問題にならないが、そうでない場合には問題になる。
解決策
make変数のEXTRA_DIST
定義し、そこにも追加する。
Makefile.am
bin_SCRIPTS = a.sh b.sh c.sh
EXTRA_DIST = a.sh b.sh c.sh