У меня есть c-файл, использующий флаг компилятора. Когда флаг компилятора изменяется, я заставляю c-файл обновить его значение в записи make-файла:
compilerflagChange: FORCE
echo ${CFLAGS} | cmp -s - $@ || echo ${CFLAGS} > $@
myCFile.o: compilerflagChange
Это работает довольно хорошо, за исключением случаев, когда я очищаю весь проект и затем запускаю.
В этом случае myCFile.C не был сгенерирован до прихода к оператору
myCFile.o: compilerflagChange
, что приведет к аварийному завершению сборки с ошибкой «MyCfile.C, такой файл отсутствует».
Вопрос: Как я могу сделать свое правило в зависимости от того, существует C-файл или нет? «Если файл существует + cflagChange, обновите файл, в противном случае ничего» * 1009 *
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
«Почему бы вам просто не перекомпилировать myCFile.o после того, как каждый раз генерируется MyCFile.c?» Нет подходящего места в make-файле. Для этого мне нужно спуститься на несколько слоев и потерять отслеживаемость причины его восстановления.