diff options
Diffstat (limited to 'boot/Makefile')
| -rw-r--r-- | boot/Makefile | 62 | 
1 files changed, 22 insertions, 40 deletions
| diff --git a/boot/Makefile b/boot/Makefile index 2fff22d..88d3c6e 100644 --- a/boot/Makefile +++ b/boot/Makefile @@ -1,50 +1,32 @@ -AS=sdasz80 -CC=sdcc -CPP=sdcpp +BUILD=$(PROJECT_ROOT)/build/boot -ASM=crt0.asm -SRC=crc16.c\ -	bootloader.c - -INCLUDE=../include -BUILD=../build/boot - -OBJ=$(ASM:%.asm=$(BUILD)/%.rel)\ -	$(SRC:%.c=$(BUILD)/%.rel) - -IHX=$(BUILD)/bootloader.ihx  TARGET=$(BUILD)/bootloader.hex +IHX=$(BUILD)/boot.ihx -CFLAGS=-mz80 -I$(INCLUDE) --Werror -LDFLAGS=-mz80 --no-std-crt0\ -		--code-loc 0x8100\ -		--data-loc 0xC000\ -		--stack-loc 0x0000\ -		-Wl-b_GSINIT=0x8080 +ASM=$(filter-out crt0.asm, $(wildcard *.asm)) +SRC=$(wildcard *.c) +PAYLOADS=cmd devmode -all : $(TARGET) - -$(OBJ): | $(BUILD) +PAYLOADS_HEX=$(foreach payload,$(PAYLOADS),$(BUILD)/$(payload)/$(payload).hex) -$(BUILD) : -	@mkdir -p $(BUILD) +HEX=$(BUILD)/boot.hex $(PAYLOADS_HEX) -$(BUILD)/%.rel : %.asm -	@echo '  (AS)' $< -	@$(CPP) -P -I$(INCLUDE) -DASSEMBLY $< > $(BUILD)/$(notdir $<) -	@$(AS) -g -o $@ $(BUILD)/$(notdir $<) +CODE_LOC=0x0120 +DATA_LOC=0xC000 +STACK_LOC=0x0000 +GSINIT_LOC=0x0090 -$(BUILD)/%.rel : %.c -	@echo '  (CC)' $< -	@$(CC) $(CFLAGS) -c -o $@ $< +all : $(TARGET) -$(IHX) : $(OBJ) -	@echo '  (LD)' $(OBJ) -	@$(CC) $(LDFLAGS) -o $@ $(OBJ) +$(TARGET) : $(HEX) +	cp $(BUILD)/boot.hex /tmp/bootloader.hex +	dd if=$(BUILD)/cmd/cmd.hex of=/tmp/bootloader.hex obs=4096 seek=1 conv=notrunc 2>/dev/null +	dd if=$(BUILD)/cmd/cmd.hex of=/tmp/bootloader.hex obs=4096 seek=2 conv=notrunc 2>/dev/null +	mv /tmp/bootloader.hex $@ -$(TARGET) : $(IHX) -	@hex2bin.py $< $@ +.PHONY : $(PAYLOADS_HEX) +$(PAYLOADS_HEX) : $(BUILD)/crt0.rel +	make -C $(notdir $(basename $@)) CRT0=$< -.PHONY : clean -clean : -	@find $(BUILD) -type f -delete +include $(PROJECT_ROOT)/include.mk +-include $(BUILD)/crt0.d | 
