diff options
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 59 | 
1 files changed, 36 insertions, 23 deletions
@@ -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)  | 
