From fb4862b0d67ab2600f6ca3c923a99913b5eeee1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Tue, 25 Sep 2018 13:28:47 +0300 Subject: [PATCH] Split out building widl to a separate shell script When cross compiling a llvm-mingw toolchain, we need to build widl for the intended host environment as well. --- Dockerfile | 2 +- Dockerfile.dev | 2 +- build-mingw-w64-widl.sh | 29 +++++++++++++++++++++++++++++ build-mingw-w64.sh | 11 ++--------- 4 files changed, 33 insertions(+), 11 deletions(-) create mode 100755 build-mingw-w64-widl.sh diff --git a/Dockerfile b/Dockerfile index fc5ff56..4ced091 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,7 +32,7 @@ RUN ./install-wrappers.sh $TOOLCHAIN_PREFIX && \ rm -rf /build # Build MinGW-w64, compiler-rt and mingw-w64's extra libraries -COPY build-mingw-w64.sh build-compiler-rt.sh build-mingw-w64-libraries.sh ./ +COPY build-mingw-w64.sh build-mingw-w64-widl.sh build-compiler-rt.sh build-mingw-w64-libraries.sh ./ RUN ./build-mingw-w64.sh $TOOLCHAIN_PREFIX && \ ./build-compiler-rt.sh $TOOLCHAIN_PREFIX && \ ./build-mingw-w64-libraries.sh $TOOLCHAIN_PREFIX && \ diff --git a/Dockerfile.dev b/Dockerfile.dev index 7ce79fb..a4ded80 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -37,7 +37,7 @@ COPY install-wrappers.sh . RUN ./install-wrappers.sh $TOOLCHAIN_PREFIX # Build MinGW-w64 -COPY build-mingw-w64.sh . +COPY build-mingw-w64.sh build-mingw-w64-widl.sh ./ RUN ./build-mingw-w64.sh $TOOLCHAIN_PREFIX # Build compiler-rt diff --git a/build-mingw-w64-widl.sh b/build-mingw-w64-widl.sh new file mode 100755 index 0000000..04fb11f --- /dev/null +++ b/build-mingw-w64-widl.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +set -e + +if [ $# -lt 1 ]; then + echo $0 dest + exit 1 +fi +PREFIX="$1" +# Not adding $PREFIX/bin to $PATH here, since that is expected to be +# a cross toolchain; the compiler is expected to be in $PATH already here. + +: ${CORES:=4} +: ${ARCHS:=${TOOLCHAIN_ARCHS-i686 x86_64 armv7 aarch64}} + +if [ -n "$HOST" ]; then + CONFIGFLAGS="--host=$HOST" + CROSS_NAME=$HOST- +fi + +cd mingw-w64/mingw-w64-tools/widl +for arch in $ARCHS; do + mkdir -p build-$CROSS_NAME$arch + cd build-$CROSS_NAME$arch + ../configure --prefix=$PREFIX --target=$arch-w64-mingw32 $CONFIGFLAGS INSTALL="install -s" + make -j$CORES + make install + cd .. +done diff --git a/build-mingw-w64.sh b/build-mingw-w64.sh index b74e2c7..d586ac1 100755 --- a/build-mingw-w64.sh +++ b/build-mingw-w64.sh @@ -63,12 +63,5 @@ for arch in $ARCHS; do done cd .. -cd mingw-w64-tools/widl -for arch in $ARCHS; do - mkdir -p build-$arch - cd build-$arch - ../configure --prefix=$PREFIX --target=$arch-w64-mingw32 INSTALL="install -s" - make -j$CORES - make install - cd .. -done +cd .. +./build-mingw-w64-widl.sh "$PREFIX"