Difference between revisions of "Compiling ScummVM/iPhone"

From ScummVM :: Wiki
Jump to navigation Jump to search
m (use pre; for whatever reason the wiki isn't displaying the space-prefixed lines properly)
Line 17: Line 17:
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.
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.


<pre>
  export SDKROOT=<your toolkit directory>
  export SDKROOT=<your toolkit directory>
  export SYSROOT="$SDKROOT/sys"
  export SYSROOT="$SDKROOT/sys"
Line 31: Line 32:
  export CFLAGS="$CXXFLAGS"
  export CFLAGS="$CXXFLAGS"
  export AS=$SDKROOT/pre/bin/arm-apple-darwin9-as
  export AS=$SDKROOT/pre/bin/arm-apple-darwin9-as
</pre>




Line 39: Line 41:


The below should usually do the trick for these:
The below should usually do the trick for these:
<pre>
  ./configure --host=arm-darwin --prefix=$SDKROOT/sys/
  ./configure --host=arm-darwin --prefix=$SDKROOT/sys/
  make && make install
  make && make install
</pre>


=== ScummVM ===
=== ScummVM ===
Line 46: Line 50:
Then, we need to configure ScummVM itself.
Then, we need to configure ScummVM itself.


<pre>
  ./configure --host=iphone \
  ./configure --host=iphone \
  --disable-mt32emu --disable-scalers  --enable-release \
  --disable-mt32emu --disable-scalers  --enable-release \
Line 52: Line 57:
  --with-mpeg2-prefix=/$SYSROOT/usr/local \
  --with-mpeg2-prefix=/$SYSROOT/usr/local \
  --with-tremor-prefix=/$SYSROOT/usr/local
  --with-tremor-prefix=/$SYSROOT/usr/local
</pre>


Note that the --with-flac-prefix (and the rest) is only necessary if you want to include support for that specific library.
Note that the --with-flac-prefix (and the rest) is only necessary if you want to include support for that specific library.
Line 61: Line 67:
Now, we can start the compile:
Now, we can start the compile:


<pre>
  make iphone
  make iphone
</pre>


Lastly, we want to make a ScummVM.app bundle:
Lastly, we want to make a ScummVM.app bundle:


<pre>
  make iphonebundle
  make iphonebundle
</pre>


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

Revision as of 22:14, 3 April 2011

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

Official SDK

Unofficial SDK

Setup

Toolchain

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 CFLAGS="$CXXFLAGS"
 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. You can add mpeg2dec as well, but it's only used for MPEG2 BS1/2 cutscene support and you really should be using the DXA versions instead (can be downloaded from ScummVM's download page.

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

ScummVM

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 \
 --with-mpeg2-prefix=/$SYSROOT/usr/local \
 --with-tremor-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.

Compiling

Now, we can start the compile:

 make iphone

Lastly, we want to make a ScummVM.app bundle:

 make iphonebundle

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