パターン依存変数の依存関係を使用してGNUmakeパターンルールを定義したいと思います。私が欲しいのはこのようなものです:
%.exe : $(%_EXE_SOURCES) $(%_EXE_RESOURCES)
$(CSC_V)$(CSC) $(CSCFLAGS) $($*_EXE_CSCFLAGS) -target:exe \
-out:$@ $($*_EXE_SOURCES) $($*_EXE_RESOURCES)
そして後で次のようなものを定義する
FOO_EXE_SOURCES = src/Foo.cs
all: Foo.exe
提示されたルールは構築するために機能します。ルールの本体では、$($*_EXE_SOURCES)
変数はに展開され$(FOO_EXE_SOURCES)
、はに展開されsrc/Foo.cs
ます。ただし、依存関係は適切に拡張されません。src / Foo.csを変更しても、Foo.exeは再構築されません。
これは実際にはmakeで実行できないと思いますが、おそらく誰かが同じようなmakeフラグメントを持っていますか?