Initial commit
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
TARGET := monitor
|
||||
BUILDDIR := build
|
||||
|
||||
METAL_C_SRCFILES := $(wildcard *.c)
|
||||
METAL_ASM_SRCFILES := $(wildcard *.asm)
|
||||
METAL_RELFILES := $(METAL_ASM_SRCFILES:%.asm=$(BUILDDIR)/metal/%.rel) \
|
||||
$(METAL_C_SRCFILES:%.c=$(BUILDDIR)/metal/%.rel)
|
||||
|
||||
MUSIC_FILE := updraft_flight
|
||||
|
||||
METAL_CC := sdcc
|
||||
METAL_AS := sdasz80
|
||||
METAL_MAKEBIN := makebin
|
||||
METAL_FLAGS := -mz80 --no-std-crt0 --code-loc 0x0080 --data-loc 0x8000
|
||||
METAL_CPPFLAGS := -I src -I $(BUILDDIR)/metal/generated --disable-warning 283
|
||||
METAL_BIN_SIZE := 32768
|
||||
METAL_RAM_SIZE := 32768
|
||||
|
||||
.DEFAULT_GOAL := metal
|
||||
|
||||
.PHONY: all metal clean
|
||||
|
||||
all: metal
|
||||
|
||||
metal: $(BUILDDIR)/metal/$(TARGET).ihx $(BUILDDIR)/metal/$(TARGET).bin $(BUILDDIR)/metal/$(TARGET).prog.bin
|
||||
@awk -v rom_capacity=$(METAL_BIN_SIZE) -v ram_capacity=$(METAL_RAM_SIZE) '\
|
||||
$$1 ~ /^_(CODE|HOME|GSINIT|GSFINAL|INITIALIZER|ITABLE[0-7]*)$$/ { rom += $$5 } \
|
||||
$$1 ~ /^_(DATA|INITIALIZED|BSEG|BSS|HEAP|STACK)$$/ { ram += $$5 } \
|
||||
END { \
|
||||
printf "\nMemory usage:\n"; \
|
||||
printf " ROM: %5u / %5u bytes (%5.1f%%), %5u bytes free\n", rom, rom_capacity, 100 * rom / rom_capacity, rom_capacity - rom; \
|
||||
printf " RAM: %5u / %5u bytes (%5.1f%%), %5u bytes free\n", ram, ram_capacity, 100 * ram / ram_capacity, ram_capacity - ram; \
|
||||
}' $(BUILDDIR)/metal/$(TARGET).map
|
||||
|
||||
$(BUILDDIR)/metal/$(TARGET).ihx: $(METAL_RELFILES)
|
||||
@mkdir -p $(@D)
|
||||
$(METAL_CC) $(METAL_FLAGS) -o $@ $(METAL_RELFILES)
|
||||
|
||||
$(BUILDDIR)/metal/$(TARGET).bin: $(BUILDDIR)/metal/$(TARGET).ihx
|
||||
$(METAL_MAKEBIN) -s $(METAL_BIN_SIZE) $< $@
|
||||
|
||||
$(BUILDDIR)/metal/$(TARGET).prog.bin: $(BUILDDIR)/metal/$(TARGET).ihx
|
||||
$(METAL_MAKEBIN) -p $< $@
|
||||
|
||||
$(BUILDDIR)/metal/%.rel: %.c
|
||||
@mkdir -p $(@D)
|
||||
$(METAL_CC) $(METAL_FLAGS) $(METAL_CPPFLAGS) -o $@ -c $<
|
||||
|
||||
$(BUILDDIR)/metal/%.rel: %.asm
|
||||
@mkdir -p $(@D)
|
||||
$(METAL_AS) -plosgff -o $@ $<
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILDDIR)
|
||||
|
||||
-include $(EMU_DEPFILES)
|
||||
Reference in New Issue
Block a user