2001-01-29 20:50:19 +08:00
|
|
|
Requirements
|
|
|
|
------------
|
2001-08-28 22:59:42 +08:00
|
|
|
If you want to hack on the GIMP project, it will make your life easier
|
|
|
|
to have the following packages (or newer versions) installed:
|
1998-02-26 19:55:07 +08:00
|
|
|
|
1999-01-21 12:49:18 +08:00
|
|
|
- GNU autoconf 2.13
|
|
|
|
- GNU automake 1.4
|
2001-08-28 22:59:42 +08:00
|
|
|
- GNU libtool 1.3.4
|
1999-01-21 12:49:18 +08:00
|
|
|
|
1998-02-26 19:55:07 +08:00
|
|
|
These should be available by ftp from prep.ai.mit.edu or any of the
|
|
|
|
fine GNU mirrors. Beta software can be found at alpha.gnu.org.
|
|
|
|
|
2001-09-27 23:33:53 +08:00
|
|
|
- pkg-config 0.7.0 (or a newer version)
|
2002-02-23 01:35:07 +08:00
|
|
|
|
|
|
|
Available from http://www.freedesktop.org/software/pkgconfig/.
|
|
|
|
|
2002-02-25 05:23:27 +08:00
|
|
|
- intltoolize 0.15 (or newer version)
|
2002-02-23 01:35:07 +08:00
|
|
|
|
|
|
|
Available from ftp://ftp.gnome.org/pub/GNOME/stable/sources/intltool/.
|
2001-07-25 10:22:05 +08:00
|
|
|
|
2001-01-29 20:50:19 +08:00
|
|
|
|
|
|
|
Compilation
|
|
|
|
-----------
|
1998-02-27 06:19:38 +08:00
|
|
|
If you are accessing gimp via CVS, then you will need to take several
|
1998-03-14 13:15:01 +08:00
|
|
|
steps to get it to compile. You can do all these steps at once
|
|
|
|
by running:
|
1998-02-26 19:55:07 +08:00
|
|
|
|
1998-03-14 13:15:01 +08:00
|
|
|
cvsroot/gimp# ./autogen.sh
|
1998-02-26 19:55:07 +08:00
|
|
|
|
1998-03-14 13:15:01 +08:00
|
|
|
Basically this does the following for you:
|
1998-02-26 19:55:07 +08:00
|
|
|
|
1998-03-14 13:15:01 +08:00
|
|
|
cvsroot/gimp# aclocal; automake; autoconf
|
2002-02-23 01:35:07 +08:00
|
|
|
cvsroot/gimp# glib-gettextize; intltoolize
|
1998-03-14 13:15:01 +08:00
|
|
|
|
|
|
|
The above commands create the "configure" script. Now you
|
1998-03-17 07:59:27 +08:00
|
|
|
can run the configure script in cvsroot/gimp to create all
|
1998-03-14 13:15:01 +08:00
|
|
|
the Makefiles.
|
|
|
|
|
2001-07-25 10:22:05 +08:00
|
|
|
Before running autogen.sh or configure, make sure you have libtool in
|
2002-02-23 01:35:07 +08:00
|
|
|
your path. Also make sure glib-2.0.m4 glib-gettext.m4, gtk-2.0.m4,
|
|
|
|
pkg.m4 and intltool.m4 are either installed in the same
|
|
|
|
$prefix/share/aclocal relative to your automake/aclocal installation
|
|
|
|
or call autogen.sh with
|
|
|
|
|
|
|
|
'ACLOCAL_FLAGS="-I $prefix/share/aclocal" ./autogen.sh'.
|
1998-03-14 13:15:01 +08:00
|
|
|
|
|
|
|
Note that autogen.sh runs configure for you. If you wish to pass
|
2001-07-25 10:22:05 +08:00
|
|
|
options like --prefix=/usr to configure you can give those options to
|
|
|
|
autogen.sh and they will be passed on to configure.
|
1998-03-14 13:15:01 +08:00
|
|
|
|
2001-01-29 20:50:19 +08:00
|
|
|
|
|
|
|
CVS
|
|
|
|
---
|
2001-07-25 10:22:05 +08:00
|
|
|
If at all possible, please use CVS to get the latest development
|
|
|
|
version of gimp, as well as the CVS version of gtk-doc, glib, pango,
|
|
|
|
atk and gtk+. You can do the following to get them all from cvs:
|
1998-03-14 13:15:01 +08:00
|
|
|
|
1998-10-15 06:20:12 +08:00
|
|
|
$ export CVSROOT=':pserver:anonymous@anoncvs.gimp.org:/cvs/gnome'
|
1998-03-14 13:15:01 +08:00
|
|
|
$ cvs login
|
|
|
|
(there is no password, just hit return)
|
2001-07-25 10:22:05 +08:00
|
|
|
$ cvs -z3 checkout gtk-doc glib pango atk gtk+ gimp
|
1998-03-14 13:15:01 +08:00
|
|
|
|
2001-09-26 20:52:12 +08:00
|
|
|
We will try our best to keep the GIMP CVS tree compileable against
|
|
|
|
the latest development releases of glib, pango, atk and gtk+. Since
|
|
|
|
it is sometimes difficult to get a working state out of CVS, you may
|
|
|
|
prefer to use these releases instead. Get them from
|
2001-11-23 07:46:13 +08:00
|
|
|
ftp://ftp.gtk.org/pub/gtk/v1.3/. We don't expect the API of these
|
|
|
|
modules to change anymore. If it does nevertheless, we will adapt
|
|
|
|
GIMP in CVS. This means, GIMP from CVS is supposed to compile against
|
|
|
|
glib, pango, atk and gtk+ from CVS. Most probably however, the latest
|
|
|
|
releases will do also.
|
2001-09-26 20:52:12 +08:00
|
|
|
|
2001-01-29 20:50:19 +08:00
|
|
|
|
|
|
|
Patches
|
|
|
|
-------
|
2001-09-26 20:52:12 +08:00
|
|
|
Please submit patches to the gimp-developer@lists.xcf.berkeley.edu
|
|
|
|
mailing list. All kinds of contributions are appreciated. Larger patches
|
|
|
|
should be uploaded to ftp://ftp.gimp.org/incoming/. Follow the rules
|
|
|
|
there for naming your patches.
|
1998-02-26 19:55:07 +08:00
|
|
|
|
2001-01-29 20:50:19 +08:00
|
|
|
|
|
|
|
Autogenerated Files
|
|
|
|
-------------------
|
2001-09-26 20:52:12 +08:00
|
|
|
Please notice that some files in the source are generated from other
|
|
|
|
sources. All those files have a short notice about being autogenerated
|
|
|
|
somewhere at the top. Among them are the files ending in _pdb.[ch] in the
|
|
|
|
libgimp directory and the files ending in _cmds.c in the app/pdb
|
|
|
|
subdirectory. Those are generated from the respective .pdb files in
|
|
|
|
tools/pdbgen/pdb. The list of contributors is used in several files which
|
|
|
|
are for that reason generated from the file contributors in tools/authorsgen.
|
2001-01-29 20:50:19 +08:00
|
|
|
|
|
|
|
|
|
|
|
Hackordnung
|
|
|
|
-----------
|
|
|
|
We encourage you to follow the GIMP coding style throughout the GIMP project.
|
|
|
|
For the core components (application and libs) this coding style is enforced.
|
|
|
|
The GIMP coding style is defined as follows:
|
|
|
|
|
|
|
|
Function names are lowercase, words separated by underscores.
|
2001-02-14 22:57:14 +08:00
|
|
|
Macros and enums are all uppercase, words seperated by underscores.
|
2001-01-29 20:50:19 +08:00
|
|
|
Types are all words capitalized, no separators between words.
|
|
|
|
|
|
|
|
All functions in header files need to be prototyped.
|
|
|
|
|
|
|
|
Indentation rules are GNU coding style, in particular:
|
|
|
|
- 2 characters indentation level
|
|
|
|
- Do not use tabs (of course your editor can use tabs, but it
|
|
|
|
should write them to file as 8 spaces each).
|
|
|
|
- Opening brackets are on a new line and indented one level.
|
|
|
|
- Function header have the return type on one line, the name starting
|
|
|
|
in the first column of the following line. All parameters are
|
|
|
|
prototyped and there's a new line for each.
|
|
|
|
|
2001-07-25 10:22:05 +08:00
|
|
|
Try to make use of GLib's object system as much as possible. Do not create
|
2001-01-29 20:50:19 +08:00
|
|
|
wrappers around functions of parent classes. If you end up duplicating code,
|
|
|
|
try to create a common parent class and implement the common methods there.
|
|
|
|
|
2001-02-14 22:57:14 +08:00
|
|
|
Don't include headers in headers except where unavoidable (e.g. for
|
2001-11-13 09:46:10 +08:00
|
|
|
deriving objects). Opaque typedefs go to app/base/base-types.h,
|
|
|
|
app/core/core-types.h etc.
|
2001-02-14 22:57:14 +08:00
|
|
|
|
2001-07-25 10:22:05 +08:00
|
|
|
Don't use the GTK wrappers around the GLib object and signal system.
|
|
|
|
|
2001-01-29 20:50:19 +08:00
|
|
|
One goal of the 1.3 development branch is to make the GIMP code more readable
|
|
|
|
and understandable. Please help us to achieve this goal by cleaning up the
|
|
|
|
present code and make sure that all new code follows the coding guidelines.
|