найти цель в make-файле - PullRequest
       10

найти цель в make-файле

1 голос
/ 01 декабря 2011

У меня сейчас есть это в моем make-файле:

ifneq ($(MAKECMDGOALS),clean)
-include $(DEPS_debug)
-include $(DEPS_unittest)
-include $(DEPS_release)
endif

Все коллекции DEPS_ довольно большие, так как они генерируются gcc, поэтому я хотел бы включать эти зависимости только тогда, когданеобходимо.

Как и сейчас, каждый раз, когда я использую этот make-файл для выполнения чего-либо, кроме очистки, он подвергается двухсекундному ожиданию из-за загрузки всех файлов зависимостей.Да, вероятно, это излишне проверяет множество заголовков библиотек на наличие изменений, но я буду проклят, если он уже не будет работать так хорошо, что я не хочу с ним связываться.

Я бы хотел -include только $(DEPS_debug), когда моя цель создания debug и т. Д.

Есть ли лучшая переменная, чем MAKECMDGOALS, которую я могу использовать?Проблема, которую я ожидаю, заключается в том, что если я использую MAKECMDGOALS для прогнозирования включения моих зависимостей, если я позже добавлю запись в make-файл foo: debug release и запусту make foo, она не загрузит ни одну из них!

1 Ответ

0 голосов
/ 01 декабря 2011

Как вы генерируете свои зависимости?

gcc -M ... source.c

против

gcc -MM ... source.c

В первом перечислены заголовки из /usr/include; последний не.

...