build-x264.sh 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #!/bin/sh
  2. CONFIGURE_FLAGS="--enable-static --enable-pic --disable-cli"
  3. ARCHS="arm64 armv7 armv7s"
  4. # directories
  5. SOURCE="x264"
  6. FAT="x264-iOS"
  7. SCRATCH="scratch-x264"
  8. # must be an absolute path
  9. THIN=`pwd`/"thin-x264"
  10. COMPILE="y"
  11. LIPO="y"
  12. if [ "$*" ]
  13. then
  14. if [ "$*" = "lipo" ]
  15. then
  16. # skip compile
  17. COMPILE=
  18. else
  19. ARCHS="$*"
  20. if [ $# -eq 1 ]
  21. then
  22. # skip lipo
  23. LIPO=
  24. fi
  25. fi
  26. fi
  27. if [ "$COMPILE" ]
  28. then
  29. CWD=`pwd`
  30. for ARCH in $ARCHS
  31. do
  32. echo "building $ARCH..."
  33. mkdir -p "$SCRATCH/$ARCH"
  34. cd "$SCRATCH/$ARCH"
  35. CFLAGS="-arch $ARCH"
  36. ASFLAGS=
  37. if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]
  38. then
  39. PLATFORM="iPhoneSimulator"
  40. CPU=
  41. if [ "$ARCH" = "x86_64" ]
  42. then
  43. CFLAGS="$CFLAGS -mios-simulator-version-min=7.0"
  44. HOST=
  45. else
  46. CFLAGS="$CFLAGS -mios-simulator-version-min=5.0"
  47. HOST="--host=i386-apple-darwin"
  48. fi
  49. else
  50. PLATFORM="iPhoneOS"
  51. if [ $ARCH = "arm64" ]
  52. then
  53. HOST="--host=aarch64-apple-darwin"
  54. XARCH="-arch aarch64"
  55. else
  56. HOST="--host=arm-apple-darwin"
  57. XARCH="-arch arm"
  58. fi
  59. CFLAGS="$CFLAGS -fembed-bitcode -mios-version-min=7.0"
  60. ASFLAGS="$CFLAGS"
  61. fi
  62. XCRUN_SDK=`echo $PLATFORM | tr '[:upper:]' '[:lower:]'`
  63. CC="xcrun -sdk $XCRUN_SDK clang"
  64. if [ $PLATFORM = "iPhoneOS" ]
  65. then
  66. export AS="$CWD/$SOURCE/tools/gas-preprocessor.pl $XARCH -- $CC"
  67. else
  68. export -n AS
  69. fi
  70. CXXFLAGS="$CFLAGS"
  71. LDFLAGS="$CFLAGS"
  72. CC=$CC $CWD/$SOURCE/configure \
  73. $CONFIGURE_FLAGS \
  74. $HOST \
  75. --extra-cflags="$CFLAGS" \
  76. --extra-asflags="$ASFLAGS" \
  77. --extra-ldflags="$LDFLAGS" \
  78. --prefix="$THIN/$ARCH" || exit 1
  79. make -j3 install || exit 1
  80. cd $CWD
  81. done
  82. fi
  83. if [ "$LIPO" ]
  84. then
  85. echo "building fat binaries..."
  86. mkdir -p $FAT/lib
  87. set - $ARCHS
  88. CWD=`pwd`
  89. cd $THIN/$1/lib
  90. for LIB in *.a
  91. do
  92. cd $CWD
  93. lipo -create `find $THIN -name $LIB` -output $FAT/lib/$LIB
  94. done
  95. cd $CWD
  96. cp -rf $THIN/$1/include $FAT
  97. fi