From b5deb9fc1ff16dd795261373991c5c0a240d6dc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Sat, 6 Oct 2018 00:26:00 +0300 Subject: [PATCH] Set a default target in wrapper scripts and executables --- install-wrappers.sh | 9 ++++++++- wrappers/clang-target-wrapper.c | 5 +++++ wrappers/clang-target-wrapper.sh | 4 ++++ wrappers/dlltool-wrapper.sh | 4 ++++ wrappers/ld-wrapper.sh | 4 ++++ wrappers/objcopy-wrapper.sh | 4 ++++ wrappers/windres-wrapper.sh | 4 ++++ 7 files changed, 33 insertions(+), 1 deletion(-) diff --git a/install-wrappers.sh b/install-wrappers.sh index 11eb335..8dcedef 100755 --- a/install-wrappers.sh +++ b/install-wrappers.sh @@ -23,11 +23,18 @@ esac if [ -n "$EXEEXT" ]; then CLANG_MAJOR=$(basename $(echo $PREFIX/lib/clang/* | awk '{print $NF}') | cut -f 1 -d .) - CTW_FLAGS="-municode -DCLANG=\"clang-$CLANG_MAJOR\"" + CTW_FLAGS="$CTW_FLAGS -municode -DCLANG=\"clang-$CLANG_MAJOR\"" fi mkdir -p $PREFIX/bin cp wrappers/*-wrapper.sh $PREFIX/bin +if [ -n "$HOST" ]; then + # TODO: If building natively on msys, pick up the default HOST value from there. + CTW_FLAGS="$CTW_FLAGS -DDEFAULT_TARGET=\"$HOST\"" + for i in wrappers/*-wrapper.sh; do + cat $i | sed 's/^DEFAULT_TARGET=.*/DEFAULT_TARGET='$HOST/ > $PREFIX/bin/$(basename $i) + done +fi $CC wrappers/change-pe-arch.c -o $PREFIX/bin/change-pe-arch$EXEEXT $CC wrappers/clang-target-wrapper.c -o $PREFIX/bin/clang-target-wrapper$EXEEXT -O2 -Wl,-s $CTW_FLAGS if [ -n "$EXEEXT" ]; then diff --git a/wrappers/clang-target-wrapper.c b/wrappers/clang-target-wrapper.c index 0474157..d673501 100644 --- a/wrappers/clang-target-wrapper.c +++ b/wrappers/clang-target-wrapper.c @@ -23,6 +23,9 @@ #ifndef CLANG #define CLANG "clang" #endif +#ifndef DEFAULT_TARGET +#define DEFAULT_TARGET "x86_64-w64-mingw32" +#endif #include #include @@ -114,6 +117,8 @@ int _tmain(int argc, TCHAR* argv[]) { if (dash) { *dash = '\0'; exe = dash + 1; + } else { + target = _T(DEFAULT_TARGET); } TCHAR *arch = _tcsdup(target); dash = _tcschr(arch, '-'); diff --git a/wrappers/clang-target-wrapper.sh b/wrappers/clang-target-wrapper.sh index a6081f3..296da77 100755 --- a/wrappers/clang-target-wrapper.sh +++ b/wrappers/clang-target-wrapper.sh @@ -3,6 +3,10 @@ DIR="$(cd "$(dirname "$0")" && pwd)" BASENAME="$(basename "$0")" TARGET="${BASENAME%-*}" EXE="${BASENAME##*-}" +DEFAULT_TARGET=x86_64-w64-mingw32 +if [ "$TARGET" = "$BASENAME" ]; then + TARGET=$DEFAULT_TARGET +fi ARCH="${TARGET%%-*}" # Allow setting e.g. CCACHE=1 to wrap all building in ccache. diff --git a/wrappers/dlltool-wrapper.sh b/wrappers/dlltool-wrapper.sh index 13f84bf..0c2fb5f 100755 --- a/wrappers/dlltool-wrapper.sh +++ b/wrappers/dlltool-wrapper.sh @@ -5,6 +5,10 @@ export PATH=$DIR:$PATH BASENAME="$(basename "$0")" TARGET="${BASENAME%-*}" +DEFAULT_TARGET=x86_64-w64-mingw32 +if [ "$TARGET" = "$BASENAME" ]; then + TARGET=$DEFAULT_TARGET +fi ARCH="${TARGET%%-*}" case $ARCH in i686) M=i386 ;; diff --git a/wrappers/ld-wrapper.sh b/wrappers/ld-wrapper.sh index c45c1a6..e2616b4 100755 --- a/wrappers/ld-wrapper.sh +++ b/wrappers/ld-wrapper.sh @@ -21,6 +21,10 @@ fi BASENAME="$(basename "$0")" TARGET="${BASENAME%-*}" +DEFAULT_TARGET=x86_64-w64-mingw32 +if [ "$TARGET" = "$BASENAME" ]; then + TARGET=$DEFAULT_TARGET +fi ARCH="${TARGET%%-*}" case $ARCH in i686) M=i386pe ;; diff --git a/wrappers/objcopy-wrapper.sh b/wrappers/objcopy-wrapper.sh index f320e85..5ba1703 100755 --- a/wrappers/objcopy-wrapper.sh +++ b/wrappers/objcopy-wrapper.sh @@ -5,6 +5,10 @@ set -e DIR="$(cd "$(dirname "$0")" && pwd)" BASENAME="$(basename "$0")" TARGET="${BASENAME%-*}" +DEFAULT_TARGET=x86_64-w64-mingw32 +if [ "$TARGET" = "$BASENAME" ]; then + TARGET=$DEFAULT_TARGET +fi EXE="${BASENAME##*-}" ARCH="${TARGET%%-*}" diff --git a/wrappers/windres-wrapper.sh b/wrappers/windres-wrapper.sh index 13d3b46..1eca011 100755 --- a/wrappers/windres-wrapper.sh +++ b/wrappers/windres-wrapper.sh @@ -88,6 +88,10 @@ CODEPAGE=1252 CPP_OPTIONS= BASENAME="$(basename "$0")" TARGET="${BASENAME%-*}" +DEFAULT_TARGET=x86_64-w64-mingw32 +if [ "$TARGET" = "$BASENAME" ]; then + TARGET=$DEFAULT_TARGET +fi PROG="$BASENAME" while [ $# != 0 ]; do