Changeset View
Changeset View
Standalone View
Standalone View
devel/mingw-w64-clang-wrapper/files/patch-install-wrappers.sh
--- install-wrappers.sh.orig 2020-02-17 07:59:25 UTC | |||||
+++ install-wrappers.sh | |||||
@@ -19,8 +19,7 @@ if [ -z "$PREFIX" ]; then | |||||
echo $0 [--host=<triple>] dest | |||||
exit 1 | |||||
fi | |||||
-mkdir -p "$PREFIX" | |||||
-PREFIX="$(cd "$PREFIX" && pwd)" | |||||
+mkdir -p "${DESTDIR}${PREFIX}" | |||||
: ${ARCHS:=${TOOLCHAIN_ARCHS-i686 x86_64 armv7 aarch64}} | |||||
: ${TARGET_OSES:=${TOOLCHAIN_TARGET_OSES-mingw32 mingw32uwp}} | |||||
@@ -30,6 +29,8 @@ if [ -n "$HOST" ] && [ -z "$CC" ]; then | |||||
fi | |||||
: ${CC:=cc} | |||||
+WRAPPER_FLAGS="$WRAPPER_FLAGS -DLLVM_PREFIX=\"${LLVM_PREFIX}\"" | |||||
+ | |||||
case $(uname) in | |||||
MINGW*) | |||||
EXEEXT=.exe | |||||
@@ -45,18 +46,20 @@ if [ -n "$EXEEXT" ]; then | |||||
WRAPPER_FLAGS="$WRAPPER_FLAGS -municode -DCLANG=\"clang-$CLANG_MAJOR\"" | |||||
fi | |||||
-mkdir -p "$PREFIX/bin" | |||||
-cp wrappers/*-wrapper.sh "$PREFIX/bin" | |||||
+mkdir -p "${DESTDIR}${PREFIX}/bin" | |||||
+mkdir -p "${DESTDIR}${WRAPPER_PREFIX}/bin" | |||||
+( cd wrappers && for f in *-wrapper.sh; do | |||||
+ cp "${f}" "${DESTDIR}${WRAPPER_PREFIX}/bin/${f}" ; done ) | |||||
if [ -n "$HOST" ]; then | |||||
# TODO: If building natively on msys, pick up the default HOST value from there. | |||||
WRAPPER_FLAGS="$WRAPPER_FLAGS -DDEFAULT_TARGET=\"$HOST\"" | |||||
for i in wrappers/*-wrapper.sh; do | |||||
- cat $i | sed 's/^DEFAULT_TARGET=.*/DEFAULT_TARGET='$HOST/ > "$PREFIX/bin/$(basename $i)" | |||||
+ cat $i | sed 's/^DEFAULT_TARGET=.*/DEFAULT_TARGET='$HOST/ > "${DESTDIR}${PREFIX}/bin/$(basename $i)" | |||||
done | |||||
fi | |||||
-$CC wrappers/clang-target-wrapper.c -o "$PREFIX/bin/clang-target-wrapper$EXEEXT" -O2 -Wl,-s $WRAPPER_FLAGS | |||||
-$CC wrappers/windres-wrapper.c -o "$PREFIX/bin/windres-wrapper$EXEEXT" -O2 -Wl,-s $WRAPPER_FLAGS | |||||
-$CC wrappers/llvm-wrapper.c -o "$PREFIX/bin/llvm-wrapper$EXEEXT" -O2 -Wl,-s $WRAPPER_FLAGS | |||||
+$CC wrappers/clang-target-wrapper.c -o "${DESTDIR}${WRAPPER_PREFIX}/bin/clang-target-wrapper$EXEEXT" -O2 -Wl,-s $WRAPPER_FLAGS | |||||
+$CC wrappers/windres-wrapper.c -o "${DESTDIR}${WRAPPER_PREFIX}/bin/windres-wrapper$EXEEXT" -O2 -Wl,-s $WRAPPER_FLAGS | |||||
+$CC wrappers/llvm-wrapper.c -o "${DESTDIR}${WRAPPER_PREFIX}/bin/llvm-wrapper$EXEEXT" -O2 -Wl,-s $WRAPPER_FLAGS | |||||
if [ -n "$EXEEXT" ]; then | |||||
# For Windows, we should prefer the executable wrapper, which also works | |||||
# when invoked from outside of MSYS. | |||||
@@ -65,25 +68,25 @@ if [ -n "$EXEEXT" ]; then | |||||
else | |||||
CTW_SUFFIX=.sh | |||||
fi | |||||
-cd "$PREFIX/bin" | |||||
+cd "${DESTDIR}${PREFIX}/bin" | |||||
for arch in $ARCHS; do | |||||
for target_os in $TARGET_OSES; do | |||||
for exec in clang clang++ gcc g++ cc c99 c11 c++; do | |||||
- ln -sf clang-target-wrapper$CTW_SUFFIX $arch-w64-$target_os-$exec$CTW_LINK_SUFFIX | |||||
+ ln -sf ${WRAPPER_PREFIX}/bin/clang-target-wrapper$CTW_SUFFIX $arch-w64-$target_os-$exec$CTW_LINK_SUFFIX | |||||
done | |||||
for exec in addr2line ar ranlib nm objcopy strings strip; do | |||||
if [ -n "$HOST" ]; then | |||||
- link_target=llvm-wrapper | |||||
+ link_target=${WRAPPER_PREFIX}/bin/llvm-wrapper | |||||
else | |||||
- link_target=llvm-$exec | |||||
+ link_target=${LLVM_PREFIX}/bin/llvm-$exec | |||||
fi | |||||
ln -sf $link_target$EXEEXT $arch-w64-$target_os-$exec$EXEEXT || true | |||||
done | |||||
for exec in windres; do | |||||
- ln -sf $exec-wrapper$EXEEXT $arch-w64-$target_os-$exec$EXEEXT | |||||
+ ln -sf ${WRAPPER_PREFIX}/bin/$exec-wrapper$EXEEXT $arch-w64-$target_os-$exec$EXEEXT | |||||
done | |||||
for exec in ld objdump dlltool; do | |||||
- ln -sf $exec-wrapper.sh $arch-w64-$target_os-$exec | |||||
+ ln -sf ${WRAPPER_PREFIX}/bin/$exec-wrapper.sh $arch-w64-$target_os-$exec | |||||
done | |||||
done | |||||
done |