[CDG5] Newish CubeE build system
elliotnunn at fastmail.com
Wed Sep 19 16:33:25 AWST 2018
I have taken a little break from the NanoKernel and all of those tedious
external interrupt handlers. Of course I will come back to it, but
currently I am reconsidering the CubeE source tree, and how it can be
made to build more reliably.
The mac-rom repo <https://github.com/elliotnunn/mac-rom> currently
mashes all sorts of source, binary and build-system changes together,
along with plain-English instructions and scripts for making that mess
work with empw. Happily, we can currently build a byte-perfect copy of
the final NewWorld ROM release. Still, I see problems with this setup.
First, it depends on several software components that might go away at
- empw itself
- macOS's non-plus HFS support (currently read-only)
- a resource-fork-savvy rsync version
- a resource-fork-savvy macOS version
- Xcode's MPW-era tools: SetFile, Rez...
Second, there are several changes to the makefile structure that help
accomodate the binary blobs we use, but that make it difficult to try to
build any other ROM versions. Rules have been commented out, empty files
created, ad nauseum.
(Yes, it was Daniel's email about "Lastly.Lib" actually being
"SizeMem.a.o" that sent me off on this tangent.)
I propose to produce a piece of software that can run on any modern PC,
and that uses only three core technologies to build CubeE:
- C (hell, maybe I'll give C++ a try)
- a Mac running MPW that can read HFS disk images
The general idea is that a single script converts a Git-friendly source
tree to an MPW-friendly disk image, allows you to feed that into your
emulated system of choice, and then extracts the build results. To get
acceptable performance with HFS disk images (unlike empw), direct
library calls into hfsutils (https://www.mars.org/home/rob/proj/hfs/)
will be necessary.
These two repos contain what I've got so far:
It would be rather sad if we lost access -- again! -- to the precious
ability to build the CubeE sources.
More information about the cdg5