Сделать make перестроить цель, когда это зависит от удаленного файла

Предположим, у меня есть make Править так:

SOURCES := $(wildcard ./text/*.txt)

$(INDEX) : $(SOURCES)
    $(COMPILER) $(SOURCES)

А потом один из текстовых файлов, ./text/foo.txt, удаляется. Цель $(INDEX) не кажется восстановленным. Как мне сделать make перестроить в этом случае?

1 ответ

Решение

Если твой ./text Каталог содержит только ваши источники и все из них, вы можете добавить его в качестве предварительного условия вашей цели:

$(INDEX) : $(SOURCES) ./text

Каталоги не похожи на обычные файлы: их дата последнего изменения обновляется при добавлении, удалении или переименовании файла (или подкаталога) в них, а не при изменении существующего файла. Думайте об этом как о файле, содержащем список содержащихся файлов.

Другие вопросы по тегам