#makefile
#makefile
Вопрос:
У меня есть следующий Makefile
:
logs:
sudo docker logs -f maitre_d_backend
Когда я это делаю make logs
, я получаю make: ``logs' is up to date.
Но если я изменю Makefile
цель с logs
на log
, то make log
все будет работать так, как ожидалось.
Что не так с logs
target?
Комментарии:
1. Все в порядке.
logs
, по-видимому, уже обновлена. Чего вы ожидалиmake
от выполнения?2. @melpomene: Какие
logs
из них обновлены?
Ответ №1:
Это сообщение означает, что у вас есть файл или каталог с именем logs
, который уже существует. Когда make просматривает целевой объект, у которого нет предварительных условий (поскольку logs
целевой объект этого не делает), то целевой объект считается обновленным, если этот файл (или каталог) существует, и он считается устаревшим, если этот файл (или каталог) не существует.
Если вы пытаетесь использовать logs
в качестве внутреннего специального целевого имени и не хотите привязывать его к реальному файлу (или каталогу) на диске, то вам следует объявить его фальшивым:
.PHONY: logs
logs:
...