Appendix F. Working with gtkmm's Source Code

## Appendix F. Working with gtkmm's Source Code

If you are interested in helping out with the development of gtkmm, or fixing a bug in gtkmm, you'll probably need to build the development version of gtkmm. However, you should not to install a development version over your stable version. Instead, you should install it alongside your existing gtkmm installation, in a separate path.

The easiest way to do this is using jhbuild. jhbuild is a program that makes building GNOME software much easier by calculating dependencies and building things in the correct order. This section will give a brief explanation of how to set up jhbuild to build and install gtkmm from the source repository (git). For up-to-date information on jhbuild, please refer to the jhbuild manual. If you need assistance using jhbuild, you should ask for help on the gnome-love mailing list.

| Note
Note that to build gtkmm from git, you'll often need to build all of its dependencies from git as well. jhbuild makes this easier than it would normally be, but it will take quite a while to build and install them all. You will probably encounter build problems, though these will usually be corrected quickly if you report them.

## Setting up jhbuild

To set up jhbuild, follow the basic installation instructions from the jhbuild manual. After you've have installd jhbuild, you should copy the sample jhbuild configuration file into your home directory by executing the following command from the jhbuild directory: $ cp sample.jhbuildrc ~/.jhbuildrc

The gtkmm module is defined in the GNOME moduleset (i.e. `gnome-2.xx.modules`, so edit your `.jhbuildrc` file and set your moduleset setting to the latest version of GNOME like so:

    moduleset = 'gnome-2.30'

After setting the correct moduleset, you need to tell jhbuild which module or modules to build. To build gtkmm and all of its dependencies, set `modules` like so:

    modules = [ 'gtkmm', ]

You can build all GNOME C++ modules by setting the `modules` variable to the meta-package named `meta-gnome-c++` or build all of the core GNOME modules with `meta-gnome-desktop`. The `modules` variable specifies which modules that will be built when you don't explicitly specify anything on the command line. You can always build a different moduleset later by specifying it on the commandline (e.g. jhbuild build gtkmm).

| Setting a prefix
By default, jhbuild's configuration is configured to install all software built with jhbuild under the `/opt/gnome2` prefix. You can choose a different prefix, but it is recommended that you keep this prefix different from other software that you've installed (don't set it to `/usr`!) If you've followed the jhbuild instructions then this prefix belongs to your user, so you don't need to run jhbuild as `root`.

Appendix E. gtkmm and Win32 |  | Installing and Using the git version of gtkmm