ファイルが存在する場合は、ビルドするターゲットを追加します。ファイルが存在しない場合は、ターゲットをスキップする必要があります。ターゲットのリストを動的に生成
例:
FILENAME = f
TARGETS := normal
ifneq($(shell stat test_$(FILENAME).c), "")
TARGETS += test
endif
all: $(TARGETS)
normal:
@echo normal
test:
@echo test
私は$(shell stat ...)
一部でも働くわからないんだけど、大きな問題は、現在のフォルダ内のファイルtest_f.c
とmake
が与えられるということです。
Makefile:4: *** multiple target patterns. Stop.
の削除しますifneq ... endif
ブロックはターゲットをnormal
にします。 test_f.c
が存在する場合、ターゲットを実行するにはどうすればよいですか?test
でターゲットを反復処理することができます。 'ifneq($(shell stat test _ $(FILENAME).c)、)'(引用符は文字通り一致している)でなければなりません。 –
@AndreaBiondoああ、うわー... – cat