##############################################################################
# rules for buildung AVR objects

OBJECTS += $(patsubst %.c,obj_avr/%.o,${SRC})
OBJECTS += $(patsubst %.S,obj_avr/%.o,${ASRC})

./obj_avr/%.o: %.S
	@ if [ ! -d obj_avr ]; then mkdir obj_avr ; fi
	@ echo "assembling $<"
	@ $(CC) -o $@ $(CPPFLAGS) $(ASFLAGS) -c $<

./obj_avr/%.o: %.c
	@ if [ ! -d obj_avr ]; then mkdir obj_avr ; fi
	@ echo "compiling $<"
	@ $(CC) -o $@ $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -c $<

objects_avr: $(OBJECTS)
	@ if [ -d obj_avr ]; then echo "writing object inventory" ; echo $(OBJECTS) > obj_avr/.objects ; fi

##############################################################################
# rules for buildung simulator objects

SRC_SIM ?= $(SRC)
OBJECTS_SIM += $(patsubst %.c,obj_sim/%.o,${SRC_SIM})

./obj_sim/%.o: %.c
	@ if [ ! -d obj_sim ]; then mkdir obj_sim ; fi
	@ echo "compiling $<"
	@ $(HOSTCC) -o $@ $(CFLAGS_SIM) -c $<

objects_sim: $(OBJECTS_SIM)
	@ echo "writing object ineventory"
	@ if [ ! -d obj_sim ]; then mkdir obj_sim ; fi
	@ echo $(OBJECTS_SIM) > obj_sim/.objects

clean-common:
	$(RM) $(TARGET) *.[odasE] *.d.new *~
	$(RM) -r obj_avr
	$(RM) -r obj_sim

clean: clean-common

all:
	$(MAKE) -C $(TOPDIR) all

#include depend.mk