arm64体系
ndk r13
#!/bin/bash
COMPILE_ROOT=`pwd`
ANDROID_NDK_ROOT=/home/xx/ndk/android-ndk-r13b
ANDROID_GCC_ROOT=${ANDROID_NDK_ROOT}/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64
ANDROID_GCC_PATH=${ANDROID_GCC_ROOT}/bin
BUILD_PATH=${COMPILE_ROOT}/build
OUT_PATH=${COMPILE_ROOT}/out
SYSROOT=${ANDROID_NDK_ROOT}/platforms/android-21/arch-arm64
OPENSSL_PATH=${COMPILE_ROOT}/thirdparty/libressl-3.1.0/out
OPENSSL_LIB_PATH=${COMPILE_ROOT}/thirdparty/libressl-3.1.0/out/lib
CROSS_COMPILER=aarch64-linux-android-
CROSS_COMPILER_CLANG=aarch64-linux-android28-
#prepare
mkdir -p ${BUILD_PATH}
mkdir -p ${OUT_PATH}
export PATH=${ANDROID_NDK_ROOT}:${ANDROID_GCC_PATH}:$PATH
export ARCH="aarch64"
export CC="${ANDROID_GCC_PATH}/${CROSS_COMPILER}gcc -pie -fPIE"
export CPP="${ANDROID_GCC_PATH}/${CROSS_COMPILER}cpp -E -pie -fPIE"
export CXX="${ANDROID_GCC_PATH}/${CROSS_COMPILER}g++ -pie -fPIE"
export AS="${ANDROID_GCC_PATH}/${CROSS_COMPILER}as"
export LD="${ANDROID_GCC_PATH}/${CROSS_COMPILER}ld -pie -fPIE"
export GDB="${ANDROID_GCC_PATH}/${CROSS_COMPILER}gdb"
export STRIP="${ANDROID_GCC_PATH}/${CROSS_COMPILER}strip"
export RANLIB="${ANDROID_GCC_PATH}/${CROSS_COMPILER}ranlib"
export OBJCOPY="${ANDROID_GCC_PATH}/${CROSS_COMPILER}objcopy"
export OBJDUMP="${ANDROID_GCC_PATH}/${CROSS_COMPILER}objdump"
export AR="${ANDROID_GCC_PATH}/${CROSS_COMPILER}ar"
export NM="${ANDROID_GCC_PATH}/${CROSS_COMPILER}nm"
export READELF="${ANDROID_GCC_PATH}/${CROSS_COMPILER}readelf"
export M4=m4
export TARGET_PREFIX=$CROSS_COMPILER
export CONFIG_SITE="config.site"
export CXXFLAGS="-D__ANDROID_API__=21 "
echo $PATH
cd ${BUILD_PATH}
ln -snf ${SYSROOT}/usr/lib/crtbegin_so.o ./
ln -snf ${SYSROOT}/usr/lib/crtend_so.o ./
ln -snf ${SYSROOT}/usr/lib/crtbegin_dynamic.o ./
ln -snf ${SYSROOT}/usr/lib/crtend_android.o ./
ln -snf ${SYSROOT}/usr/lib/crtbegin_static.o ./
echo -e "ac_cv_file__dev_ptmx=yes\nac_cv_file__dev_ptc=no" > config.site
../configure --host=aarch64-linux-android \
--build=x86_64-pc-linux-gnu \
--target=aarch64-linux-android \
LDFLAGS="-Wl,--allow-shlib-undefined -D__ANDROID_API__=21 -fPIC -L${SYSROOT}/usr/lib -L${OPENSSL_LIB_PATH}" \
CFLAGS="-I${SYSROOT}/usr/include -I${SYSROOT}/usr/lib --sysroot=${SYSROOT} -march=armv8-a -DHAVE_MKNOD -DHAVE_MAKEDEV -DHAVE_GMTIME_R -DHAVE_LOCALTIME_R -DHAVE_TIMEGM" \
CPPFLAGS=" -I${SYSROOT}/usr/include -I${SYSROOT}/usr/lib --sysroot=${SYSROOT}" \
--enable-shared \
--disable-ipv6 \
--with-ensurepip=no \
--with-openssl=${OPENSSL_PATH} \
--prefix=${OUT_PATH}
make -j8 2>&1 |tee build.log
echo "-----------build success!-------------"
make install
echo "-----------install success!-------------"
nkd r21
#!/bin/bash
COMPILE_ROOT=`pwd`
ANDROID_NDK_ROOT=/home/xx/ndk/android-ndk-r21
ANDROID_GCC_ROOT=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64
ANDROID_GCC_PATH=${ANDROID_GCC_ROOT}/bin
BUILD_PATH=${COMPILE_ROOT}/build
OUT_PATH=${COMPILE_ROOT}/out
OPENSSL_PATH=${COMPILE_ROOT}/thirdparty/libressl-3.1.0/out
OPENSSL_LIB_PATH=${COMPILE_ROOT}/thirdparty/libressl-3.1.0/out/lib
CROSS_COMPILER=aarch64-linux-android-
CROSS_COMPILER_CLANG=aarch64-linux-android28-
#prepare
mkdir -p ${BUILD_PATH}
mkdir -p ${OUT_PATH}
export PATH=${ANDROID_NDK_ROOT}:${ANDROID_GCC_PATH}:$PATH
export ARCH="aarch64"
export CC="${CROSS_COMPILER_CLANG}clang -pie -fPIE"
export CPP="${CROSS_COMPILER_CLANG}clang -E -pie -fPIE"
export CXX="${CROSS_COMPILER_CLANG}clang++ -pie -fPIE"
export AS="${CROSS_COMPILER}as"
export LD="${CROSS_COMPILER}ld -pie -fPIE"
export GDB="${CROSS_COMPILER}gdb"
export STRIP="${CROSS_COMPILER}strip"
export RANLIB="${CROSS_COMPILER}ranlib"
export OBJCOPY="${CROSS_COMPILER}objcopy"
export OBJDUMP="${CROSS_COMPILER}objdump"
export AR="${CROSS_COMPILER}ar"
export NM="${CROSS_COMPILER}nm"
export READELF="${CROSS_COMPILER}readelf"
export M4=m4
export TARGET_PREFIX=$CROSS_COMPILER
export CONFIG_SITE="config.site"
export CXXFLAGS="-D__ANDROID_API__=28 "
cd ${BUILD_PATH}
echo -e "ac_cv_file__dev_ptmx=yes\nac_cv_file__dev_ptc=no" > config.site
../configure --host=aarch64-linux-android \
--host=aarch64-linux \
--build=x86_64-pc-linux-gnu \
--target=aarch64-linux-android \
LDFLAGS="-Wl,--allow-shlib-undefined -D__ANDROID_API__=28 -fPIC -L${OPENSSL_LIB_PATH}" \
CFLAGS="-D__ANDROID_API__=28 " \
CPPFLAGS="-D__ANDROID_API__=28" \
--enable-shared \
--enable-ipv6 \
-with-ensurepip=no \
--with-openssl=${OPENSSL_PATH} \
--prefix=${OUT_PATH}
make -j8 2>&1 |tee build.log
echo "-----------build success!-------------"
make install
echo "-----------install success!-------------"