GNU make dependency generation
Although I would normally use automake, recently I needed to write a Makefile by hand, so I went down the path of figuring out how to get gcc to generate dependency files as a side-effect of compilation:
# Build rule for compiling C++ with dependecy generation as a side-effect. The # dependencies go into a .deps directory at the same level as the source file. %.o: %.cpp @$(MKDIR) $(*D)/.deps $(CXX) $(CXXFLAGS) $(CPPFLAGS) -MP -MF $(*D)/.