diff --git a/Dockerfile.cross b/Dockerfile.cross index fbb1529..23b9b45 100644 --- a/Dockerfile.cross +++ b/Dockerfile.cross @@ -25,18 +25,18 @@ ENV HOST=$CROSS_ARCH-w64-mingw32 ARG FULL_LLVM COPY build-llvm.sh . -RUN ./build-llvm.sh $CROSS_TOOLCHAIN_PREFIX +RUN ./build-llvm.sh $CROSS_TOOLCHAIN_PREFIX --host=$HOST COPY strip-llvm.sh . RUN ./strip-llvm.sh $CROSS_TOOLCHAIN_PREFIX ARG TOOLCHAIN_ARCHS="i686 x86_64 armv7 aarch64" COPY build-mingw-w64.sh ./ -RUN ./build-mingw-w64.sh $CROSS_TOOLCHAIN_PREFIX --skip-include-triplet-prefix +RUN ./build-mingw-w64.sh $CROSS_TOOLCHAIN_PREFIX --skip-include-triplet-prefix --host=$HOST COPY wrappers/*.sh wrappers/*.c wrappers/*.h ./wrappers/ COPY install-wrappers.sh . -RUN ./install-wrappers.sh $CROSS_TOOLCHAIN_PREFIX +RUN ./install-wrappers.sh $CROSS_TOOLCHAIN_PREFIX --host=$HOST COPY prepare-cross-toolchain.sh . RUN ./prepare-cross-toolchain.sh $TOOLCHAIN_PREFIX $CROSS_TOOLCHAIN_PREFIX $CROSS_ARCH diff --git a/build-cross-tools.sh b/build-cross-tools.sh index fa2e614..4cf058e 100755 --- a/build-cross-tools.sh +++ b/build-cross-tools.sh @@ -12,10 +12,10 @@ CROSS_ARCH="$3" export PATH=$NATIVE/bin:$PATH export EXEEXT=.exe -export HOST=$CROSS_ARCH-w64-mingw32 +HOST=$CROSS_ARCH-w64-mingw32 -./build-llvm.sh $PREFIX +./build-llvm.sh $PREFIX --host=$HOST ./strip-llvm.sh $PREFIX -./build-mingw-w64.sh $PREFIX --skip-include-triplet-prefix -./install-wrappers.sh $PREFIX +./build-mingw-w64.sh $PREFIX --skip-include-triplet-prefix --host=$HOST +./install-wrappers.sh $PREFIX --host=$HOST ./prepare-cross-toolchain.sh $NATIVE $PREFIX $CROSS_ARCH diff --git a/build-llvm.sh b/build-llvm.sh index f51bd89..b30d845 100755 --- a/build-llvm.sh +++ b/build-llvm.sh @@ -4,19 +4,28 @@ set -e ASSERTS=OFF BUILDDIR=build +unset HOST while [ $# -gt 0 ]; do - if [ "$1" = "--disable-asserts" ]; then + case "$1" in + --disable-asserts) ASSERTS=OFF BUILDDIR=build - elif [ "$1" = "--enable-asserts" ]; then + ;; + --enable-asserts) ASSERTS=ON BUILDDIR=build-asserts - elif [ "$1" = "--full-llvm" ]; then + ;; + --full-llvm) FULL_LLVM=1 - else + ;; + --host=*) + HOST="${1#*=}" + ;; + *) PREFIX="$1" - fi + ;; + esac shift done if [ -z "$CHECKOUT_ONLY" ]; then diff --git a/build-mingw-w64.sh b/build-mingw-w64.sh index 771dde7..aa3b9e3 100755 --- a/build-mingw-w64.sh +++ b/build-mingw-w64.sh @@ -4,6 +4,7 @@ set -e DEFAULT_WIN32_WINNT=0x600 DEFAULT_MSVCRT=ucrt +unset HOST while [ $# -gt 0 ]; do case "$1" in @@ -16,6 +17,9 @@ while [ $# -gt 0 ]; do --with-default-msvcrt=*) DEFAULT_MSVCRT="${1#*=}" ;; + --host=*) + HOST="${1#*=}" + ;; *) PREFIX="$1" ;; diff --git a/install-wrappers.sh b/install-wrappers.sh index 9e71a02..eb7c84f 100755 --- a/install-wrappers.sh +++ b/install-wrappers.sh @@ -2,11 +2,23 @@ set -e -if [ $# -lt 1 ]; then +unset HOST + +while [ $# -gt 0 ]; do + case "$1" in + --host=*) + HOST="${1#*=}" + ;; + *) + PREFIX="$1" + ;; + esac + shift +done +if [ -z "$PREFIX" ]; then echo $0 dest exit 1 fi -PREFIX="$1" mkdir -p "$PREFIX" PREFIX="$(cd "$PREFIX" && pwd)"