Much effort has been done in the design of maemo platform to allow easy porting of
regular GNU/Linux desktop software to the mobile maemo environment. Earlier in
this guide the basic tools that ease cross-compilation and help coping with the GNU
autotools were explained. This chapter gives pointers to the relevant guides focusing
on the differences in the application programming and user interfaces.
9.1 Command line programs
Porting software with no user interface in most cases is trivial and straight forward.
First, the source code of a program is unpacked to the home directory of a Scratchbox
user. Second, inside ARMEL target configure and make are run. Then the compiled
program can be tested on the device. Finally the software needs to be packaged.
9.2 Programs with a graphical user interface
The porting of an application that uses GTK+ for its graphical user interface begins the
same way as above. In addition to this, the user interface part needs to be refactored to
use Hildon instead of directly using GTK+. Dependencies to GNOME components, if
any, need to be removed or replaced with corresponding maemo SDK components. If
the application uses any components not available in the maemo SDK, these must be
also ported by the developer.
Applications that do not use GTK+ and instead use e.g. SDL need more work.
The first thing that is easily noticed that the virtual keyboard is missing because the
Hildon Input Method is not available. A user of the application cannot interact with the
The maemo 4.0 porting guide goes into the necessary details of porting an
existing GTK+ application to maemo environment.
The localization of maemo applications is done using the common gettext package.
The translating of an application to different languages is described in detail in the