-CFLAGS=-Wall
+all: firmware
 
-all: firmware 
+firmware: src/firmware
+       ln -sf $^ $@
 
-firmware: firmware.o rsb-crc.o
-
-firmware.o: firmware.c rsb-crc.h
-
-rsb-crc.o: rsb-crc.c rsb-crc.h
+src/firmware:
+       $(MAKE) -C src firmware
 
 clean:
-       rm -f firmware firmware.o rsb-crc.o
+       rm -f firmware
+       $(MAKE) -C src clean
 
-.PHONY: all clean
+.PHONY: all clean src/firmware