Fixed some build system stuff

This commit is contained in:
Joppe Blondel
2026-10-07 14:42:54 +02:00
parent da02d8c855
commit 5637db47fd
3 changed files with 9 additions and 28 deletions
+5 -14
View File
@@ -10,10 +10,10 @@ FILES := bios
SOURCES := $(addprefix ./, $(addsuffix .asm, $(FILES))) SOURCES := $(addprefix ./, $(addsuffix .asm, $(FILES)))
TARGETS := $(addprefix $(BUILDDIR)/, $(addsuffix .bin, $(FILES))) TARGETS := $(addprefix $(BUILDDIR)/, $(addsuffix .bin, $(FILES)))
TOPTARGETS := all clean size TOPTARGETS := all clean
$(TOPTARGETS): $(SUBDIRS) $(TOPTARGETS): $(SUBDIRS)
all: $(BUILDDIR) $(BUILDDIR)/rom.bin size all: $(BUILDDIR) $(BUILDDIR)/rom.bin
clean: clean:
rm -rf $(BUILDDIR) rm -rf $(BUILDDIR)
@@ -25,17 +25,7 @@ $(BUILDDIR)/%.bin: ./%.asm $(BUILDDIR)/memory.inc
echo '>$<' echo '>$<'
$(ASM) $(ASMFLAGS) $< $@ $(ASM) $(ASMFLAGS) $< $@
size: $(BUILDDIR)/basic.bin: $(BUILDDIR)/memory.inc
@for file in $(TARGETS); do \
if [ -f "$$file" ]; then \
echo "$$file: $$(wc -c < "$$file") bytes"; \
else \
echo "$$file: Not built yet (run 'make')"; \
fi \
done
$(MAKE) -C apps/basic size --no-print-directory
$(BUILDDIR)/basic.bin:
$(MAKE) -C apps/basic $(or $(MAKECMDGOALS),all) --no-print-directory $(MAKE) -C apps/basic $(or $(MAKECMDGOALS),all) --no-print-directory
$(BUILDDIR)/memory.inc: memory.mk $(BUILDDIR)/memory.inc: memory.mk
@@ -44,6 +34,8 @@ $(BUILDDIR)/memory.inc: memory.mk
/^[A-Z][A-Z0-9_]*[[:space:]]*:=[[:space:]]*/ { print $$1 " .equ " $$3 }' $< > $@ /^[A-Z][A-Z0-9_]*[[:space:]]*:=[[:space:]]*/ { print $$1 " .equ " $$3 }' $< > $@
$(BUILDDIR)/rom.bin: $(BUILDDIR)/bios.bin $(BUILDDIR)/basic.bin $(BUILDDIR)/rom.bin: $(BUILDDIR)/bios.bin $(BUILDDIR)/basic.bin
echo "bios: $(shell wc -c < $(BUILDDIR)/bios.bin) / $$(($(BIOS_ROM_SIZE)+0))"
echo "basic: $(shell wc -c < $(BUILDDIR)/basic.bin) / $$(($(BASIC_ROM_SIZE)+0))"
objcopy --pad-to=$$(($(BIOS_ROM_START)+$(BIOS_ROM_SIZE))) \ objcopy --pad-to=$$(($(BIOS_ROM_START)+$(BIOS_ROM_SIZE))) \
-I binary $(BUILDDIR)/bios.bin -O binary $(BUILDDIR)/bios_padded.bin -I binary $(BUILDDIR)/bios.bin -O binary $(BUILDDIR)/bios_padded.bin
objcopy --pad-to=$(BASIC_ROM_SIZE) \ objcopy --pad-to=$(BASIC_ROM_SIZE) \
@@ -52,4 +44,3 @@ $(BUILDDIR)/rom.bin: $(BUILDDIR)/bios.bin $(BUILDDIR)/basic.bin
.PHONY: $(TOPTARGETS) $(SUBDIRS) .PHONY: $(TOPTARGETS) $(SUBDIRS)
+3 -13
View File
@@ -9,10 +9,10 @@ SUBDIRS :=
SOURCES := $(addprefix ./, $(addsuffix .asm, $(FILES))) SOURCES := $(addprefix ./, $(addsuffix .asm, $(FILES)))
TARGETS := $(addprefix $(BUILDDIR)/, $(addsuffix .bin, $(FILES))) TARGETS := $(addprefix $(BUILDDIR)/, $(addsuffix .bin, $(FILES)))
TOPTARGETS := all clean size TOPTARGETS := all clean
$(TOPTARGETS): $(SUBDIRS) $(TOPTARGETS): $(SUBDIRS)
all: $(BUILDDIR) $(TARGETS) size all: $(BUILDDIR) $(TARGETS)
clean: clean:
rm -rf $(BUILDDIR) rm -rf $(BUILDDIR)
@@ -20,21 +20,11 @@ clean:
$(BUILDDIR): $(BUILDDIR):
mkdir -p $(BUILDDIR) mkdir -p $(BUILDDIR)
$(BUILDDIR)/%.bin: ./%.asm $(BUILDDIR)/%.bin: ./%.asm $(BUILDDIR)/memory.inc
echo '>$<' echo '>$<'
$(ASM) $(ASMFLAGS) $< $@ $(ASM) $(ASMFLAGS) $< $@
size:
@for file in $(TARGETS); do \
if [ -f "$$file" ]; then \
echo "$$file: $$(wc -c < "$$file") bytes"; \
else \
echo "$$file: Not built yet (run 'make')"; \
fi \
done
$(SUBDIRS): $(SUBDIRS):
$(MAKE) -C $@ $(or $(MAKECMDGOALS),all) --no-print-directory $(MAKE) -C $@ $(or $(MAKECMDGOALS),all) --no-print-directory
.PHONY: $(TOPTARGETS) $(SUBDIRS) .PHONY: $(TOPTARGETS) $(SUBDIRS)
+1 -1
View File
@@ -17,4 +17,4 @@ BASIC_ROM_START := 0x0400
BASIC_ROM_SIZE := 0x2000 BASIC_ROM_SIZE := 0x2000
BIOS_RAM_START := 0xc000 BIOS_RAM_START := 0xc000
BASIC_RAM_START := 0xd000 BASIC_RAM_START := 0xc800