2727
2828uname=` uname`
2929if [ $uname = " Darwin" ]; then
30- echo " compile on mac"
3130 COMPILE_PLAT=" darwin"
31+ CORE_NUM=$( getconf _NPROCESSORS_ONLN)
32+ echo " compile on mac, core=$CORE_NUM "
3233elif [ $uname = " Linux" ]; then
33- echo " compile on linux"
3434 COMPILE_PLAT=" linux"
35+ CORE_NUM=$( nproc)
36+ echo " compile on linux, core=$CORE_NUM "
3537else
3638 echo " don't support $uname "
3739fi
@@ -40,12 +42,10 @@ export NDK=/Users/xufulong/Library/Android/sdk/ndk-bundle
4042export TOOL=$NDK /toolchains/llvm/prebuilt/$COMPILE_PLAT -x86_64
4143export TOOLCHAIN=$NDK /toolchains/llvm/prebuilt/$COMPILE_PLAT -x86_64/bin
4244export SYSROOT=$NDK /toolchains/llvm/prebuilt/$COMPILE_PLAT -x86_64/sysroot
43- export CROSS_PREFIX=$TOOLCHAIN /$ARCH -linux-$ANDROID -
4445export CC=$TOOLCHAIN /$PLATFORM -linux-$ANDROID$API -clang
4546export CXX=$TOOLCHAIN /$PLATFORM -linux-$ANDROID$API -clang++
4647export PLATFORM_API=$NDK /platforms/android-$API /arch-$PLATFORM_ARCH
4748export PREFIX=../ffmpeg-android/$ABI
48- export ADDITIONAL_CONFIGURE_FLAG=" --cpu=$CPU "
4949
5050THIRD_LIB=$PREFIX
5151export EXTRA_CFLAGS=" -Os -fPIC $OPTIMIZE_CFLAGS -I$THIRD_LIB /include"
@@ -55,14 +55,16 @@ function build_one() {
5555 ./configure \
5656 --target-os=android \
5757 --prefix=$PREFIX \
58- --cross-prefix=$CROSS_PREFIX \
58+ --cross-prefix=$TOOLCHAIN \
5959 --enable-cross-compile \
6060 --arch=$ARCH \
6161 --cpu=$CPU \
6262 --cc=$CC \
6363 --cxx=$CXX \
64- --nm=$TOOLCHAIN /$ARCH -linux-$ANDROID -nm \
65- --strip=$TOOLCHAIN /$ARCH -linux-$ANDROID -strip \
64+ --ar=$TOOLCHAIN /llvm-ar \
65+ --nm=$TOOLCHAIN /llvm-nm \
66+ --ranlib=$TOOLCHAIN /llvm-ranlib \
67+ --strip=$TOOLCHAIN /llvm-strip \
6668 --enable-cross-compile \
6769 --sysroot=$SYSROOT \
6870 --enable-hwaccels \
@@ -127,16 +129,16 @@ ssa,ass,dvbsub,dvdsub,pgssub,mov_text,sami,srt,subrip,text,webvtt \
127129 --enable-demuxer=aac,ac3,alaw,amr,amrnb,amrwb,ape,asf,asf_o,ass,av1,avi,cavsvideo,codec2,concat,dash,dnxhd,eac3,flac,flv,\
128130g722,g726,g729,gif,gif_pipe,h263,h264,hevc,hls,image2,image2pipe,jpeg_pipe,lrc,m4v,matroska,webm,mjpeg,mov,mp4,m4a,3gp,mp3,mpeg,\
129131mpegts,mpegvideo,mv,mulaw,manifest,ogg,pcm_s16be,pcm_s16le,pcm_s32be,pcm_s32le,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,\
130- png_pipe,realtext,rm,rtp,rtsp,sami,sdp,srt,swf,vc1,wav,webm_dash,xmv \
131- $ADDITIONAL_CONFIGURE_FLAG
132- make
133- make install
132+ png_pipe,realtext,rm,rtp,rtsp,sami,sdp,srt,swf,vc1,wav,webm_dash,xmv
133+
134+ make -j $CORE_NUM
135+ make install
134136}
135137
136138build_one
137139
138140function link_one_ffmpeg() {
139- $TOOLCHAIN /$ARCH -linux- $ANDROID - ld -rpath-link=$PLATFORM_API /usr/lib -L$PLATFORM_API /usr/lib \
141+ $TOOLCHAIN /ld -rpath-link=$PLATFORM_API /usr/lib -L$PLATFORM_API /usr/lib \
140142 -L$PREFIX /lib -soname libffmpeg.so \
141143 -shared -Bsymbolic --whole-archive --no-undefined -o $PREFIX /libffmpeg.so \
142144 $PREFIX /lib/libavcodec.a \
0 commit comments