Skip to content

Apple Silicon support

Albert Gräf requested to merge aggraef/purr-data:m1-support into master

I found that previous Intel builds on macOS did not work on new Apple Silicon (M1, M2) Macs, mainly due to GUI issues, and the source wouldn't compile on my M1 Air either, so I set out to do a proper port which includes the following compilation fixes and updates required to make Purr Data work on that platform:

  • nw.js updated to 0.71.0 (macOS only)
  • bundled portaudio updated to the latest stable release (19.7.0)
  • fixes to scripts and Makefiles required to make the source compile properly on Apple Silicon Macs
  • backported some macOS arm64 related fixes from vanilla


  • The full native arm64 build doesn't work yet. It crashes in seemingly random places during launch. I haven't been able to sort those out yet, maybe someone else who is more proficient with macOS arm64 will be more lucky.
  • For the time being, use the Intel build from this branch instead, it works fine on arm64 via Rosetta 2. The native arm64 light build seems to work fine, too.
  • While nw.js 0.71.0 appears to work fine on macOS, I couldn't get it to work properly on Linux, and thus the Linux and Windows builds still use the tried and tested 0.28.3. (Slight version bump from 0.28.1 to 0.28.3 there, which is the final point release in the 0.28 series which we've been using for some years now.)
  • There's no official native macOS arm64 build of nw.js yet, so we use the Intel one, which reportedly works fine via Rosetta 2.

Tested on macOS (Intel Big Sur 11.7.2, M1 Ventura 13.1) with the latest Xcode and Homebrew, as well as on Linux and Windows.

Test builds of this branch (at rev. e0562d0b) for macOS (full Intel build, as well as arm64 light) and Windows can be found on my university seafile:

Test builds of the same revision for various Linux systems can be found on the OBS:

See below for some notes on how to do an Intel build on Mac M1/M2, if you want to roll your own.

Edited by Albert Gräf

Merge request reports