diff --git a/build-android.sh b/build-android.sh index 40453f7..5902fe2 100755 --- a/build-android.sh +++ b/build-android.sh @@ -195,8 +195,12 @@ case "$HOST_OS" in PlatformOS=linux esac +NDK_SOURCE_PROPERTIES=$AndroidNDKRoot"/source.properties" NDK_RELEASE_FILE=$AndroidNDKRoot"/RELEASE.TXT" -if [ -f "${NDK_RELEASE_FILE}" ]; then +if [ -f "${NDK_SOURCE_PROPERTIES}" ]; then + version=$(grep -i '^Pkg.Revision =' $NDK_SOURCE_PROPERTIES | cut -f2- -d=) + NDK_RN=$(echo $version | awk -F. '{print $1}') +elif [ -f "${NDK_RELEASE_FILE}" ]; then NDK_RN=`cat $NDK_RELEASE_FILE | sed 's/^r\(.*\)$/\1/g'` elif [ -n "${AndroidSourcesDetected}" ]; then if [ -f "${ANDROID_BUILD_TOP}/ndk/docs/CHANGES.html" ]; then @@ -258,10 +262,20 @@ case "$NDK_RN" in TOOLSET=gcc-androidR8e ;; "10 (64-bit)") - TOOLCHAIN=${TOOLCHAIN:-arm-linux-androideabi-4.6} - CXXPATH=$AndroidNDKRoot/toolchains/${TOOLCHAIN}/prebuilt/${PlatformOS}-x86_64/bin/arm-linux-androideabi-g++ - TOOLSET=gcc-androidR8e + TOOLCHAIN=llvm-3.4 + CXXPATH=$AndroidNDKRoot/toolchains/${TOOLCHAIN}/prebuilt/${PlatformOS}-x86_64/bin/clang++ + TOOLSET=clang-androidR8e + ;; + "10e-rc4 (64-bit)"|"10e (64-bit)") + TOOLCHAIN=llvm-3.6 + CXXPATH=$AndroidNDKRoot/toolchains/${TOOLCHAIN}/prebuilt/${PlatformOS}-x86_64/bin/clang++ + TOOLSET=clang-androidR8e ;; + 11) + TOOLCHAIN=llvm + CXXPATH=$AndroidNDKRoot/toolchains/${TOOLCHAIN}/prebuilt/${PlatformOS}-x86_64/bin/clang++ + TOOLSET=clang-androidR8e + ;; *) echo "Undefined or not supported Android NDK version!" exit 1 @@ -391,6 +405,7 @@ echo "Building boost for android" export AndroidBinariesPath=`dirname $CXXPATH` export PATH=$AndroidBinariesPath:$PATH export AndroidNDKRoot + export PlatformOS export NO_BZIP2=1 cxxflags="" @@ -405,7 +420,7 @@ echo "Building boost for android" --layout=versioned \ --prefix="./../$BUILD_DIR/" \ $LIBRARIES \ - install 2>&1 \ + release debug install 2>&1 \ || { dump "ERROR: Failed to build boost for android!" ; exit 1 ; } } | tee -a $PROGDIR/build.log diff --git a/configs/user-config-boost-1_55_0.jam b/configs/user-config-boost-1_55_0.jam index 666d4c8..cdab118 100644 --- a/configs/user-config-boost-1_55_0.jam +++ b/configs/user-config-boost-1_55_0.jam @@ -39,84 +39,44 @@ import os ; local AndroidNDKRoot = [ os.environ AndroidNDKRoot ] ; +local PlatformOS = [ os.environ PlatformOS ] ; # -------------------------------------------------------------------- -# Is same for 8b, 8c and 8d -using gcc : androidR8b +using clang : androidR8e : -arm-linux-androideabi-g++ +$(AndroidNDKRoot)/toolchains/llvm/prebuilt/$(PlatformOS)-x86_64/bin/clang++ : -arm-linux-androideabi-ar +--gcc-toolchain="$(AndroidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/$(PlatformOS)-x86_64" -fexceptions -frtti -fpic -ffunction-sections -funwind-tables --D__ARM_ARCH_5__ --D__ARM_ARCH_5T__ --D__ARM_ARCH_5E__ --D__ARM_ARCH_5TE__ --Wno-psabi --march=armv5te --mtune=xscale --msoft-float +-no-canonical-prefixes +--target=armv7-none-linux-androideabi +-march=armv7-a +-mfloat-abi=softfp +-mfpu=vfpv3-d16 -mthumb --Os --fomit-frame-pointer --fno-strict-aliasing --finline-limit=64 --I$(AndroidNDKRoot)/platforms/android-9/arch-arm/usr/include --Wa,--noexecstack --DANDROID --D__ANDROID__ --DNDEBUG --O2 --g --I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.6/include --I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include -# @Moss - Above are the 'oficial' android flags -arm --fvisibility=hidden --fvisibility-inlines-hidden --fdata-sections --D__arm__ --D_REENTRANT --D_GLIBCXX__PTHREADS -; - -# -------------------------------------------------------------------- -using gcc : androidR8e -: -arm-linux-androideabi-g++ -: -arm-linux-androideabi-ar --fexceptions --frtti --fpic --ffunction-sections --funwind-tables +--sysroot="$(AndroidNDKRoot)/platforms/android-9/arch-arm" -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ --Wno-psabi --march=armv5te --mtune=xscale --msoft-float --mthumb -Os -fomit-frame-pointer -fno-strict-aliasing --finline-limit=64 --I$(AndroidNDKRoot)/platforms/android-9/arch-arm/usr/include -Wa,--noexecstack -DANDROID -D__ANDROID__ -DNDEBUG -O2 -g --I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.6/include --I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include +-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/include +-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include +--target=armv7-none-linux-androideabi +--gcc-toolchain="$(AndroidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/$(PlatformOS)-x86_64" +--sysroot=$(AndroidNDKRoot)/platforms/android-9/arch-arm # @Moss - Above are the 'oficial' android flags arm -fvisibility=hidden @@ -125,9 +85,11 @@ arm-linux-androideabi-g++ -D__arm__ -D_REENTRANT -D_GLIBCXX__PTHREADS +-std=c++11 ; + # ------------------ # GCC configuration. # ------------------