2012-05-12 9 views
0

私は、全体の事は、私が実際にbrickval_VALASOURCESが、その後.cで.valaを置き換える展開し、それが何にとして非常に良い推測を持ってhere

あるautomakeにスクリプト

brickval_SOURCES = \ 
    $(brickval_VALASOURCES:.vala=.c) \ 
    $(brickval_VALASOURCES:.vala=.h) 

に次の行を見つけましたこれまでの経験のおかげで、実際に何らかのマニュアルでこれが何をするのかを実際に読んでみたいと思います。私はautoconf、automake、shellのマニュアルを見てきましたが、何も見つかりませんでした。私もgoogleの検索を試みたが、それは良い検索用語を考えるのは難しい。

+0

あなたの推測は正しいです。 – JimR

答えて

1

GNU makeのマニュアルまたはmakeマニュアルをお試しください。 automakeプログラムはビルドマシンに何らかのmakeがインストールされるように機能を追加するだけです。

1

この機能はPOSIX準拠のmake実装で利用でき、Automakeでサポートされています。あなたはそれについてin the POSIX specs(検索subst1)を読むことができます。

+0

私はこれがAutomakeによってサポートされていることに同意しません。 Automakeはbrickval_SOURCESを調べて、配布に含めるファイルのリストを生成します。これらのファイルが含まれていない場合は、nodist_brickval_SOURCESとしてリストされ、BUILT_SOURCESに記載されている必要があります。それらが配布されているなら、*多分*この方法でbrickval_SOURCESを記述するのは大丈夫ですが、確かに面白いにおいがします。ファイルを明示的にリストするのがベストプラクティスだと思います。 –

+0

+1はPOSIX準拠に言及しており、autotoolの質問は多くの投票を得ていないようです。いくつかのタグは最も遅い答えのために+20 upvotesを得るようです! –

+0

@ウィリアム:これは、(1)Automakeがこの構文を理解していること、(2)ilは、 '* .vala'ファイルに対応する' * .c'と '* .h'ファイルを' brickval_VALASOURCES'を実行し、適切なコンパイラでコンパイルします。これはAutomakeの実際の機能であり、多くのテストケースに裏打ちされています。実装するのは簡単ではなく、運がうまくいかないものです。この構文は、拡張子だけが異なるいくつかのファイルセットをリストしたくない多くの場合に実際に便利です。 – adl

0

GNU Make Manualの6.3.1節を参照してください。

関連する問題