Difference between revisions of "Compiling ScummVM/Bada/Tizen"

From ScummVM :: Wiki
Jump to navigation Jump to search
(Added compilation instructions for Bada/Tizen taken from backends/platform/tizen/README.txt)
 
(Amended formatting of Bada/Tizen compilation instructions.)
 
Line 3: Line 3:
This page describes how you build Bada/Tizen packages from the ScummVM source code tree.
This page describes how you build Bada/Tizen packages from the ScummVM source code tree.


Build instructions (using linux)
== Building Tizen under Linux ==


1. Install the Tizen SDK
The following assumes that you are using Linux as a build environment.


http://www.tizen.org
1. Install the Tizen SDK from [http://www.tizen.org here]


To use an alternative Java SDK to run the Tizen IDE (eclipse), edit ~/.profile  
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 JAVA_HOME=/opt/jdk1.6.0_45
export PATH=${PATH}:${JAVA_HOME}/bin
export PATH=${PATH}:${JAVA_HOME}/bin


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


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


3. Build dependencies
3. Build the required dependencies


See: "Building the libraries" under:
See: "Building the libraries" under:
http://wiki.scummvm.org/index.php/Compiling_ScummVM/MinGW#Building_the_libraries
[[Compiling_ScummVM/MinGW#Building_the_libraries]]
for instructions on how to obtain these modules
for instructions on how to obtain these modules


3.1 zlib
3.1 zlib


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


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


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


Note: you can ignore the ranlib errors when doing 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
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
3.3 Linker ordering: scummvm, freetype, theoradec, vorbis, vorbisfile, mad, FLAC, ogg, z


4. Build the ScummVM base library:
4. Build the ScummVM base library:


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


  For development:
For development:


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


5. Build the front end application using Tizen IDE
5. Build the front end application using Tizen IDE


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


Links:
Links:


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


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


Then run the following command:
Then run the following command:
  $ ./ucs2any.pl 100dpi/helvB14.bdf MAPPINGS/8859-1.TXT iso8859-1 \
  $ ./ucs2any.pl 100dpi/helvB14.bdf MAPPINGS/8859-1.TXT iso8859-1 \
  MAPPINGS/8859-2.TXT iso8859-2 MAPPINGS/8859-3.TXT iso8859-3
  MAPPINGS/8859-2.TXT iso8859-2 MAPPINGS/8859-3.TXT iso8859-3


=====================================================================
== Building BADA packages under Cygwin (Obselete) ==
Archived build instruction for BADA/cygwin


1. Install BADA SDK (requires free registration):
1. Install BADA SDK (requires free registration) from [http://developer.bada.com/apis/index.do here].


http://developer.bada.com/apis/index.do
2. Install Cygwin from [http://www.cygwin.com/ here].


2. Install Cygwin:
Add the following to your cygwin .bash_profile:
 
http://www.cygwin.com/
 
Add the following to your cygwin .bash_profile:


  alias mmake=/cygdrive/c/MinGW/bin/mingw32-make.exe
  alias mmake=/cygdrive/c/MinGW/bin/mingw32-make.exe
Line 102: Line 97:
  alias ar=${ARM_BIN}/arm-samsung-nucleuseabi-ar.exe
  alias ar=${ARM_BIN}/arm-samsung-nucleuseabi-ar.exe


The following were added to ~/utils for zlib:
The following were added to ~/utils for zlib:


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


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

Latest revision as of 23:23, 1 December 2013

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 $*