Support Clang as a `cross-tool' and use it under Android.
[mdw-cross] / etc / android.sh
index 5e1f1b0..af7ffd1 100644 (file)
@@ -1,5 +1,7 @@
 ### -*-sh-*-
 
+CROSS_ARCH=$ANDROID_NDK_TARGETARCH
+
 : ${ANDROID_SDK=/usr/local/android/sdk}
 : ${ANDROID_NDK=$ANDROID_SDK/ndk-bundle}
 : ${ANDROID_NDK_TOOLVER=4.9}
@@ -7,31 +9,33 @@
 case $ANDROID_NDK_TARGETARCH in
   arm-linux-androideabi)
     ANDROID_NDK_TARGETARCHDIR=arm-linux-androideabi
+    ANDROID_NDK_CLANGARCH=armv7a-linux-androideabi
     ANDROID_NDK_TARGETSHORTARCH=arm
-    : ${ANDROID_NDK_TARGETVER=15}
+    : ${ANDROID_NDK_TARGETVER=16}
     ;;
   aarch64-linux-android)
     ANDROID_NDK_TARGETARCHDIR=aarch64-linux-android
+    ANDROID_NDK_CLANGARCH=aarch64-linux-android
     ANDROID_NDK_TARGETSHORTARCH=arm64
     : ${ANDROID_NDK_TARGETVER=21}
     ;;
   i686-linux-android)
     ANDROID_NDK_TARGETARCHDIR=x86
+    ANDROID_NDK_CLANGARCH=i686-linux-android
     ANDROID_NDK_TARGETSHORTARCH=x86
-    : ${ANDROID_NDK_TARGETVER=15}
+    : ${ANDROID_NDK_TARGETVER=16}
     ;;
   x86_64-linux-android)
     ANDROID_NDK_TARGETARCHDIR=x86_64
+    ANDROID_NDK_CLANGARCH=x86_64-linux-android
     ANDROID_NDK_TARGETSHORTARCH=x86_64
     : ${ANDROID_NDK_TARGETVER=21}
     ;;
+  *)
+    echo 2>&1 "${0##*/}: unexpected Android arch \`$ANDROID_NDK_TARGETARCH'"
+    exit 2
+    ;;
 esac
 : ${ANDROID_NDK_TOOLS=$ANDROID_NDK/toolchains/$ANDROID_NDK_TARGETARCHDIR-$ANDROID_NDK_TOOLVER/prebuilt/$ANDROID_NDK_HOSTARCH/bin}
+: ${ANDROID_NDK_LLVM=$ANDROID_NDK/toolchains/llvm/prebuilt/$ANDROID_NDK_HOSTARCH/bin}
 : ${ANDROID_NDK_SYSROOT=$ANDROID_NDK/platforms/android-$ANDROID_NDK_TARGETVER/arch-$ANDROID_NDK_TARGETSHORTARCH}
-
-ANDROID_CC="$ANDROID_NDK_TARGETARCH-gcc \
-       --sysroot=$ANDROID_NDK_SYSROOT \
-       -D__ANDROID_API__=$ANDROID_NDK_TARGETVER \
-       -isystem $ANDROID_NDK/sysroot/usr/include \
-       -isystem $ANDROID_NDK/sysroot/usr/include/$ANDROID_NDK_TARGETARCH \
-       -fPIE -pie"