parent
d8b49cdd8d
commit
1b0854f96f
@ -0,0 +1,126 @@ |
|||||||
|
make clean |
||||||
|
cd compat |
||||||
|
rm -rf strtod.d |
||||||
|
rm -rf strtod.o |
||||||
|
cd ../ |
||||||
|
|
||||||
|
set -e |
||||||
|
|
||||||
|
archbit=64 |
||||||
|
|
||||||
|
if [ $archbit -eq 32 ];then |
||||||
|
echo "build for 32bit" |
||||||
|
#32bit |
||||||
|
ABI='armeabi-v7a' |
||||||
|
CPU='arm' |
||||||
|
API=21 |
||||||
|
ARCH='arm' |
||||||
|
ANDROID='androideabi' |
||||||
|
NATIVE_CPU='armv7-a' |
||||||
|
OPTIMIZE_CFLAGS="-march=$NATIVE_CPU -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp" |
||||||
|
else |
||||||
|
#64bit |
||||||
|
echo "build for 64bit" |
||||||
|
ABI='arm64-v8a' |
||||||
|
CPU='aarch64' |
||||||
|
API=21 |
||||||
|
ARCH='arm64' |
||||||
|
ANDROID='android' |
||||||
|
NATIVE_CPU='armv8-a' |
||||||
|
OPTIMIZE_CFLAGS="" |
||||||
|
fi |
||||||
|
|
||||||
|
export NDK=/Users/xufulong/Library/Android/android-ndk-r15c |
||||||
|
export PREBUILT=$NDK/toolchains/$CPU-linux-$ANDROID-4.9/prebuilt |
||||||
|
export PLATFORM=$NDK/platforms/android-$API/arch-$ARCH |
||||||
|
export TOOLCHAIN=$PREBUILT/darwin-x86_64 |
||||||
|
export PREFIX=../ffmpeg-android/$ABI |
||||||
|
export ADDITIONAL_CONFIGURE_FLAG="--cpu=$NATIVE_CPU" |
||||||
|
|
||||||
|
THIRD_LIB=$PREFIX |
||||||
|
export EXTRA_CFLAGS="-Os -fPIC $OPTIMIZE_CFLAGS -I$THIRD_LIB/include" |
||||||
|
export EXTRA_LDFLAGS="-lc -lm -ldl -llog -lgcc -lz -L$THIRD_LIB/lib" |
||||||
|
|
||||||
|
build_one(){ |
||||||
|
./configure --target-os=android --prefix=$PREFIX \ |
||||||
|
--enable-cross-compile \ |
||||||
|
--arch=$CPU \ |
||||||
|
--cc=$TOOLCHAIN/bin/$CPU-linux-$ANDROID-gcc \ |
||||||
|
--cross-prefix=$TOOLCHAIN/bin/$CPU-linux-$ANDROID- \ |
||||||
|
--sysroot=$PLATFORM \ |
||||||
|
--enable-hwaccels \ |
||||||
|
--enable-static \ |
||||||
|
--disable-shared \ |
||||||
|
--disable-doc \ |
||||||
|
--enable-neon \ |
||||||
|
--enable-asm \ |
||||||
|
--enable-small \ |
||||||
|
--disable-ffmpeg \ |
||||||
|
--disable-ffplay \ |
||||||
|
--disable-ffprobe \ |
||||||
|
--disable-debug \ |
||||||
|
--enable-gpl \ |
||||||
|
--disable-avdevice \ |
||||||
|
--disable-indevs \ |
||||||
|
--disable-outdevs \ |
||||||
|
--extra-cflags="$EXTRA_CFLAGS" \ |
||||||
|
--extra-ldflags="$EXTRA_LDFLAGS" \ |
||||||
|
--enable-avcodec \ |
||||||
|
--enable-avformat \ |
||||||
|
--enable-avutil \ |
||||||
|
--enable-swresample \ |
||||||
|
--enable-swscale \ |
||||||
|
--enable-avfilter \ |
||||||
|
--enable-network \ |
||||||
|
--enable-bsfs \ |
||||||
|
--enable-postproc \ |
||||||
|
--enable-filters \ |
||||||
|
--enable-encoders \ |
||||||
|
--disable-encoder=a64multi,a64multi5,alias_pix,amv,apng,aptx,aptx_hd,asv1,asv2,avrp,avui,cinepak,cljr,\ |
||||||
|
comfortnoise,dpx,ffvhuff,fits,hap,ilbc_at,mlp,nellymoser,pam,pbm,pcx,pgm,pgmyuv,ppm,prores,prores_aw,\ |
||||||
|
prores_ks,qtrle,r10k,r210,ra_144,roq,roq_dpcm,rv10,rv20,s302m,sbc,sgi,snow,sunrast,svq1,targa,tta,utvideo,\ |
||||||
|
v210,v308,v408,v410,vc2,wrapped_avframe,xbm,xface,xsub,xwd,y41p,zmbv \ |
||||||
|
--disable-decoders \ |
||||||
|
--enable-decoder=mjpeg,mpeg4,h263,h264,flv,hevc,wmv3,msmpeg4v3,msmpeg4v2,msvideo1,vc1,mpeg1video,mpeg2video,\ |
||||||
|
aac,ac3,ac3_fixed,m4a,amrnb,amrwb,vorbis,wmav2,truehd,tscc,tscc2,dvvideo,msrle,cinepak,indeo5,vp8,vp9,\ |
||||||
|
mp3float,mp3,mp3adufloat,mp3adu,mp3on4float,mp3on4,aac_fixed,aac_latm,eac3,png,wmav1,wmv1,wmv2,\ |
||||||
|
pcm_alaw,pcm_dvd,pcm_f16le,pcm_f24le,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,zlib,flac,opus,mlp,\ |
||||||
|
pcm_s16be,pcm_s16le,pcm_s24be,pcm_s24le,pcm_s32be,pcm_s32le,pcm_s64be,pcm_s64le,pcm_mulaw,alac,adpcm_ms,\ |
||||||
|
pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_vidc,pcm_zork,adpcm_ima_qt,adpcm_ima_wav,gif \ |
||||||
|
--enable-muxers \ |
||||||
|
--enable-parsers \ |
||||||
|
--enable-protocols \ |
||||||
|
--enable-jni \ |
||||||
|
--enable-mediacodec \ |
||||||
|
--enable-decoder=h264_mediacodec \ |
||||||
|
--enable-decoder=hevc_mediacodec \ |
||||||
|
--enable-decoder=mpeg4_mediacodec \ |
||||||
|
--enable-decoder=vp9_mediacodec \ |
||||||
|
--enable-nonfree \ |
||||||
|
--enable-openssl \ |
||||||
|
--enable-protocol=https \ |
||||||
|
--disable-demuxers \ |
||||||
|
--enable-demuxer=aac,ac3,alaw,amr,amrnb,amrwb,ape,asf,asf_o,avi,cavsvideo,codec2,concat,dnxhd,eac3,flac,flv,\ |
||||||
|
gif,gif_pipe,h263,h264,hevc,hls,image2,image2pipe,jpeg_pipe,lrc,m4v,matroska,webm,mjpeg,mov,mp4,m4a,3gp,mp3,mpeg,\ |
||||||
|
mpegts,mv,ogg,png_pipe,realtext,rm,rtp,rtsp,pcm_s16be,pcm_s16le,pcm_s32be,pcm_s32le,sdp,srt,swf,\ |
||||||
|
vc1,wav,webm_dash,manifest,xmv,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,mpegvideo,mulaw,sami,srt \ |
||||||
|
$ADDITIONAL_CONFIGURE_FLAG |
||||||
|
make |
||||||
|
make install |
||||||
|
|
||||||
|
$TOOLCHAIN/bin/$CPU-linux-$ANDROID-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib \ |
||||||
|
-L$PREFIX/lib -soname libffmpeg.so \ |
||||||
|
-shared -nostdlib -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so \ |
||||||
|
$PREFIX/lib/libavcodec.a \ |
||||||
|
$PREFIX/lib/libpostproc.a \ |
||||||
|
$PREFIX/lib/libavfilter.a \ |
||||||
|
$PREFIX/lib/libswresample.a \ |
||||||
|
$PREFIX/lib/libavformat.a \ |
||||||
|
$PREFIX/lib/libavutil.a \ |
||||||
|
$PREFIX/lib/libswscale.a \ |
||||||
|
$PREFIX/lib/libssl.a \ |
||||||
|
$PREFIX/lib/libcrypto.a \ |
||||||
|
-lc -lm -lz -ldl -llog --dynamic-linker=/system/bin/linker $TOOLCHAIN/lib/gcc/$CPU-linux-$ANDROID/4.9.x/libgcc.a |
||||||
|
} |
||||||
|
|
||||||
|
build_one |
@ -0,0 +1,22 @@ |
|||||||
|
#!/bin/bash |
||||||
|
export NDK_ROOT=/Users/xufulong/Library/Android/android-ndk-r15c |
||||||
|
|
||||||
|
build() { |
||||||
|
API=21 |
||||||
|
CPU=$1 |
||||||
|
PLATFORM=$2 |
||||||
|
make clean |
||||||
|
rm -rf $(pwd)/android/$CPU |
||||||
|
export ANDROID_NDK_HOME=$NDK_ROOT |
||||||
|
PATH=$ANDROID_NDK_HOME/toolchains/$PLATFORM-4.9/prebuilt/darwin-x86_64/bin:$PATH |
||||||
|
./Configure android-$CPU -D__ANDROID_API__=$API no-shared no-ssl2 no-ssl3 no-comp no-hw no-engine --prefix=$(pwd)/android/$CPU --openssldir=$(pwd)/android/$CPU |
||||||
|
|
||||||
|
make |
||||||
|
make install |
||||||
|
} |
||||||
|
|
||||||
|
# build armv7 |
||||||
|
build arm arm-linux-androideabi |
||||||
|
|
||||||
|
# build armv8 |
||||||
|
build arm64 aarch64-linux-android |
Loading…
Reference in new issue