拡張機能のあるものから拡張機能のないものへのルールを指定するジェネリックはありますか? (この場合、「.in」から「」)?
automake を使用しているプロジェクトがあります。インストールする前に置換が必要な設定ファイル テンプレートがいくつかあります。たとえば、「foo.ini」を作成するために使用したい「foo.ini.in」ファイルがあります。これらのいくつかは、コードベース全体に散らばっています。ただし、それらを機能させるには、それぞれに対してカスタム Makefile ルールを作成する必要があります。より良い方法はありますか?私は現在 Makefile.am でこれを行っています:
bazdir=$(libdir)/@PACKAGE_NAME@/baz
EXTRA_DIST = foo.ini.in bar.ini.in
CLEANFILES = foo.ini bar.ini
foo.ini: foo.ini.in
sed -e 's|@LIBDIR@|$(bazdir)|g' $< > $@
bar.ini: bar.ini.in
sed -e 's|@LIBDIR@|$(bazdir)|g' $< > $@
これは問題なく機能しますが、すべてのファイルに対してルールを複製する必要があります。「ini.in」ファイルを「ini」ファイルに置き換えるルールを 1 つ書きたいと思います。私はもう試した:
%.ini.in: %.ini
sed ....
しかし autoconf は、% パターン置換は移植性のない gnumake 主義であると文句を言います。それも好きじゃない
.ini.in.ini:
sed .....
.. 私はそれを解析することさえできないので、私は本当にそれが好きではないことを責めることはできません.
これを行う方法はありますか?
注: AC_CONFIG_FILES を使用してこの置換を行うことはできません。その場合、「bazdir」が完全に展開されていないためです。