Compiling ScummVM/Bada/Tizen

From ScummVM :: Wiki
Jump to navigation Jump to search

Compiling ScummVM for Bada/Tizen

This page describes how you build Bada/Tizen packages from the ScummVM source code tree.

Building Tizen under Linux

The following assumes that you are using Linux as a build environment.

1. Install the Tizen SDK from here

To use an alternative Java SDK to run the Tizen IDE (eclipse), edit the file ~/.profile and add the following:

export JAVA_HOME=/opt/jdk1.6.0_45
export PATH=${PATH}:${JAVA_HOME}/bin

2. Add the following to your ~/.bashrc file:

export TIZEN_SDK=${HOME}/tizen-sdk
export TIZEN_ROOTSTRAP=${TIZEN_SDK}/platforms/tizen2.1/rootstraps/tizen-device-2.1.native
export TIZEN_BIN=${TIZEN_SDK}/tools/arm-linux-gnueabi-gcc-4.5/bin
export TIZEN_LIBS=${HOME}/tizen-lib
export PATH=${PATH}:${TIZEN_BIN}:~/bin
export CHOST=arm-linux-gnueabi
export LDFLAGS="--sysroot=${TIZEN_ROOTSTRAP} -L${TIZEN_LIBS}/lib"
export CPPFLAGS="--sysroot=${TIZEN_ROOTSTRAP} -fmessage-length=0 -fPIC\
  -I${TIZEN_ROOTSTRAP}/usr/include -I${TIZEN_LIBS}/include"
export CFLAGS=${CPPFLAGS}

3. Build the required dependencies

See: "Building the libraries" under: Compiling_ScummVM/MinGW#Building_the_libraries for instructions on how to obtain these modules

3.1 zlib

$ ./configure --static --prefix=${TIZEN_LIBS}
$ make && make install

3.2 freetype, libtheora, libogg, libvorbis, libmad, FLAC

$ ./configure --host=arm-linux-gnueabi --prefix=${TIZEN_LIBS} --disable-shared
$ make && make install

Note: you can ignore the ranlib errors when doing make install.

Modify the resulting ~/tizen-lib/bin/freetype-config file to include -lz when printing libs

3.3 Linker ordering: scummvm, freetype, theoradec, vorbis, vorbisfile, mad, FLAC, ogg, z

4. Build the ScummVM base library:

./configure --host=tizen --enable-release --with-freetype2-prefix=${TIZEN_LIBS}/bin

For development:

./configure --host=tizen --enable-verbose-build --enable-debug

5. Build the front end application using Tizen IDE

Copy the scummvm/dists/bada folder into a clean directory outside of the scummvm package. Start the BADA IDE then choose this folder as the eclipse workspace. Click Project / Build.

Links:

A short turorial on implementing OpenGL ES 1.1 in BADA: http://forums.badadev.com/viewtopic.php?f=7&t=208

HelvB14 font files: http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts-75dpi100dpi.tar.gz

Then run the following command:

$ ./ucs2any.pl 100dpi/helvB14.bdf MAPPINGS/8859-1.TXT iso8859-1 \
 MAPPINGS/8859-2.TXT iso8859-2 MAPPINGS/8859-3.TXT iso8859-3

Building BADA packages under Cygwin (Obselete)

1. Install BADA SDK (requires free registration) from here.

2. Install Cygwin from here.

Add the following to your cygwin .bash_profile:

alias mmake=/cygdrive/c/MinGW/bin/mingw32-make.exe
export BADA_SDK=/cygdrive/c/bada/1.2.1
export ARM_BIN=c:/bada/1.2.1/Tools/Toolchains/ARM/bin
export CPPFLAGS="-fpic -fshort-wchar -mcpu=cortex-a8 -mfpu=vfpv3 \
                 -mfloat-abi=hard -mlittle-endian -mthumb-interwork -Wno-psabi \
                 -fno-strict-aliasing -fno-short-enums"
export LDFLAGS="-nostdlib -lc-newlib -lm-newlib -LC:/bada/1.2.1/Model/Wave_LP1/Target"
#export PATH=${BADA_SDK}/Tools/Toolchains/Win32/bin:${PATH}
export PATH=${BADA_SDK}/Tools/Toolchains/ARM/bin:~/utils:${PATH}
alias gcc=${ARM_BIN}/arm-samsung-nucleuseabi-gcc.exe
alias ar=${ARM_BIN}/arm-samsung-nucleuseabi-ar.exe

The following were added to ~/utils for zlib:

ar:

#!/bin/sh
${ARM_BIN}/arm-samsung-nucleuseabi-ar.exe $*

gcc:

#!/bin/sh
${ARM_BIN}/arm-samsung-nucleuseabi-gcc.exe $*