src/mdw-cross.in: Add the cross-built libraries to the runtime search path.
[mdw-cross] / src / cross.in
index f482d28..8953c52 100644 (file)
@@ -14,15 +14,9 @@ if ! [ -f "$CROSSDIR/etc/$env-setup.sh" ]; then
   echo 2>&1 "${0##*/}: cross environment \`$env' unknown"; exit 2
 fi
 
-p=$PATH CROSS_COMPILER_PREFIX=""
-while :; do
-  case $p in
-    "") break ;;
-    *:*) d=${p%%:*} p=${p#*:} ;;
-    *) d=$p p="" ;;
-  esac
-  if [ -e "$d/ccache" ]; then CROSS_COMPILER_PREFIX="ccache "; break; fi
-done
+if type >/dev/null 2>&1; then CROSS_COMPILER_PREFIX="ccache "
+else CROSS_COMPILER_PREFIX=
+fi
 export CROSS_COMPILER_PREFIX
 
 CROSS_BUILDENV=$env; export CROSS_BUILDENV
@@ -47,4 +41,31 @@ case :$PATH: in
   *) PATH=$CROSSDIR/tools:$PATH ;;
 esac
 
+case ${CROSS_NATIVE_P-nil} in
+  t) gcc=gcc clang=clang ;;
+  nil) gcc=$CROSS_ARCH-gcc clang=${CROSS_clang_TOOL-clang} ;;
+esac
+if type >/dev/null 2>&1 "$gcc"; then found_gcc=t; else found_gcc=nil; fi
+if type >/dev/null 2>&1 "$clang"; then found_clang=t; else found_clang=nil; fi
+case ${CROSS_COMPILER-guess},$found_gcc,$found_clang in
+  guess,t,* | prefer-gcc,t,* | gcc,t,* | prefer-clang,t,nil)
+    CROSS_COMPILER=gcc ;;
+  guess,nil,t | prefer-clang,*,t | clang,*,t | prefer-gcc,nil,t)
+    CROSS_COMPILER=clang ;;
+  guess,* | prefer-gcc,* | prefer-clang,*)
+    echo 2>&1 "${0##*/}: couldn't find C compiler \`$gcc' or \`$clang'"
+    exit 2
+    ;;
+  gcc,*) echo 2>&1 "${0##*/}: couldn't find C compiler \`$gcc'"; exit 2 ;;
+  clang,*) echo 2>&1 "${0##*/}: couldn't find C compiler \`$clang'"; exit 2 ;;
+  *)
+    echo 2>&1 "${0##*/}: unrecognized preferred compiler \`$CROSS_COMPILER'"
+    exit 2
+    ;;
+esac
+export CROSS_COMPILER
+
+LD_LIBRARY_PATH="$CROSS_PREFIX/lib${LD_LIBRARY_PATH+:$LD_LIBRARY_PATH}"
+export LD_LIBRARY_PATH
+
 exec "$@"