Сделать условный файл
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