-include $(deps)
endif
-# List osl.h in the prerequisites to make sure we generate it before attempting
-# to run the compiler. This matters only when the .d file does not exist.
-%.o: %.c osl.h Makefile errtab.h
+# The files to generate before attempting to run the compiler. These
+# are the order-only prerequisites in the rule below.
+pre_deps := osl.h errtab.h oslfsck.lsg.h
+
+# The .d and .o files are both created from a single cc invocation.
+define CC_CMD
$(CC) $(OSL_CPPFLAGS) $(CPPFLAGS) \
- -c -MMD -MF $(*F).d -MT $@ \
+ -c -MMD -MF $(*F).d -MT $(*F).o \
$(OSL_CFLAGS) $(CFLAGS) $<
+endef
+%.o: %.c Makefile | $(pre_deps)
+ $(CC_CMD)
+%.d: %.c Makefile | $(pre_deps)
+ $(CC_CMD)
fsck.o: oslfsck.lsg.h
oslfsck: $(fsck_objects)