You can write rules multiple times:
all: foo # "all" depends on "foo" all: bar # oh, all also depends on "bar"
This is useful for the standard *.d files GCC produces.
foo.o: foo.c $(CC) -MD $< -o $@ # With -MD, GCC outputs foo.d which tells make the list of headers foo.c includes. -include *.d # Include files GCC outputted, if any.