COMMUNITY

Compiling HashLink on macOS Apple Silicon

The current instructions to build HashLink on macOS don’t work on new Apple Silicon CPUs. However, I think that I’ve figured out how build for x86_64 on Apple Silicon.

First, install the Intel version of Homebrew using the following command:

arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

You can have both Apple Silicon and Intel versions of Homebrew installed at the same time because the Apple Silicon version uses /opt/homebrew and the Intel version uses /usr/local/.

Once you get the right version of Homebrew, you need to run slightly different commands when building HashLink.

When the HashLink build instructions say to run brew bundle, you must run it with the Intel version (you might not need the arch -x86_64 part of this command, but I used it to be safe)

arch -x86_64 /usr/local/bin/brew bundle

Then, when running make, you must add arch -x86_64 before it (the arch part definitely not optional on this command) to ensure that it compiles for Intel instead of Apple Silicon.

arch -x86_64 make

When it builds successfully, you can run ./hl to verify that it worked. Here’s the output that I see:

HL/JIT 1.12.0 (c)2015-2020 Haxe Foundation
  Usage : hl [--debug <port>] [--debug-wait] <file>

Hopefully, this helps someone else!

5 Likes