文章目录
make target 和 march 参数
aarch64-linux-android29-clang
从 aarch64-linux-android29-clang -v
输出的内容中确认 Target
.
nocent@localhost:~$ ~/env/bin/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android29-clang -v
Android (6454773 based on r365631c2) clang version 9.0.8 (https://android.googlesource.com/toolchain/llvm-project 98c855489587874b2a325e7a516b99d838599c6f) (based on LLVM 9.0.8svn)
Target: aarch64-unknown-linux-android29
Thread model: posix
InstalledDir: /home/nocent/env/bin/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin
Found candidate GCC installation: /home/nocent/env/bin/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x
Selected GCC installation: /home/nocent/env/bin/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x
Candidate multilib: .;@m64
Selected multilib: .;@m64
armv7a-linux-androideabi29-clang
从 armv7a-linux-androideabi29-clang -v
输出的内容中确认 Target
和 march
.
nocent@localhost:~$ ~/env/bin/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi29-clang -v
Android (6454773 based on r365631c2) clang version 9.0.8 (https://android.googlesource.com/toolchain/llvm-project 98c855489587874b2a325e7a516b99d838599c6f) (based on LLVM 9.0.8svn)
Target: armv7a-unknown-linux-android29
Thread model: posix
InstalledDir: /home/nocent/env/bin/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin
Found candidate GCC installation: /home/nocent/env/bin/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x
Selected GCC installation: /home/nocent/env/bin/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x
Candidate multilib: thumb;@mthumb
Candidate multilib: armv7-a;@march=armv7-a
Candidate multilib: armv7-a/thumb;@march=armv7-a@mthumb
Candidate multilib: .;
Selected multilib: armv7-a;@march=armv7-a
OpenBLAS
#!/bin/bash
# download
if [ ! -d OpenBLAS ]; then
echo "Downloading OpenBLAS ..."
git clone https://github.com/xianyi/OpenBLAS && cd OpenBLAS
fi
export NDK=/home/nocent/env/bin/android-ndk-r21d
export TOOLCHAIN="toolchains/llvm/prebuilt/linux-x86_64"
export TOOLCHAIN_BIN_DIR="$NDK/$TOOLCHAIN/bin"
export TOOLCHAIN_SYS_ROOT="$NDK/$TOOLCHAIN/sysroot"
export PATH="$TOOLCHAIN_BIN_DIR:$PATH"
export API_LEVEL=29
export ANDROID_ABI=arm64-v8a
#export ANDROID_ABI=armeabi-v7a
if [ "$ANDROID_ABI" == "arm64-v8a" ]; then
export CC="aarch64-linux-android$API_LEVEL-clang"
export CXX="aarch64-linux-android$API_LEVEL-clang++"
export LD="aarch64-linux-android-ld"
export AR="aarch64-linux-android-ar"
export RANLIB="aarch64-linux-android-ranlib"
export STRIP="aarch64-linux-android-strip"
BUILD_TARGET=ARMV8
elif [ "$ANDROID_ABI" == "armeabi-v7a" ]; then
export CC="armv7a-linux-androideabi$API_LEVEL-clang"
export CXX="armv7a-linux-androideabi$API_LEVEL-clang++"
export LD="arm-linux-androideabi-ld"
export AR="arm-linux-androideabi-ar"
export RANLIB="arm-linux-androideabi-ranlib"
export STRIP="arm-linux-androideabi-strip"
BUILD_TARGET=ARMV7
fi
export CFLAGS="-D__ANDROID_API__=$API_LEVEL"
export HOSTCC=gcc
make TARGET=$BUILD_TARGET ARM_SOFTFP_ABI=1 ONLY_CBLAS=1
make PREFIX=$(/bin/pwd)/build/$ANDROID_ABI install
fftw3.3.9
#!/bin/bash
export NDK="/home/nocent/work/android-ndk-r21e"
export TOOLCHAIN="toolchains/llvm/prebuilt/linux-x86_64"
export TOOLCHAIN_BIN_DIR="$NDK/$TOOLCHAIN/bin"
export TOOLCHAIN_SYS_ROOT="$NDK/$TOOLCHAIN/sysroot"
export PATH="$TOOLCHAIN_BIN_DIR:$PATH"
export API_LEVEL=29
#export ANDROID_ABI=arm64-v8a
export ANDROID_ABI=armeabi-v7a
export CFLAGS="-fno-builtin-memmove -D__ANDROID_API__=$API_LEVEL"
if [ "$ANDROID_ABI" == "arm64-v8a" ]; then
export CC="aarch64-linux-android$API_LEVEL-clang"
#export CPP="aarch64-linux-android$API_LEVEL-clang++"
export LD="aarch64-linux-android-ld"
export AR="aarch64-linux-android-ar"
export RANLIB="aarch64-linux-android-ranlib"
export STRIP="aarch64-linux-android-strip"
HOST=aarch64-linux-android
elif [ "$ANDROID_ABI" == "armeabi-v7a" ]; then
export CC="armv7a-linux-androideabi$API_LEVEL-clang"
#export CPP="armv7a-linux-androideabi$API_LEVEL-clang++"
export LD="arm-linux-androideabi-ld"
export AR="arm-linux-androideabi-ar"
export RANLIB="arm-linux-androideabi-ranlib"
export STRIP="arm-linux-androideabi-strip"
HOST=arm-linux-androideabi
fi
export TOOLCHAIN_API_LEVEL_LIBS="$TOOLCHAIN_SYS_ROOT/usr/lib/$HOST/$API_LEVEL"
./configure --host=$HOST \
--prefix=$(/bin/pwd)/build/$HOST \
--enable-shared --enable-float --enable-neon \
LIBS="-L$TOOLCHAIN_API_LEVEL_LIBS -L$TOOLCHAIN_SYS_ROOT/usr/lib -lc -lgcc"
make
make install