 |
JamMo - Jamming mobile game for kids. |
 |
For developers
Bug tracker
Project page on gitorious
(Old project page on garage)
Pre-requirements
JamMo is written with C, using several libraries: GLib, Clutter Toolkit, Gstreamer, Tangle, Peerhood...
Pre-requirements: Tools
- C-compiler. Many different versions of GCC have been tested to work (at least 4.2, 4.4, 4.5, 4.6)
- Make. Some different versions of GNU Make have been tested to work (at least 3.80 and 3.81)
- gtk-doc-tools. Mandatory. TODO: make it optional
- Git. Optional. This is easiest (but not only) way to download source code
- Autotools (aclocal, automake, autoconf). These can be pre-run on different computer
Ubuntu-way
sudo apt-get install git-core automake gtk-doc-tools
Meego-way
sudo zypper install git-core automake gtk-doc
Pre-requirements: Libraries
Pre-requirements: Mandatory Libraries
SNDFILE -loading raw-audio files
GLIB -framework (removing this affects library below this)
GSTREAMER -audio
JSON_GLIB -reading text-files e.g. handling config files
CLUTTER -visual
TANGLE -visual
Ubuntu-way
sudo apt-get install libsndfile1-dev \
libglib2.0-dev \
libgstreamer0.10-dev \
libjson-glib-dev \
libgl1-mesa-dev
Meego-way
sudo zypper install libsndfile-devel \
glib2-devel \
gstreamer-devel\
json-glib-devel \
mesa-libGL-devel \
libXi-devel libX11-devel libXcomposite-devel libXext-devel libXdamage-devel cairo-devel pango-devel atk-devel
Clutter and Tangle must be compiled from source.
Compiling clutter
#STEP: compile and install Clutter (1.4.2).
#It can be installed paraller with clutter-1.0, it contains some essential fixes (and/or backports from upstream 1.6)
git clone git://gitorious.org/clutter-for-maemo/clutter14
cd clutter14
./configure --disable-gtk-doc \
--disable-introspection \
--with-flavour=glx \
--enable-debug=no \
--enable-cogl-debug=no \
--with-json=internal
Meego-way
autoreconf -i --force
./configure --disable-gtk-doc \
--disable-introspection \
--with-flavour=glx \
--enable-debug=no \
--enable-cogl-debug=no \
--with-json=internal \
--with-imagebackend=internal
make
sudo make install
sudo ldconfig
Needed on MeeGo
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
Compiling Tangle
git clone git://gitorious.org/tangle/tangle.git
cd tangle
./autogen.sh
./configure
make
sudo make install
sudo ldconfig
Pre-requirements: Optional Libraries
LIBOSSO -N900 prevent dimming. N900 context (prevent starting multiple jammo etc)
DBUS_GLIB -N900 slide mutes mentor
PEERHOOD -networking. Pair and group games.
+OPENSSL -Secure networking (if peerhood used, this is then mandatory) (this is useless without peerhood)
GTK -teacher server (this is useless without peerhood)
Ubuntu-way
sudo apt-get install libgtk2.0-dev \
libssl-dev \
libbluetooth-dev
Peerhood must be compiled from source.
Compiling Peerhood
#READ MORE: http://gitorious.org/jammo/pages/JamMoAndPeerHood
sudo apt-get install subversion
svn checkout https://www2.it.lut.fi/svn/public/peerhood/trunk/PeerHood_core/
cd PeerHood_core
make
sudo make install
sudo ldconfig
JamMo
Get source code
git clone http://git.gitorious.org/jammo/jammo.git
Compiling
cd jammo
./autogen.sh
./configure
make
No need to install, you can run it with './jammo' but you need data files installed
Get data files
#Note 1: Data files are installed for your computer under direcory '/opt/jammo/'
#Note 2: JamMo will not find data files in any other directory
git clone http://git.gitorious.org/jammo/jammo-data.git
Install data files to '/opt/jammo/'
cd jammo-data
./autogen.sh
./configure
sudo make install
Starting JamMo
./jammo
For Maemo developers
This instruction suppose you are using Scratchbox2 (sb2).
Read how to install Scratchbox2 crosscompiling environment.
(This will continue just where step4 ended in 'install crosscompiling environment')
This instruction doesn't suppose you have compiled JamMo for PC. If you
have done same step you do not need do it again (e.g download source codes)
Tools
If you already have compiled JamMo for PC, these are installed.
sudo apt-get install git-core automake pkg-config gtk-doc-tools
Step: Dependencies
You need these, even you have installed these on your Ubuntu.
You need enable extras-devel for crosscompiler.
echo 'deb http://repository.maemo.org/extras-devel/ fremantle free non-free' >> ~/.maemo-sdk/rootstraps/armel/fremantle5.0minimal_armel/etc/apt/sources.list
Then you need Nokias closed source part for developing 3D accelerated applications.
This has steps, which can't be automated, just follow steps.
Go to page
http://tablets-dev.nokia.com/eula/index.php
Type given number to field and press 'ACCEPT'
Then it gives you line like that:
deb http://repository.maemo.org/ fremantle/USE_YOUR_OWN_CRYPTIC_CODE nokia-binaries
Add this to sources.lst: (NOTE:You really must change USE_YOUR_OWN_CRYPTIC_CODE!)
echo 'deb http://repository.maemo.org/ fremantle/USE_YOUR_OWN_CRYPTIC_CODE nokia-binaries' >> ~/.maemo-sdk/rootstraps/armel/fremantle5.0minimal_armel/etc/apt/sources.list
Update packages
sb2 -eR apt-get update
#It might say some warning about 'GPG error', you can still continue.
#Install dependencies
sb2 -eR apt-get install libgtk2.0-dev libgstreamer0.10-dev \
libjson-glib-dev libsndfile-dev libssl-dev \
libbluetooth-dev libdbus-glib-1-dev \
mce-dev libosso-dev \
libclutter-1.4-dev libtangle-0-dev libpeerhood-0-dev
Step : Download JamMo source codes
git clone http://git.gitorious.org/jammo/jammo.git
Step : compile JamMo
cd jammo
./autogen.sh
sb2 -e ./configure N900=yes
sb2 -e make
Step : AUDIO to device
You can install some of application-packages on N900, named 'jammo3-6-fi', 'jammo7-12-en'...
This can take same time. You can fetch audio data (and automatically convert them) to computer:
cd jammo
git clone git@gitorious.org:jammo/jammo-loader.git
cd jammo-loader/
./autogen.sh
./configure
make
sudo ./install_all_jammo_data.sh
And then copy /opt/jammo to MyDocs/jammo_data on N900.
Step : IMAGES to device
cd ..
git clone http://git.gitorious.org/jammo/jammo-data.git
cd jammo-data/data
Copy subfolders from jammo7-12_data and jammo3-6_data to /opt/jammo on N900.
Development documentation
Modularity of code
Current modules:
 |
- CHUM is heart of JamMo logic
- CEM is handling logging (and mentor someday)
- MEAM is for playing sounds and handling sequencer
|
Contacts
Aapo.Rantalainen
(at)gmail.com