aboutsummaryrefslogtreecommitdiff
path: root/scripts/rules.mk
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/rules.mk')
-rw-r--r--scripts/rules.mk26
1 files changed, 26 insertions, 0 deletions
diff --git a/scripts/rules.mk b/scripts/rules.mk
new file mode 100644
index 0000000..670cc98
--- /dev/null
+++ b/scripts/rules.mk
@@ -0,0 +1,26 @@
+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
+
+$(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 :
+ @echo ' (LD)' $@ ':' $(notdir $+)
+ @$(CC) $(LDFLAGS) $(EXTRA_LDFLAGS) -o $@ $+