Подготовить автономную сборку и запуск перед разделением проектов
This commit is contained in:
@@ -4,12 +4,7 @@
|
||||
# make tools build only host tools (mkexe)
|
||||
# make lib build lib/sprinter.lib (libc) + lib/bgi256.lib (libbgi)
|
||||
# make tests build all libc feature tests under tests/
|
||||
# make examples build all real applications under examples/ (НЕ входит
|
||||
# в `make all`: это регрессная сборка, а examples/ —
|
||||
# крупные приложения, которые её только замедляют
|
||||
# (mdview компилируется минутами) и ничего нового про
|
||||
# libc не показывают. Собирать явно перед `make floppy`.)
|
||||
# make floppy package every .exe + test fixtures into mame/v306/IMG/mc.img
|
||||
# make floppy пакет всех SDK-тестов в build/media/toolkit-tests.img
|
||||
# make check run mkexe unit tests
|
||||
# make clean remove all build artefacts
|
||||
# make sdcc download/extract vendored SDCC
|
||||
@@ -25,25 +20,20 @@ TESTS := hello hello2 simple banked bankedbg banktest strtest cat seek \
|
||||
gfx_demo gfx_dbuf bgitest bgi_img accfill
|
||||
# gfx_d16 / gfx_text / gfx_mous — 16-цветные; убраны до Фазы 2 (bgi16.lib
|
||||
# ещё не собирается). Вернуть мигрированными на BGI --gfx 16.
|
||||
# Larger end-user applications under examples/.
|
||||
APPS := mdview mdview2
|
||||
|
||||
MAME_DIR := mame/v306
|
||||
FLOPPY_IMG := $(MAME_DIR)/IMG/mc.img
|
||||
MAKE_DISK := $(MAME_DIR)/make_disk.py
|
||||
FLOPPY_IMG := build/media/toolkit-tests.img
|
||||
MAKE_DISK := toolchain/make_disk.py
|
||||
MAME_HOME ?= $(if $(wildcard mame/v306/mame.arm),$(CURDIR)/mame/v306,)
|
||||
|
||||
TEST_EXES := $(foreach t,$(TESTS),tests/$(t)/$(t).exe)
|
||||
APP_EXES := $(foreach a,$(APPS),examples/$(a)/$(a).exe)
|
||||
ALL_EXES := $(TEST_EXES) $(APP_EXES)
|
||||
ALL_EXES := $(TEST_EXES)
|
||||
|
||||
DATA_FILES := \
|
||||
tests/cat/test.txt \
|
||||
tests/seek/big.txt \
|
||||
tests/cblwav/speech.pcm \
|
||||
examples/mdview/SAMPLE.MD
|
||||
tests/cblwav/speech.pcm
|
||||
|
||||
.PHONY: all tools lib tests examples check clean sdcc floppy \
|
||||
size-check size-baseline host-tests sdbg-tests mame-sdbg-patch mame-sdbg $(TESTS) $(APPS)
|
||||
.PHONY: all tools lib tests check clean sdcc floppy run \
|
||||
size-check size-baseline host-tests sdbg-tests $(TESTS)
|
||||
|
||||
all: tools lib tests
|
||||
|
||||
@@ -58,31 +48,30 @@ check: tools
|
||||
$(MAKE) -C toolchain/mkexe check
|
||||
|
||||
tests: $(TESTS)
|
||||
examples: $(APPS)
|
||||
|
||||
$(TESTS): tools lib
|
||||
$(MAKE) -C tests/$@
|
||||
|
||||
$(APPS): tools lib
|
||||
$(MAKE) -C examples/$@
|
||||
|
||||
# Generate big.txt if missing (gen_bigfile.py creates 100 KB marker file).
|
||||
tests/seek/big.txt:
|
||||
cd tests/seek && python3 gen_bigfile.py big.txt 102400
|
||||
|
||||
# Re-pack the MAME floppy image with every built exe + needed data files.
|
||||
floppy: tests examples tests/seek/big.txt
|
||||
# Собственный SDK-носитель: не изменяет диск MAME или приложения.
|
||||
floppy: tests tests/seek/big.txt
|
||||
python3 $(MAKE_DISK) $(FLOPPY_IMG) $(ALL_EXES) $(DATA_FILES)
|
||||
@echo
|
||||
@echo "Floppy ready: $(FLOPPY_IMG)"
|
||||
@echo "Run: cd $(MAME_DIR) && ./run_mame.sh"
|
||||
@echo "Run: make run MAME_HOME=/путь/к/MAME/runtime"
|
||||
|
||||
run: floppy
|
||||
python3 toolchain/run_sprinter_mame.py --mame-home "$(MAME_HOME)" --floppy "$(FLOPPY_IMG)"
|
||||
|
||||
# Модульные тесты под ucsim_z80. Обвязка — testkit/, сами наборы лежат
|
||||
# рядом с кодом, который проверяют. MAME не нужна, идут за секунды;
|
||||
# ucsim идёт в комплекте нашего SDCC.
|
||||
# applications/PoP/roomtest заморожена (её ветка развития — SprPoP), поэтому
|
||||
# её набор здесь больше не гоняется.
|
||||
HOST_TEST_DIRS := testkit applications/SprPoP/tests/host
|
||||
# Тесты продуктов запускаются в собственных репозиториях.
|
||||
HOST_TEST_DIRS := testkit
|
||||
|
||||
host-tests:
|
||||
@for d in $(HOST_TEST_DIRS); do $(MAKE) -C $$d || exit 1; done
|
||||
@@ -92,16 +81,6 @@ host-tests:
|
||||
sdbg-tests: tools lib
|
||||
python3 -m unittest discover -s tests/sdbg -v
|
||||
|
||||
# Backend удерживает MAME в stopped-loop без Cocoa debugger; Lua bridge при
|
||||
# этом обслуживается из periodic_check ядра. Повторный вызов безопасен.
|
||||
mame-sdbg-patch:
|
||||
sh toolchain/apply-mame-sdbg-patch.sh
|
||||
|
||||
# Инкрементально собирает patched checkout и устанавливает бинарник в v306.
|
||||
mame-sdbg: mame-sdbg-patch
|
||||
$(MAKE) -C mame/sources/MAME
|
||||
cp mame/sources/MAME/mame $(MAME_DIR)/mame.arm
|
||||
|
||||
# Размерный регресс: сверить _CODE всех программ с docs/size_baseline.tsv.
|
||||
size-check:
|
||||
python3 toolchain/size_check.py
|
||||
@@ -115,7 +94,6 @@ clean:
|
||||
$(MAKE) -C libc clean
|
||||
$(MAKE) -C libbgi clean
|
||||
@for t in $(TESTS); do $(MAKE) -C tests/$$t clean; done
|
||||
@for a in $(APPS); do $(MAKE) -C examples/$$a clean; done
|
||||
|
||||
sdcc:
|
||||
bash third_party/setup-sdcc.sh
|
||||
|
||||
Reference in New Issue
Block a user