The build doesn't currently track header files as dependencies for targets, meaning that it's possible to produce a broken build by changing a constant/macro in a header file. We should use gcc -MM or makedepend (or whatever) to declare header dependencies.