.PHONY: all clean

OBJS := foo.o bar.o

all: $(OBJS)

$(OBJS): CPPFLAGS += -MMD -MF $(@:%=%.d) -MP -MT $(@:%=%.d) -MT $(@)

%.o: %.c | generated.h
	$(COMPILE.c) $(OUTPUT_OPTION) $<

generated.h: generated.x
	touch $(@)

clean:
	$(RM) $(OBJS) $(OBJS:%=%.d) generated.h

-include $(OBJS:%=%.d)
