AS=sdasz80 CC=sdcc CPP=sdcpp INCLUDE=$(PROJECT_ROOT)/include DEPFLAGS=-MP -MMD -MF$(basename $@).d -MT$@ ASFLAGS=-g ASCPPFLAGS=$(DEPFLAGS) -P -I$(INCLUDE) -DASSEMBLY CFLAGS=-mz80 -I$(INCLUDE) --Werror $(patsubst %,-Wp%,$(DEPFLAGS)) LDFLAGS=-mz80 --no-std-crt0\ --code-loc $(CODE_LOC)\ --data-loc $(DATA_LOC)\ --stack-loc $(STACK_LOC)\ -Wl-b_GSINIT=$(GSINIT_LOC) OBJ=$(patsubst %.asm,$(BUILD)/%.rel,$(ASM))\ $(patsubst %.c,$(BUILD)/%.rel,$(SRC)) DEPS=$(patsubst $(BUILD)/%.rel,$(BUILD)/%.d,$(OBJ)) $(OBJ): | $(BUILD) $(DIRS) $(BUILD) : @mkdir -p $(BUILD) $(DIRS) : @mkdir -p $(DIRS) $(BUILD)/%.rel : %.asm @echo ' (CPP)' $< @$(CPP) $(ASCPPFLAGS) $< > $(basename $@).asm @echo ' (AS)' $< @$(AS) $(ASFLAGS) -o $@ $(basename $@).asm $(BUILD)/%.rel : %.c @echo ' (CC)' $< @$(CC) $(CFLAGS) -c -o $@ $< $(BUILD)/%.hex : $(BUILD)/%.ihx @hex2bin.py $< $@ .SECONDARY : $(BUILD)/%.ihx : $(CRT0) $(OBJ) @echo ' (LD)' $(OBJ) @$(CC) $(LDFLAGS) -o $@ $+ -include $(DEPS)