Repository navigation
Releases: mplsllc/macMAKE
Release list
macMAKE v0.1.1 — Linux Release
macMAKE v0.1.1 — Linux Release
macMAKE is a Linux-native development toolchain for creating Classic Macintosh applications. macMAKE v0.1.1 delivers seven release enhancements, verified Mac OS 9.2.2 runtime acceptance, independent native Motorola 68000 application building, external Rust/XCOFF interop, CodeWarrior XML importing, profile-driven QEMU emulation, and full telemetry opt-out.
Included capabilities and enhancements
- Installer and First Application: Fixed case-sensitive library lookup to match the actual layout in
macMAKELibsrepository (MSL_C/MSL_MacOS/Lib/PPC/MSL_C_Carbon.Lib,MSL_Runtime_PPC_D.Lib,MSL_Extras/MSL_MacOS/Lib/PPC/MSL_Extras_Carbon.Lib). Verified safe extraction, SHA-256 validation, incremental rebuilds, and clean unprivileged onboarding. - Streamlined SDK Setup: Added
macmake sdk fetch --minimalusing sparse git checkout to retrieve the pinned Universal Interfaces subset with SHA-256 validation. Providedsetup-user-msl.shhelper to verify and stage user-supplied MSL archives without redistributing proprietary SDK materials. - Independent Native Motorola 68000 Application Backend: Bundled GNU GCC 12.2.0 and GNU Binutils 2.46.1 for target
m68k-unknown-elf, building bounded C89 applications with CODE 0/1 segments, Toolbox veneers, Finder metadata, and MacBinary II packaging without Retro68. Documented a sequenced roadmap separating toolchain capabilities from application-specific observations. - External Rust-to-Classic XCOFF Interop: Added
examples/classic-rust-interop, demonstrating consumption of big-endian PowerPC XCOFF objects emitted by external pinned Rust nightly (powerpc-apple-macos.json), with macMAKE handling native CFM/PEF linking, resources, and MacBinary packaging. - CodeWarrior XML Import & Classilla Build Boundary: Added
macmake import-cw-xmlfeature matrix and practical workflow guide indocs/codewarrior-xml-and-classilla.mdfor converting historical XML project exports intomacmake.toml. Documented the Classilla 128-target inventory and package assembly boundaries. - Optional Emulator Execution (
macmake run): Added profile-driven QEMU Mac OS 9.2.2 runner with copy-on-write disk protection, P6 PPM screenshot capture and validation, and structured run reports. Known nonblocking issue: prompt repetition on 250ms timeouts during interactive wait. - Analytics Opt-Out: Provided complete telemetry opt-out via
--no-analyticsinstaller flag,MACMAKE_DISABLE_ANALYTICS=1environment variable, and persistent configuration preference marker.
Verified Mac OS 9.2.2 runtime acceptance
macMAKE v0.1.1 has verified real-guest runtime acceptance:
- Environment: QEMU 8.2.2,
mac99/ G4, 1 GiB RAM, 800×600 guest display, running Mac OS 9.2.2. - Application fixture: makePAD MacBinary (SHA-256
505a3b1deb62ffc396537b1010c8f23921f4ae4308ac6ee989ccf7cd285ca3d1). - Runtime observations: The application launched from the guest volume, interactive text entry was confirmed ("rc7 runtime ok"), the application window rendered the text, File > Quit invoked the unsaved-changes dialog, choosing "Don't Save" closed the dialog, and the guest returned cleanly to Finder.
- Screenshot evidence: Unmodified P6 PPM captures at
guest_boot.ppm(SHA-2567dc1fce7441346067023e89d542dc95e9c2e91006e26703769a4326a7c8e6ab2) andapplication_state.ppm(SHA-2562fc378da228afdb12490e3079eb913d2e485f79c8e87966758e152cf61de8bf1). - Disk integrity: Base guest disk hash unchanged (SHA-256
5998d787dea695734948a52285e7b57d6cae840f2681a174f98e33ec9e8045e8).
Support boundaries and current limitations
- Host platform: Linux x86-64 only. macOS and Windows hosts are not supported.
- Qualified primary target: Classic Mac OS 9 PowerPC CFM/PEF applications, primarily in C.
- Experimental 68K profile: C89, one near-model CODE 1 segment, CODE 0 jump table/startup, bounded PC-relative file-backed data, and no external linked libraries. CFM-68K and multi-segment A5 applications are not supported in v0.1.1.
- Rust integration: Demonstrates CLI integration with external big-endian PowerPC XCOFF objects from a pinned Rust nightly compiler. macMAKE does not bundle
rustcor compile Rust source directly. - C++ support: Limited to preview syntax without Itanium ABI runtime parity, general RTTI, exception handling, or
libstdc++. - CodeWarrior XML import: Handles project structure, source membership, and access paths from XML exports; does not read proprietary binary
.mcpfiles. - Third-party SDK material: Apple Universal Interfaces and Metrowerks MSL are proprietary historical materials. Users must supply files they are authorized to use.
Working examples
The release includes reproducible, inspectable examples:
examples/first-app/: Two-source Classic PowerPC C application demonstrating Universal Interfaces imports, MSL linking, and MacBinary packaging.examples/first-app/hello-window-68k/: Experimental native Motorola 68000 HelloWindow application using CODE resources without Retro68.examples/classic-rust-interop/: External Rust-to-PowerPC XCOFF interop example linking Rust scalar code with a Classic C caller.docs/codewarrior-xml-and-classilla.md: Step-by-step guide and feature matrix for CodeWarrior XML importing.
Installation
Install macMAKE for the current Linux user:
curl -fsSL https://macmake.dev/install.sh | bashTo opt out of post-install completion telemetry:
curl -fsSL https://macmake.dev/install.sh | bash -s -- --no-analyticsTo fetch the versioned minimal SDK subset during installation (requires authorization for Apple Universal Interfaces):
curl -fsSL https://macmake.dev/install.sh | bash -s -- --with-sdkLicensing and corresponding source
The macMAKE CLI executable and proprietary core are closed-source software under the macMAKE Proprietary Binary License v1.0. It permits free development, testing, agentic coding, and commercial software creation while restricting redistribution of the proprietary binary. Developers retain complete ownership of applications they build with macMAKE.
The toolchain bundles GNU GCC 12.2.0 and GNU Binutils 2.46.1 executables for PowerPC and Motorola 68000 targets. These remain licensed under the GPL and their respective terms. The matching GNU corresponding source release is published at:
macmake-v0.1.1-rc4-toolchain-sources (archive SHA-256 ddd3b20cbaf3e2cbdca4ed5f61f34946065f71089b9ea7a99bac188213145433).
Release Assets
macmake-v0.1.1-linux-x86_64.tar.xz(73,934,728 bytes)
SHA-256:d83c173d4184a67738df3bad7d0cadb2b6eab45fa2cc06df89f9f7eff4bd0656macmake-v0.1.1-linux-x86_64.tar.xz.sha256macmake-v0.1.1-component-manifest.jsonmacmake-v0.1.1-file-inventory.txt
macMAKE v0.1.0 — Initial Linux Release
macMAKE v0.1.0 — Initial Linux Release
macMAKE is a Linux-native development environment for Classic Macintosh PowerPC applications. This release provides a C-focused workflow designed around CodeWarrior-style project semantics and native CFM/PEF application output.
Included capabilities
- Native PowerPC cross-compilation with the bundled GCC 12.2.0 toolchain.
- CodeWarrior-style project configuration and explicit source membership.
- Native CFM linking and PEF generation.
- Application resources, Finder metadata, and MacBinary II packaging.
- SDK catalog, diagnostics, and incremental builds.
- Comprehensive offline CLI help, deterministic JSON help, and a machine-readable manifest schema.
- Workflows suited to coding agents while keeping the installed CLI as the version-specific reference.
Tested support boundary
Linux x86-64 → Classic Mac OS 9 PowerPC CFM/PEF applications, primarily C.
Earlier PowerPC versions of System 7 and Mac OS 8 have not yet been verified. Native 68K application generation and Mac OS X targets are unsupported in v0.1. This is not a complete CodeWarrior replacement; broad C++ compatibility is outside the release.
macMAKE has historical MacSurf runtime evidence on Mac OS 9.2.2 from a development build. A post-release attempt with the public v0.1.0 binary entered the canonical 983-source MacSurf build but stopped while compiling malformed MacSurf source, before link or packaging. No MacSurf artifact was produced by that attempt, and the released binary has not been tested at runtime on a Macintosh OS. The OS-by-OS compatibility tracker keeps this attempt separate from historical MacSurf runtime evidence and the successful release sample build.
The Linux distribution does not include Apple Universal Interfaces, Metrowerks MSL, or other proprietary historical SDK material. Users must supply SDK and runtime files they are authorized to use.
Installation
Use the macMAKE installation guide. The versioned archive can also be installed manually. Verify downloads with the attached SHA-256 file.
Licensing and corresponding source
The macMAKE executable is proprietary under the MPLS LLC Proprietary Binary License v1.0. GCC, GNU Binutils, compiler runtime files, Rust dependencies, and the example retain their separate applicable licenses. The proprietary license does not restrict rights granted by those third-party licenses. Developers retain ownership of independent applications they create with macMAKE.
The matching GNU corresponding source for GCC 12.2.0, Binutils 2.46.1, and included runtime materials is published at macmake-v0.1.0-toolchain-sources.
Assets
The Linux archive is macmake-v0.1.0-linux-x86_64.tar.xz. The attached checksum, component manifest, and file inventory describe this exact distribution.