-# Rules
-apcSRC := $(patsubst %.c,%.o,$(cSRC) $(cGEN))
-apc-dSRC := $(patsubst %.o,%-d.o,$(apcSRC))
+# Driver sources
+DRIVERS := apc testapc
+$(foreach drv,$(DRIVERS),\
+$(eval $(drv)SRC := $(patsubst %.c,%.o,$(filter-out $(patsubst %,src/%.c,$(filter-out $(drv),$(DRIVERS))),$(cSRC) $(cGEN))))\
+$(eval $(drv)-dSRC := $(patsubst %.o,%-d.o,$($(drv)SRC))))