aboutsummaryrefslogtreecommitdiff
path: root/include.mk
diff options
context:
space:
mode:
Diffstat (limited to 'include.mk')
-rw-r--r--include.mk48
1 files changed, 48 insertions, 0 deletions
diff --git a/include.mk b/include.mk
new file mode 100644
index 0000000..196f319
--- /dev/null
+++ b/include.mk
@@ -0,0 +1,48 @@
+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)