Я играю с файлами make и переменной VPATH. По сути, я беру исходные файлы из нескольких разных мест (указанных VPATH) и компилирую их в текущий каталог, используя просто список .o-файлов, которые мне нужны.
Пока все хорошо, теперь я генерирую информацию о зависимостях в файл с именем .depend и включаю его. Gnumake попытается использовать правила, определенные до сих пор, для создания включенного файла, если он не существует, так что все в порядке. По сути, мой make-файл выглядит так.
VPATH=A/source:B/source:C/source
objects=first.o second.o third.o
executable: $(objects)
.depend: $(objects:.o=.c)
$(CC) -MM $^ > $@
include .depend
Теперь по вопросу, могу ли я каким-либо образом подавить создание файла .depend? В настоящее время я работаю в прозрачной среде -> sloooow, поэтому я бы предпочел, чтобы при обновлении информации о зависимостях он был немного под контролем.
Это более или менее академическое упражнение, так как я мог бы просто обернуть вещь в сценарий, который касается файла .depend перед выполнением make (что делает его более новым, чем любой исходный файл), но было бы интересно узнать, если Я могу как-то подавить это, используя «чистую» make.
Я не могу удалить зависимость от исходных файлов (то есть просто используя .depend:
), так как я в зависимости от переменной $^
, чтобы сделать для меня разрешение VPATH.
Если бы был какой-либо способ обновлять зависимости только в результате обновленных директив #include
, это было бы еще лучше, конечно .. Но я не задерживаю дыхание для этого ..:)