src/cross.in: Check for `ccache' correctly.
[mdw-cross] / src / cross.in
index ddfd71e..f221174 100644 (file)
@@ -14,7 +14,7 @@ if ! [ -f "$CROSSDIR/etc/$env-setup.sh" ]; then
   echo 2>&1 "${0##*/}: cross environment \`$env' unknown"; exit 2
 fi
 
-if type >/dev/null 2>&1; then CROSS_COMPILER_PREFIX="ccache "
+if type ccache >/dev/null 2>&1; then CROSS_COMPILER_PREFIX="ccache "
 else CROSS_COMPILER_PREFIX=
 fi
 export CROSS_COMPILER_PREFIX
@@ -41,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 "$@"