CompileForAndroid

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 输出的内容中确认 Targetmarch.

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值