| 1 | #!/bin/sh
|
|---|
| 2 |
|
|---|
| 3 | trap exit ERR
|
|---|
| 4 |
|
|---|
| 5 | LIB_DIR=arm-neon
|
|---|
| 6 | FFMPEG_DIR=ffmpeg-$LIB_DIR
|
|---|
| 7 | SCRIPT_DIR=$( (cd -P $(dirname $0) && pwd) )
|
|---|
| 8 |
|
|---|
| 9 | rm -rf $FFMPEG_DIR
|
|---|
| 10 | mkdir $FFMPEG_DIR
|
|---|
| 11 | cd $FFMPEG_DIR
|
|---|
| 12 | mkdir -p dist
|
|---|
| 13 |
|
|---|
| 14 | NDK=D:/android/android-ndk
|
|---|
| 15 | SYSROOT=$NDK/platforms/android-14/arch-arm
|
|---|
| 16 |
|
|---|
| 17 | FLAGS="--prefix="dist" --cross-prefix=arm-linux-androideabi- --enable-cross-compile --target-os=linux"
|
|---|
| 18 | FLAGS="$FLAGS --arch=arm --enable-neon --enable-thumb " # --enable-thumb
|
|---|
| 19 | FLAGS="$FLAGS --enable-asm --disable-debug --enable-optimizations --enable-pthreads"
|
|---|
| 20 | FLAGS="$FLAGS --disable-ffserver --disable-ffmpeg --disable-ffprobe --disable-encoders --disable-muxers --disable-avdevice --disable-hwaccels "
|
|---|
| 21 | FLAGS="$FLAGS --enable-swscale --enable-encoder=flv,mpeg4,aac"
|
|---|
| 22 |
|
|---|
| 23 | EXTRA_CFLAGS="-DANDROID -O3 -fasm -ffast-math -mthumb" # -marm -mthumb -fpic
|
|---|
| 24 | EXTRA_CFLAGS="$EXTRA_CFLAGS -ftree-vectorize -mvectorize-with-neon-quad"
|
|---|
| 25 | EXTRA_CFLAGS="$EXTRA_CFLAGS -mcpu=cortex-a8 -mfloat-abi=softfp -mfpu=neon --sysroot=$SYSROOT"
|
|---|
| 26 |
|
|---|
| 27 | EXTRA_LDFLAGS="-Wl,--fix-cortex-a8 --sysroot=$SYSROOT"
|
|---|
| 28 |
|
|---|
| 29 | EXTRA_CXXFLAGS="-Wno-multichar -fno-exceptions -fno-rtti"
|
|---|
| 30 |
|
|---|
| 31 | echo "FLAGS: $FLAGS --extra-cflags=$EXTRA_CFLAGS --extra-ldflags=$EXTRA_LDFLAGS --extra-cxxflags=$EXTRA_CXXFLAGS "
|
|---|
| 32 |
|
|---|
| 33 | ../../ffmpeg/configure $FLAGS --extra-cflags="$EXTRA_CFLAGS" --extra-ldflags="$EXTRA_LDFLAGS" --extra-cxxflags="$EXTRA_CXXFLAGS"
|
|---|
| 34 |
|
|---|
| 35 | make clean
|
|---|
| 36 | make -j4
|
|---|
| 37 |
|
|---|
| 38 | cd ..
|
|---|
| 39 | # arm-linux-androideabi-gcc -shared -I../ffmpeg -I$FFMPEG_DIR -o FFmpeg.so FFmpeg.c $FFMPEG_DIR/libswscale/libswscale.a $FFMPEG_DIR/libavformat/libavformat.a $FFMPEG_DIR/libavcodec/libavcodec.a $FFMPEG_DIR/libavutil/libavutil.a -lz --sysroot=$SYSROOT
|
|---|
| 40 | # arm-linux-androideabi-strip FFmpeg.so
|
|---|
| 41 |
|
|---|
| 42 | rm -rf $LIB_DIR
|
|---|
| 43 | mkdir $LIB_DIR
|
|---|
| 44 | cp $FFMPEG_DIR/libavcodec/*.a $LIB_DIR
|
|---|
| 45 | cp $FFMPEG_DIR/libavformat/*.a $LIB_DIR
|
|---|
| 46 | cp $FFMPEG_DIR/libavutil/*.a $LIB_DIR
|
|---|
| 47 | cp $FFMPEG_DIR/libswscale/*.a $LIB_DIR
|
|---|
| 48 | cp $FFMPEG_DIR/libswresample/*.a $LIB_DIR
|
|---|
| 49 |
|
|---|
| 50 | echo "Installed: $FFMPEG_DIR/dist"
|
|---|