Skip to content

Instantly share code, notes, and snippets.

@moltak
Created August 16, 2014 07:09
Show Gist options
  • Select an option

  • Save moltak/e478fd6f9716381a9a1c to your computer and use it in GitHub Desktop.

Select an option

Save moltak/e478fd6f9716381a9a1c to your computer and use it in GitHub Desktop.
ffmpeg build_android.sh
#!/bin/bash
NDK=/Users/moltak/Documents/jar/android-ndk-r10
PLATFORM=$NDK/platforms/android-9/arch-arm/
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64
function build_one
{
./configure --target-os=linux \
--prefix=$PREFIX \
--enable-cross-compile \
--extra-libs="-lgcc" \
--arch=arm \
--cc=$PREBUILT/bin/arm-linux-androideabi-gcc \
--cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
--nm=$PREBUILT/bin/arm-linux-androideabi-nm \
--sysroot=$PLATFORM \
--extra-cflags=" -O3 -fpic -DANDROID -DHAVE_SYS_UIO_H=1 -Dipv6mr_interface=ipv6mr_ifindex \
-fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300 $OPTIMIZE_CFLAGS " \
--disable-shared \
--enable-static \
--extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl -llog" \
--enable-parsers \
--enable-encoders \
--enable-decoders \
--disable-muxers \
--enable-demuxers \
--enable-swscale \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--enable-network \
--enable-indevs \
--disable-bsfs \
--enable-filters \
--enable-protocols \
--enable-asm \
$ADDITIONAL_CONFIGURE_FLAG
#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 \
-Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so \
libavcodec/libavcodec.a libavdevice/libavdevice.a libavfilter/libavfilter.a \
libavformat/libavformat.a libavutil/libavutil.a libswscale/libswscale.a \
libswresample/libswresample.a -lc -lm -lz -ldl -llog \
--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
#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
@susie788
Copy link
Copy Markdown

susie788 commented Mar 7, 2018

What do you think

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment