Compiling ScummVM/iPhone

From ScummVM :: Wiki
< Compiling ScummVM
Revision as of 16:48, 30 March 2016 by LordHoto (talk | contribs) (Stub out XCode instructions till they are up to date.)
Jump to navigation Jump to search

This page explains how to compile your own version of ScummVM using the iPhone backend.

Using XCode

TODO: Describe how to use XCode and create_project to compile for iOS using the official Apple toolchain.

Unofficial SDK



First, you'll need to set up the toolchain. Earlier versions than the one linked will NOT work.

Environment variables

You'll need to set some environment variables for both the external libraries, and ScummVM itself. This is so the right compiler and libraries will be used.

 export SDKROOT=<your toolkit directory>
 export SYSROOT="$SDKROOT/sys"
 export BUILDENV="$SDKROOT/pre"
 export FDIR="$SYSROOT"
 export CC="$BUILDENV/bin/arm-apple-darwin9-gcc -v"
 export CXX="$BUILDENV/bin/arm-apple-darwin9-g++"
 export LD=$CC
 export SHAREDOPTS="-isysroot $SYSROOT -fobjc-abi-version=2 -I$SDKROOT/include"
 export FRAMEWORKS="-F$FDIR/System/Library/PrivateFrameworks/ -F$FDIR/System/Library/Frameworks/"
 export LDFLAGS="-L$BUILDENV/arm-apple-darwin9/lib/ $FRAMEWORKS $SHAREDOPTS -bind_at_load -lobjc"
 export CXXFLAGS="-I$SYSROOT/usr/include $SHAREDOPTS"
 export OBJCFLAGS="-I$SYSROOT/usr/include/ $SHAREDOPTS --std=c99"
 export AS=$SDKROOT/pre/bin/arm-apple-darwin9-as

External libs

Then, set up any of the external libs you might want. Meaning libMAD for MP3 playback, libFLAC for FLAC support and/or Tremor for Ogg support.

Note that you only need to add these if you need support for those filetypes. ScummVM itself will run fine without them. You can also download the already compiled libraries from the link in the Official SDK section above.

The below should usually do the trick for these:

 ./configure --host=arm-darwin --prefix=$SDKROOT/sys/
 make && make install


Then, we need to configure ScummVM itself.

 ./configure --host=iphone \
 --disable-mt32emu --disable-scalers  --enable-release \
 --with-flac-prefix=/$SYSROOT/usr/local \
 --with-mad-prefix=/$SYSROOT/usr/local \

Note that the --with-flac-prefix (and the rest) is only necessary if you want to include support for that specific library.

If you've installed the external libs in any other place than $SYSROOT/usr/local, you need to use that location instead.


Now, we can start the compile:

 make iphone

Lastly, we want to make a bundle:

 make iphonebundle

Then simply upload the whole directory to your device under the /Applications folder, and you're done!