[maemo-users] [maemo-users] recommended tool workflow?

From: Eero Tamminen eero.tamminen at movial.fi
Date: Tue Nov 22 09:47:33 EET 2005

> I wonder how people develop with Maemo in practice. As far as I can  see
> three separate environments are required as well as constant  switching
> between them:
> a) the host platform

You mean for the tools that are not inside Scratchbox?

>From your desktop environment you can trivially execute commands
chrooted inside Scratchbox, this is explained in the Sbox site.
See the "Integration with IDE tools" section under documentation:
(this is for Sbox v1.x)

There's even an Eclipse plugin for this.

I.e. you don't need to do any switching.

There's also a possibility to use normal Debian packages
inside Sbox, either you:
1. use some wrappers to get Debian packages working directly inside Sbox
   (ask more on the Sbox mailing lists),
2. you build your tool from source as a *host* binary
   (i.e. so that it's evailable to all targets) into Scratchbox:
   - sbox-config -st HOST
   - build the tool as a Sbox host binary:
     - wget <source URL>
     - extract sources
     - configure --prefix=/host_usr/
     - make install
   - sbox-config -st <your normal target>
3. you do:
   - setup /etc/apt/sources.list to suitable place inside Sbox
   - apt-get source <package>
   - dpkg -rfakeroot buildpackage
   - dpkg -i <the newly built package>
  (- fix your sources.list back)
   After this the package is installed to your *target* so this last
   method is really useful only for x86 target, with ARM emulation tools
   would be annoyingly slow :-)
Ask more info on these on the Sbox mailing lists.

> b) scratchbox configured for ix86 for development builds / test
> c) scratchbox configured for arm for deployment builds

You can create as many targets into Sbox as you want to and switch
between them with the "sbox-config -st <target name>" command.
(Before this you need close the processes you've started inside
Sbox and to log out from other Sbox consoles)

The usual work-flow would be that you do your normal development
and debugging under x86 target, and once your SW is ready and debugged
(including memory consumption :)) you move to ARM target and fix
any problems there.  Then you test your SW on the actual device and
fix any remaining problems there.  Normally you "shouldn't" have
problems after everything works properly in x86 environment and
debugging problems is anyway much easier in the x86 environment:
- There's enough memory to use gdb on GUI binaries
- You can use Valgrind etc.

	- Eero

More information about the maemo-users mailing list