+cGEN := $(strip $(ySRC:%.y=%.tab.c) $(rlSRC:%.rl=%.fsm.c))
+.SECONDARY: $(cGEN)
+
+# Determine binary/ir targets (object files and driver binaries)
+cTRG := $(patsubst %.c,%.o,$(cSRC) $(cGEN))
+ldSRC := $(filter-out $(DRIVERS:%=\%/%.o),$(cTRG))
+cTRG += $(cTRG:%.o=%-d.o)
+ldTRG := $(DRIVERS:%=%-d) $(DRIVERS)
+ldDEP = $(filter %/$1.o,$(cTRG))
+ldDEP += $(if $(filter testston%,$1),,$(if $(filter %-d,$1),$(ldSRC:%.o=%-d.o),$(ldSRC)))