1

拡張機能のあるものから拡張機能のないものへのルールを指定するジェネリックはありますか? (この場合、「.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」が完全に展開されていないためです。

4

1 に答える 1