Skip to content

Releases: mplsllc/macMAKE

macMAKE v0.1.1 — Linux Release

Choose a tag to compare

@mplsllc mplsllc released this 18 Oct 22:01

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

  1. Installer and First Application: Fixed case-sensitive library lookup to match the actual layout in macMAKELibs repository (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.
  2. Streamlined SDK Setup: Added macmake sdk fetch --minimal using sparse git checkout to retrieve the pinned Universal Interfaces subset with SHA-256 validation. Provided setup-user-msl.sh helper to verify and stage user-supplied MSL archives without redistributing proprietary SDK materials.
  3. 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.
  4. 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.
  5. CodeWarrior XML Import & Classilla Build Boundary: Added macmake import-cw-xml feature matrix and practical workflow guide in docs/codewarrior-xml-and-classilla.md for converting historical XML project exports into macmake.toml. Documented the Classilla 128-target inventory and package assembly boundaries.
  6. 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.
  7. Analytics Opt-Out: Provided complete telemetry opt-out via --no-analytics installer flag, MACMAKE_DISABLE_ANALYTICS=1 environment 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-256 7dc1fce7441346067023e89d542dc95e9c2e91006e26703769a4326a7c8e6ab2) and application_state.ppm (SHA-256 2fc378da228afdb12490e3079eb913d2e485f79c8e87966758e152cf61de8bf1).
  • 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 rustc or 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 .mcp files.
  • 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:

Installation

Install macMAKE for the current Linux user:

curl -fsSL https://macmake.dev/install.sh | bash

To opt out of post-install completion telemetry:

curl -fsSL https://macmake.dev/install.sh | bash -s -- --no-analytics

To fetch the versioned minimal SDK subset during installation (requires authorization for Apple Universal Interfaces):

curl -fsSL https://macmake.dev/install.sh | bash -s -- --with-sdk

Licensing 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: d83c173d4184a67738df3bad7d0cadb2b6eab45fa2cc06df89f9f7eff4bd0656
  • macmake-v0.1.1-linux-x86_64.tar.xz.sha256
  • macmake-v0.1.1-component-manifest.json
  • macmake-v0.1.1-file-inventory.txt

macMAKE v0.1.0 — Initial Linux Release

Choose a tag to compare

@mplsllc mplsllc released this 13 Oct 18:20
5e0e354

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.