Общий Makefile для автоматического prereq, выглядит так:
SRCS := $(wildcard *.c)
OBJS := $(SRCS:%.c=%.o)
DEPS := $(OBJS:%.o=%.d)
$(OBJS): %.o: %.c
$(CC) $(CFLAGS) -c -o $@ $<
include $(DEPS)
$(DEPS): %.d: %.c
xxx
в первый раз, сборка в порядке, сгенерированный файл .d выглядит так:
config.o config.d: config.c config.h
затем я переименовываю config .h для config2.h и измените конфигурацию. c:
-#include "config.h"
+#include "config2.h"
make снова, Makefile генерирует ошибку:
make [1]: *** Нет правил сделать целевой файл «config.h», необходимый для «config.d»
, поскольку config.d зависит от config.h, как я могу изменить мой Makefile для решения этой проблемы переименования.