Как выполнить make rule, основанное на изменении / обновлении в необходимой временной метке? - PullRequest
0 голосов
/ 15 января 2019

Я перечислил несколько файлов в переменную BUILD, затем в моем правиле make я дал эту переменную в качестве предварительного условия.Я выполнил это правило make впервые, когда он выполнил это правило.я снова выполнил тот же файл make без изменения каких-либо предварительных условий для этого правила, при втором выполнении оно не должно выполнять это правило и должно отобразить сообщение «gmake: ничего не нужно сделать для правила».Это правило выполняется постоянно, хотя в предварительных условиях нет изменений.

make file:

BUILD = \  
D:/Build/PeGen/\*.exe \  
D:/Build/PWrGen/\*.dll \

All:c1

c1: $(BUILD)
    cd D:/Mo/Ap/Po/Co/Ts/Build && \  
    "$(MAKE)" -s -f Build2.mk

1 Ответ

0 голосов
/ 15 января 2019

Правило для c1 target, вероятно, не создает этот целевой файл. Следовательно, make необходимо построить эту цель.

Одно из возможных исправлений:

c1: $(BUILD)
    "$(MAKE)" -s -C D:/Mo/Ap/Po/Co/Ts/Build -f Build2.mk
    touch $@

Цель All обычно должна называться all и быть .PHONY:

.PHONY: all All
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...