Я играю с файлами make и переменной VPATH. В принципе, я захватываю исходные файлы из нескольких разных мест (указанных VPATH) и компилирую их в текущий каталог, используя только список .o-файлов, которые я хочу.Makefile trickery using VPATH и включают
Пока все хорошо, теперь я генерирую информацию о зависимостях в файл под названием «.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 $^ > [email protected]
include .depend
Теперь для реального вопроса, могу ли я подавить генерацию файла .depend в любом случае? В настоящее время я работаю в среде clearcase -> sloooow, поэтому я предпочел бы, чтобы он был немного более подконтрольным, когда обновлял информацию о зависимостях.
Это более или менее академическое упражнение, так как я мог просто обернуть вещь в скрипт, который касается файла .depend перед выполнением make (тем самым делая его более свежим, чем любой исходный файл), но было бы интересно узнать если я могу каким-то образом подавить его, используя «чистый» make.
Я не могу удалить зависимость от исходных файлов (т. Е. Просто .depend:
), так как я в зависимости от переменной $^
выполняет разрешение VPATH для меня.
Если бы какой-либо способ только зависимостей обновлений в результате обновленных #include
директив, которые были бы еще лучше, конечно .. Но я не затаив дыхание, что один .. :)
Почему не оборачивать '.depend: ...' 'цель в if' директиву работы? –
@Pavel: интересно, я никогда об этом не думал. – falstro