Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / platform_tools / android / bin / utils / setup_toolchain.sh
index ef49150..6bb6b00 100755 (executable)
@@ -27,13 +27,13 @@ if [ -z "$SCRIPT_DIR" ]; then
 fi
 
 function default_toolchain() {
-  NDK_REV=${NDK_REV-10exp}
+  NDK_REV=${NDK_REV-10c}
   ANDROID_ARCH=${ANDROID_ARCH-arm}
   
   if [[ $ANDROID_ARCH == *64* ]]; then
-    API_LEVEL=L # Experimental Android L-Release system images
+    API_LEVEL=21 # Official Android 5.0 (Lollipop) system images
   else
-    API_LEVEL=14 # Official Android 4.0 system images  
+    API_LEVEL=14 # Official Android 4.0 system images
   fi
 
   TOOLCHAIN_DIR=${SCRIPT_DIR}/../toolchains
@@ -46,6 +46,12 @@ function default_toolchain() {
   fi
   exportVar ANDROID_TOOLCHAIN "${TOOLCHAIN_DIR}/${TOOLCHAIN_TYPE}/bin"
 
+  # Hack for NDK_REV == 10c to ensure that clang is present as it was
+  # added to the tarball after it was initially distributed.
+  if [ ! -x ${ANDROID_TOOLCHAIN}/clang ]; then
+    rm -rf ${TOOLCHAIN_DIR}/${TOOLCHAIN_TYPE}
+  fi
+
   # if the toolchain doesn't exist on your machine then we need to fetch it
   if [ ! -d "$ANDROID_TOOLCHAIN" ]; then
     mkdir -p $TOOLCHAIN_DIR
@@ -59,9 +65,9 @@ function default_toolchain() {
     tar -xzf $TARBALL $TOOLCHAIN_TYPE
     rm $TARBALL
     popd
-  fi 
+  fi
 
-  verbose "Targeting NDK API $API_LEVEL for use on Android 4.0 (NDK Revision $NDK_REV) and above"  
+  verbose "Targeting NDK API $API_LEVEL (NDK Revision $NDK_REV)"
 }
 
 #check to see if the toolchain has been defined and if not setup the default toolchain
@@ -84,9 +90,17 @@ ANDROID_TOOLCHAIN_PREFIX=${GCC%%-gcc}
 
 CCACHE=${ANDROID_MAKE_CCACHE-$(which ccache || true)}
 
-exportVar CC "$CCACHE $ANDROID_TOOLCHAIN_PREFIX-gcc"
-exportVar CXX "$CCACHE $ANDROID_TOOLCHAIN_PREFIX-g++"
-exportVar LINK "$CCACHE $ANDROID_TOOLCHAIN_PREFIX-gcc"
+if [ -z $USE_CLANG ]; then
+  exportVar CC "$CCACHE $ANDROID_TOOLCHAIN_PREFIX-gcc"
+  exportVar CXX "$CCACHE $ANDROID_TOOLCHAIN_PREFIX-g++"
+  exportVar LINK "$CCACHE $ANDROID_TOOLCHAIN_PREFIX-gcc"
+else
+  # temporarily disable ccache as it is generating errors
+  CCACHE=""
+  exportVar CC "$CCACHE $ANDROID_TOOLCHAIN_PREFIX-clang"
+  exportVar CXX "$CCACHE $ANDROID_TOOLCHAIN_PREFIX-clang++"
+  exportVar LINK "$CCACHE $ANDROID_TOOLCHAIN_PREFIX-clang"
+fi
 
 exportVar AR "$ANDROID_TOOLCHAIN_PREFIX-ar"
 exportVar RANLIB "$ANDROID_TOOLCHAIN_PREFIX-ranlib"
@@ -96,7 +110,10 @@ exportVar STRIP "$ANDROID_TOOLCHAIN_PREFIX-strip"
 # Create symlinks for nm & readelf and add them to the path so that the ninja
 # build uses them instead of attempting to use the one on the system.
 # This is required to build using ninja on a Mac.
-ln -sf $ANDROID_TOOLCHAIN_PREFIX-nm $ANDROID_TOOLCHAIN/nm
-ln -sf $ANDROID_TOOLCHAIN_PREFIX-readelf $ANDROID_TOOLCHAIN/readelf
-ln -sf $ANDROID_TOOLCHAIN_PREFIX-as $ANDROID_TOOLCHAIN/as
+if [ $(uname) == "Darwin" ]; then
+  ln -sf $ANDROID_TOOLCHAIN_PREFIX-nm $ANDROID_TOOLCHAIN/nm
+  ln -sf $ANDROID_TOOLCHAIN_PREFIX-readelf $ANDROID_TOOLCHAIN/readelf
+  ln -sf $ANDROID_TOOLCHAIN_PREFIX-as $ANDROID_TOOLCHAIN/as
+fi
+
 exportVar PATH $ANDROID_TOOLCHAIN:$PATH