|
|
@@ -56,26 +56,46 @@ $(toolchain-win): $(crosstool-ng) |
|
|
|
CT_PREFIX="$(LOCAL_DIR)" ct-ng build$(JOBS_CT_NG) |
|
|
|
rm -rf .build .config build.log /home/build/src |
|
|
|
|
|
|
|
OSXCROSS_CLANG_VERSION := 15.0.7 |
|
|
|
OSXCROSS_BINUTILS_VERSION := 2.37 |
|
|
|
|
|
|
|
toolchain-mac := $(LOCAL_DIR)/osxcross |
|
|
|
toolchain-mac: $(toolchain-mac) |
|
|
|
$(toolchain-mac): export PATH := $(LOCAL_DIR)/osxcross/bin:$(PATH) |
|
|
|
$(toolchain-mac): |
|
|
|
# Download osxcross |
|
|
|
# Obtain osxcross sources. |
|
|
|
# FIXME Use official osxcross version when workaround from our fork are not required anymore. |
|
|
|
git clone "https://github.com/cschol/osxcross.git" osxcross |
|
|
|
cd osxcross && git checkout 12f179126df156fb65515cccf140f4b634967baa |
|
|
|
cd osxcross && git checkout ae54314c24a959cd90ebb1f3aff3507677d36591 |
|
|
|
|
|
|
|
# Build osxcross |
|
|
|
# Build a custom clang compiler using the system's gcc compiler. |
|
|
|
# This enables us to have custom compiler environment needed for cross-compilation. |
|
|
|
cd osxcross && UNATTENDED=1 INSTALLPREFIX="$(LOCAL_DIR)" GITPROJECT=llvm CLANG_VERSION=$(OSXCROSS_CLANG_VERSION) OCDEBUG=1 ENABLE_CLANG_INSTALL=1 JOBS=$(JOBS) ./build_clang.sh |
|
|
|
|
|
|
|
## Build osxcross. |
|
|
|
cp MacOSX11.1.sdk.tar.* osxcross/tarballs/ |
|
|
|
cd osxcross && PATH="$(LOCAL_DIR)/bin:$(PATH)" UNATTENDED=1 TARGET_DIR="$(LOCAL_DIR)/osxcross" JOBS=$(JOBS) ./build.sh |
|
|
|
|
|
|
|
# Download rcodesign binary to ad-hoc sign arm64 plugin builds on Linux |
|
|
|
## Build compiler-rt. |
|
|
|
cd osxcross && ENABLE_COMPILER_RT_INSTALL=1 JOBS=$(JOBS) ./build_compiler_rt.sh |
|
|
|
|
|
|
|
## Build MacOS binutils and build LLVM gold. |
|
|
|
cd osxcross && BINUTILS_VERSION=$(OSXCROSS_BINUTILS_VERSION) TARGET_DIR="$(LOCAL_DIR)/osxcross" JOBS=$(JOBS) ./build_binutils.sh |
|
|
|
cd osxcross/build/build_stage && cmake . -DLLVM_BINUTILS_INCDIR=$(PWD)/osxcross/build/binutils-$(OSXCROSS_BINUTILS_VERSION)/include && make install -j $(JOBS) |
|
|
|
|
|
|
|
## Download rcodesign binary to ad-hoc sign arm64 plugin builds in a cross-compilation environment. |
|
|
|
wget --continue "https://github.com/indygreg/apple-platform-rs/releases/download/apple-codesign%2F0.22.0/apple-codesign-0.22.0-x86_64-unknown-linux-musl.tar.gz" |
|
|
|
tar -xvf apple-codesign-0.22.0-x86_64-unknown-linux-musl.tar.gz |
|
|
|
rm apple-codesign-0.22.0-x86_64-unknown-linux-musl.tar.gz |
|
|
|
cp ./apple-codesign-0.22.0-x86_64-unknown-linux-musl/rcodesign $(LOCAL_DIR)/osxcross/bin/ |
|
|
|
rm -r apple-codesign-0.22.0-x86_64-unknown-linux-musl |
|
|
|
|
|
|
|
# TODO Fix library paths. |
|
|
|
# Background: clang build adds `x86_64-unknown-linux-gnu` on Arch, |
|
|
|
# but cross-compilation environment for macOS platform does not expect it. |
|
|
|
# As a result libcxx-abi.so.1 cannot be found. |
|
|
|
cp $(LOCAL_DIR)/lib/x86_64-unknown-linux-gnu/* $(LOCAL_DIR)/lib/ |
|
|
|
|
|
|
|
rm -rf osxcross |
|
|
|
|
|
|
|
|
|
|
@@ -235,10 +255,10 @@ dep-ubuntu: |
|
|
|
|
|
|
|
dep-arch-linux: |
|
|
|
pacman -Suyy --noconfirm && pacman -S --noconfirm --needed \ |
|
|
|
gcc \ |
|
|
|
git \ |
|
|
|
cmake \ |
|
|
|
patch \ |
|
|
|
clang \ |
|
|
|
python3 \ |
|
|
|
automake \ |
|
|
|
help2man \ |
|
|
|