diff options
author | Johann <johannkoenig@google.com> | 2019-05-02 11:40:52 -0700 |
---|---|---|
committer | Johann <johannkoenig@google.com> | 2019-05-06 11:48:45 -0700 |
commit | f30c419d4a50dcd1e7b3a25c3852338fbe8908e4 (patch) | |
tree | 228c53ecfd741d703ec7ea291cb206070f1276eb | |
parent | 3fd96f7d7d848ce8fc3ff27cb689207d191996ed (diff) | |
download | libvpx-f30c419d4a50dcd1e7b3a25c3852338fbe8908e4.tar libvpx-f30c419d4a50dcd1e7b3a25c3852338fbe8908e4.tar.gz libvpx-f30c419d4a50dcd1e7b3a25c3852338fbe8908e4.tar.bz2 libvpx-f30c419d4a50dcd1e7b3a25c3852338fbe8908e4.zip |
android: do not attempt standalone builds
arm builds require too many tweaks to keep up with changes
to the ndk. Recommend ndk-build instead.
Update documentation and drop --sdk-path references. If
--enable-external-build is used instead we do not need the compiler
path.
BUG=webm:1622
Change-Id: Id024345afd7af988321f8f97ebab19c425cb0493
-rw-r--r-- | build/make/Android.mk | 21 | ||||
-rw-r--r-- | build/make/configure.sh | 55 | ||||
-rwxr-xr-x | configure | 1 | ||||
-rw-r--r-- | test/android/README | 4 |
4 files changed, 8 insertions, 73 deletions
diff --git a/build/make/Android.mk b/build/make/Android.mk index a88f90056..4969aa91e 100644 --- a/build/make/Android.mk +++ b/build/make/Android.mk @@ -14,7 +14,7 @@ # Run the configure script from the jni directory. Base libvpx # encoder/decoder configuration will look similar to: # ./libvpx/configure --target=armv7-android-gcc --disable-examples \ -# --sdk-path=/opt/android-ndk-r6b/ +# --enable-external-build # # When targeting Android, realtime-only is enabled by default. This can # be overridden by adding the command line flag: @@ -41,25 +41,6 @@ # Running ndk-build will build libvpx and include it in your project. # -# Alternatively, building the examples and unit tests can be accomplished in the -# following way: -# -# Create a standalone toolchain from the NDK: -# https://developer.android.com/ndk/guides/standalone_toolchain.html -# -# For example - to test on arm64 devices with clang: -# $NDK/build/tools/make_standalone_toolchain.py \ -# --arch arm64 --install-dir=/tmp/my-android-toolchain -# export PATH=/tmp/my-android-toolchain/bin:$PATH -# CROSS=aarch64-linux-android- CC=clang CXX=clang++ /path/to/libvpx/configure \ -# --target=arm64-android-gcc -# -# Push the resulting binaries to a device and run them: -# adb push test_libvpx /data/tmp/test_libvpx -# adb shell /data/tmp/test_libvpx --gtest_filter=\*Sixtap\* -# -# Make sure to push the test data as well and set LIBVPX_TEST_DATA - CONFIG_DIR := $(LOCAL_PATH)/ LIBVPX_PATH := $(LOCAL_PATH)/libvpx ASM_CNV_PATH_LOCAL := $(TARGET_ARCH_ABI)/ads2gas diff --git a/build/make/configure.sh b/build/make/configure.sh index ce3ba5567..8f2928a9d 100644 --- a/build/make/configure.sh +++ b/build/make/configure.sh @@ -646,11 +646,7 @@ process_common_cmdline() { --libdir=*) libdir="${optval}" ;; - --sdk-path=*) - [ -d "${optval}" ] || die "Not a directory: ${optval}" - sdk_path="${optval}" - ;; - --libc|--as|--prefix|--libdir|--sdk-path) + --libc|--as|--prefix|--libdir) die "Option ${opt} requires argument" ;; --help|-h) @@ -1101,51 +1097,10 @@ EOF ;; android*) - if [ -n "${sdk_path}" ]; then - SDK_PATH=${sdk_path} - COMPILER_LOCATION=`find "${SDK_PATH}" \ - -name "arm-linux-androideabi-gcc*" -print -quit` - TOOLCHAIN_PATH=${COMPILER_LOCATION%/*}/arm-linux-androideabi- - CC=${TOOLCHAIN_PATH}gcc - CXX=${TOOLCHAIN_PATH}g++ - AR=${TOOLCHAIN_PATH}ar - LD=${TOOLCHAIN_PATH}gcc - AS=${TOOLCHAIN_PATH}as - STRIP=${TOOLCHAIN_PATH}strip - NM=${TOOLCHAIN_PATH}nm - - if [ -z "${alt_libc}" ]; then - alt_libc=`find "${SDK_PATH}" -name arch-arm -print | \ - awk '{n = split($0,a,"/"); \ - split(a[n-1],b,"-"); \ - print $0 " " b[2]}' | \ - sort -g -k 2 | \ - awk '{ print $1 }' | tail -1` - fi - - if [ -d "${alt_libc}" ]; then - add_cflags "--sysroot=${alt_libc}" - add_ldflags "--sysroot=${alt_libc}" - fi - - # linker flag that routes around a CPU bug in some - # Cortex-A8 implementations (NDK Dev Guide) - add_ldflags "-Wl,--fix-cortex-a8" - - enable_feature pic - soft_enable realtime_only - if [ ${tgt_isa} = "armv7" ]; then - soft_enable runtime_cpu_detect - fi - if enabled runtime_cpu_detect; then - add_cflags "-I${SDK_PATH}/sources/android/cpufeatures" - fi - else - echo "Assuming standalone build with NDK toolchain." - echo "See build/make/Android.mk for details." - check_add_ldflags -static - soft_enable unit_tests - fi + echo "Assuming standalone build with NDK toolchain." + echo "See build/make/Android.mk for details." + check_add_ldflags -static + soft_enable unit_tests ;; darwin*) @@ -31,7 +31,6 @@ Advanced options: --libc=PATH path to alternate libc --size-limit=WxH max size to allow in the decoder --as={yasm|nasm|auto} use specified assembler [auto, yasm preferred] - --sdk-path=PATH path to root of sdk (android builds only) ${toggle_codec_srcs} in/exclude codec library source code ${toggle_debug_libs} in/exclude debug version of libraries ${toggle_static_msvcrt} use static MSVCRT (VS builds only) diff --git a/test/android/README b/test/android/README index 4a1adcf7f..ee21f9b65 100644 --- a/test/android/README +++ b/test/android/README @@ -3,12 +3,12 @@ Android.mk will build vpx unittests on android. ./libvpx/configure --target=armv7-android-gcc --enable-external-build \ --enable-postproc --disable-install-srcs --enable-multi-res-encoding \ --enable-temporal-denoising --disable-unit-tests --disable-install-docs \ - --disable-examples --disable-runtime-cpu-detect --sdk-path=$NDK + --disable-examples --disable-runtime-cpu-detect 2) From the parent directory, invoke ndk-build: NDK_PROJECT_PATH=. ndk-build APP_BUILD_SCRIPT=./libvpx/test/android/Android.mk \ APP_ABI=armeabi-v7a APP_PLATFORM=android-18 APP_OPTIM=release \ - APP_STL=gnustl_static + APP_STL=c++_static Note: Both adb and ndk-build are available prebuilt at: https://chromium.googlesource.com/android_tools |