This commit is contained in:
2025-08-28 15:13:40 +09:00
parent 6e64d739ac
commit 6404f4176e
3149 changed files with 738551 additions and 335 deletions
+33
View File
@@ -0,0 +1,33 @@
#!/bin/bash
mkdir -p "${BUILD_DIR}" || return 1
cd "${BUILD_DIR}" || return 1
cmake -Wno-dev \
-DCMAKE_VERBOSE_MAKEFILE=0 \
-DCMAKE_C_FLAGS="${CFLAGS}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
-DCMAKE_SYSROOT="${ANDROID_SYSROOT}" \
-DCMAKE_FIND_ROOT_PATH="${ANDROID_SYSROOT}" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_SYSTEM_NAME=Generic \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \
-DCMAKE_CXX_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CXX" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \
-DCMAKE_SYSTEM_PROCESSOR=$(get_cmake_system_processor) \
-DCMAKE_POSITION_INDEPENDENT_CODE=1 \
-DFFT_LIB=kissfft \
-DKISSFFT_SOURCE_DIR="${BASEDIR}"/src/"${LIB_NAME}"/src/3rdparty/kissfft \
-DBUILD_SHARED_LIBS=0 \
-DBUILD_TESTS=0 "${BASEDIR}"/src/"${LIB_NAME}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_chromaprint_package_config "1.5.1" || return 1
+10
View File
@@ -0,0 +1,10 @@
#!/bin/bash
$(android_ndk_cmake) || return 1
make -C "$(get_cmake_build_directory)" || return 1
make -C "$(get_cmake_build_directory)" install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_cpufeatures_package_config "0.8.0" || return 1
+28
View File
@@ -0,0 +1,28 @@
#!/bin/bash
# SET BUILD FLAGS
CROSS_FILE="${BASEDIR}"/src/"${LIB_NAME}"/package/crossfiles/$ARCH-$FFMPEG_KIT_BUILD_TYPE.meson
create_mason_cross_file "$CROSS_FILE" || return 1
# ALWAYS CLEAN THE PREVIOUS BUILD
rm -rf "${BUILD_DIR}" || return 1
# ENABLING LTO CAUSES SYMBOL NOT FOUND ERRORS ON NDKS >= 23b
meson "${BUILD_DIR}" \
--cross-file="$CROSS_FILE" \
-Db_lto=false \
-Db_ndebug=false \
-Denable_asm=false \
-Denable_tools=false \
-Denable_examples=false \
-Denable_tests=false || return 1
cd "${BUILD_DIR}" || return 1
ninja -j$(get_cpu_count) || return 1
ninja install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp "${BUILD_DIR}"/meson-private/dav1d.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+29
View File
@@ -0,0 +1,29 @@
#!/bin/bash
cd "${LIB_NAME}" || return 1
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/"${LIB_NAME}"/configure ]] || [[ ${RECONF_expat} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--without-docbook \
--without-xmlwf \
--enable-static \
--disable-shared \
--disable-fast-install \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./expat.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+543
View File
@@ -0,0 +1,543 @@
#!/bin/bash
HOST_PKG_CONFIG_PATH=$(command -v pkg-config)
if [ -z "${HOST_PKG_CONFIG_PATH}" ]; then
echo -e "\n(*) pkg-config command not found\n"
exit 1
fi
LIB_NAME="ffmpeg"
echo -e "----------------------------------------------------------------" 1>>"${BASEDIR}"/build.log 2>&1
echo -e "\nINFO: Building ${LIB_NAME} for ${HOST} with the following environment variables\n" 1>>"${BASEDIR}"/build.log 2>&1
env 1>>"${BASEDIR}"/build.log 2>&1
echo -e "----------------------------------------------------------------\n" 1>>"${BASEDIR}"/build.log 2>&1
echo -e "INFO: System information\n" 1>>"${BASEDIR}"/build.log 2>&1
echo -e "INFO: $(uname -a)\n" 1>>"${BASEDIR}"/build.log 2>&1
echo -e "----------------------------------------------------------------\n" 1>>"${BASEDIR}"/build.log 2>&1
FFMPEG_LIBRARY_PATH="${LIB_INSTALL_BASE}/${LIB_NAME}"
ANDROID_SYSROOT="${ANDROID_NDK_ROOT}"/toolchains/llvm/prebuilt/"${TOOLCHAIN}"/sysroot
# SET PATHS
set_toolchain_paths "${LIB_NAME}"
# SET BUILD FLAGS
HOST=$(get_host)
export CFLAGS=$(get_cflags "${LIB_NAME}")
export CXXFLAGS=$(get_cxxflags "${LIB_NAME}")
export LDFLAGS=$(get_ldflags "${LIB_NAME}")
export PKG_CONFIG_LIBDIR="${INSTALL_PKG_CONFIG_DIR}"
cd "${BASEDIR}"/src/"${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
# SET BUILD OPTIONS
TARGET_CPU=""
TARGET_ARCH=""
ASM_OPTIONS=""
case ${ARCH} in
arm-v7a)
TARGET_CPU="armv7-a"
TARGET_ARCH="armv7-a"
ASM_OPTIONS=" --disable-neon --enable-asm --enable-inline-asm"
;;
arm-v7a-neon)
TARGET_CPU="armv7-a"
TARGET_ARCH="armv7-a"
ASM_OPTIONS=" --enable-neon --enable-asm --enable-inline-asm --build-suffix=_neon"
;;
arm64-v8a)
TARGET_CPU="armv8-a"
TARGET_ARCH="aarch64"
ASM_OPTIONS=" --enable-neon --enable-asm --enable-inline-asm"
;;
x86)
TARGET_CPU="i686"
TARGET_ARCH="i686"
# asm disabled due to this ticket https://trac.ffmpeg.org/ticket/4928
ASM_OPTIONS=" --disable-neon --disable-asm --disable-inline-asm"
;;
x86-64)
TARGET_CPU="x86_64"
TARGET_ARCH="x86_64"
ASM_OPTIONS=" --disable-neon --enable-asm --enable-inline-asm"
;;
esac
CONFIGURE_POSTFIX=""
HIGH_PRIORITY_INCLUDES=""
# SET CONFIGURE OPTIONS
for library in {0..61}; do
if [[ ${ENABLED_LIBRARIES[$library]} -eq 1 ]]; then
ENABLED_LIBRARY=$(get_library_name ${library})
echo -e "INFO: Enabling library ${ENABLED_LIBRARY}\n" 1>>"${BASEDIR}"/build.log 2>&1
case ${ENABLED_LIBRARY} in
chromaprint)
CFLAGS+=" $(pkg-config --cflags libchromaprint 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static libchromaprint 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-chromaprint"
;;
cpu-features)
pkg-config --libs --static cpu-features 2>>"${BASEDIR}"/build.log 1>/dev/null
if [[ $? -eq 1 ]]; then
echo -e "ERROR: cpu-features was not found in the pkg-config search path\n" 1>>"${BASEDIR}"/build.log 2>&1
echo -e "\nffmpeg: failed\n\nSee build.log for details\n"
exit 1
fi
;;
dav1d)
CFLAGS+=" $(pkg-config --cflags dav1d 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static dav1d 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libdav1d"
;;
fontconfig)
CFLAGS+=" $(pkg-config --cflags fontconfig 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static fontconfig 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libfontconfig"
;;
freetype)
CFLAGS+=" $(pkg-config --cflags freetype2 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static freetype2 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libfreetype"
;;
fribidi)
CFLAGS+=" $(pkg-config --cflags fribidi 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static fribidi 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libfribidi"
;;
gmp)
CFLAGS+=" $(pkg-config --cflags gmp 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static gmp 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-gmp"
;;
gnutls)
CFLAGS+=" $(pkg-config --cflags gnutls 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static gnutls 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-gnutls"
;;
kvazaar)
CFLAGS+=" $(pkg-config --cflags kvazaar 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static kvazaar 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libkvazaar"
;;
lame)
CFLAGS+=" $(pkg-config --cflags libmp3lame 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static libmp3lame 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libmp3lame"
;;
libaom)
CFLAGS+=" $(pkg-config --cflags aom 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static aom 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libaom"
;;
libass)
CFLAGS+=" $(pkg-config --cflags libass 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static libass 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libass"
;;
libiconv)
CFLAGS+=" $(pkg-config --cflags libiconv 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static libiconv 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-iconv"
HIGH_PRIORITY_INCLUDES+=" $(pkg-config --cflags libiconv 2>>"${BASEDIR}"/build.log)"
;;
libilbc)
CFLAGS+=" $(pkg-config --cflags libilbc 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static libilbc 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libilbc"
;;
libtheora)
CFLAGS+=" $(pkg-config --cflags theora 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static theora 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libtheora"
;;
libvidstab)
CFLAGS+=" $(pkg-config --cflags vidstab 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static vidstab 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libvidstab"
;;
libvorbis)
CFLAGS+=" $(pkg-config --cflags vorbis 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static vorbis 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libvorbis"
;;
libvpx)
CFLAGS+=" $(pkg-config --cflags vpx 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs vpx 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs cpu-features 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libvpx"
;;
libwebp)
CFLAGS+=" $(pkg-config --cflags libwebp 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static libwebp 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libwebp"
;;
libxml2)
CFLAGS+=" $(pkg-config --cflags libxml-2.0 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static libxml-2.0 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libxml2"
;;
opencore-amr)
CFLAGS+=" $(pkg-config --cflags opencore-amrnb 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static opencore-amrnb 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libopencore-amrnb"
;;
openh264)
CFLAGS+=" $(pkg-config --cflags openh264 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static openh264 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libopenh264"
;;
openssl)
CFLAGS+=" $(pkg-config --cflags openssl 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static openssl 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-openssl"
;;
opus)
CFLAGS+=" $(pkg-config --cflags opus 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static opus 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libopus"
;;
rubberband)
CFLAGS+=" $(pkg-config --cflags rubberband 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static rubberband 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-librubberband"
;;
sdl)
CFLAGS+=" $(pkg-config --cflags sdl2 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static sdl2 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-sdl2"
;;
shine)
CFLAGS+=" $(pkg-config --cflags shine 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static shine 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libshine"
;;
snappy)
CFLAGS+=" $(pkg-config --cflags snappy 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static snappy 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libsnappy"
;;
soxr)
CFLAGS+=" $(pkg-config --cflags soxr 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static soxr 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libsoxr"
;;
speex)
CFLAGS+=" $(pkg-config --cflags speex 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static speex 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libspeex"
;;
srt)
CFLAGS+=" $(pkg-config --cflags srt 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static srt 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libsrt"
;;
tesseract)
CFLAGS+=" $(pkg-config --cflags tesseract 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static tesseract 2>>"${BASEDIR}"/build.log)"
CFLAGS+=" $(pkg-config --cflags giflib 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static giflib 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libtesseract"
;;
twolame)
CFLAGS+=" $(pkg-config --cflags twolame 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static twolame 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libtwolame"
;;
vo-amrwbenc)
CFLAGS+=" $(pkg-config --cflags vo-amrwbenc 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static vo-amrwbenc 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libvo-amrwbenc"
;;
x264)
CFLAGS+=" $(pkg-config --cflags x264 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static x264 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libx264"
;;
x265)
CFLAGS+=" $(pkg-config --cflags x265 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static x265 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libx265"
;;
xvidcore)
CFLAGS+=" $(pkg-config --cflags xvidcore 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static xvidcore 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libxvid"
;;
zimg)
CFLAGS+=" $(pkg-config --cflags zimg 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static zimg 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-libzimg"
;;
expat)
CFLAGS+=" $(pkg-config --cflags expat 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static expat 2>>"${BASEDIR}"/build.log)"
;;
libogg)
CFLAGS+=" $(pkg-config --cflags ogg 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static ogg 2>>"${BASEDIR}"/build.log)"
;;
libpng)
CFLAGS+=" $(pkg-config --cflags libpng 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static libpng 2>>"${BASEDIR}"/build.log)"
;;
libuuid)
CFLAGS+=" $(pkg-config --cflags uuid 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static uuid 2>>"${BASEDIR}"/build.log)"
;;
nettle)
CFLAGS+=" $(pkg-config --cflags nettle 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static nettle 2>>"${BASEDIR}"/build.log)"
CFLAGS+=" $(pkg-config --cflags hogweed 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static hogweed 2>>"${BASEDIR}"/build.log)"
;;
android-zlib)
CFLAGS+=" $(pkg-config --cflags zlib 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static zlib 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-zlib"
;;
android-media-codec)
CONFIGURE_POSTFIX+=" --enable-mediacodec"
;;
esac
else
# THE FOLLOWING LIBRARIES SHOULD BE EXPLICITLY DISABLED TO PREVENT AUTODETECT
# NOTE THAT IDS MUST BE +1 OF THE INDEX VALUE
if [[ ${library} -eq ${LIBRARY_SDL} ]]; then
CONFIGURE_POSTFIX+=" --disable-sdl2"
elif [[ ${library} -eq ${LIBRARY_SYSTEM_ZLIB} ]]; then
CONFIGURE_POSTFIX+=" --disable-zlib"
elif [[ ${library} -eq ${LIBRARY_ANDROID_MEDIA_CODEC} ]]; then
CONFIGURE_POSTFIX+=" --disable-mediacodec"
elif [[ ${library} -eq ${LIBRARY_OPENSSL} ]]; then
CONFIGURE_POSTFIX+=" --disable-openssl"
fi
fi
done
# SET CONFIGURE OPTIONS FOR CUSTOM LIBRARIES
for custom_library_index in "${CUSTOM_LIBRARIES[@]}"; do
library_name="CUSTOM_LIBRARY_${custom_library_index}_NAME"
pc_file_name="CUSTOM_LIBRARY_${custom_library_index}_PACKAGE_CONFIG_FILE_NAME"
ffmpeg_flag_name="CUSTOM_LIBRARY_${custom_library_index}_FFMPEG_ENABLE_FLAG"
echo -e "INFO: Enabling custom library ${!library_name}\n" 1>>"${BASEDIR}"/build.log 2>&1
CFLAGS+=" $(pkg-config --cflags ${!pc_file_name} 2>>"${BASEDIR}"/build.log)"
LDFLAGS+=" $(pkg-config --libs --static ${!pc_file_name} 2>>"${BASEDIR}"/build.log)"
CONFIGURE_POSTFIX+=" --enable-${!ffmpeg_flag_name}"
done
# SET ENABLE GPL FLAG WHEN REQUESTED
if [ "$GPL_ENABLED" == "yes" ]; then
CONFIGURE_POSTFIX+=" --enable-gpl"
fi
export LDFLAGS+=" -L${ANDROID_NDK_ROOT}/platforms/android-${API}/arch-${TOOLCHAIN_ARCH}/usr/lib"
# LINKING WITH ANDROID LTS SUPPORT LIBRARY IS NECESSARY FOR API < 18
if [[ -n ${FFMPEG_KIT_LTS_BUILD} ]] && [[ ${API} -lt 18 ]]; then
export LDFLAGS+=" -Wl,--whole-archive ${BASEDIR}/android/ffmpeg-kit-android-lib/src/main/cpp/libandroidltssupport.a -Wl,--no-whole-archive"
fi
# ALWAYS BUILD SHARED LIBRARIES
BUILD_LIBRARY_OPTIONS="--disable-static --enable-shared"
# OPTIMIZE FOR SPEED INSTEAD OF SIZE
if [[ -z ${FFMPEG_KIT_OPTIMIZED_FOR_SPEED} ]]; then
SIZE_OPTIONS="--enable-small"
else
SIZE_OPTIONS=""
fi
# SET DEBUG OPTIONS
if [[ -z ${FFMPEG_KIT_DEBUG} ]]; then
# SET LTO FLAGS
if [[ -z ${NO_LINK_TIME_OPTIMIZATION} ]]; then
DEBUG_OPTIONS="--disable-debug --enable-lto"
else
DEBUG_OPTIONS="--disable-debug --disable-lto"
fi
else
DEBUG_OPTIONS="--enable-debug --disable-stripping"
fi
echo -n -e "\n${LIB_NAME}: "
if [[ -z ${NO_WORKSPACE_CLEANUP_ffmpeg} ]]; then
echo -e "INFO: Cleaning workspace for ${LIB_NAME}\n" 1>>"${BASEDIR}"/build.log 2>&1
make distclean 2>/dev/null 1>/dev/null
# WORKAROUND TO MANUALLY DELETE UNCLEANED FILES
rm -f "${BASEDIR}"/src/"${LIB_NAME}"/libavfilter/opencl/*.o 1>>"${BASEDIR}"/build.log 2>&1
rm -f "${BASEDIR}"/src/"${LIB_NAME}"/libavcodec/neon/*.o 1>>"${BASEDIR}"/build.log 2>&1
# DELETE SHARED FRAMEWORK WORKAROUNDS
git checkout "${BASEDIR}/src/ffmpeg/ffbuild" 1>>"${BASEDIR}"/build.log 2>&1
fi
# UPDATE BUILD FLAGS
export CFLAGS="${HIGH_PRIORITY_INCLUDES} ${CFLAGS}"
# USE HIGHER LIMITS FOR FFMPEG LINKING
ulimit -n 2048 1>>"${BASEDIR}"/build.log 2>&1
########################### CUSTOMIZATIONS #######################
cd "${BASEDIR}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
git checkout android/ffmpeg-kit-android-lib/src/main/cpp/ffmpegkit.c 1>>"${BASEDIR}"/build.log 2>&1
cd "${BASEDIR}"/src/"${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
git checkout libavformat/file.c 1>>"${BASEDIR}"/build.log 2>&1
git checkout libavformat/protocols.c 1>>"${BASEDIR}"/build.log 2>&1
git checkout libavutil 1>>"${BASEDIR}"/build.log 2>&1
# 1. Use thread local log levels
${SED_INLINE} 's/static int av_log_level/__thread int av_log_level/g' "${BASEDIR}"/src/"${LIB_NAME}"/libavutil/log.c 1>>"${BASEDIR}"/build.log 2>&1 || return 1
# 2. Enable ffmpeg-kit protocols
if [[ ${NO_FFMPEG_KIT_PROTOCOLS} == "1" ]]; then
${SED_INLINE} "s| av_set_saf|//av_set_saf|g" "${BASEDIR}"/android/ffmpeg-kit-android-lib/src/main/cpp/ffmpegkit.c 1>>"${BASEDIR}"/build.log 2>&1
echo -e "\nINFO: Disabled custom ffmpeg-kit protocols\n" 1>>"${BASEDIR}"/build.log 2>&1
else
cat ../../tools/protocols/libavformat_file.c >> libavformat/file.c
cat ../../tools/protocols/libavutil_file.h >> libavutil/file.h
cat ../../tools/protocols/libavutil_file.c >> libavutil/file.c
awk '{gsub(/ff_file_protocol;/,"ff_file_protocol;\nextern const URLProtocol ff_saf_protocol;")}1' libavformat/protocols.c > libavformat/protocols.c.tmp
cat libavformat/protocols.c.tmp > libavformat/protocols.c
echo -e "\nINFO: Enabled custom ffmpeg-kit protocols\n" 1>>"${BASEDIR}"/build.log 2>&1
fi
###################################################################
./configure \
--cross-prefix="${HOST}-" \
--sysroot="${ANDROID_SYSROOT}" \
--prefix="${FFMPEG_LIBRARY_PATH}" \
--pkg-config="${HOST_PKG_CONFIG_PATH}" \
--enable-version3 \
--arch="${TARGET_ARCH}" \
--cpu="${TARGET_CPU}" \
--target-os=android \
${ASM_OPTIONS} \
--ar="${AR}" \
--cc="${CC}" \
--cxx="${CXX}" \
--ranlib="${RANLIB}" \
--strip="${STRIP}" \
--nm="${NM}" \
--extra-libs="$(pkg-config --libs --static cpu-features)" \
--disable-autodetect \
--enable-cross-compile \
--enable-pic \
--enable-jni \
--enable-optimizations \
--enable-swscale \
${BUILD_LIBRARY_OPTIONS} \
--enable-pthreads \
--enable-v4l2-m2m \
--disable-outdev=fbdev \
--disable-indev=fbdev \
${SIZE_OPTIONS} \
--disable-xmm-clobber-test \
${DEBUG_OPTIONS} \
--disable-neon-clobber-test \
--disable-programs \
--disable-postproc \
--disable-doc \
--disable-htmlpages \
--disable-manpages \
--disable-podpages \
--disable-txtpages \
--disable-sndio \
--disable-schannel \
--disable-securetransport \
--disable-xlib \
--disable-cuda \
--disable-cuvid \
--disable-nvenc \
--disable-vaapi \
--disable-vdpau \
--disable-videotoolbox \
--disable-audiotoolbox \
--disable-appkit \
--disable-alsa \
--disable-cuda \
--disable-cuvid \
--disable-nvenc \
--disable-vaapi \
--disable-vdpau \
${CONFIGURE_POSTFIX} 1>>"${BASEDIR}"/build.log 2>&1
if [[ $? -ne 0 ]]; then
echo -e "failed\n\nSee build.log for details\n"
exit 1
fi
if [[ -z ${NO_OUTPUT_REDIRECTION} ]]; then
make -j$(get_cpu_count) 1>>"${BASEDIR}"/build.log 2>&1
if [[ $? -ne 0 ]]; then
echo -e "failed\n\nSee build.log for details\n"
exit 1
fi
else
echo -e "started\n"
make -j$(get_cpu_count)
if [[ $? -ne 0 ]]; then
echo -n -e "\n${LIB_NAME}: failed\n\nSee build.log for details\n"
exit 1
else
echo -n -e "\n${LIB_NAME}: "
fi
fi
# DELETE THE PREVIOUS BUILD OF THE LIBRARY BEFORE INSTALLING
if [ -d "${FFMPEG_LIBRARY_PATH}" ]; then
rm -rf "${FFMPEG_LIBRARY_PATH}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
make install 1>>"${BASEDIR}"/build.log 2>&1
if [[ $? -ne 0 ]]; then
echo -e "failed\n\nSee build.log for details\n"
exit 1
fi
# MANUALLY ADD REQUIRED HEADERS
mkdir -p "${FFMPEG_LIBRARY_PATH}"/include/libavutil/x86 1>>"${BASEDIR}"/build.log 2>&1
mkdir -p "${FFMPEG_LIBRARY_PATH}"/include/libavutil/arm 1>>"${BASEDIR}"/build.log 2>&1
mkdir -p "${FFMPEG_LIBRARY_PATH}"/include/libavutil/aarch64 1>>"${BASEDIR}"/build.log 2>&1
mkdir -p "${FFMPEG_LIBRARY_PATH}"/include/libavcodec/x86 1>>"${BASEDIR}"/build.log 2>&1
mkdir -p "${FFMPEG_LIBRARY_PATH}"/include/libavcodec/arm 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/config.h "${FFMPEG_LIBRARY_PATH}"/include/config.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavcodec/mathops.h "${FFMPEG_LIBRARY_PATH}"/include/libavcodec/mathops.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavcodec/x86/mathops.h "${FFMPEG_LIBRARY_PATH}"/include/libavcodec/x86/mathops.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavcodec/arm/mathops.h "${FFMPEG_LIBRARY_PATH}"/include/libavcodec/arm/mathops.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavformat/network.h "${FFMPEG_LIBRARY_PATH}"/include/libavformat/network.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavformat/os_support.h "${FFMPEG_LIBRARY_PATH}"/include/libavformat/os_support.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavformat/url.h "${FFMPEG_LIBRARY_PATH}"/include/libavformat/url.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavutil/attributes_internal.h "${FFMPEG_LIBRARY_PATH}"/include/libavutil/attributes_internal.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavutil/bprint.h "${FFMPEG_LIBRARY_PATH}"/include/libavutil/bprint.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavutil/getenv_utf8.h "${FFMPEG_LIBRARY_PATH}"/include/libavutil/getenv_utf8.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavutil/internal.h "${FFMPEG_LIBRARY_PATH}"/include/libavutil/internal.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavutil/libm.h "${FFMPEG_LIBRARY_PATH}"/include/libavutil/libm.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavutil/reverse.h "${FFMPEG_LIBRARY_PATH}"/include/libavutil/reverse.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavutil/thread.h "${FFMPEG_LIBRARY_PATH}"/include/libavutil/thread.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavutil/timer.h "${FFMPEG_LIBRARY_PATH}"/include/libavutil/timer.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavutil/x86/asm.h "${FFMPEG_LIBRARY_PATH}"/include/libavutil/x86/asm.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavutil/x86/timer.h "${FFMPEG_LIBRARY_PATH}"/include/libavutil/x86/timer.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavutil/arm/timer.h "${FFMPEG_LIBRARY_PATH}"/include/libavutil/arm/timer.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavutil/aarch64/timer.h "${FFMPEG_LIBRARY_PATH}"/include/libavutil/aarch64/timer.h 1>>"${BASEDIR}"/build.log 2>&1
overwrite_file "${BASEDIR}"/src/ffmpeg/libavutil/x86/emms.h "${FFMPEG_LIBRARY_PATH}"/include/libavutil/x86/emms.h 1>>"${BASEDIR}"/build.log 2>&1
if [ $? -eq 0 ]; then
echo "ok"
else
echo -e "failed\n\nSee build.log for details\n"
exit 1
fi
+40
View File
@@ -0,0 +1,40 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# WORKAROUND FOR "bad flag in substitute command"
${SED_INLINE} "s|in \"\$default_fonts\"|in \$default_fonts|g" "${BASEDIR}"/src/"${LIB_NAME}"/configure.ac 1>>"${BASEDIR}"/build.log 2>&1
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_fontconfig} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
# WORKAROUND TO FIX NOT-APPLIED HAVE_POSIX_FADVISE define ON MACOS
if [[ -n ${FFMPEG_KIT_LTS_BUILD} ]]; then
${SED_INLINE} "s/(HAVE_POSIX_FADVISE)/(NO_HAVE_POSIX_FADVISE)/g" "${BASEDIR}"/src/"${LIB_NAME}"/src/fccache.c 1>>"${BASEDIR}"/build.log 2>&1 || return 1
else
${SED_INLINE} "s/NO_HAVE_POSIX_FADVISE/HAVE_POSIX_FADVISE/g" "${BASEDIR}"/src/"${LIB_NAME}"/src/fccache.c 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-libiconv-prefix="${LIB_INSTALL_BASE}"/libiconv \
--with-expat="${LIB_INSTALL_BASE}"/expat \
--without-libintl-prefix \
--enable-static \
--disable-shared \
--disable-fast-install \
--disable-rpath \
--disable-libxml2 \
--disable-docs \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_fontconfig_package_config "2.14.2" || return 1
+40
View File
@@ -0,0 +1,40 @@
#!/bin/bash
# UPDATE BUILD FLAGS
export LIBPNG_CFLAGS="-I${LIB_INSTALL_BASE}/libpng/include"
export LIBPNG_LIBS="-L${LIB_INSTALL_BASE}/libpng/lib"
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/builds/unix/configure ]] || [[ ${RECONF_freetype} -eq 1 ]]; then
# NOTE THAT FREETYPE DOES NOT SUPPORT AUTORECONF BUT IT COMES WITH AN autogen.sh
./autogen.sh || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-zlib \
--with-png \
--with-sysroot="${ANDROID_SYSROOT}" \
--without-harfbuzz \
--without-bzip2 \
--without-fsref \
--without-quickdraw-toolbox \
--without-quickdraw-carbon \
--without-ats \
--enable-static \
--disable-shared \
--disable-fast-install \
--disable-mmap \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_freetype_package_config "25.0.19" || return 1
+30
View File
@@ -0,0 +1,30 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_fribidi} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--enable-static \
--disable-shared \
--disable-fast-install \
--disable-debug \
--disable-deprecated \
--host="${HOST}" || return 1
# WORKAROUND TO DISABLE BUILDING OF doc FOLDER (doc depends on c2man which is not available on all platforms)
${SED_INLINE} 's/ doc / /g' "${BASEDIR}"/src/"${LIB_NAME}"/Makefile || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+31
View File
@@ -0,0 +1,31 @@
#!/bin/bash
# UPDATE BUILD FLAGS
export CFLAGS=$(get_cflags "${LIB_NAME}")" -DS_IREAD=S_IRUSR -DS_IWRITE=S_IWUSR"
# COPY BUILD FILES
cp "${BASEDIR}"/tools/patch/make/giflib/* "${BASEDIR}"/src/"${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_giflib} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--enable-static \
--disable-shared \
--disable-fast-install \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_giflib_package_config "5.2.1" || return 1
+27
View File
@@ -0,0 +1,27 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_gmp} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--enable-static \
--disable-assembly \
--disable-shared \
--disable-fast-install \
--disable-maintainer-mode \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_gmp_package_config "6.2.1" || return 1
+75
View File
@@ -0,0 +1,75 @@
#!/bin/bash
# INIT SUBMODULES
${SED_INLINE} 's|openssl/openssl|arthenica/openssl|g' "${BASEDIR}"/src/"${LIB_NAME}"/.gitmodules || return 1
${SED_INLINE} 's|tomato42|arthenica|g' "${BASEDIR}"/src/"${LIB_NAME}"/.gitmodules || return 1
${SED_INLINE} 's|warner|arthenica|g' "${BASEDIR}"/src/"${LIB_NAME}"/.gitmodules || return 1
${SED_INLINE} 's|gitlab.com/libidn/gnulib-mirror|github.com/arthenica/gnulib|g' "${BASEDIR}"/src/"${LIB_NAME}"/.gitmodules || return 1
${SED_INLINE} 's|gitlab.com/gnutls/libtasn1|github.com/arthenica/libtasn1|g' "${BASEDIR}"/src/"${LIB_NAME}"/.gitmodules || return 1
${SED_INLINE} 's|gitlab.com/gnutls/nettle|github.com/arthenica/nettle|g' "${BASEDIR}"/src/"${LIB_NAME}"/.gitmodules || return 1
${SED_INLINE} 's|gitlab.com/gnutls/abi-dump|github.com/arthenica/abi-dump|g' "${BASEDIR}"/src/"${LIB_NAME}"/.gitmodules || return 1
${SED_INLINE} 's|gitlab.com/gnutls/cligen|github.com/arthenica/cligen|g' "${BASEDIR}"/src/"${LIB_NAME}"/.gitmodules || return 1
${SED_INLINE} 's|gitlab.com/redhat-crypto/tests/interop|github.com/arthenica/redhat-crypto-tests-interop|g' "${BASEDIR}"/src/"${LIB_NAME}"/.gitmodules || return 1
# UPDATE BUILD FLAGS
export CFLAGS="$(get_cflags ${LIB_NAME}) -I${LIB_INSTALL_BASE}/libiconv/include"
export CXXFLAGS=$(get_cxxflags "${LIB_NAME}")
export LDFLAGS="$(get_ldflags ${LIB_NAME}) -L${LIB_INSTALL_BASE}/libiconv/lib"
export NETTLE_CFLAGS="-I${LIB_INSTALL_BASE}/nettle/include"
export NETTLE_LIBS="-L${LIB_INSTALL_BASE}/nettle/lib -lnettle -L${LIB_INSTALL_BASE}/gmp/lib -lgmp"
export HOGWEED_CFLAGS="-I${LIB_INSTALL_BASE}/nettle/include"
export HOGWEED_LIBS="-L${LIB_INSTALL_BASE}/nettle/lib -lhogweed -L${LIB_INSTALL_BASE}/gmp/lib -lgmp"
export GMP_CFLAGS="-I${LIB_INSTALL_BASE}/gmp/include"
export GMP_LIBS="-L${LIB_INSTALL_BASE}/gmp/lib -lgmp"
# SET BUILD OPTIONS
ASM_OPTIONS=""
case ${ARCH} in
x86)
ASM_OPTIONS="--disable-hardware-acceleration"
;;
*)
ASM_OPTIONS="--enable-hardware-acceleration"
;;
esac
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_gnutls} -eq 1 ]]; then
./bootstrap --skip-po || return 1
git submodule update --remote gnulib || return 1
overwrite_file ./gnulib/lib/fpending.c ./src/gl/fpending.c || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--with-included-libtasn1 \
--with-included-unistring \
--without-idn \
--without-p11-kit \
${ASM_OPTIONS} \
--enable-static \
--disable-openssl-compatibility \
--disable-shared \
--disable-fast-install \
--disable-code-coverage \
--disable-doc \
--disable-manpages \
--disable-guile \
--disable-tests \
--disable-tools \
--disable-maintainer-mode \
--disable-full-test-suite \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_gnutls_package_config "3.7.9" || return 1
+30
View File
@@ -0,0 +1,30 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_harfbuzz} -eq 1 ]]; then
NOCONFIGURE=1 ./autogen.sh || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--with-glib=no \
--with-freetype=yes \
--enable-static \
--disable-shared \
--disable-fast-install \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./src/harfbuzz.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
# WORKAROUND TO REMOVE INSTALLED .la FILES
rm -f "${LIB_INSTALL_PREFIX}"/lib/*.la
+36
View File
@@ -0,0 +1,36 @@
#!/bin/bash
mkdir -p "${BUILD_DIR}" || return 1
cd "${BUILD_DIR}" || return 1
cmake -Wno-dev \
-DCMAKE_VERBOSE_MAKEFILE=0 \
-DCMAKE_C_FLAGS="${CFLAGS}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
-DCMAKE_SYSROOT="${ANDROID_SYSROOT}" \
-DCMAKE_FIND_ROOT_PATH="${ANDROID_SYSROOT}" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_SYSTEM_NAME=Generic \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \
-DCMAKE_CXX_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CXX" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \
-DCMAKE_POSITION_INDEPENDENT_CODE=1 \
-DENABLE_STATIC=1 \
-DENABLE_SHARED=0 \
-DWITH_JPEG8=1 \
-DWITH_SIMD=1 \
-DWITH_TURBOJPEG=0 \
-DWITH_JAVA=0 \
-DCMAKE_SYSTEM_PROCESSOR=$(get_cmake_system_processor) \
"${BASEDIR}"/src/"${LIB_NAME}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp "${BUILD_DIR}"/pkgscripts/libjpeg.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+37
View File
@@ -0,0 +1,37 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_kvazaar} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
# UPDATE BUILD FLAGS
# LINKING WITH ANDROID LTS SUPPORT LIBRARY IS NECESSARY FOR API < 18
if [[ -n ${FFMPEG_KIT_LTS_BUILD} ]] && [[ ${API} -lt 18 ]]; then
LTS_SUPPORT_LIBS=" -Wl,--no-whole-archive ${BASEDIR}/android/ffmpeg-kit-android-lib/src/main/cpp/libandroidltssupport.a -Wl,--no-whole-archive"
else
LTS_SUPPORT_LIBS=""
fi
# WORKAROUND TO DISABLE LINKING TO -lrt
${SED_INLINE} 's/\-lrt//g' "${BASEDIR}"/src/"${LIB_NAME}"/configure || return 1
LIBS="${LTS_SUPPORT_LIBS}" ./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--enable-static \
--disable-shared \
--disable-fast-install \
--host="${HOST}" || return 1
# NOTE THAT kvazaar DOES NOT SUPPORT PARALLEL EXECUTION
make || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./src/kvazaar.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+32
View File
@@ -0,0 +1,32 @@
#!/bin/bash
cd "${LIB_NAME}" || return 1
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_lame} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--with-libiconv-prefix="${LIB_INSTALL_BASE}"/libiconv \
--enable-static \
--disable-shared \
--disable-fast-install \
--disable-maintainer-mode \
--disable-frontend \
--disable-efence \
--disable-gtktest \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_libmp3lame_package_config "3.100" || return 1
+49
View File
@@ -0,0 +1,49 @@
#!/bin/bash
# UPDATE BUILD FLAGS
HOST=$(get_host)
export CFLAGS=$(get_cflags "${LIB_NAME}")
export CXXFLAGS=$(get_cxxflags "${LIB_NAME}")
export CPPFLAGS="-I${LIB_INSTALL_BASE}/giflib/include"
export LDFLAGS="$(get_ldflags "${LIB_NAME}") -L${LIB_INSTALL_BASE}/giflib/lib -lgif"
export LIBPNG_CFLAGS="$(pkg-config --cflags libpng)"
export LIBPNG_LIBS="$(pkg-config --libs --static libpng)"
export LIBWEBP_CFLAGS="$(pkg-config --cflags libwebp)"
export LIBWEBP_LIBS="$(pkg-config --libs --static libwebp)"
export LIBTIFF_CFLAGS="$(pkg-config --cflags libtiff-4)"
export LIBTIFF_LIBS="$(pkg-config --libs --static libtiff-4)"
export ZLIB_CFLAGS="$(pkg-config --cflags zlib)"
export ZLIB_LIBS="$(pkg-config --libs --static zlib)"
export JPEG_CFLAGS="$(pkg-config --cflags libjpeg)"
export JPEG_LIBS="$(pkg-config --libs --static libjpeg)"
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_leptonica} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-zlib \
--with-libpng \
--with-jpeg \
--with-giflib \
--with-libtiff \
--with-libwebp \
--enable-static \
--disable-shared \
--disable-fast-install \
--disable-programs \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp lept.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+59
View File
@@ -0,0 +1,59 @@
#!/bin/bash
# DISABLE ASM WORKAROUNDS BEFORE APPLYING THEM AGAIN
git checkout ${BASEDIR}/src/${LIB_NAME}/aom_ports 1>>"${BASEDIR}"/build.log 2>&1
# SET BUILD OPTIONS
ASM_OPTIONS=""
case ${ARCH} in
arm-v7a)
ASM_OPTIONS="-DARCH_ARM=1 -DENABLE_NEON=0 -DHAVE_NEON=0"
;;
arm-v7a-neon)
ASM_OPTIONS="-DARCH_ARM=1 -DENABLE_NEON=1 -DHAVE_NEON=1"
;;
arm64-v8a)
ASM_OPTIONS="-DARCH_ARM=1 -DENABLE_NEON=1 -DHAVE_NEON=1"
;;
x86)
ASM_OPTIONS="-DENABLE_SSE=1 -DHAVE_SSE=1 -DENABLE_SSE3=1 -DHAVE_SSE3=1"
;;
x86-64)
ASM_OPTIONS="-DENABLE_SSE4_2=1 -DHAVE_SSE4_2=1"
;;
esac
mkdir -p "${BUILD_DIR}" || return 1
cd "${BUILD_DIR}" || return 1
cmake -Wno-dev \
-DCMAKE_VERBOSE_MAKEFILE=0 \
-DCONFIG_PIC=1 \
-DCMAKE_C_FLAGS="${CFLAGS}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
-DCMAKE_SYSROOT="${ANDROID_SYSROOT}" \
-DCMAKE_FIND_ROOT_PATH="${ANDROID_SYSROOT}" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SYSTEM_NAME=Generic \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_CXX_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CXX" \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \
-DCMAKE_POSITION_INDEPENDENT_CODE=1 \
${ASM_OPTIONS} \
-DENABLE_TESTS=0 \
-DENABLE_EXAMPLES=0 \
-DENABLE_TOOLS=0 \
-DCONFIG_UNIT_TESTS=0 \
-DAOM_TARGET_CPU=generic \
-DBUILD_SHARED_LIBS=0 "${BASEDIR}"/src/"${LIB_NAME}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_libaom_package_config "3.6.1" || return 1
+45
View File
@@ -0,0 +1,45 @@
#!/bin/bash
# SET BUILD OPTIONS
ASM_OPTIONS=""
case ${ARCH} in
arm* | x86)
# please note that asm is disabled
# enabling asm for x86 causes text relocations in libavfilter.so
ASM_OPTIONS=" --disable-asm"
;;
*)
ASM_OPTIONS=" --enable-asm"
;;
esac
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_libass} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--disable-libtool-lock \
--enable-static \
--disable-shared \
--disable-require-system-font-provider \
--disable-fast-install \
--disable-test \
--disable-profile \
--disable-coretext \
${ASM_OPTIONS} \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+39
View File
@@ -0,0 +1,39 @@
#!/bin/bash
# FIX HARD-CODED PATHS
${SED_INLINE} 's|git://git.savannah.gnu.org|https://github.com/arthenica|g' "${BASEDIR}"/src/"${LIB_NAME}"/.gitmodules || return 1
ln -s -f $(which aclocal) ${BASEDIR}/.tmp/aclocal-1.16
ln -s -f $(which automake) ${BASEDIR}/.tmp/automake-1.16
PATH="${BASEDIR}/.tmp":$PATH
if [[ ! -d "${BASEDIR}"/src/"${LIB_NAME}"/gnulib ]]; then
# INIT SUBMODULES
./gitsub.sh pull || return 1
./gitsub.sh checkout gnulib 485d983b7795548fb32b12fbe8370d40789e88c4 || return 1
fi
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_libiconv} -eq 1 ]]; then
./autogen.sh || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--enable-static \
--disable-shared \
--disable-fast-install \
--disable-rpath \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_libiconv_package_config "1.17" || return 1
+38
View File
@@ -0,0 +1,38 @@
#!/bin/bash
# INIT SUBMODULES
${SED_INLINE} 's|/abseil/|/arthenica/|g' "${BASEDIR}"/src/"${LIB_NAME}"/.gitmodules || return 1
git submodule update --init || return 1
mkdir -p "${BUILD_DIR}" || return 1
cd "${BUILD_DIR}" || return 1
cmake -Wno-dev \
-DCMAKE_VERBOSE_MAKEFILE=0 \
-DCMAKE_C_FLAGS="${CFLAGS}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
-DCMAKE_SYSROOT="${ANDROID_SYSROOT}" \
-DCMAKE_FIND_ROOT_PATH="${ANDROID_SYSROOT}" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_SYSTEM_NAME=Generic \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \
-DCMAKE_CXX_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CXX" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \
-DCMAKE_POSITION_INDEPENDENT_CODE=1 \
-DWEBRTC_ANDROID=1 \
-DUNIX=1 \
-DENABLE_STATIC=1 \
-DENABLE_SHARED=0 \
-DCMAKE_SYSTEM_PROCESSOR=$(get_cmake_system_processor) \
"${BASEDIR}"/src/"${LIB_NAME}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp "${BUILD_DIR}"/libilbc.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+25
View File
@@ -0,0 +1,25 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_libogg} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--enable-static \
--disable-shared \
--disable-fast-install \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ogg.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+45
View File
@@ -0,0 +1,45 @@
#!/bin/bash
# SET BUILD OPTIONS
ASM_OPTIONS=""
case ${ARCH} in
x86 | x86-64)
ASM_OPTIONS="--enable-hardware-optimizations --enable-intel-sse=yes"
;;
arm-v7a-neon | arm64-v8a)
ASM_OPTIONS="--enable-hardware-optimizations --enable-arm-neon=yes"
;;
arm-v7a)
# hardware-optimizations not enabled because
# when --enable-hardware-optimizations is added
# make tries to build arm-neon specific instructions, which breaks compilation
ASM_OPTIONS="--enable-arm-neon=no"
;;
esac
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_libpng} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--enable-static \
--disable-shared \
--disable-fast-install \
--disable-unversioned-libpng-pc \
--disable-unversioned-libpng-config \
${ASM_OPTIONS} \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+31
View File
@@ -0,0 +1,31 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_libsamplerate} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--enable-static \
--disable-alsa \
--disable-fftw \
--disable-shared \
--disable-fast-install \
--host="${HOST}" || return 1
# WORKAROUND TO DISABLE BUILDING OF EXAMPLES AND TESTS
${SED_INLINE} 's/^examples_/#examples_/g' "${BASEDIR}"/src/"${LIB_NAME}"/Makefile || return 1
${SED_INLINE} 's/^tests_/#tests_/g' "${BASEDIR}"/src/"${LIB_NAME}"/Makefile || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+29
View File
@@ -0,0 +1,29 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_libsndfile} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--enable-static \
--disable-shared \
--disable-fast-install \
--disable-sqlite \
--disable-alsa \
--disable-full-suite \
--disable-external-libs \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+42
View File
@@ -0,0 +1,42 @@
#!/bin/bash
# SET BUILD OPTIONS
if [[ -z ${FFMPEG_KIT_LTS_BUILD} ]]; then
ASM_OPTIONS="--enable-asm"
else
ASM_OPTIONS="--disable-asm"
fi
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_libtheora} -eq 1 ]]; then
# WORKAROUND NOT TO RUN CONFIGURE AT THE END OF autogen.sh
${SED_INLINE} 's/$srcdir\/configure/#$srcdir\/configure/g' "${BASEDIR}"/src/"${LIB_NAME}"/autogen.sh || return 1
./autogen.sh || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--enable-static \
--disable-shared \
--disable-fast-install \
--disable-examples \
--disable-telemetry \
--disable-sdltest \
${ASM_OPTIONS} \
--disable-valgrind-testing \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp theoradec.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
cp theoraenc.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
cp theora.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+25
View File
@@ -0,0 +1,25 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_libuuid} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--enable-static \
--disable-shared \
--disable-fast-install \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_uuid_package_config "1.0.3" || return 1
+45
View File
@@ -0,0 +1,45 @@
#!/bin/bash
# SET BUILD OPTIONS
ASM_OPTIONS=""
case ${ARCH} in
arm-v7a | arm-v7a-neon | arm64-v8a)
ASM_OPTIONS="-DSSE2_FOUND=0 -DSSE3_FOUND=0 -DSSSE3_FOUND=0 -DSSE4_1_FOUND=0"
;;
*)
ASM_OPTIONS=""
;;
esac
mkdir -p "${BUILD_DIR}" || return 1
cd "${BUILD_DIR}" || return 1
# WORKAROUND TO DETECT ASM FLAGS PROPERLY
${SED_INLINE} 's/ ${CPUINFO}/ "${CPUINFO}"/g' "${BASEDIR}"/src/"${LIB_NAME}"/CMakeModules/FindSSE.cmake 1>>"${BASEDIR}"/build.log 2>&1 || return 1
cmake -Wno-dev \
-DCMAKE_VERBOSE_MAKEFILE=0 \
-DCMAKE_C_FLAGS="${CFLAGS}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
-DCMAKE_SYSROOT="${ANDROID_SYSROOT}" \
-DCMAKE_FIND_ROOT_PATH="${ANDROID_SYSROOT}" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_SYSTEM_NAME=Generic \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \
-DCMAKE_POSITION_INDEPENDENT_CODE=1 \
-DUSE_OMP=0 \
${ASM_OPTIONS} \
-DCMAKE_SYSTEM_PROCESSOR=$(get_cmake_system_processor) \
-DBUILD_SHARED_LIBS=0 "${BASEDIR}"/src/"${LIB_NAME}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp vidstab.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+34
View File
@@ -0,0 +1,34 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_libvorbis} -eq 1 ]]; then
# -mno-ieee-fp OPTION IS NOT COMPATIBLE WITH clang. REMOVING IT
${SED_INLINE} 's/\-mno-ieee-fp//g' "${BASEDIR}"/src/"${LIB_NAME}"/configure.ac || return 1
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
PKG_CONFIG= ./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--with-ogg-includes="${LIB_INSTALL_BASE}"/libogg/include \
--with-ogg-libraries="${LIB_INSTALL_BASE}"/libogg/lib \
--enable-static \
--disable-shared \
--disable-fast-install \
--disable-docs \
--disable-examples \
--disable-oggtest \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_libvorbis_package_config "1.3.7" || return 1
+88
View File
@@ -0,0 +1,88 @@
#!/bin/bash
# UPDATE BUILD FLAGS
export CFLAGS="$(get_cflags "${LIB_NAME}") -I${LIB_INSTALL_BASE}/cpu-features/include/ndk_compat"
# SET BUILD OPTIONS
TARGET_CPU=""
ASM_OPTIONS=""
case ${ARCH} in
arm-v7a)
TARGET_CPU="armv7"
# NEON disabled explicitly because
# --enable-runtime-cpu-detect enables NEON for armv7 cpu
ASM_OPTIONS="--disable-neon"
export ASFLAGS="-c"
;;
arm-v7a-neon)
# NEON IS ENABLED BY --enable-runtime-cpu-detect
TARGET_CPU="armv7"
export ASFLAGS="-c"
;;
arm64-v8a)
# NEON IS ENABLED BY --enable-runtime-cpu-detect
TARGET_CPU="arm64"
export ASFLAGS="-c"
;;
*)
# INTEL CPU EXTENSIONS ENABLED BY --enable-runtime-cpu-detect
TARGET_CPU="$(get_target_cpu)"
export ASFLAGS="-D__ANDROID__"
;;
esac
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# NOTE THAT RECONFIGURE IS NOT SUPPORTED
# WORKAROUND TO FIX BUILD OPTIONS DEFINED IN configure.sh
overwrite_file "${BASEDIR}"/tools/patch/make/libvpx/configure.sh "${BASEDIR}"/src/"${LIB_NAME}"/build/make/configure.sh || return 1
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--target="${TARGET_CPU}-android-gcc" \
--extra-cflags="${CFLAGS}" \
--extra-cxxflags="${CXXFLAGS}" \
--as=yasm \
--log=yes \
--enable-libs \
--enable-install-libs \
--enable-pic \
--enable-optimizations \
--enable-better-hw-compatibility \
--enable-runtime-cpu-detect \
--enable-vp9-highbitdepth \
${ASM_OPTIONS} \
--enable-vp8 \
--enable-vp9 \
--enable-multithread \
--enable-spatial-resampling \
--enable-small \
--enable-static \
--disable-realtime-only \
--disable-shared \
--disable-debug \
--disable-gprof \
--disable-gcov \
--disable-ccache \
--disable-install-bins \
--disable-install-srcs \
--disable-install-docs \
--disable-docs \
--disable-tools \
--disable-examples \
--disable-unit-tests \
--disable-decode-perf-tests \
--disable-encode-perf-tests \
--disable-codec-srcs \
--disable-debug-libs \
--disable-internal-stats || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+54
View File
@@ -0,0 +1,54 @@
#!/bin/bash
# SET BUILD OPTIONS
ASM_OPTIONS=""
case ${ARCH} in
arm-v7a)
ASM_OPTIONS="--disable-neon --disable-neon-rtcd"
;;
arm-v7a-neon | arm64-v8a)
ASM_OPTIONS="--enable-neon --enable-neon-rtcd"
;;
*)
ASM_OPTIONS="--enable-sse2 --enable-sse4.1"
;;
esac
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_libwebp} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--enable-static \
--disable-shared \
--disable-dependency-tracking \
--enable-libwebpmux \
${ASM_OPTIONS} \
--with-pngincludedir="${LIB_INSTALL_BASE}/libpng/include" \
--with-pnglibdir="${LIB_INSTALL_BASE}/libpng/lib" \
--with-jpegincludedir="${LIB_INSTALL_BASE}/jpeg/include" \
--with-jpeglibdir="${LIB_INSTALL_BASE}/jpeg/lib" \
--with-gifincludedir="${LIB_INSTALL_BASE}/giflib/include" \
--with-giflibdir="${LIB_INSTALL_BASE}/giflib/lib" \
--with-tiffincludedir="${LIB_INSTALL_BASE}/tiff/include" \
--with-tifflibdir="${LIB_INSTALL_BASE}/tiff/lib" \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ${BASEDIR}/src/${LIB_NAME}/src/*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
cp ${BASEDIR}/src/${LIB_NAME}/src/demux/*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
cp ${BASEDIR}/src/${LIB_NAME}/src/mux/*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
cp ${BASEDIR}/src/${LIB_NAME}/sharpyuv/*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
make install || return 1
+39
View File
@@ -0,0 +1,39 @@
#!/bin/bash
# NOTE THAT PYTHON IS DISABLED DUE TO THE FOLLOWING ERROR
#
# .../include/python2.7/pyport.h:1029:2: error: #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)."
# #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)."
#
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_libxml2} -eq 1 ]]; then
${SED_INLINE} 's|^AC_PREREQ|#AC_PREREQ|g' "${BASEDIR}"/src/"${LIB_NAME}"/configure.ac || return 1
${SED_INLINE} 's|AM_INIT_AUTOMAKE(\[[0-9.]* |AM_INIT_AUTOMAKE(\[|g' "${BASEDIR}"/src/"${LIB_NAME}"/configure.ac || return 1
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--with-zlib \
--with-iconv="${LIB_INSTALL_BASE}/libiconv/lib" \
--with-sax1 \
--without-python \
--without-debug \
--without-lzma \
--enable-static \
--disable-shared \
--disable-fast-install \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_libxml2_package_config "2.11.4" || return 1
+46
View File
@@ -0,0 +1,46 @@
#!/bin/bash
# SET BUILD OPTIONS
ASM_OPTIONS=""
case ${ARCH} in
arm-v7a-neon | arm64-v8a)
ASM_OPTIONS="--enable-arm-neon"
;;
x86 | x86-64)
ASM_OPTIONS="--enable-x86-aesni"
;;
esac
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_nettle} -eq 1 ]]; then
# WORKAROUND TO FIX BUILD SYSTEM COMPILER ON macOS
overwrite_file "${BASEDIR}"/tools/patch/make/nettle/aclocal.m4 "${BASEDIR}"/src/"${LIB_NAME}"/aclocal.m4
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--enable-pic \
--enable-static \
--with-include-path="${LIB_INSTALL_BASE}"/gmp/include \
--with-lib-path="${LIB_INSTALL_BASE}"/gmp/lib \
--disable-shared \
--disable-mini-gmp \
--disable-assembler \
--disable-openssl \
--disable-gcov \
--disable-documentation \
${ASM_OPTIONS} \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+26
View File
@@ -0,0 +1,26 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_opencore_amr} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--enable-static \
--disable-shared \
--disable-fast-install \
--disable-maintainer-mode \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp amrnb/*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+52
View File
@@ -0,0 +1,52 @@
#!/bin/bash
# UPDATE BUILD FLAGS
export CFLAGS="$CFLAGS $(pkg-config --cflags libiconv) $(pkg-config --cflags cpu-features)"
export LDFLAGS="$LDFLAGS $(pkg-config --libs --static libiconv) $(pkg-config --libs --static cpu-features)"
# SET BUILD OPTIONS
case ${ARCH} in
arm-v7a-neon)
ASM_OPTIONS=arm
CFLAGS+=" -DHAVE_NEON -DANDROID_NDK"
;;
arm64-v8a)
ASM_OPTIONS=arm64
CFLAGS+=" -DHAVE_NEON_AARCH64 -DANDROID_NDK"
;;
x86*)
ASM_OPTIONS=x86
CFLAGS+=" -DHAVE_AVX2 -DANDROID_NDK"
;;
esac
# ALWAYS CLEAN THE PREVIOUS BUILD
make clean 2>/dev/null 1>/dev/null
# DISCARD APPLE WORKAROUNDS
git checkout "${BASEDIR}"/src/"${LIB_NAME}"/build || return 1
git checkout "${BASEDIR}"/src/"${LIB_NAME}"/codec || return 1
# WORKAROUND TO DISABLE PARTS THAT COMPILE cpu-features INTO libopenh264.a
${SED_INLINE} 's/^COMMON_INCLUDES +=/# COMMON_INCLUDES +=/' "${BASEDIR}"/src/"${LIB_NAME}"/build/platform-android.mk
${SED_INLINE} 's/^COMMON_OBJS +=/# COMMON_OBJS +=/' "${BASEDIR}"/src/"${LIB_NAME}"/build/platform-android.mk
${SED_INLINE} 's/^COMMON_CFLAGS +=/# COMMON_CFLAGS +=/' "${BASEDIR}"/src/"${LIB_NAME}"/build/platform-android.mk
make -j$(get_cpu_count) \
ARCH="$(get_toolchain_arch)" \
CC="$CC" \
CFLAGS="$CFLAGS" \
CXX="$CXX" \
CXXFLAGS="${CXXFLAGS}" \
LDFLAGS="${LDFLAGS}" \
OS=android \
PREFIX="${LIB_INSTALL_PREFIX}" \
NDKLEVEL="${API}" \
NDKROOT="${ANDROID_NDK_ROOT}" \
NDK_TOOLCHAIN_VERSION=clang \
AR="$AR" \
ASM_OPTIONS=${ASM_OPTIONS} \
TARGET="android-${API}" install-static || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp "${BASEDIR}"/src/"${LIB_NAME}"/openh264-static.pc "${INSTALL_PKG_CONFIG_DIR}"/openh264.pc || return 1
@@ -0,0 +1,54 @@
#!/bin/bash
if [[ ${ARCH} == "x86" ]]; then
# openssl does not support 32-bit apple architectures
echo -e "ERROR: openssl is not supported on $ARCH architecture for $FFMPEG_KIT_BUILD_TYPE platform.\n" 1>>"${BASEDIR}"/build.log 2>&1
return 200
fi
# SET BUILD OPTIONS
ASM_OPTIONS=""
case ${ARCH} in
arm-v7a | arm-v7a-neon)
ASM_OPTIONS="linux-generic32"
;;
arm64-v8a)
ASM_OPTIONS="linux-generic64 enable-ec_nistp_64_gcc_128"
;;
x86)
ASM_OPTIONS="linux-generic32 386"
;;
x86-64)
ASM_OPTIONS="linux-generic64 enable-ec_nistp_64_gcc_128"
;;
esac
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_openssl} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
INT128_AVAILABLE=$($CC -dM -E - </dev/null 2>>"${BASEDIR}"/build.log | grep __SIZEOF_INT128__)
echo -e "INFO: __uint128_t detection output: $INT128_AVAILABLE\n" 1>>"${BASEDIR}"/build.log 2>&1
./Configure \
--prefix="${LIB_INSTALL_PREFIX}" \
zlib \
no-shared \
no-engine \
no-dso \
no-legacy \
${ASM_OPTIONS} \
no-tests || return 1
make -j$(get_cpu_count) build_sw || return 1
make install_sw install_ssldirs || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+32
View File
@@ -0,0 +1,32 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_opus} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--enable-static \
--enable-rtcd \
--enable-asm \
--enable-check-asm \
--enable-custom-modes \
--disable-shared \
--disable-fast-install \
--disable-maintainer-mode \
--disable-doc \
--disable-extra-programs \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./opus.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+26
View File
@@ -0,0 +1,26 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# WORKAROUND TO DISABLE OPTIONAL FEATURES MANUALLY, SINCE ./configure DOES NOT PROVIDE OPTIONS FOR THEM
overwrite_file "${BASEDIR}"/tools/patch/make/rubberband/configure.ac "${BASEDIR}"/src/"${LIB_NAME}"/configure.ac || return 1
overwrite_file "${BASEDIR}"/tools/patch/make/rubberband/Makefile.android.in "${BASEDIR}"/src/"${LIB_NAME}"/Makefile.in || return 1
# WORKAROUND TO FIX PACKAGE CONFIG FILE DEPENDENCIES
overwrite_file "${BASEDIR}"/tools/patch/make/rubberband/rubberband.pc.in "${BASEDIR}"/src/"${LIB_NAME}"/rubberband.pc.in || return 1
${SED_INLINE} 's/%DEPENDENCIES%/sndfile, samplerate/g' "${BASEDIR}"/src/"${LIB_NAME}"/rubberband.pc.in || return 1
# ALWAYS REGENERATE BUILD FILES - NECESSARY TO APPLY THE WORKAROUNDS
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--host="${HOST}" || return 1
make AR="$AR" -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+26
View File
@@ -0,0 +1,26 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_sdl} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--without-x \
--with-sysroot="${ANDROID_SYSROOT}" \
--enable-static \
--disable-shared \
--disable-fast-install \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+25
View File
@@ -0,0 +1,25 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_shine} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--enable-static \
--disable-shared \
--disable-fast-install \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+34
View File
@@ -0,0 +1,34 @@
#!/bin/bash
mkdir -p "${BUILD_DIR}" || return 1
cd "${BUILD_DIR}" || return 1
cmake -Wno-dev \
-DCMAKE_VERBOSE_MAKEFILE=0 \
-DCMAKE_C_FLAGS="${CFLAGS}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
-DCMAKE_SYSROOT="${ANDROID_SYSROOT}" \
-DCMAKE_FIND_ROOT_PATH="${ANDROID_SYSROOT}" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_SYSTEM_NAME=Generic \
-DCMAKE_CXX_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CXX" \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \
-DCMAKE_POSITION_INDEPENDENT_CODE=1 \
-DSNAPPY_BUILD_TESTS=0 \
-DSNAPPY_BUILD_BENCHMARKS=0 \
-DHAVE_LIBLZO2=0 \
-DHAVE_LIBZ=1 \
-DCMAKE_SYSTEM_PROCESSOR=$(get_cmake_system_processor) \
-DBUILD_SHARED_LIBS=0 "${BASEDIR}"/src/"${LIB_NAME}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_snappy_package_config "1.1.9" || return 1
+35
View File
@@ -0,0 +1,35 @@
#!/bin/bash
mkdir -p "${BUILD_DIR}" || return 1
cd "${BUILD_DIR}" || return 1
cmake -Wno-dev \
-DCMAKE_VERBOSE_MAKEFILE=0 \
-DCMAKE_C_FLAGS="${CFLAGS}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
-DCMAKE_SYSROOT="${ANDROID_SYSROOT}" \
-DCMAKE_FIND_ROOT_PATH="${ANDROID_SYSROOT}" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_SYSTEM_NAME=Generic \
-DCMAKE_CXX_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CXX" \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \
-DCMAKE_POSITION_INDEPENDENT_CODE=1 \
-DBUILD_TESTS=0 \
-DWITH_DEV_TRACE=0 \
-DWITH_LSR_BINDINGS=0 \
-DWITH_OPENMP=0 \
-DWITH_PFFFT=1 \
-DCMAKE_SYSTEM_PROCESSOR=$(get_cmake_system_processor) \
-DBUILD_SHARED_LIBS=0 "${BASEDIR}"/src/"${LIB_NAME}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_soxr_package_config "0.1.3" || return 1
+35
View File
@@ -0,0 +1,35 @@
#!/bin/bash
# SET BUILD OPTIONS
ASM_OPTIONS=""
case ${ARCH} in
x86 | x86-64)
ASM_OPTIONS="--enable-sse"
;;
esac
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_soxr} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--enable-static \
${ASM_OPTIONS} \
--disable-shared \
--disable-binaries \
--disable-fast-install \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+62
View File
@@ -0,0 +1,62 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
git clean -dfx 2>/dev/null 1>/dev/null
# OVERRIDE SYSTEM PROCESSOR
SYSTEM_PROCESSOR=""
case ${ARCH} in
arm-v7a | arm-v7a-neon)
SYSTEM_PROCESSOR="armv7-a"
;;
arm64-v8a)
SYSTEM_PROCESSOR="aarch64"
;;
x86)
SYSTEM_PROCESSOR="i686"
;;
x86-64)
SYSTEM_PROCESSOR="x86_64"
;;
esac
# WORKAROUND TO GENERATE BASE BUILD FILES
./configure || echo "" 2>/dev/null 1>/dev/null
cmake -Wno-dev \
-DUSE_ENCLIB=openssl \
-DCMAKE_VERBOSE_MAKEFILE=0 \
-DCMAKE_C_FLAGS="${CFLAGS}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
-DCMAKE_SYSROOT="${ANDROID_SYSROOT}" \
-DCMAKE_FIND_ROOT_PATH="${ANDROID_SYSROOT}" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=${API} \
-DCMAKE_ANDROID_NDK=${ANDROID_NDK_ROOT} \
-DCMAKE_CXX_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CXX" \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \
-DCMAKE_SYSTEM_LOADED=1 \
-DCMAKE_SYSTEM_PROCESSOR="${SYSTEM_PROCESSOR}" \
-DENABLE_STDCXX_SYNC=1 \
-DENABLE_MONOTONIC_CLOCK=1 \
-DENABLE_STDCXX_SYNC=1 \
-DENABLE_CXX11=1 \
-DUSE_OPENSSL_PC=1 \
-DENABLE_DEBUG=0 \
-DENABLE_LOGGING=0 \
-DENABLE_HEAVY_LOGGING=0 \
-DENABLE_APPS=0 \
-DENABLE_SHARED=0 "${BASEDIR}"/src/"${LIB_NAME}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_srt_package_config "1.5.2" || return 1
+39
View File
@@ -0,0 +1,39 @@
#!/bin/bash
# UPDATE BUILD FLAGS
PKG_CONFIG_PATH=${INSTALL_PKG_CONFIG_DIR}
export LEPTONICA_CFLAGS=" $(pkg-config --cflags lept 2>>"${BASEDIR}"/build.log)"
export LEPTONICA_LIBS=" $(pkg-config --libs lept 2>>"${BASEDIR}"/build.log)"
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_tesseract} -eq 1 ]]; then
./autogen.sh 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
# WORKAROUND TO MANUALLY SET ENDIANNESS
export ac_cv_c_bigendian=no
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--without-tensorflow \
--without-curl \
--without-archive \
--enable-static \
--disable-shared \
--disable-fast-install \
--disable-debug \
--disable-graphics \
--disable-openmp \
--disable-tessdata-prefix \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_tesseract_package_config "5.3.2" || return 1
+31
View File
@@ -0,0 +1,31 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_tiff} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--with-jpeg-include-dir="${LIB_INSTALL_BASE}"/jpeg/include \
--with-jpeg-lib-dir="${LIB_INSTALL_BASE}"/jpeg/lib \
--enable-static \
--disable-shared \
--disable-fast-install \
--disable-maintainer-mode \
--disable-cxx \
--disable-win32-io \
--disable-lzma \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+32
View File
@@ -0,0 +1,32 @@
#!/bin/bash
# UPDATE BUILD FLAGS
export SNDFILE_CFLAGS="$(pkg-config --cflags sndfile)"
export SNDFILE_LIBS="$(pkg-config --libs --static sndfile)"
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_twolame} -eq 1 ]]; then
NOCONFIGURE=1 ./autogen.sh || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
--enable-static \
--disable-shared \
--disable-fast-install \
--host="${HOST}" || return 1
# WORKAROUND TO DISABLE BUILDING OF DOCBOOK - BUILD SCRIPTS DO NOT GENERATE A TARGET FOR IT
${SED_INLINE} 's/dist_man_MANS = .*/dist_man_MANS =/g' "${BASEDIR}"/src/"${LIB_NAME}"/doc/Makefile || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+35
View File
@@ -0,0 +1,35 @@
#!/bin/bash
# SET BUILD OPTIONS
ASM_OPTIONS=""
case ${ARCH} in
arm-v7a-neon)
ASM_OPTIONS="--enable-armv7neon"
;;
esac
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_vo_amrwbenc} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${ANDROID_SYSROOT}" \
${ASM_OPTIONS} \
--enable-static \
--disable-shared \
--disable-fast-install \
--disable-maintainer-mode \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp ./*.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+53
View File
@@ -0,0 +1,53 @@
#!/bin/bash
# SET BUILD OPTIONS
ASM_OPTIONS=""
DEBUG_OPTIONS=""
case ${ARCH} in
x86)
# please note that asm is disabled
# enabling asm for x86 causes text relocations in libavfilter.so
ASM_OPTIONS="--disable-asm"
;;
x86-64)
if ! [ -x "$(command -v nasm)" ]; then
echo -e "\n(*) nasm command not found\n"
return 1
fi
export AS="$(command -v nasm)"
# WORKAROUND TO ENABLE X86 ASM
# https://github.com/android-ndk/ndk/issues/693
export CFLAGS="${CFLAGS} -mno-stackrealign"
;;
esac
if [[ -n ${FFMPEG_KIT_DEBUG} ]]; then
DEBUG_OPTIONS="--enable-debug"
fi
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_x264} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--enable-pic \
--sysroot="${ANDROID_SYSROOT}" \
--enable-static \
--disable-cli \
${ASM_OPTIONS} \
${DEBUG_OPTIONS} \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# MANUALLY COPY PKG-CONFIG FILES
cp x264.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
+55
View File
@@ -0,0 +1,55 @@
#!/bin/bash
# SET BUILD OPTIONS
ASM_OPTIONS=""
case ${ARCH} in
arm-v7a | arm-v7a-neon)
ASM_OPTIONS="-DENABLE_ASSEMBLY=0 -DCROSS_COMPILE_ARM=1"
;;
arm64-v8a)
ASM_OPTIONS="-DENABLE_ASSEMBLY=0 -DCROSS_COMPILE_ARM=1"
;;
x86)
ASM_OPTIONS="-DENABLE_ASSEMBLY=0 -DCROSS_COMPILE_ARM=0"
;;
x86-64)
ASM_OPTIONS="-DENABLE_ASSEMBLY=0 -DCROSS_COMPILE_ARM=0"
;;
esac
mkdir -p "${BUILD_DIR}" || return 1
cd "${BUILD_DIR}" || return 1
# WORKAROUND TO FIX static_assert ERRORS
${SED_INLINE} 's/gnu++98/c++11/g' "${BASEDIR}"/src/"${LIB_NAME}"/source/CMakeLists.txt || return 1
cmake -Wno-dev \
-DCMAKE_VERBOSE_MAKEFILE=0 \
-DCMAKE_C_FLAGS="${CFLAGS}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
-DCMAKE_SYSROOT="${ANDROID_SYSROOT}" \
-DCMAKE_FIND_ROOT_PATH="${ANDROID_SYSROOT}" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_SYSTEM_NAME=Generic \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \
-DCMAKE_CXX_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CXX" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \
-DCMAKE_POSITION_INDEPENDENT_CODE=1 \
-DSTATIC_LINK_CRT=1 \
-DENABLE_PIC=1 \
-DENABLE_CLI=0 \
-DHIGH_BIT_DEPTH=1 \
${ASM_OPTIONS} \
-DCMAKE_SYSTEM_PROCESSOR="${ARCH}" \
-DENABLE_SHARED=0 "${BASEDIR}"/src/"${LIB_NAME}"/source || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_x265_package_config "3.4" || return 1
+37
View File
@@ -0,0 +1,37 @@
#!/bin/bash
cd "${BASEDIR}"/src/"${LIB_NAME}"/"${LIB_NAME}"/build/generic || return 1
# SET BUILD OPTIONS
ASM_OPTIONS=""
case ${ARCH} in
x86)
# please note that asm is disabled
# enabling asm for x86 causes text relocations in libavcodec.so
ASM_OPTIONS="--disable-assembly"
;;
esac
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/"${LIB_NAME}"/build/generic/configure ]] || [[ ${RECONF_xvidcore} -eq 1 ]]; then
./bootstrap.sh
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
${ASM_OPTIONS} \
--host="${HOST}" || return 1
make || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_xvidcore_package_config "1.3.7" || return 1
# WORKAROUND TO REMOVE DYNAMIC LIBS
rm -f "${LIB_INSTALL_PREFIX}"/lib/libxvidcore.so*
+25
View File
@@ -0,0 +1,25 @@
#!/bin/bash
# ALWAYS CLEAN THE PREVIOUS BUILD
make distclean 2>/dev/null 1>/dev/null
# REGENERATE BUILD FILES IF NECESSARY OR REQUESTED
if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_zimg} -eq 1 ]]; then
autoreconf_library "${LIB_NAME}" 1>>"${BASEDIR}"/build.log 2>&1 || return 1
fi
./configure \
--prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \
--with-sysroot="${SDK_PATH}" \
--enable-static \
--disable-shared \
--disable-fast-install \
--host="${HOST}" || return 1
make -j$(get_cpu_count) || return 1
make install || return 1
# CREATE PACKAGE CONFIG MANUALLY
create_zimg_package_config "3.0.5" || return 1