########################################################################## # User configuration and firmware specific object files ########################################################################## SRCS = $(wildcard *.c) OBJS = $(foreach mod,$(SRCS),$(subst .c,.o,$(mod))) ELFS = $(foreach mod,$(SRCS),$(subst .c,.elf,$(mod))) BINS = $(foreach mod,$(SRCS),$(subst .c,.bin,$(mod))) ########################################################################## # GNU GCC compiler flags ########################################################################## ROOT_PATH?= .. INCLUDE_PATHS = -I$(ROOT_PATH) -I$(ROOT_PATH)/core include $(ROOT_PATH)/Makefile.inc ########################################################################## # Compiler settings, parameters and flags ########################################################################## LDSRCFILE=ram.ld LDFILE=loadable.ld CFLAGS+=-mlong-calls -fno-toplevel-reorder all: $(OBJS) $(ELFS) $(BINS) $(LDFILE): -@echo "MEMORY" > $(LDFILE) -@echo "{" >> $(LDFILE) -@echo " sram(rwx): ORIGIN = 0x10002000 - $(RAMCODE), LENGTH = $(RAMCODE)" >> $(LDFILE) -@echo "}" >> $(LDFILE) -@echo "INCLUDE $(LDSRCFILE)" >> $(LDFILE) %.o : %.c $(CC) $(CFLAGS) -o $@ $< %.elf: %.o $(FIRMWARE) $(LDFILE) $(LD) $(LDFLAGS) -T $(LDFILE) -o $@ $< $(SIZE) $@ %.bin: %.elf $(OBJCOPY) $(OCFLAGS) -O binary $< $@ clean: rm -f *.o *.elf *.bin IDIR=/cygdrive/f install: for a in $(BINS) ; do f=$${a#*/};cp $$a $(IDIR)/$${f%.bin}.c0d ; done $(OBJS): usetable.h .SUFFIXES: .PHONY: $(LDFILE)