#!/bin/bash # set the base path to your Android NDK (or export NDK to environment) if [[ "x$NDK_BASE" == "x" ]]; then NDK_BASE=/Users/zd/androidStudio/ndk/android-ndk-r10e echo "No NDK_BASE set, using $NDK_BASE" fi #編譯外部文件臨時目錄 #export TMPDIR=/usr/local/include #默認目錄 tmp NDK_PLATFORM_VERSION=16 NDK_ABI=arm NDK_COMPILER_VERSION=4.9 NDK_SYSROOT=$NDK_BASE/platforms/android-$NDK_PLATFORM_VERSION/arch-$NDK_ABI NDK_UNAME=`uname -s | tr '[A-Z]' '[a-z]'` # Convert Linux -> linux HOST=$NDK_ABI-linux-androideabi NDK_TOOLCHAIN_BASE=$NDK_BASE/toolchains/$HOST-$NDK_COMPILER_VERSION/prebuilt/$NDK_UNAME-x86_64 CC="$NDK_TOOLCHAIN_BASE/bin/$HOST-gcc --sysroot=$NDK_SYSROOT" LD=$NDK_TOOLCHAIN_BASE/bin/$HOST-ld BUILD_PATH=/Users/zd/Desktop/ffmpeg-2.8.4 ./configure \ $DEBUG_FLAG \ --arch=arm \ --target-os=linux \ --enable-runtime-cpudetect \ --enable-pic \ --enable-frei0r \ --enable-filter=frei0r \ --enable-gpl \ --disable-shared \ --enable-static \ --cross-prefix=$NDK_TOOLCHAIN_BASE/bin/$NDK_ABI-linux-androideabi- \ --sysroot="$NDK_SYSROOT" \ --extra-cflags="-pie -fPIE -march=armv6 -L/usr/local/include -L/Users/zd/androidStudio/ndk/android-ndk-r10e/platforms/android-16/arch-arm/usr/include" \ --extra-ldflags="-pie -fPIE -L/usr/local/lib -L/usr/local/lib -L/Users/zd/androidStudio/ndk/android-ndk-r10e/platforms/android-16/arch-arm/usr/lib" \ --enable-ffmpeg \ --enable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-network \ --enable-decoder=h264 \ --enable-decoder=aac \ --enable-vdpau \ --enable-decoder=h264_vdpau \ --enable-parser=h264 \ --enable-version3 \ --enable-w32threads \ --enable-libx264 \ --enable-encoder=libx264 \ --enable-yasm \ --enable-small \
#添加了cflags 和 ldflags 的路徑 libx264路徑找到安裝/usr/local/include已經變移到系統 frei0r:/Users/zd/androidStudio/ndk/android-ndk-r10e/platforms/android-16/arch-arm/usr/include 頭文件丟到了裏面
#單獨執行frei0r的 configure文件後把裏面的frei0r.h文件放入ndk對應的platforms api ex:android-ndk-r10e/platforms/android-16/arch-arm/usr/include下面 這裏的android版本與 上面 NDK_PLATFORM_VERSION 對應
#而且 此目錄下的math.h文件下函數後綴 __NDK_FPABI_MATH __pure2去掉了
#makefile 的文件加入了pie
#only position independent executables (PIE) are supported
#LOCAL_CFLAGS += -pie -fPIE
#LOCAL_LDFLAGS += -pie -fPIE
#libx264 ./configure --enable-static
#在 /ffmpeg/libavfilter/下的 vf_frei0r.c 裏面的frei0r_init函數包含外部濾鏡引入路徑 名稱:frei0r_pathlist
#修改這個替換so文件所在路徑linux