11 usage: $0 [-s] [-k sdk]
14 -k Specify which sdk to use ('xcodebuild -showsdks', current: ${SDK})
15 -s Build for simulator
21 pushd "$1" 2>&1> /dev/null
31 local blue="\033[1;34m"
32 local normal="\033[0m"
33 echo "[${blue}info${normal}] $1"
36 while getopts "hvsk:" OPTION
59 shift $(($OPTIND - 1))
61 if [ "x$1" != "x" ]; then
67 if [ "$VERBOSE" = "yes" ]; then
71 info "Building libvlc for the iOS"
73 if [ "$PLATFORM" = "Simulator" ]; then
74 TARGET="i686-apple-darwin10"
77 TARGET="arm-apple-darwin11"
82 info "Using ${ARCH} with SDK version ${SDK_VERSION}"
84 THIS_SCRIPT_PATH=`pwd`/$0
86 spushd `dirname ${THIS_SCRIPT_PATH}`/../../..
87 VLCROOT=`pwd` # Let's make sure VLCROOT is an absolute path
92 SDKROOT=`xcode-select -print-path`/Platforms/iPhone${PLATFORM}.platform/Developer/SDKs/iPhone${PLATFORM}${SDK_VERSION}.sdk
93 echo "SDKROOT not specified, assuming $SDKROOT"
96 if [ ! -d "${SDKROOT}" ]
98 echo "*** ${SDKROOT} does not exist, please install required SDK, or set SDKROOT manually. ***"
102 BUILDDIR="${VLCROOT}/build-ios-${PLATFORM}"
104 PREFIX="${VLCROOT}/install-ios-${PLATFORM}"
106 IOS_GAS_PREPROCESSOR="${VLCROOT}/extras/tools/gas/gas-preprocessor.pl"
108 export PATH="${VLCROOT}/extras/tools/build/bin:${VLCROOT}/contrib/${TARGET}/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin"
110 # contains gas-processor.pl
111 export PATH=$PATH:${VLCROOT}/extras/package/ios/resources
113 info "Building tools"
114 spushd "${VLCROOT}/extras/tools"
119 info "Building contrib for iOS in '${VLCROOT}/contrib/iPhone${PLATFORM}'"
121 # The contrib will read the following
124 export RANLIB="xcrun ranlib"
125 export CC="xcrun clang"
126 export OBJC="xcrun clang"
127 export CXX="xcrun clang++"
129 export STRIP="xcrun strip"
133 export CPPFLAGS="${CFLAGS}"
134 export CXXFLAGS="${CFLAGS}"
135 export CFLAGS="-isysroot ${SDKROOT} -arch ${ARCH} -miphoneos-version-min=5.0 ${OPTIM}"
136 export OBJCFLAGS="${CFLAGS}"
138 export CPP="xcrun cc -E"
139 export CXXCPP="xcrun c++ -E"
141 if [ "$PLATFORM" = "Simulator" ]; then
142 # Use the new ABI on simulator, else we can't build
143 export OBJCFLAGS="-fobjc-abi-version=2 -fobjc-legacy-dispatch ${OBJCFLAGS}"
146 if [ "$PLATFORM" = "OS" ]; then
147 export LDFLAGS="-L${SDKROOT}/usr/lib -arch ${ARCH} -isysroot ${SDKROOT} -miphoneos-version-min=5.0 "
149 export LDFLAGS="-syslibroot=${SDKROOT}/ -arch ${ARCH} "
152 info "LD FLAGS SELECTED = '${LDFLAGS}'"
154 spushd ${VLCROOT}/contrib
157 mkdir -p "${VLCROOT}/contrib/iPhone${PLATFORM}"
158 cd "${VLCROOT}/contrib/iPhone${PLATFORM}"
160 if [ "$PLATFORM" = "OS" ]; then
161 export AS="${IOS_GAS_PREPROCESSOR} ${CC}"
162 export ASCPP="${IOS_GAS_PREPROCESSOR} ${CC}"
165 export ASCPP="xcrun as"
168 ../bootstrap --host=${TARGET} --build="i686-apple-darwin10" --disable-disc --disable-sout \
171 --disable-SDL_image \
172 --disable-fontconfig \
174 --disable-freetype2 \
186 --disable-samplerate \
187 --disable-goom > ${out}
192 if [ "$PLATFORM" = "OS" ]; then
193 export AS="${IOS_GAS_PREPROCESSOR} ${CC}"
194 export ASCPP="${IOS_GAS_PREPROCESSOR} ${CC}"
197 export ASCPP="xcrun as"
201 info "Bootstraping vlc"
203 info "VLCROOT = ${VLCROOT}"
204 if ! [ -e ${VLCROOT}/configure ]; then
205 ${VLCROOT}/bootstrap > ${out}
208 info "Bootstraping vlc finished"
210 if [ ".$PLATFORM" != ".Simulator" ]; then
211 # FIXME - Do we still need this?
212 export AVCODEC_CFLAGS="-I${PREFIX}/include "
213 export AVCODEC_LIBS="-L${PREFIX}/lib -lavcodec -lavutil -lz"
214 export AVFORMAT_CFLAGS="-I${PREFIX}/include"
215 export AVFORMAT_LIBS="-L${PREFIX}/lib -lavcodec -lz -lavutil -lavformat"
218 export DVBPSI_CFLAGS="-I${VLCROOT}/contrib-ios-${TARGET}/include "
219 export DVBPSI_LIBS="-L${VLCROOT}/contrib-ios-${TARGET}/lib "
221 export SWSCALE_CFLAGS="-I${VLCROOT}/contrib-ios-${TARGET}/include "
222 export SWSCALE_LIBS="-L${VLCROOT}/contrib-ios-${TARGET}/lib "
229 info ">> --prefix=${PREFIX} --host=${TARGET}"
231 # Run configure only upon changes.
232 if [ "${VLCROOT}/configure" -nt config.log -o \
233 "${THIS_SCRIPT_PATH}" -nt config.log ]; then
234 CONTRIB_DIR=${VLCROOT}/contrib-ios-${TARGET} \
235 ${VLCROOT}/configure \
236 --prefix="${PREFIX}" \
241 --disable-macosx-vout \
242 --disable-macosx-dialog-provider \
243 --disable-macosx-qtkit \
244 --disable-macosx-eyetv \
245 --disable-macosx-vlc-app \
246 --with-macosx-sdk=${SDKROOT} \
247 --enable-audioqueue \
250 --disable-macosx-quartztext \
262 --disable-macosx-audio \
263 --disable-qt4 --disable-skins2 \
264 --disable-libgcrypt \
277 --disable-mmx > ${out} # MMX and SSE support requires llvm which is broken on Simulator
280 CORE_COUNT=`sysctl -n machdep.cpu.core_count`
281 let MAKE_JOBS=$CORE_COUNT+1
283 info "Building libvlc"
284 make -j$MAKE_JOBS > ${out}
286 info "Installing libvlc"
287 make install > ${out}