Each SRC_DIR gets its own Makefile fragment, and where it needs private build rules a RULES files. If this pattern gets used elsewhere we could automate the include lines (search $(SRC_DIRS) for Makefiles and RULES files?).