Compiling the tools is really easy. Only setting up the cross compilation environment requires a little more effort. But luckily, the osxcross project already took care of this.
I needed only these (the others were already present):
sudo apt install clang llvm-dev uuid-dev libssl-dev libbz2-dev
Full list of all dependencies:
sudo apt install clang llvm-dev libxml2-dev uuid-dev libssl-dev bash patch make tar xz-utils bzip2 gzip sed cpio libbz2-dev
Extract the needed files from the official SDKs Xcode 7.3 from the Apple Developer website using the scripts that come with osxcross:
sudo apt install cmake libxml2-dev fuse libfuse-dev
./tools/gen_sdk_package_darling_dmg.sh path/to/SDK-file
On Ubuntu-based distributions with a name not containing the string "ubuntu"
(like Linux Mint) you will get an error message "Required kernel module
'fuse' not loaded". To fix this, "echo out" the line modinfo fuse &>/dev/null in tools/gen_sdk_package_darling_dmg.sh by changing it to echo modinfo fuse &>/dev/null before running it (don't delete it or comment it
out).
diff --git a/tools/gen_sdk_package_darling_dmg.sh b/tools/gen_sdk_package_darling_dmg.sh
index 8cd23e5..b271450 100755
--- a/tools/gen_sdk_package_darling_dmg.sh
+++ b/tools/gen_sdk_package_darling_dmg.sh
@@ -40,7 +40,7 @@ command -v lsb_release 2>&1 > /dev/null
if [[ $? -eq 0 ]] && [[ -n $(lsb_release -a 2>&1 | grep -i ubuntu) ]]; then
echo "Using ubuntu, skipping fuse module check"
else
- modinfo fuse &>/dev/null
+ echo modinfo fuse &>/dev/null
fi
if [ $? -ne 0 ]; thenNow move the resulting file MacOSX10.11.sdk.tar.xz into the tarball directory.
Somebody was kind enough to set up a repository with all the MacOSX SDKs. This saves you the trouble of downloading multiple gigabytes of data and running the extraction script.
Download the file MacOSX10.11.sdk.tar.xz into the tarball directory.
./build.sh
sudo mv target /opt/osxcross
Add /opt/osxcross/bin to your $PATH and prepare macports:
export MACOSX_DEPLOYMENT_TARGET=10.7
export PATH=$PATH:/opt/osxcross/bin
osxcross-macports update-cache
osxcross-macports install libusb-devel
make CC=o64-clang CXX=o64-clang++ PKGCONFIG=x86_64-apple-darwin15-pkg-config RELEASE=yes
Or with full path if you didn't add the osxcross binary directory do your PATH:
make CC=/opt/osxcross/bin/o64-clang CXX=/opt/osxcross/bin/o64-clang++ PKGCONFIG=/opt/osxcross/bin/x86_64-apple-darwin15-pkg-config RELEASE=yes
make CC=o64-clang
That's all!