Build a mingw32-make.exe when cross building toolchains
This can be used e.g. for building Qt without any MSYS installation, and should also work for cmake, if using the mingw makefiles generator.
This commit is contained in:
1 parent
57c4f47db3
commit
c8d181fa90
3 files changed
+61
No files matched your search
@@ -40,6 +40,9 @@ 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
|
||||
|
||||
COPY build-make.sh .
|
||||
RUN ./build-make.sh $CROSS_TOOLCHAIN_PREFIX --host=$HOST
|
||||
|
||||
ARG TAG
|
||||
RUN ln -s $CROSS_TOOLCHAIN_PREFIX llvm-mingw && \
|
||||
zip -9r /llvm-mingw-$TAG$CROSS_ARCH.zip llvm-mingw && \
|
||||
|
||||
@@ -18,3 +18,4 @@ HOST=$CROSS_ARCH-w64-mingw32
|
||||
./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
|
||||
./build-make.sh $PREFIX --host=$HOST
|
||||
Executable
+57
@@ -0,0 +1,57 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
unset HOST
|
||||
|
||||
: ${MAKE_VERSION:=4.2.1}
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--host=*)
|
||||
HOST="${1#*=}"
|
||||
;;
|
||||
*)
|
||||
PREFIX="$1"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
if [ -z "$PREFIX" ]; then
|
||||
echo $0 [--host=<triple>] dest
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$PREFIX"
|
||||
PREFIX="$(cd "$PREFIX" && pwd)"
|
||||
|
||||
: ${CORES:=$(nproc 2>/dev/null)}
|
||||
: ${CORES:=$(sysctl -n hw.ncpu 2>/dev/null)}
|
||||
: ${CORES:=4}
|
||||
: ${ARCHS:=${TOOLCHAIN_ARCHS-i686 x86_64 armv7 aarch64}}
|
||||
|
||||
download() {
|
||||
if [ -n "$(which wget)" ]; then
|
||||
wget "$1"
|
||||
else
|
||||
curl -LO "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ ! -d make-$MAKE_VERSION ]; then
|
||||
download https://ftp.gnu.org/gnu/make/make-$MAKE_VERSION.tar.bz2
|
||||
tar -jxf make-$MAKE_VERSION.tar.bz2
|
||||
fi
|
||||
|
||||
cd make-$MAKE_VERSION
|
||||
|
||||
if [ -n "$HOST" ]; then
|
||||
CONFIGFLAGS="$CONFIGFLAGS --host=$HOST"
|
||||
CROSS_NAME=-$HOST
|
||||
fi
|
||||
|
||||
mkdir -p build$CROSS_NAME
|
||||
cd build$CROSS_NAME
|
||||
../configure --prefix="$PREFIX" $CONFIGFLAGS --program-prefix=mingw32- --enable-job-server LDFLAGS="-Wl,-s"
|
||||
make -j$CORES
|
||||
make install-binPROGRAMS
|
||||
Reference in new issue
Block a user