From 2392a3909d59fdbc20e1f5919b58cf1566bab281 Mon Sep 17 00:00:00 2001 From: Nils Petter Eftedal Date: Tue, 24 Mar 2015 15:07:51 +0100 Subject: mingw.sh: updated script to support mingw versions above major 2 Added new functions to support changes in prefix and required vendor tuple for new versions of mingw. Tested and verified with mingw version 2.0.7, 3.3.0 and 4.0-rc3. Signed-off-by: Nils Petter Eftedal diff --git a/scripts/build/libc/mingw.sh b/scripts/build/libc/mingw.sh index 9a89df7..2d364cb 100644 --- a/scripts/build/libc/mingw.sh +++ b/scripts/build/libc/mingw.sh @@ -17,6 +17,13 @@ do_libc_check_config() { : } +do_set_mingw_install_prefix(){ + MINGW_INSTALL_PREFIX=/usr/${CT_TARGET} + if [[ ${CT_WINAPI_VERSION} == 2* ]]; then + MINGW_INSTALL_PREFIX=/usr + fi +} + do_libc_start_files() { local -a sdk_opts @@ -33,11 +40,12 @@ do_libc_start_files() { CT_DoLog EXTRA "Configuring Headers" + do_set_mingw_install_prefix CT_DoExecLog CFG \ "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/mingw-w64-headers/configure" \ --build=${CT_BUILD} \ --host=${CT_TARGET} \ - --prefix=/usr \ + --prefix=${MINGW_INSTALL_PREFIX} \ "${sdk_opts[@]}" CT_DoLog EXTRA "Compile Headers" @@ -45,7 +53,7 @@ do_libc_start_files() { CT_DoLog EXTRA "Installing Headers" CT_DoExecLog ALL make install DESTDIR=${CT_SYSROOT_DIR} - + CT_Popd # It seems mingw is strangely set up to look into /mingw instead of @@ -56,16 +64,32 @@ do_libc_start_files() { CT_EndStep } +do_check_mingw_vendor_tuple() +{ + if [[ ${CT_WINAPI_VERSION} == 4* ]]; then + CT_DoStep INFO "Checking vendor tuple configured in crosstool-ng .config" + if [[ ${CT_TARGET_VENDOR} == w64 ]]; then + CT_DoLog EXTRA "The tuple is set to '${CT_TARGET_VENDOR}', as recommended by mingw-64 team." + else + CT_DoLog WARN "WARNING! The tuple '${CT_TARGET_VENDOR}', is not equal to w64 and might break the toolchain! WARNING!" + fi + CT_EndStep + fi +} + do_libc() { + do_check_mingw_vendor_tuple + CT_DoStep INFO "Building mingw-w64 files" CT_DoLog EXTRA "Configuring mingw-w64-crt" CT_mkdir_pushd "${CT_BUILD_DIR}/build-mingw-w64-crt" + do_set_mingw_install_prefix CT_DoExecLog CFG \ "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/mingw-w64-crt/configure" \ - --prefix=/usr \ + --prefix=${MINGW_INSTALL_PREFIX} \ --build=${CT_BUILD} \ --host=${CT_TARGET} \ -- cgit v0.10.2-6-g49f6 From 00b68926a8a4575f0064ef0b01fd4a8d21dfb5ab Mon Sep 17 00:00:00 2001 From: Nils Petter Eftedal Date: Tue, 7 Apr 2015 11:04:39 +0200 Subject: mingw.sh: added with sysroot argument to mingw configure The argument will prevent the prefix path from being added as an include path while building mingw. Having the prefix as an include path might cause all kinds of weird issues if prefix directory also exists on the build machine. Signed-off-by: Nils Petter Eftedal diff --git a/scripts/build/libc/mingw.sh b/scripts/build/libc/mingw.sh index 2d364cb..94b7705 100644 --- a/scripts/build/libc/mingw.sh +++ b/scripts/build/libc/mingw.sh @@ -89,6 +89,7 @@ do_libc() { do_set_mingw_install_prefix CT_DoExecLog CFG \ "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/mingw-w64-crt/configure" \ + --with-sysroot=${CT_SYSROOT_DIR} \ --prefix=${MINGW_INSTALL_PREFIX} \ --build=${CT_BUILD} \ --host=${CT_TARGET} \ -- cgit v0.10.2-6-g49f6