paparazzi (or actually make) tracks dependencies quite well, however, make does not understand the xml-configuration well.
- So if for instance you change your xml and add a <define ... > somewhere, make does not understand which control or driver files are affected. You then MUST clean before recompile.
- Even worse: if you change the board file to another arch in the middle of some work, it will only rebuild the changed c files so you can have object files compiled with different architectures being linked (which does fortunately not work)
- And if you change a module.xml, the build system does not necessarly know it should recompile (whjile for subsystems it does know as it is makefile)
Our rules of thumb:
- make clean anytime you need to be really sure
- certainly clean after every xml change