From 38427060c8f781589d7f78148cf6204b97f20d4b Mon Sep 17 00:00:00 2001 From: Thomas Guillermo Albers Raviola Date: Sat, 4 Oct 2025 20:52:39 +0200 Subject: Restructure project --- Makefile | 59 ++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 36 insertions(+), 23 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index bd309f5..d909915 100644 --- a/Makefile +++ b/Makefile @@ -1,41 +1,54 @@ -ASM=crt0.asm -SRC=crc16.c zbootloader.c +AS = sdasz80 +CC = sdcc +CPP = sdcpp -OBJ=$(ASM:%.asm=build/%.rel) $(SRC:%.c=build/%.rel) -IHX=build/bootloader.ihx -TARGET=bootloader.hex +BUILD = build +INCLUDE = include +ROM_CHIP = AT28C256 +TARGET = $(BUILD)/bootloader.hex -CFLAGS=-mz80 -I. --Werror -LDFLAGS=-mz80 --no-std-crt0 --code-loc 0x100 --data-loc 0x8000 -Wl-b_GSINIT=0x80 +DEPFLAGS = -MP -MMD -MF$(basename $@).d -MT$@ +# patsubst to fix sdcc compiler not supporting flags directly +CFLAGS = -mz80 -I$(INCLUDE) --Werror $(patsubst %,-Wp%,$(DEPFLAGS)) +LDFLAGS = -mz80 --no-std-crt0\ + --code-loc 0x0100\ + --data-loc 0x8000\ + -Wl-b_GSINIT=0x80 -ROM_CHIP=SST39SF020A +SRC = src/crt0.asm src/crc16.c src/zbootloader.c + +OBJ = $(patsubst src/%,$(BUILD)/%.rel,$(basename $(SRC))) +DEPS = $(patsubst %.rel,%.d,$(OBJ)) all : $(TARGET) -build/%.rel : %.asm - @echo ' (AS)' $< - @sdcpp -P -I. -DASSEMBLY $< > build/$< - @sdasz80 -g -o $@ build/$< +$(BUILD)/%.rel : src/%.asm + @echo ' (AS)' $< $@ + @$(CPP) -P -I$(INCLUDE) -DASSEMBLY $< > $(basename $@).asm + @$(AS) -g -o $@ $(basename $@).asm -build/%.rel : %.c +$(BUILD)/%.rel : src/%.c @echo ' (CC)' $< - @sdcc $(CFLAGS) -c -o $@ $< + @$(CC) $(CFLAGS) -c -o $@ $< + +$(OBJ) : | $(BUILD) +$(BUILD) : + @mkdir -p $@ -$(IHX) : $(OBJ) +.SECONDARY : +$(BUILD)/%.ihx : $(OBJ) @echo ' (LD)' $(OBJ) - @sdcc $(LDFLAGS) -o $@ $(OBJ) + @$(CC) $(LDFLAGS) -o $@ $(OBJ) -$(TARGET) : $(IHX) +$(TARGET) : $(BUILD)/bootloader.ihx @hex2bin.py $< $@ -.PHONY : upload -upload : - z80up $(TARGET) -p /dev/ttyUSB0 - .PHONE : flash flash : - minipro -y -sp $(ROM_CHIP) -w $(TARGET) + minipro -u -y -sp $(ROM_CHIP) -w $(TARGET) .PHONY : clean clean : - @rm -rf build/* $(TARGET) + @rm -rf $(BUILD) + +-include $(DEPS) -- cgit v1.2.3