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
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
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
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"
# 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