Advertisement
Guest User

Untitled

a guest
Aug 4th, 2013
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.66 KB | None | 0 0
  1. #!/bin/bash
  2. ######################################################
  3. # Usage:
  4. # put this script in top of FFmpeg source tree
  5. # ./build_android
  6. #
  7. # It generates binary for following architectures:
  8. # ARMv6
  9. # ARMv6+VFP
  10. # ARMv7+VFPv3-d16 (Tegra2)
  11. # ARMv7+Neon (Cortex-A8)
  12. #
  13. # Customizing:
  14. # 1. Feel free to change ./configure parameters for more features
  15. # 2. To adapt other ARM variants
  16. # set $CPU and $OPTIMIZE_CFLAGS
  17. # call build_one
  18. ######################################################
  19. #change these three lines if you want to build using different vesion of Android ndk
  20. #build_one is for ndk 5, and build_one_r6 is for ndk 6
  21. NDK=~/home/arafat/Development/android-ndk-r9
  22. PLATFORM=$NDK/platforms/android-18/arch-arm/
  23. PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86
  24. function build_one_r6
  25. {
  26. ./configure \
  27.     --disable-shared \
  28.     --enable-static \
  29.     --enable-gpl \
  30.     --enable-version3 \
  31.     --enable-nonfree \
  32.     --disable-doc \
  33.     --disable-ffmpeg \
  34.     --disable-ffplay \
  35.     --disable-ffprobe \
  36.     --disable-ffserver \
  37.     --disable-avdevice \
  38.     --disable-avfilter \
  39.     --disable-postproc \
  40.     --enable-small \
  41.     --cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
  42.     --enable-cross-compile \
  43.     --target-os=linux \
  44.     --extra-cflags="-I$PLATFORM/usr/include" \
  45.     --extra-ldflags="-L$PLATFORM/usr/lib -nostdlib" \
  46.     --arch=arm \
  47.     --disable-symver \
  48.     --disable-debug \
  49.     --disable-stripping \
  50.     $ADDITIONAL_CONFIGURE_FLAG
  51. sed -i 's/HAVE_LRINT 0/HAVE_LRINT 1/g' config.h
  52. sed -i 's/HAVE_LRINTF 0/HAVE_LRINTF 1/g' config.h
  53. sed -i 's/HAVE_ROUND 0/HAVE_ROUND 1/g' config.h
  54. sed -i 's/HAVE_ROUNDF 0/HAVE_ROUNDF 1/g' config.h
  55. sed -i 's/HAVE_TRUNC 0/HAVE_TRUNC 1/g' config.h
  56. sed -i 's/HAVE_TRUNCF 0/HAVE_TRUNCF 1/g' config.h
  57. make clean
  58. make  -j4 install
  59. $PREBUILT/bin/arm-linux-androideabi-ar d libavcodec/libavcodec.a inverse.o
  60. $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
  61. }
  62. function build_one_r6_2
  63. {
  64. $PREBUILT/bin/arm-linux-androideabi-ar d libavcodec/libavcodec.a inverse.o
  65. $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
  66. }
  67. #arm v6
  68. #CPU=armv6
  69. #OPTIMIZE_CFLAGS="-marm -march=$CPU"
  70. #PREFIX=./android/$CPU
  71. #ADDITIONAL_CONFIGURE_FLAG=
  72. #build_one
  73. #arm v7vfpv3
  74. CPU=armv7-a
  75. OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU "
  76. PREFIX=./android/$CPU
  77. ADDITIONAL_CONFIGURE_FLAG=
  78. #build_one
  79. build_one_r6
  80. #arm v7vfp
  81. #CPU=armv7-a
  82. #OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU "
  83. #PREFIX=./android/$CPU-vfp
  84. #ADDITIONAL_CONFIGURE_FLAG=
  85. #build_one
  86. #arm v7n
  87. #CPU=armv7-a
  88. #OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -march=$CPU -mtune=cortex-a8"
  89. #PREFIX=./android/$CPU
  90. #ADDITIONAL_CONFIGURE_FLAG=--enable-neon
  91. #build_one
  92. #arm v6+vfp
  93. #CPU=armv6
  94. #OPTIMIZE_CFLAGS="-DCMP_HAVE_VFP -mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU"
  95. #PREFIX=./android/${CPU}_vfp
  96. #ADDITIONAL_CONFIGURE_FLAG=
  97. #build_one
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement