Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ######################################################
- # Usage:
- # put this script in top of FFmpeg source tree
- # ./build_android
- #
- # It generates binary for following architectures:
- # ARMv6
- # ARMv6+VFP
- # ARMv7+VFPv3-d16 (Tegra2)
- # ARMv7+Neon (Cortex-A8)
- #
- # Customizing:
- # 1. Feel free to change ./configure parameters for more features
- # 2. To adapt other ARM variants
- # set $CPU and $OPTIMIZE_CFLAGS
- # call build_one
- ######################################################
- #change these three lines if you want to build using different vesion of Android ndk
- #build_one is for ndk 5, and build_one_r6 is for ndk 6
- NDK=~/home/arafat/Development/android-ndk-r9
- PLATFORM=$NDK/platforms/android-18/arch-arm/
- PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86
- function build_one_r6
- {
- ./configure \
- --disable-shared \
- --enable-static \
- --enable-gpl \
- --enable-version3 \
- --enable-nonfree \
- --disable-doc \
- --disable-ffmpeg \
- --disable-ffplay \
- --disable-ffprobe \
- --disable-ffserver \
- --disable-avdevice \
- --disable-avfilter \
- --disable-postproc \
- --enable-small \
- --cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
- --enable-cross-compile \
- --target-os=linux \
- --extra-cflags="-I$PLATFORM/usr/include" \
- --extra-ldflags="-L$PLATFORM/usr/lib -nostdlib" \
- --arch=arm \
- --disable-symver \
- --disable-debug \
- --disable-stripping \
- $ADDITIONAL_CONFIGURE_FLAG
- sed -i 's/HAVE_LRINT 0/HAVE_LRINT 1/g' config.h
- sed -i 's/HAVE_LRINTF 0/HAVE_LRINTF 1/g' config.h
- sed -i 's/HAVE_ROUND 0/HAVE_ROUND 1/g' config.h
- sed -i 's/HAVE_ROUNDF 0/HAVE_ROUNDF 1/g' config.h
- sed -i 's/HAVE_TRUNC 0/HAVE_TRUNC 1/g' config.h
- sed -i 's/HAVE_TRUNCF 0/HAVE_TRUNCF 1/g' config.h
- make clean
- make -j4 install
- $PREBUILT/bin/arm-linux-androideabi-ar d libavcodec/libavcodec.a inverse.o
- $PREBUILT/bin/arm-linux-androideabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -soname libffmpeg.so -shared -nostdlib -z,noexecstack -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavformat/libavformat.a libavutil/libavutil.a libswscale/libswscale.a -lc -lm -lz -ldl -llog --warn-once --dynamic-linker=/system/bin/linker $PREBUILT/lib/gcc/arm-linux-androideabi/4.6/libgcc.a
- }
- function build_one_r6_2
- {
- $PREBUILT/bin/arm-linux-androideabi-ar d libavcodec/libavcodec.a inverse.o
- $PREBUILT/bin/arm-linux-androideabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -soname libffmpeg.so -shared -nostdlib -z,noexecstack -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavformat/libavformat.a libavutil/libavutil.a libswscale/libswscale.a -lc -lm -lz -ldl -llog --warn-once --dynamic-linker=/system/bin/linker $PREBUILT/lib/gcc/arm-linux-androideabi/4.6/libgcc.a
- }
- #arm v6
- #CPU=armv6
- #OPTIMIZE_CFLAGS="-marm -march=$CPU"
- #PREFIX=./android/$CPU
- #ADDITIONAL_CONFIGURE_FLAG=
- #build_one
- #arm v7vfpv3
- CPU=armv7-a
- OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU "
- PREFIX=./android/$CPU
- ADDITIONAL_CONFIGURE_FLAG=
- #build_one
- build_one_r6
- #arm v7vfp
- #CPU=armv7-a
- #OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU "
- #PREFIX=./android/$CPU-vfp
- #ADDITIONAL_CONFIGURE_FLAG=
- #build_one
- #arm v7n
- #CPU=armv7-a
- #OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -march=$CPU -mtune=cortex-a8"
- #PREFIX=./android/$CPU
- #ADDITIONAL_CONFIGURE_FLAG=--enable-neon
- #build_one
- #arm v6+vfp
- #CPU=armv6
- #OPTIMIZE_CFLAGS="-DCMP_HAVE_VFP -mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU"
- #PREFIX=./android/${CPU}_vfp
- #ADDITIONAL_CONFIGURE_FLAG=
- #build_one
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement