1+ make clean
2+ cd compat
3+ rm -rf strtod.d
4+ rm -rf strtod.o
5+ cd ../
6+
7+ set -e
8+
9+ archbit=32
10+
11+ if [ $archbit -eq 32 ]; then
12+ echo " build for 32bit"
13+ # 32bit
14+ ABI=' armeabi-v7a'
15+ CPU=' arm'
16+ ARCH=' arm'
17+ ANDROID=' androideabi'
18+ NATIVE_CPU=' armv7-a'
19+ OPTIMIZE_CFLAGS=" -march=$NATIVE_CPU -mcpu=cortex-a8 -mfpu=vfpv3-d16 -mfloat-abi=softfp -mthumb"
20+ else
21+ # 64bit
22+ echo " build for 64bit"
23+ ABI=' arm64-v8a'
24+ CPU=' aarch64'
25+ ARCH=' arm64'
26+ ANDROID=' android'
27+ NATIVE_CPU=' armv8-a'
28+ OPTIMIZE_CFLAGS=" "
29+ fi
30+
31+ # export NDK=/Users/xufulong/Library/Android/sdk/ndk-bundle
32+ export NDK=/Users/xufulong/Library/Android/android-ndk-r10e
33+ export PREBUILT=$NDK /toolchains/$CPU -linux-$ANDROID -4.9/prebuilt
34+ export PLATFORM=$NDK /platforms/android-21/arch-$ARCH
35+ export TOOLCHAIN=$PREBUILT /darwin-x86_64
36+ export PREFIX=../ffmpeg-android/$ABI
37+ export ADDITIONAL_CONFIGURE_FLAG=" --cpu=$NATIVE_CPU "
38+ export EXTRA_CFLAGS=" -Os -fpic $OPTIMIZE_CFLAGS "
39+ export EXTRA_LDFLAGS=" -lc -lm -ldl -llog -lgcc -lz"
40+
41+ build_one (){
42+ ./configure --target-os=linux --prefix=$PREFIX \
43+ --enable-cross-compile \
44+ --arch=$CPU \
45+ --cc=$TOOLCHAIN /bin/$CPU -linux-$ANDROID -gcc \
46+ --cross-prefix=$TOOLCHAIN /bin/$CPU -linux-$ANDROID - \
47+ --sysroot=$PLATFORM \
48+ --enable-neon \
49+ --enable-hwaccels \
50+ --enable-static \
51+ --disable-shared \
52+ --disable-doc \
53+ --enable-asm \
54+ --enable-small \
55+ --disable-ffmpeg \
56+ --disable-ffplay \
57+ --disable-ffprobe \
58+ --disable-ffserver \
59+ --disable-debug \
60+ --disable-gpl \
61+ --disable-avdevice \
62+ --disable-indevs \
63+ --disable-outdevs \
64+ --disable-avresample \
65+ --extra-cflags=" $EXTRA_CFLAGS " \
66+ --extra-ldflags=" $EXTRA_LDFLAGS " \
67+ --enable-avcodec \
68+ --enable-avformat \
69+ --enable-avutil \
70+ --enable-swresample \
71+ --enable-swscale \
72+ --enable-avfilter \
73+ --enable-network \
74+ --enable-bsfs \
75+ --enable-postproc \
76+ --enable-filters \
77+ --enable-encoders \
78+ --disable-decoders \
79+ --enable-decoder=mpeg4,h264,flv,gif,hevc,vp9,wmv3,png,ljpeg,jpeg2000,mjpeg,\
80+ aac,m4a,amrnb,amrwb,ape,dolby_e,dst,flac,opus,vorbis,wavesynth,wavpack,wmav2,\
81+ mp3float,mp3,mp3_at,mp3adufloat,mp3adu,mp3on4float,mp3on4,aac_fixed,aac_at,aac_latm,pcm_s16be,pcm_s16le \
82+ --enable-muxers \
83+ --enable-parsers \
84+ --enable-protocols \
85+ --disable-demuxers \
86+ --enable-demuxer=aac,ac3,amr,amrnb,amrwb,ape,asf,asf_o,ast,avi,caf,cavsvideo,codec2,concat,data,dnxhd,flac,flv,g722,g729,\
87+ gif,gif_pipe,h264,hevc,hls,image2,image2pipe,ingenient,jpeg_pipe,lavfi,lrc,m4v,matroska,webm,mjpeg,mov,mp4,m4a,3gp,mp3,mpeg,\
88+ mpegts,mv,ogg,png_pipe,realtext,rm,rtp,rtsp,s16be,s16le,s24be,s24le,s32be,s32le,sdp,srt,swf,u16be,u16le,u24be,u24le,u32be,u32le,\
89+ vc1,wav,webm_dash,manifest,xmv,f32be,f32le,f64be,f64le \
90+ $ADDITIONAL_CONFIGURE_FLAG
91+ make
92+ make install
93+
94+ $TOOLCHAIN /bin/$CPU -linux-$ANDROID -ld -rpath-link=$PLATFORM /usr/lib -L$PLATFORM /usr/lib \
95+ -L$PREFIX /lib -soname libffmpeg.so \
96+ -shared -nostdlib -Bsymbolic --whole-archive --no-undefined -o $PREFIX /libffmpeg.so \
97+ $PREFIX /lib/libavcodec.a \
98+ $PREFIX /lib/libavfilter.a \
99+ $PREFIX /lib/libswresample.a \
100+ $PREFIX /lib/libavformat.a \
101+ $PREFIX /lib/libavutil.a \
102+ $PREFIX /lib/libswscale.a \
103+ -lc -lm -lz -ldl -llog --dynamic-linker=/system/bin/linker $TOOLCHAIN /lib/gcc/$CPU -linux-$ANDROID /4.9/libgcc.a
104+ }
105+
106+ build_one
0 commit comments