ffmpeg-kit/scripts/android/x264.sh
2020-10-25 14:40:54 +00:00

82 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
if [[ -z ${ANDROID_NDK_ROOT} ]]; then
echo -e "\n(*) ANDROID_NDK_ROOT not defined\n"
exit 1
fi
if [[ -z ${ARCH} ]]; then
echo -e "\n(*) ARCH not defined\n"
exit 1
fi
if [[ -z ${API} ]]; then
echo -e "\n(*) API not defined\n"
exit 1
fi
if [[ -z ${BASEDIR} ]]; then
echo -e "\n(*) BASEDIR not defined\n"
exit 1
fi
if ! [ -x "$(command -v tar)" ]; then
echo -e "\n(*) tar command not found\n"
exit 1
fi
# ENABLE COMMON FUNCTIONS
. ${BASEDIR}/build/android-common.sh
# PREPARE PATHS & DEFINE ${INSTALL_PKG_CONFIG_DIR}
LIB_NAME="x264"
set_toolchain_paths ${LIB_NAME}
# PREPARING FLAGS
BUILD_HOST=$(get_build_host)
export CFLAGS=$(get_cflags ${LIB_NAME})
export CXXFLAGS=$(get_cxxflags ${LIB_NAME})
export LDFLAGS=$(get_ldflags ${LIB_NAME})
cd ${BASEDIR}/src/${LIB_NAME} || exit 1
make distclean 2>/dev/null 1>/dev/null
ASM_FLAGS=""
case ${ARCH} in
x86)
# please note that asm is disabled
# because enabling asm for x86 causes text relocations in libavfilter.so
ASM_FLAGS="--disable-asm"
;;
x86-64)
if ! [ -x "$(command -v nasm)" ]; then
echo -e "\n(*) nasm command not found\n"
exit 1
fi
export AS="$(command -v nasm)"
# WORKAROUND APPLIED TO ENABLE X86 ASM
# https://github.com/android-ndk/ndk/issues/693
export CFLAGS="${CFLAGS} -mno-stackrealign"
;;
esac
./configure \
--prefix=${BASEDIR}/prebuilt/android-$(get_target_build)/${LIB_NAME} \
--enable-pic \
--sysroot=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/sysroot \
--enable-static \
--disable-cli \
${ASM_FLAGS} \
--host=${BUILD_HOST} || exit 1
make -j$(get_cpu_count) || exit 1
# MANUALLY COPY PKG-CONFIG FILES
cp x264.pc ${INSTALL_PKG_CONFIG_DIR} || exit 1
make install || exit 1