PROJECT=firmware AS=sdasz80 CC=sdcc CPP=sdcpp ASM=crt0.asm\ isr.asm\ delay.asm SRC=font.c\ i2c.c\ input.c\ main.c\ tft.c\ tty.c\ menu.c INCLUDE=include BUILD=build OBJ=$(ASM:%.asm=$(BUILD)/%.rel)\ $(SRC:%.c=$(BUILD)/%.rel) IHX=$(BUILD)/$(PROJECT).ihx TARGET=$(BUILD)/$(PROJECT).hex BOOTLOADER=$(BUILD)/boot/bootloader.hex CFLAGS=-mz80 -I$(INCLUDE) --Werror LDFLAGS=-mz80 --no-std-crt0\ --code-loc 0x0100\ --data-loc 0x8010\ -Wl-b_ISR_TABLE=0x0070\ -Wl-b_GSINIT=0x0080 ROM_CHIP=AT28C256 all : $(TARGET) $(OBJ): | $(BUILD) $(BUILD): @mkdir -p $(BUILD) $(BUILD)/%.rel : asm/%.asm @echo ' (AS)' $< @$(CPP) -P -I$(INCLUDE) -DASSEMBLY $< > $(BUILD)/$(notdir $<) @$(AS) -g -o $@ $(BUILD)/$(notdir $<) $(BUILD)/%.rel : src/%.c @echo ' (CC)' $< @$(CC) $(CFLAGS) -c -o $@ $< $(IHX) : $(OBJ) @echo ' (LD)' $(OBJ) @$(CC) $(LDFLAGS) -o $@ $(OBJ) $(TARGET) : $(IHX) $(BOOTLOADER) @hex2bin.py -l 32768 $< $@ @dd if=$(BOOTLOADER) of=$@ obs=1024 seek=28 conv=notrunc 2>/dev/null .PHONY : $(BOOTLOADER) $(BOOTLOADER) : @make -C boot .PHONY : flash flash : @minipro -y -sp $(ROM_CHIP) -w $(TARGET) .PHONY : clean clean : @find $(BUILD) -type f -delete