0
TOUCHFILE=.touch
NM = meow
.PHONY: extract
extract: $(TOUCHFILE)
$(TOUCHFILE): $(ARCHIVE) Makefile
   ifeq ($(wildcard TOUCHFILE),)
   rm -rf $NM
   touch $(TOUCHFILE)
   else
       @echo "nice going";

上記はうまくいきませんか?初めて.touchがない場合は、dirが削除され、.touchが作成されます。次回extractを使用して実行すると、正しくエコーされるはずです。makeがmeowディレクトリを削除し、残りの作業を行うたびに表示されます。

4

1 に答える 1

2

Make if-then-elseは。で終了する必要がendifあり、ディレクティブの前にTABを付けることはできません。これは、コマンドではないためです(ワイルドカード式が間違っていることにも注意してください。「。touch」ではなく「TOUCHFILE」が検索されます):

$(TOUCHFILE): $(ARCHIVE) Makefile
ifeq ($(wildcard $(TOUCHFILE)),)
    rm -rf $NM
    touch $(TOUCHFILE)
else
    @echo "nice going";
endif
于 2013-01-15T03:32:23.627 に答える