Files
CoCoCapitalQuiz/Makefile
T

47 lines
1.6 KiB
Makefile

# Built by VCC Plus using its bundled CMOC/6809 tools. No emulator source needed.
CMOC ?= cmoc
PERL ?= perl
WRITECOCOFILE ?= writecocofile
INSTALL_LOADER ?= install-coco-boot-loader
VCC_CONFIGURATION ?= Release
ifeq ($(VCC_CONFIGURATION),Debug)
OPTIM = -O2 -fno-omit-frame-pointer
else
OPTIM = -O2
endif
ifeq ($(VCC_CONFIGURATION),Test)
CPPFLAGS += -DTEST_SEED=2709
endif
CPPFLAGS += -I.
CFLAGS = --coco --intermediate --stack-space=2048 $(OPTIM)
SOURCES = main.c src/quiz.c src/ui.c src/states.c src/map_data.c
OBJECTS = $(SOURCES:%.c=obj/%.o)
.PHONY: all build disk clean assets test
all: disk
build: build/CAPITAL.bin
disk: build/CAPITAL.dsk
build/CAPITAL.bin: $(OBJECTS)
@mkdir -p build
"$(CMOC)" --coco --intermediate --org=2000 --limit=7800 -o $@ $(OBJECTS) -lgime -linput -lbcontrol -lhirestxt
# Explicit project headers avoid CMOC .d paths to expired VCC build snapshots.
obj/%.o: %.c quiz.h ui.h map_data.h Makefile
@mkdir -p $(dir $@)
"$(CMOC)" $(CPPFLAGS) $(CFLAGS) --intdir=$(dir $@) -c -o $@ $<
obj/boot.bin: tools/boot.c Makefile
@mkdir -p obj
"$(CMOC)" --dos -O0 --limit=2800 -o $@ $<
build/CAPITAL.dsk: build/CAPITAL.bin obj/boot.bin
$(PERL) -e 'print chr(255) x (35*18*256)' > $@
"$(INSTALL_LOADER)" $@ obj/boot.bin
"$(WRITECOCOFILE)" $@ build/CAPITAL.bin
assets:
python3 tools/prepare_assets.py
test:
@set -e; quiz_test_dir=$$(mktemp -d "$${TMPDIR:-/tmp}/capital-quiz-host.XXXXXX"); \
trap 'rm -rf "$$quiz_test_dir"' EXIT HUP INT TERM; \
cc -std=c99 -Wall -Wextra -Werror -DHOST_TEST -I. tests/test_quiz.c src/quiz.c src/states.c -o "$$quiz_test_dir/test_quiz"; \
"$$quiz_test_dir/test_quiz"
python3 tests/check_assets.py
clean:
rm -rf obj build