Chapter 3. Your Development Environment

In the most cases you do not want to compile a complete GPE framework manually, there are build systems like Openembedded[6] or T2[7] which do this work for you. On many hardware platforms you can use binaries from one of the embedded Linux distributions like e.g. Familiar[8]. The Familiar binaries are expected to work fine on most ARM based platforms. There are only a very few bits in GPE which have platform-dependent switches, so there is usually no need to compile packages specific to a particular platform.

Currently we work on switching the build system from our own Makefiles to Autotools the way to compile the components GPE consists of.

3.1. Native Development

The basic needs for GPE development are a PC running Linux (or a similar UNIX-like operating system) and a X window system with compiler and some libraries installed. GPE applications are basically just GTK applications like many others. In this context GPE application development is quite uncomplicated.

What do i need to install?

For the compiler you usually want to use GCC which is included in most modern operating system distributions. All versions >= 3.0 should work without trouble. The GTK libraries will pull in some other libraries they depend on (things like GDK, Pango, ATK, X11). To be sure all parts of GPE work properly it is recommended to use GTK 2.6.0 or higher. SQLite is a small in-process SQL database which is used by various GPE applications for data storage. Currently GPE uses the typless 2.x versions of SQLite.

More and more GPE bits require GNU autotools to build. Some old versions of autotools are known to cause trouble. If you use autoconf >= 2.50 and and automake >= 1.9 you should be safe.

Apart from the basic libraries necessary for almost all GPE applications some parts of GPE depend on other external tools and libraries. Most important are BlueZ (for gpe-bluetooth), OpenOBEX (gpe-beam, gpe-bluetooth), libmimedir (PIM applications), Cairo (gpe-appmgr, gpe-bootsplash, libgpewidget if activated), libmatchbox (gpe-what, gpe-mininet).

One important thing to know is that not all parts of GPE use autoconf and automake. Therefore you currently need to know two different ways to pass build parameters to get the software built in the correct way. All bits using autotools are built in this way:


	./configure --prefix=/someprefix --host=some-host
	make
	make install
	
If the part you intend to compile ships with a Makefile instead of a configure script this meand that it isn't using autotools. To compile this you need to pass necessary parameters to make directly. For example:

	make PREFIX=someprefix CC=some-gcc
	make PREFIX=someprefix install
	
Usually you just wnat to use the defaults if you wnat to compile for your PC you are on. In this case just omit any parameter, the build prefix defaults to /usr/local which should be correct in the most cases.

Note

If you are building from CVS you need to generate the configure script first by running autoconf, automake, intltool and friends in the correct order. Ususally applications ship an autogen.sh which does this for you.