PageRenderTime 46ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/ios/compile-openssl.sh

https://github.com/natanovia/ijkplayer
Shell | 91 lines | 71 code | 12 blank | 8 comment | 11 complexity | 4b493d42f83889a644c18f322b3dff4b MD5 | raw file
Possible License(s): GPL-3.0, LGPL-2.1, LGPL-3.0, GPL-2.0
  1. #! /usr/bin/env bash
  2. #----------
  3. # modify for your build tool
  4. # export HAVE_IOS7_SDK=1 to prefer ios sdk7
  5. FF_ALL_ARCHS_IOS6_SDK="armv7 armv7s i386"
  6. FF_ALL_ARCHS_IOS7_SDK="armv7 armv7s arm64 i386"
  7. FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS6_SDK
  8. if [ "$HAVE_IOS7_SDK" == "1" ]; then
  9. FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS7_SDK
  10. fi
  11. #----------
  12. UNI_BUILD_ROOT=`pwd`
  13. UNI_TMP="$UNI_BUILD_ROOT/tmp"
  14. UNI_TMP_LLVM_VER_FILE="$UNI_TMP/llvm.ver.txt"
  15. FF_TARGET=$1
  16. set -e
  17. #----------
  18. FF_LIBS="libavcodec libavformat libavutil libswscale libswresample"
  19. #----------
  20. echo_archs() {
  21. echo "===================="
  22. echo "[*] check xcode version"
  23. echo "===================="
  24. echo "HAVE_IOS7_SDK = $HAVE_IOS7_SDK"
  25. echo "FF_ALL_ARCHS = $FF_ALL_ARCHS"
  26. }
  27. do_lipo () {
  28. LIB_FILE=$1
  29. LIPO_FLAGS=
  30. for ARCH in $FF_ALL_ARCHS
  31. do
  32. LIPO_FLAGS="$LIPO_FLAGS $UNI_BUILD_ROOT/build/ffmpeg-$ARCH/output/lib/$LIB_FILE"
  33. done
  34. lipo -create $LIPO_FLAGS -output $UNI_BUILD_ROOT/build/universal/lib/$LIB_FILE
  35. lipo -info $UNI_BUILD_ROOT/build/universal/lib/$LIB_FILE
  36. }
  37. do_lipo_all () {
  38. mkdir -p $UNI_BUILD_ROOT/build/universal/lib
  39. echo "lipo archs: $FF_ALL_ARCHS"
  40. for FF_LIB in $FF_LIBS
  41. do
  42. do_lipo "$FF_LIB.a";
  43. done
  44. cp -R $UNI_BUILD_ROOT/build/ffmpeg-armv7/output/include $UNI_BUILD_ROOT/build/universal/
  45. }
  46. #----------
  47. if [ "$FF_TARGET" = "armv7" -o "$FF_TARGET" = "armv7s" -o "$FF_TARGET" = "arm64" ]; then
  48. echo_archs
  49. sh tools/do-compile-ffmpeg.sh $FF_TARGET
  50. elif [ "$FF_TARGET" = "i386" -o "$FF_TARGET" = "x86_64" ]; then
  51. echo_archs
  52. sh tools/do-compile-ffmpeg.sh $FF_TARGET
  53. elif [ "$FF_TARGET" = "lipo" ]; then
  54. echo_archs
  55. do_lipo_all
  56. elif [ "$FF_TARGET" = "all" ]; then
  57. echo_archs
  58. for ARCH in $FF_ALL_ARCHS
  59. do
  60. sh tools/do-compile-ffmpeg.sh $ARCH
  61. done
  62. do_lipo_all
  63. elif [ "$FF_TARGET" == "check" ]; then
  64. echo_archs
  65. elif [ "$FF_TARGET" == "clean" ]; then
  66. echo_archs
  67. for ARCH in $FF_ALL_ARCHS
  68. do
  69. cd ffmpeg-$ARCH && git clean -xdf && cd -
  70. done
  71. else
  72. echo "Usage:"
  73. echo " compile-ffmpeg.sh armv7|armv7s|arm64|i386|x86_64"
  74. echo " compile-ffmpeg.sh lipo"
  75. echo " compile-ffmpeg.sh all"
  76. echo " compile-ffmpeg.sh clean"
  77. echo " compile-ffmpeg.sh check"
  78. exit 1
  79. fi