mirror of
https://github.com/marketideas/qasm.git
synced 2026-10-24 07:02:20 +00:00
Move the assembler to src/qasm. qlink links OMF 1.0 and 2.0 from a script. makeBin flattens a load file, qomf dumps OMF, and qpro builds ProDOS volumes. APW and MPW assemble through the ORCA front end. Relocatable modules emit OMF objects. Listings stay off unless -l is set. make boot assembles the GS/OS 6.0.1 ProDOS 8 kernel and BASIC.SYSTEM into an 800K volume. BASIC.SYSTEM accepts ls and pfx, and its splash reports PRODOS BASIC 2.0, copyright 1983-2026. IIGS.601.SRC is the source and the BASIC.SYSTEM oracle that image is built from.
41 lines
1.8 KiB
Makefile
41 lines
1.8 KiB
Makefile
# Drive the CMake build. Objects land in build/release and build/debug.
|
|
# Release executables are copied to bin/. Debug executables are copied to bin/debug/.
|
|
BUILD_RELEASE ?= build/release
|
|
BUILD_DEBUG ?= build/debug
|
|
CMAKE ?= cmake
|
|
|
|
.PHONY: all release debug test fixtures clean boot
|
|
|
|
all: release debug
|
|
|
|
release: $(BUILD_RELEASE)/CMakeCache.txt
|
|
$(CMAKE) --build $(BUILD_RELEASE) --target qasm --target qlink --target makeBin --target qomf --target qpro --parallel
|
|
|
|
debug: $(BUILD_DEBUG)/CMakeCache.txt
|
|
$(CMAKE) --build $(BUILD_DEBUG) --target qasm --target qlink --target makeBin --target qomf --target qpro --parallel
|
|
|
|
$(BUILD_RELEASE)/CMakeCache.txt: CMakeLists.txt
|
|
$(CMAKE) -S . -B $(BUILD_RELEASE) -DCMAKE_BUILD_TYPE=Release
|
|
touch $(BUILD_RELEASE)/CMakeCache.txt
|
|
|
|
$(BUILD_DEBUG)/CMakeCache.txt: CMakeLists.txt
|
|
$(CMAKE) -S . -B $(BUILD_DEBUG) -DCMAKE_BUILD_TYPE=Debug
|
|
touch $(BUILD_DEBUG)/CMakeCache.txt
|
|
|
|
test fixtures: $(BUILD_RELEASE)/CMakeCache.txt
|
|
$(CMAKE) --build $(BUILD_RELEASE) --target $@ --parallel
|
|
|
|
# Remove the disk and assemble it again. The image is bin/boot.2mg.
|
|
boot: $(BUILD_RELEASE)/CMakeCache.txt
|
|
rm -f bin/boot.2mg bin/PRODOS bin/BASIC.SYSTEM
|
|
rm -rf build/boot $(BUILD_RELEASE)/boot
|
|
$(CMAKE) --build $(BUILD_RELEASE) --target boot.2mg --parallel
|
|
|
|
clean:
|
|
@if [ -f $(BUILD_RELEASE)/CMakeCache.txt ]; then $(CMAKE) --build $(BUILD_RELEASE) --target clean; fi
|
|
rm -rf build
|
|
rm -f bin/qasm bin/qlink bin/makeBin bin/qomf bin/qpro bin/test_qasm bin/test_qlink bin/test_makebin bin/test_qomf bin/test_qpro
|
|
rm -f bin/debug/qasm bin/debug/qlink bin/debug/makeBin bin/debug/qomf bin/debug/qpro bin/debug/test_qasm bin/debug/test_qlink bin/debug/test_makebin bin/debug/test_qomf bin/debug/test_qpro
|
|
rm -f bin/boot.2mg bin/PRODOS bin/BASIC.SYSTEM
|
|
rm -f bin/debug/boot.2mg bin/debug/PRODOS bin/debug/BASIC.SYSTEM
|