Сделать условный файл

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

Разве вышеперечисленное не должно работать? в первый раз, когда у меня нет.touch, он удаляет каталог и создает.touch. в следующий раз, когда я запускаю с экстрактом, должно ли быть эхо хорошо, правильно? Я вижу, что каждый раз, когда make удаляет каталог мяу и делает все остальное.

1 ответ

Решение

Обратите внимание, что Make if-then-else должен заканчиваться endifи директивам не должно предшествовать табуляция, так как они не являются командами. (Также обратите внимание, что ваше подстановочное выражение неверно - оно ищет "TOUCHFILE", а не ".touch"):

$(TOUCHFILE): $(ARCHIVE) Makefile
ifeq ($(wildcard $(TOUCHFILE)),)
    rm -rf $NM
    touch $(TOUCHFILE)
else
    @echo "nice going";
endif
Другие вопросы по тегам