For A2D, builds are done on macOS (locally) or Linux (github actions); no-one has pursued Windows successfully yet.
* cc65's ca65 cross-assembler
* Makefiles
* Cadius
* nulib2 for SHK files (optional)
... and lots and lots of bash scripts.
"make" produces the binaries. "make <flavor>" handles producing disk image packages (ZIPs of disk images, via Cadius), SHK files, populating a directory with metadata that can be mounted by the Virtual ][ emulator, or (my usual) install onto an existing disk image (via Cadius) - in my case, my preferred emulator's default boot image. I usually just run:
make && make install && open $EMU_PATH
... and a few seconds later the emulator is running the app. I'm able to install into a 2MG image that's already mounted in the emulator, so don't even need to reboot for even faster iteration, if the target (e.g. a desk accessory) is hot-loaded by the app. The same image files are my default for Ample/MAME so if I want to test another emulated machine it's almost as fast.
On Wednesday, April 5, 2023 at 6:21:42 PM UTC-7,
mark.l...@gmail.com wrote:
> A more specific question - I work on both Windows and Mac, but the Nox build process currently runs on Windows. Are there tools on the Mac side now to setup an automated build process? For some reason that didn't seem possible in 2015 (without custom development) though I don't recall why.
What do you consider missing from *your* automated build process? i.e. what were your pain points when working on Nox?
Potential improvements in *my* workflow would be:
* Continuous builds in the background while editing. Sometimes I open a background window and do builds in a loop.
* Parallel assembly, taking advantage of multiple cores. Not really a bottleneck, but couldn't hurt if output was clean.
* Better integration of my editor (Emacs) with build results - I'm boring and usually build in another window or shell out, rather than "living" in Emacs, so jumping to an error line is a bit tedious.
* Automatic dependency tracking, e.g. building makefiles from "include" references. Makefiles are a pain to make extremely accurate, so I usually just have wildcards for e.g. ../inc/* which works but means unnecessary incremental builds sometimes.
* Automated regression testing - difficult for a GUI app.