Currently, each time you run 'make' the whole program is recompiled. Is there a particular reason for this behavior?
In my branch I fixed this at least for the Contiki and Shawn make files, see here. Automatic header dependency checking also works, I more or less followed the GNU make manual.