I thought I'd check this out. I'm on MacOS 26.2, and have Xode 26.3 installed. At some point I installed Homebrew and updated it so that libffi was updated to 3.5.2, which apparently is required. Seems the code provided is for python2, but I have python 3.13.7 installed. Also seems to be coded for openSSL 1.x, but current is openSSL 3.x
I had quite some difficulty actually compiling for ARM. I managed in the end to get a success message on compile with *a lot* of input from Claude AI.
EDIT: The crash on launch was because I missed your last 2 steps after
make compile-mac
Actually launches well now - thank you!
PS: The changes required to get this to build are below. Some of this may just be AI confabulating, but was the only way I could get 'Success' on make compile-mac:
1.
Build libffi from source for ARM64
The prebuilt libffi.a was missing. Run prebuilt/scripts/build-libffi-mac-arm64.sh to compile it from the bundled source in thirdparty/libffi/git_master/.
2.
Fix python → python3 symlink
gen_icu_data_remove_list script called python (Python 2), which no longer exists on modern macOS:
sudo ln -s /usr/bin/python3 /usr/local/bin/python
3.
Build missing third-party libraries from source
Several prebuilt .a files were absent. Built them via Xcode and copied to prebuilt/lib/mac/:
libskia, libsqlite, libxml, libzip, libcairo, libxslt, libiodbc
4.
Copy libffi headers into the build include path
ffi.h, ffitarget.h, ffi_arm64.h, and related headers from thirdparty/libffi/git_master/darwin_common/include/ copied to _build/mac/Debug/include/.
5.
OpenSSL 3.x API renames in prebuilt headers
The prebuilt .a libraries were OpenSSL 3.x but the headers still declared OpenSSL 1.x names. Fixed by renaming declarations and adding backward-compat macros:
prebuilt/include/openssl/evp.h — renamed declarations and appended:
c# define EVP_CIPHER_CTX_block_size EVP_CIPHER_CTX_get_block_size
# define EVP_CIPHER_CTX_key_length EVP_CIPHER_CTX_get_key_length
# define EVP_CIPHER_key_length EVP_CIPHER_get_key_length
prebuilt/include/openssl/ssl.h — renamed declaration and appended:
c# define SSL_get_peer_certificate SSL_get1_peer_certificate
6.
Update ssl.stubs to match OpenSSL 3.x symbol names
thirdparty/libopenssl/ssl.stubs is the source for the generated weak stub library. Updated four entries:
EVP_CIPHER_key_length → EVP_CIPHER_get_key_length
EVP_CIPHER_CTX_key_length → EVP_CIPHER_CTX_get_key_length
EVP_CIPHER_CTX_block_size → EVP_CIPHER_CTX_get_block_size
SSL_get_peer_certificate → SSL_get1_peer_certificate
Then deleted the stale _build/mac/Debug/libopenssl_stubs.a to force regeneration.
7.
Install libffi 3.5.2 via Homebrew
The Xcode project hardcoded /opt/homebrew/Cellar/libffi/3.5.2/. Updated Homebrew to get the exact version:
bashbrew update && brew upgrade libffi
Also copied `ffi.h` and `ffitarget.h` from Homebrew into `prebuilt/include/`.
**9. Rebuild `libsqlite.a` with missing C++ dataset classes**
The prebuilt `libsqlite.a` only contained the raw SQLite C API. The C++ wrapper classes needed by `dbsqlite` were never compiled in. Manually compiled and added to the archive:
thirdparty/libsqlite/src/dataset.cpp
thirdparty/libsqlite/src/qry_dat.cpp
thirdparty/libsqlite/src/sqlitedataset.cpp
thirdparty/libsqlite/src/sqlitedecode.cpp
Rebuilt the archive cleanly by deleting the old one first and using ar rcs from scratch.