diff --git a/libnd4j/buildnativeoperations.sh b/libnd4j/buildnativeoperations.sh index 351a4f8e2..119b04f93 100755 --- a/libnd4j/buildnativeoperations.sh +++ b/libnd4j/buildnativeoperations.sh @@ -187,8 +187,8 @@ case "$OS" in fi export ANDROID_BIN="$ANDROID_NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/$KERNEL/" export ANDROID_CPP="$ANDROID_NDK/sources/cxx-stl/llvm-libc++/" - export ANDROID_LLVM="$ANDROID_NDK/toolchains/llvm/prebuilt/$KERNEL/" - export ANDROID_ROOT="$ANDROID_NDK/platforms/android-14/arch-arm/" + export ANDROID_CC="$ANDROID_NDK/toolchains/llvm/prebuilt/$KERNEL/bin/clang" + export ANDROID_ROOT="$ANDROID_NDK/platforms/android-21/arch-arm/" export CMAKE_COMMAND="$CMAKE_COMMAND -DCMAKE_TOOLCHAIN_FILE=cmake/android-arm.cmake -DANDROID_BUILD=true" ;; @@ -198,7 +198,7 @@ case "$OS" in fi export ANDROID_BIN="$ANDROID_NDK/toolchains/aarch64-linux-android-4.9/prebuilt/$KERNEL/" export ANDROID_CPP="$ANDROID_NDK/sources/cxx-stl/llvm-libc++/" - export ANDROID_LLVM="$ANDROID_NDK/toolchains/llvm/prebuilt/$KERNEL/" + export ANDROID_CC="$ANDROID_NDK/toolchains/llvm/prebuilt/$KERNEL/bin/clang" export ANDROID_ROOT="$ANDROID_NDK/platforms/android-21/arch-arm64/" export CMAKE_COMMAND="$CMAKE_COMMAND -DCMAKE_TOOLCHAIN_FILE=cmake/android-arm64.cmake -DANDROID_BUILD=true" ;; @@ -209,8 +209,8 @@ case "$OS" in fi export ANDROID_BIN="$ANDROID_NDK/toolchains/x86-4.9/prebuilt/$KERNEL/" export ANDROID_CPP="$ANDROID_NDK/sources/cxx-stl/llvm-libc++/" - export ANDROID_LLVM="$ANDROID_NDK/toolchains/llvm/prebuilt/$KERNEL/" - export ANDROID_ROOT="$ANDROID_NDK/platforms/android-14/arch-x86/" + export ANDROID_CC="$ANDROID_NDK/toolchains/llvm/prebuilt/$KERNEL/bin/clang" + export ANDROID_ROOT="$ANDROID_NDK/platforms/android-21/arch-x86/" export CMAKE_COMMAND="$CMAKE_COMMAND -DCMAKE_TOOLCHAIN_FILE=cmake/android-x86.cmake -DANDROID_BUILD=true" ;; @@ -220,7 +220,7 @@ case "$OS" in fi export ANDROID_BIN="$ANDROID_NDK/toolchains/x86_64-4.9/prebuilt/$KERNEL/" export ANDROID_CPP="$ANDROID_NDK/sources/cxx-stl/llvm-libc++/" - export ANDROID_LLVM="$ANDROID_NDK/toolchains/llvm/prebuilt/$KERNEL/" + export ANDROID_CC="$ANDROID_NDK/toolchains/llvm/prebuilt/$KERNEL/bin/clang" export ANDROID_ROOT="$ANDROID_NDK/platforms/android-21/arch-x86_64/" export CMAKE_COMMAND="$CMAKE_COMMAND -DCMAKE_TOOLCHAIN_FILE=cmake/android-x86_64.cmake -DANDROID_BUILD=true" ;; diff --git a/libnd4j/cmake/android-arm.cmake b/libnd4j/cmake/android-arm.cmake index 80e8111f3..75a3903c7 100644 --- a/libnd4j/cmake/android-arm.cmake +++ b/libnd4j/cmake/android-arm.cmake @@ -1,9 +1,9 @@ -# CMake toolchain to build libnd4j for Android 4.0 or newer. Sample usage: +# CMake toolchain to build for Android 5.0 or newer. Sample usage: # # ANDROID_BIN="/path/to/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/" \ # ANDROID_CPP="/path/to/android-ndk/sources/cxx-stl/llvm-libc++/" \ -# ANDROID_LLVM="/path/to/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/" \ -# ANDROID_ROOT="/path/to/android-ndk/platforms/android-14/arch-arm/" \ +# ANDROID_CC="/path/to/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" \ +# ANDROID_ROOT="/path/to/android-ndk/platforms/android-21/arch-arm/" \ # cmake -DCMAKE_TOOLCHAIN_FILE=android-arm.cmake -DCMAKE_INSTALL_PREFIX=.. # # If you really need to use libnd4j on a CPU with no FPU, replace "libs/armeabi-v7a" by "libs/armeabi" and @@ -13,16 +13,15 @@ set(CMAKE_SYSTEM_NAME UnixPaths) set(CMAKE_SYSTEM_PROCESSOR arm) set(ANDROID TRUE) -set(CMAKE_C_COMPILER "$ENV{ANDROID_LLVM}/bin/clang") -set(CMAKE_CXX_COMPILER "$ENV{ANDROID_LLVM}/bin/clang++") +set(CMAKE_C_COMPILER "$ENV{ANDROID_CC}") +set(CMAKE_CXX_COMPILER "$ENV{ANDROID_CC}++") -set(CMAKE_C_LINK_EXECUTABLE " -target armv7-none-linux-androideabi14 -Wl,--fix-cortex-a8 -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lc -lm") -set(CMAKE_CXX_LINK_EXECUTABLE " -target armv7-none-linux-androideabi14 -Wl,--fix-cortex-a8 -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/armeabi-v7a/ -static-libstdc++ -lc++_static -lc++abi -landroid_support -lc -lm") +set(CMAKE_C_LINK_EXECUTABLE " -target armv7-none-linux-androideabi -Wl,--fix-cortex-a8 -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lm -lc") +set(CMAKE_CXX_LINK_EXECUTABLE " -target armv7-none-linux-androideabi -Wl,--fix-cortex-a8 -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/armeabi-v7a/ -nostdlib++ -lc++_static -lc++abi -landroid_support -lm -lc") -set(CMAKE_C_CREATE_SHARED_LIBRARY " -target armv7-none-linux-androideabi14 -Wl,--fix-cortex-a8 -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lc -lm") -set(CMAKE_CXX_CREATE_SHARED_LIBRARY " -target armv7-none-linux-androideabi14 -Wl,--fix-cortex-a8 -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/armeabi-v7a/ -static-libstdc++ -lc++_static -lc++abi -landroid_support -lc -lm") +set(CMAKE_C_CREATE_SHARED_LIBRARY " -target armv7-none-linux-androideabi -Wl,--fix-cortex-a8 -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lm -lc") +set(CMAKE_CXX_CREATE_SHARED_LIBRARY " -target armv7-none-linux-androideabi -Wl,--fix-cortex-a8 -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/armeabi-v7a/ -nostdlib++ -lc++_static -lc++abi -landroid_support -lm -lc") -add_definitions(-D__ANDROID_API__=14 -DANDROID -fPIC -ffunction-sections -funwind-tables -fstack-protector-strong -target armv7-none-linux-androideabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16) +add_definitions(-D__ANDROID_API__=21 -DANDROID -fPIC -ffunction-sections -funwind-tables -fstack-protector-strong -target armv7-none-linux-androideabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16) include_directories("$ENV{ANDROID_CPP}/include/" "$ENV{ANDROID_CPP}/../llvm-libc++abi/include/" "$ENV{ANDROID_NDK}/sources/android/support/include/" "$ENV{ANDROID_CPP}/libs/armeabi-v7a/include/" "$ENV{ANDROID_NDK}/sysroot/usr/include/" "$ENV{ANDROID_NDK}/sysroot/usr/include/arm-linux-androideabi/" "$ENV{ANDROID_ROOT}/usr/include/") - diff --git a/libnd4j/cmake/android-arm64.cmake b/libnd4j/cmake/android-arm64.cmake index d5eb60b5d..abc649cb4 100644 --- a/libnd4j/cmake/android-arm64.cmake +++ b/libnd4j/cmake/android-arm64.cmake @@ -1,8 +1,8 @@ -# CMake toolchain to build libnd4j for Android 4.0 or newer. Sample usage: +# CMake toolchain to build for Android 5.0 or newer. Sample usage: # # ANDROID_BIN="/path/to/android-ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/" \ # ANDROID_CPP="/path/to/android-ndk/sources/cxx-stl/llvm-libc++/" \ -# ANDROID_LLVM="/path/to/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/" \ +# ANDROID_CC="/path/to/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" \ # ANDROID_ROOT="/path/to/android-ndk/platforms/android-21/arch-arm64/" \ # cmake -DCMAKE_TOOLCHAIN_FILE=android-arm64.cmake -DCMAKE_INSTALL_PREFIX=.. @@ -10,14 +10,14 @@ set(CMAKE_SYSTEM_NAME UnixPaths) set(CMAKE_SYSTEM_PROCESSOR arm64) set(ANDROID TRUE) -set(CMAKE_C_COMPILER "$ENV{ANDROID_LLVM}/bin/clang") -set(CMAKE_CXX_COMPILER "$ENV{ANDROID_LLVM}/bin/clang++") +set(CMAKE_C_COMPILER "$ENV{ANDROID_CC}") +set(CMAKE_CXX_COMPILER "$ENV{ANDROID_CC}++") -set(CMAKE_C_LINK_EXECUTABLE " -target aarch64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lc -lm") -set(CMAKE_CXX_LINK_EXECUTABLE " -target aarch64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/arm64-v8a/ -static-libstdc++ -lc++_static -lc++abi -landroid_support -lc -lm") +set(CMAKE_C_LINK_EXECUTABLE " -target aarch64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lm -lc") +set(CMAKE_CXX_LINK_EXECUTABLE " -target aarch64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/arm64-v8a/ -nostdlib++ -lc++_static -lc++abi -lm -lc") -set(CMAKE_C_CREATE_SHARED_LIBRARY " -target aarch64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lc -lm") -set(CMAKE_CXX_CREATE_SHARED_LIBRARY " -target aarch64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/arm64-v8a/ -static-libstdc++ -lc++_static -lc++abi -landroid_support -lc -lm") +set(CMAKE_C_CREATE_SHARED_LIBRARY " -target aarch64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lm -lc") +set(CMAKE_CXX_CREATE_SHARED_LIBRARY " -target aarch64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/arm64-v8a/ -nostdlib++ -lc++_static -lc++abi -lm -lc") add_definitions(-D__ANDROID_API__=21 -DANDROID -fPIC -ffunction-sections -funwind-tables -fstack-protector-strong -target aarch64-none-linux-android -march=armv8-a) diff --git a/libnd4j/cmake/android-x86.cmake b/libnd4j/cmake/android-x86.cmake index d4fafcbc8..6065161aa 100644 --- a/libnd4j/cmake/android-x86.cmake +++ b/libnd4j/cmake/android-x86.cmake @@ -1,24 +1,24 @@ -# CMake toolchain to build libnd4j for Android 4.0 or newer. Sample usage: +# CMake toolchain to build for Android 5.0 or newer. Sample usage: # # ANDROID_BIN="/path/to/android-ndk/toolchains/x86-4.9/prebuilt/linux-x86_64/" \ # ANDROID_CPP="/path/to/android-ndk/sources/cxx-stl/llvm-libc++/" \ -# ANDROID_LLVM="/path/to/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/" \ -# ANDROID_ROOT="/path/to/android-ndk/platforms/android-14/arch-x86/" \ +# ANDROID_CC="/path/to/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" \ +# ANDROID_ROOT="/path/to/android-ndk/platforms/android-21/arch-x86/" \ # cmake -DCMAKE_TOOLCHAIN_FILE=android-x86.cmake -DCMAKE_INSTALL_PREFIX=.. set(CMAKE_SYSTEM_NAME UnixPaths) set(CMAKE_SYSTEM_PROCESSOR atom) set(ANDROID TRUE) -set(CMAKE_C_COMPILER "$ENV{ANDROID_LLVM}/bin/clang") -set(CMAKE_CXX_COMPILER "$ENV{ANDROID_LLVM}/bin/clang++") +set(CMAKE_C_COMPILER "$ENV{ANDROID_CC}") +set(CMAKE_CXX_COMPILER "$ENV{ANDROID_CC}++") -set(CMAKE_C_LINK_EXECUTABLE " -target i686-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lc -lm") -set(CMAKE_CXX_LINK_EXECUTABLE " -target i686-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/x86/ -static-libstdc++ -lc++_static -lc++abi -landroid_support -lc -lm") +set(CMAKE_C_LINK_EXECUTABLE " -target i686-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lm -lc") +set(CMAKE_CXX_LINK_EXECUTABLE " -target i686-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/x86/ -nostdlib++ -lc++_static -lc++abi -landroid_support -lm -lc") -set(CMAKE_C_CREATE_SHARED_LIBRARY " -target i686-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lc -lm") -set(CMAKE_CXX_CREATE_SHARED_LIBRARY " -target i686-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/x86/ -static-libstdc++ -lc++_static -lc++abi -landroid_support -lc -lm") +set(CMAKE_C_CREATE_SHARED_LIBRARY " -target i686-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lm -lc") +set(CMAKE_CXX_CREATE_SHARED_LIBRARY " -target i686-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/x86/ -nostdlib++ -lc++_static -lc++abi -landroid_support -lm -lc") -add_definitions(-D__ANDROID_API__=14 -DANDROID -fPIC -ffunction-sections -funwind-tables -fstack-protector-strong -target i686-none-linux-android -march=i686 -mtune=atom -mssse3 -mfpmath=sse) +add_definitions(-D__ANDROID_API__=21 -DANDROID -fPIC -ffunction-sections -funwind-tables -fstack-protector-strong -target i686-none-linux-android -march=i686 -mtune=atom -mssse3 -mfpmath=sse) include_directories("$ENV{ANDROID_CPP}/include/" "$ENV{ANDROID_CPP}/../llvm-libc++abi/include/" "$ENV{ANDROID_NDK}/sources/android/support/include/" "$ENV{ANDROID_CPP}/libs/x86/include/" "$ENV{ANDROID_NDK}/sysroot/usr/include/" "$ENV{ANDROID_NDK}/sysroot/usr/include/i686-linux-android/" "$ENV{ANDROID_ROOT}/usr/include/") diff --git a/libnd4j/cmake/android-x86_64.cmake b/libnd4j/cmake/android-x86_64.cmake index 756f4ac22..e249b3154 100644 --- a/libnd4j/cmake/android-x86_64.cmake +++ b/libnd4j/cmake/android-x86_64.cmake @@ -1,8 +1,8 @@ -# CMake toolchain to build libnd4j for Android 4.0 or newer. Sample usage: +# CMake toolchain to build for Android 5.0 or newer. Sample usage: # # ANDROID_BIN="/path/to/android-ndk/toolchains/x86_64-4.9/prebuilt/linux-x86_64/" \ # ANDROID_CPP="/path/to/android-ndk/sources/cxx-stl/llvm-libc++/" \ -# ANDROID_LLVM="/path/to/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/" \ +# ANDROID_CC="/path/to/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" \ # ANDROID_ROOT="/path/to/android-ndk/platforms/android-21/arch-x86_64/" \ # cmake -DCMAKE_TOOLCHAIN_FILE=android-x86_64.cmake -DCMAKE_INSTALL_PREFIX=.. @@ -10,14 +10,14 @@ set(CMAKE_SYSTEM_NAME UnixPaths) set(CMAKE_SYSTEM_PROCESSOR atom64) set(ANDROID TRUE) -set(CMAKE_C_COMPILER "$ENV{ANDROID_LLVM}/bin/clang") -set(CMAKE_CXX_COMPILER "$ENV{ANDROID_LLVM}/bin/clang++") +set(CMAKE_C_COMPILER "$ENV{ANDROID_CC}") +set(CMAKE_CXX_COMPILER "$ENV{ANDROID_CC}++") -set(CMAKE_C_LINK_EXECUTABLE " -target x86_64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lc -lm") -set(CMAKE_CXX_LINK_EXECUTABLE " -target x86_64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/x86_64/ -static-libstdc++ -lc++_static -lc++abi -landroid_support -lc -lm") +set(CMAKE_C_LINK_EXECUTABLE " -target x86_64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lm -lc") +set(CMAKE_CXX_LINK_EXECUTABLE " -target x86_64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/x86_64/ -nostdlib++ -lc++_static -lc++abi -lm -lc") -set(CMAKE_C_CREATE_SHARED_LIBRARY " -target x86_64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lc -lm") -set(CMAKE_CXX_CREATE_SHARED_LIBRARY " -target x86_64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/x86_64/ -static-libstdc++ -lc++_static -lc++abi -landroid_support -lc -lm") +set(CMAKE_C_CREATE_SHARED_LIBRARY " -target x86_64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lm -lc") +set(CMAKE_CXX_CREATE_SHARED_LIBRARY " -target x86_64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/x86_64/ -nostdlib++ -lc++_static -lc++abi -lm -lc") add_definitions(-D__ANDROID_API__=21 -DANDROID -fPIC -ffunction-sections -funwind-tables -fstack-protector-strong -target x86_64-none-linux-android -march=x86-64 -mtune=atom)