diff --git a/build-ffmpeg.sh b/build-ffmpeg.sh new file mode 100755 index 0000000..fac9bc6 --- /dev/null +++ b/build-ffmpeg.sh @@ -0,0 +1,104 @@ +#!/bin/bash + +SYSROOT_iPHONE="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk" +SYSROOT_SIMULATOR="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk" +CC_IPHONE="xcrun -sdk iphoneos clang" +CC_SIMULATOR="xcrun -sdk iphonesimulator clang" +function build_one { + ./configure \ + --prefix=$PREFIX \ + --disable-ffmpeg \ + --disable-ffplay \ + --disable-ffprobe \ + --disable-ffserver \ + --disable-armv5te \ + --disable-armv6 \ + --disable-doc \ + --disable-everything \ + --disable-debug \ + --enable-decoder=h264 \ + --enable-avresample \ + --enable-cross-compile \ + --sysroot=$SYSROOT \ + --target-os=darwin \ + --cc="$CC" \ + --extra-cflags="$CFLAGS" \ + --extra-ldflags="$LDFLAGS" \ + --enable-pic \ + $ADDI_FLAGS + make clean && make -j4 && make install +} + + +# armv7 +function build_armv7 { + PREFIX="armv7" + SYSROOT=$SYSROOT_iPHONE + CC=$CC_IPHONE + CFLAGS="-arch armv7 -mfpu=neon -miphoneos-version-min=7.1 -fpic" + LDFLAGS="-arch armv7 -isysroot $SYSROOT_iPHONE -miphoneos-version-min=7.1" + ADDI_FLAGS="--arch=arm --cpu=cortex-a9" + build_one +} + +# armv7s +function build_armv7s { + PREFIX="armv7s" + SYSROOT=$SYSROOT_iPHONE + CC=$CC_IPHONE + CFLAGS="-arch armv7s -mfpu=neon -miphoneos-version-min=7.1" + LDFLAGS="-arch armv7s -isysroot $SYSROOT_iPHONE -miphoneos-version-min=7.1" + ADDI_FLAGS="--arch=arm --cpu=cortex-a9" + build_one +} + +# i386 +function build_i386 { + PREFIX="i386" + SYSROOT=$SYSROOT_SIMULATOR + CC=$CC_SIMULATOR + CFLAGS="-arch i386" + LDFLAGS="-arch i386 -isysroot $SYSROOT_SIMULATOR -mios-simulator-version-min=7.1" + ADDI_FLAGS="--arch=i386 --cpu=i386 --disable-asm" + build_one +} + + +# create fat library +function build_universal { + cd armv7/lib + for file in *.a + do + cd ../.. + xcrun -sdk iphoneos lipo -output universal/lib/$file -create \ + -arch armv7 armv7/lib/$file \ + -arch armv7s armv7s/lib/$file \ + -arch i386 i386/lib/$file + echo "Universal $file created." + cd - + done + cd ../.. +} + +echo "FFmpeg directory?" +read SOURCE + +cd $SOURCE + +if [ "$1" = "clean" ] + then + rm -r armv7 armv7s i386 universal + make clean + exit 0 +fi +mkdir armv7 +mkdir armv7s +mkdir i386 +mkdir -p universal/lib + +build_armv7 +build_armv7s +build_i386 +build_universal +echo "Ouput files in $SOURCE/armv7 $SOURCE/armv7s $SOURCE/i386 $SOURCE/universal" +