PLATFORM=OS
VERBOSE=no
-SDK_VERSION=5.0
+SDK_VERSION=6.1
+SDK_MIN=5.1
+ARCH=armv7
usage()
{
usage: $0 [-s] [-k sdk]
OPTIONS
- -k Specify which sdk to use ('xcodebuild -showsdks', current: ${SDK})
- -s Build for simulator
+ -k <sdk> Specify which sdk to use ('xcodebuild -showsdks', current: ${SDK})
+ -s Build for simulator
+ -a <arch> Specify which arch to use (current: ${ARCH})
EOF
}
echo "[${blue}info${normal}] $1"
}
-while getopts "hvsk:" OPTION
+while getopts "hvsk:a:" OPTION
do
case $OPTION in
h)
;;
s)
PLATFORM=Simulator
- SDK=5.0
+ SDK=${SDK_MIN}
;;
k)
SDK=$OPTARG
;;
+ a)
+ ARCH=$OPTARG
+ ;;
?)
usage
exit 1
out="/dev/stdout"
fi
-info "Building libvlc for the iOS"
+info "Building libvlc for iOS"
if [ "$PLATFORM" = "Simulator" ]; then
- TARGET="i686-apple-darwin10"
+ TARGET="i686-apple-darwin11"
ARCH="i386"
+ OPTIM="-O3 -g"
else
TARGET="arm-apple-darwin11"
- ARCH="armv7"
- OPTIM="-mno-thumb"
+ OPTIM="-O3 -g"
fi
info "Using ${ARCH} with SDK version ${SDK_VERSION}"
exit 1
fi
-BUILDDIR="${VLCROOT}/build-ios-${PLATFORM}"
+BUILDDIR="${VLCROOT}/build-ios-${PLATFORM}/${ARCH}"
-PREFIX="${VLCROOT}/install-ios-${PLATFORM}"
+PREFIX="${VLCROOT}/install-ios-${PLATFORM}/${ARCH}"
-IOS_GAS_PREPROCESSOR="${VLCROOT}/extras/package/ios/resources/gas-preprocessor.pl"
+IOS_GAS_PREPROCESSOR="${VLCROOT}/extras/tools/gas/gas-preprocessor.pl"
export PATH="${VLCROOT}/extras/tools/build/bin:${VLCROOT}/contrib/${TARGET}/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin"
make && make .gas
spopd
-info "Building contrib for iOS in '${VLCROOT}/contrib/iPhone${PLATFORM}'"
+info "Building contrib for iOS in '${VLCROOT}/contrib/iPhone${PLATFORM}-${ARCH}'"
# The contrib will read the following
export AR="xcrun ar"
export SDKROOT
+if [ "$PLATFORM" = "OS" ]; then
+export CFLAGS="-isysroot ${SDKROOT} -arch ${ARCH} -mcpu=cortex-a8 -miphoneos-version-min=${SDK_MIN} ${OPTIM}"
+else
+export CFLAGS="-isysroot ${SDKROOT} -arch ${ARCH} -miphoneos-version-min=${SDK_MIN} ${OPTIM}"
+fi
export CPPFLAGS="${CFLAGS}"
export CXXFLAGS="${CFLAGS}"
-export CFLAGS="-isysroot ${SDKROOT} -arch ${ARCH} -miphoneos-version-min=5.0 ${OPTIM}"
export OBJCFLAGS="${CFLAGS}"
export CPP="xcrun cc -E"
export CXXCPP="xcrun c++ -E"
+export BUILDFORIOS="yes"
+
if [ "$PLATFORM" = "Simulator" ]; then
# Use the new ABI on simulator, else we can't build
export OBJCFLAGS="-fobjc-abi-version=2 -fobjc-legacy-dispatch ${OBJCFLAGS}"
fi
if [ "$PLATFORM" = "OS" ]; then
- export LDFLAGS="-L${SDKROOT}/usr/lib -arch ${ARCH} -isysroot ${SDKROOT} -miphoneos-version-min=5.0 "
+ export LDFLAGS="-L${SDKROOT}/usr/lib -arch ${ARCH} -isysroot ${SDKROOT} -miphoneos-version-min=${SDK_MIN}"
else
- export LDFLAGS="-syslibroot=${SDKROOT}/ -arch ${ARCH} "
+ export LDFLAGS="-syslibroot=${SDKROOT}/ -arch ${ARCH} -miphoneos-version-min=${SDK_MIN}"
+fi
+
+if [ "$PLATFORM" = "OS" ]; then
+ EXTRA_CFLAGS="-arch ${ARCH} -mcpu=cortex-a8"
+ EXTRA_LDFLAGS="-arch ${ARCH}"
+else
+ EXTRA_CFLAGS="-m32"
+ EXTRA_LDFLAGS="-m32"
fi
info "LD FLAGS SELECTED = '${LDFLAGS}'"
spushd ${VLCROOT}/contrib
echo ${VLCROOT}
-mkdir -p "${VLCROOT}/contrib/iPhone${PLATFORM}"
-cd "${VLCROOT}/contrib/iPhone${PLATFORM}"
+mkdir -p "${VLCROOT}/contrib/iPhone${PLATFORM}-${ARCH}"
+cd "${VLCROOT}/contrib/iPhone${PLATFORM}-${ARCH}"
if [ "$PLATFORM" = "OS" ]; then
- export AS="${IOS_GAS_PREPROCESSOR} ${CC}"
- export ASCPP="${IOS_GAS_PREPROCESSOR} ${CC}"
+ export AS="${IOS_GAS_PREPROCESSOR} ${CC}"
+ export ASCPP="${IOS_GAS_PREPROCESSOR} ${CC}"
+ export CCAS="${IOS_GAS_PREPROCESSOR} ${CC}"
else
export AS="xcrun as"
export ASCPP="xcrun as"
fi
-../bootstrap --host=${TARGET} --build="i686-apple-darwin10" --disable-disc --disable-sout \
+../bootstrap --host=${TARGET} --build="i686-apple-darwin10" --prefix=${VLCROOT}/contrib/${TARGET}-${ARCH} --disable-gpl \
+ --disable-disc --disable-sout \
--enable-small \
--disable-sdl \
--disable-SDL_image \
--disable-fontconfig \
--disable-ass \
--disable-freetype2 \
+ --disable-iconv \
--disable-fribidi \
--disable-zvbi \
--disable-kate \
--disable-tremor \
--disable-vorbis \
--disable-sidplay2 \
- --disable-samplerate > ${out}
+ --disable-samplerate \
+ --disable-goom \
+ --disable-gcrypt \
+ --disable-gnutls \
+ --disable-orc \
+ --disable-schroedinger \
+ --disable-libmpeg2 \
+ --disable-chromaprint \
+ --disable-mad \
+ --disable-taglib > ${out}
+
+echo "EXTRA_CFLAGS += ${EXTRA_CFLAGS}" >> config.mak
+echo "EXTRA_LDFLAGS += ${EXTRA_LDFLAGS}" >> config.mak
make
spopd
-
-if [ "$PLATFORM" = "OS" ]; then
- export AS="${IOS_GAS_PREPROCESSOR} ${CC}"
- export ASCPP="${IOS_GAS_PREPROCESSOR} ${CC}"
-else
- export AS="xcrun as"
- export ASCPP="xcrun as"
-fi
-
-
info "Bootstraping vlc"
pwd
info "VLCROOT = ${VLCROOT}"
export AVFORMAT_LIBS="-L${PREFIX}/lib -lavcodec -lz -lavutil -lavformat"
fi
-export DVBPSI_CFLAGS="-I${VLCROOT}/contrib-ios-${TARGET}/include "
-export DVBPSI_LIBS="-L${VLCROOT}/contrib-ios-${TARGET}/lib "
-
-export SWSCALE_CFLAGS="-I${VLCROOT}/contrib-ios-${TARGET}/include "
-export SWSCALE_LIBS="-L${VLCROOT}/contrib-ios-${TARGET}/lib "
-
-
-
mkdir -p ${BUILDDIR}
spushd ${BUILDDIR}
# Run configure only upon changes.
if [ "${VLCROOT}/configure" -nt config.log -o \
"${THIS_SCRIPT_PATH}" -nt config.log ]; then
-CONTRIB_DIR=${VLCROOT}/contrib-ios-${TARGET} \
${VLCROOT}/configure \
--prefix="${PREFIX}" \
--host="${TARGET}" \
- --enable-debug \
+ --with-contrib="${VLCROOT}/contrib/${TARGET}-${ARCH}" \
+ --disable-debug \
--enable-static \
--disable-macosx \
--disable-macosx-vout \
--disable-macosx-qtkit \
--disable-macosx-eyetv \
--disable-macosx-vlc-app \
- --with-macosx-sdk=${SDKROOT} \
+ --disable-macosx-avfoundation \
--enable-audioqueue \
+ --enable-ios-audio \
--enable-ios-vout \
+ --enable-ios-vout2 \
--disable-shared \
--disable-macosx-quartztext \
--enable-avcodec \
- --disable-mkv \
- --enable-dvbpsi \
- --enable-swscale \
- --disable-projectm \
+ --enable-mkv \
+ --enable-opus \
--disable-sout \
--disable-faad \
--disable-lua \
- --disable-mad \
--disable-a52 \
--disable-fribidi \
--disable-macosx-audio \
- --disable-qt4 --disable-skins2 \
+ --disable-qt --disable-skins2 \
--disable-libgcrypt \
--disable-vcd \
- --disable-postproc \
--disable-vlc \
--disable-vlm \
--disable-httpd \
--disable-nls \
--disable-glx \
- --enable-visual \
- --disable-lua \
--disable-sse \
- --disable-neon \
+ --enable-neon \
--disable-notify \
- --disable-mmx > ${out} # MMX and SSE support requires llvm which is broken on Simulator
+ --enable-live555 \
+ --enable-realrtsp \
+ --enable-dvbpsi \
+ --enable-swscale \
+ --disable-projectm \
+ --disable-libass \
+ --disable-libxml2 \
+ --disable-goom \
+ --disable-dvdread \
+ --disable-dvdnav \
+ --disable-bluray \
+ --disable-linsys \
+ --disable-libva \
+ --disable-gme \
+ --disable-tremor \
+ --disable-vorbis \
+ --disable-fluidsynth \
+ --disable-jack \
+ --disable-pulse \
+ --disable-mtp \
+ --enable-ogg \
+ --enable-speex \
+ --enable-theora \
+ --enable-flac \
+ --disable-screen \
+ --disable-freetype \
+ --disable-taglib \
+ --disable-mmx \
+ --disable-mad > ${out} # MMX and SSE support requires llvm which is broken on Simulator
fi
CORE_COUNT=`sysctl -n machdep.cpu.core_count`
info "Installing libvlc"
make install > ${out}
+
+find ${PREFIX}/lib/vlc/plugins -name *.a -type f -exec cp '{}' ${PREFIX}/lib/vlc/plugins \;
+cp -R "${VLCROOT}/contrib/${TARGET}-${ARCH}" "${PREFIX}/contribs"
+
+info "Removing unneeded modules"
+blacklist="
+stats
+access_bd
+shm
+access_imem
+oldrc
+real
+hotkeys
+gestures
+sap
+dynamicoverlay
+rss
+ball
+marq
+magnify
+audiobargraph_
+clone
+mosaic
+osdmenu
+puzzle
+mediadirs
+t140
+ripple
+motion
+sharpen
+grain
+posterize
+mirror
+wall
+scene
+blendbench
+psychedelic
+alphamask
+netsync
+audioscrobbler
+motiondetect
+motionblur
+export
+smf
+podcast
+bluescreen
+erase
+stream_filter_record
+speex_resampler
+remoteosd
+magnify
+gradient
+tospdif
+dtstofloat32
+logger
+visual
+fb
+aout_file
+dummy
+invert
+sepia
+wave
+hqdn3d
+headphone_channel_mixer
+gaussianblur
+gradfun
+extract
+colorthres
+antiflicker
+anaglyph
+remap
+"
+
+for i in ${blacklist}
+do
+ find ${PREFIX}/lib/vlc/plugins -name *$i* -type f -exec rm '{}' \;
+done
+
popd