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
|
|
|
|
2004-03-20 03:35:49 +08:00
|
|
|
* GNU autoconf 2.54
|
2003-09-03 02:57:01 +08:00
|
|
|
- ftp://ftp.gnu.org/gnu/autoconf/
|
2005-09-22 04:30:27 +08:00
|
|
|
* GNU automake 1.9 (automake 1.8 should also work)
|
2003-09-03 02:57:01 +08:00
|
|
|
- ftp://ftp.gnu.org/gnu/automake/
|
2005-06-12 18:37:57 +08:00
|
|
|
* GNU libtool 1.4 (libtool 1.5 if you are compiling on Win32)
|
2003-09-03 02:57:01 +08:00
|
|
|
- ftp://ftp.gnu.org/gnu/libtool/
|
1999-01-21 12:49:18 +08:00
|
|
|
|
2003-09-03 02:57:01 +08:00
|
|
|
Fine GNU mirrors are listed at http://www.gnu.org/prep/ftp.html
|
|
|
|
Beta software can be found at alpha.gnu.org.
|
1998-02-26 19:55:07 +08:00
|
|
|
|
2005-09-22 04:30:27 +08:00
|
|
|
* pkg-config 0.15.0 (or preferably a newer version)
|
2003-09-03 02:57:01 +08:00
|
|
|
- http://www.freedesktop.org/software/pkgconfig/
|
2002-02-23 01:35:07 +08:00
|
|
|
|
2004-12-18 00:29:27 +08:00
|
|
|
* intltoolize 0.31.1 (or preferably a newer version)
|
2003-09-03 02:57:01 +08:00
|
|
|
- ftp://ftp.gnome.org/pub/gnome/sources/intltool/
|
2001-07-25 10:22:05 +08:00
|
|
|
|
2004-12-14 06:51:55 +08:00
|
|
|
* gtkdocize
|
|
|
|
- http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/
|
|
|
|
|
2004-05-02 06:43:15 +08:00
|
|
|
* xsltproc
|
|
|
|
- ftp://ftp.gnome.org/pub/GNOME/sources/libxslt/1.1/
|
|
|
|
|
2002-06-08 07:00:46 +08:00
|
|
|
These are only the additional requirements if you want to compile from
|
2003-09-03 02:57:01 +08:00
|
|
|
CVS. The file INSTALL lists the various libraries we depend on.
|
2002-03-10 02:21:36 +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
|
|
|
|
2003-09-03 02:57: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
|
|
|
|
2005-09-22 04:30:27 +08:00
|
|
|
cvsroot/gimp$ aclocal-1.9; libtoolize; automake-1.9 -a;
|
2003-09-03 02:57:01 +08:00
|
|
|
cvsroot/gimp$ autoconf; glib-gettextize; intltoolize
|
1998-03-14 13:15:01 +08:00
|
|
|
|
2003-09-03 02:57:01 +08:00
|
|
|
The above commands create the "configure" script. Now you can run the
|
|
|
|
configure script in cvsroot/gimp to create all the Makefiles.
|
1998-03-14 13:15:01 +08:00
|
|
|
|
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,
|
2002-03-03 02:04:05 +08:00
|
|
|
pkg.m4 and intltool.m4 are either installed in the same
|
|
|
|
$prefix/share/aclocal relative to your automake/aclocal installation
|
2003-09-03 02:57:01 +08:00
|
|
|
or call autogen.sh as follows:
|
2002-02-23 01:35:07 +08:00
|
|
|
|
2003-09-03 02:57:01 +08:00
|
|
|
$ 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
|
|
|
|
2004-03-04 22:47:37 +08:00
|
|
|
If AUTOGEN_CONFIGURE_ARGS is set, these options will also be passed to
|
|
|
|
the configure script. If for example you want to enable the build of
|
|
|
|
the GIMP API reference manuals, you can set AUTOGEN_CONFIGURE_ARGS to
|
|
|
|
"--enable-gtk-doc". Please note that you will then need a recent
|
|
|
|
version of gtk-doc as well as a working setup for handling DocBook/XML.
|
2003-02-08 18:52:19 +08:00
|
|
|
|
2005-01-21 02:21:41 +08:00
|
|
|
If you do not have a recent version of gtk-doc, you can pass the
|
|
|
|
option "--disable-gtk-doc" to autogen.sh. This will completely
|
|
|
|
disable the support for gtk-doc so you will not be able to generate
|
|
|
|
the API documentation.
|
|
|
|
|
2001-01-29 20:50:19 +08:00
|
|
|
|
|
|
|
CVS
|
|
|
|
---
|
2002-03-10 02:21:36 +08:00
|
|
|
GIMP is available from GNOME CVS. You can also grab glib, pango, atk,
|
2002-06-10 20:21:59 +08:00
|
|
|
gtk+, libart, gtkhtml2 as well as intltool and gtk-doc from the same
|
|
|
|
CVS server. You can use the following commands to get them from the
|
|
|
|
anonymous CVS server:
|
1998-03-14 13:15:01 +08:00
|
|
|
|
2003-09-03 02:57:01 +08:00
|
|
|
$ export CVSROOT=':pserver:anonymous@anoncvs.gimp.org:/cvs/gnome'
|
|
|
|
$ cvs login
|
|
|
|
(there is no password, just hit return)
|
|
|
|
$ cvs -z3 checkout [-r <branch>] <module>
|
2002-06-10 19:50:25 +08:00
|
|
|
|
2004-11-10 10:18:35 +08:00
|
|
|
The interesting modules and the suggested stable branches to use are:
|
2002-06-10 19:50:25 +08:00
|
|
|
|
2003-09-03 02:57:01 +08:00
|
|
|
* gimp
|
2005-12-29 05:36:03 +08:00
|
|
|
* glib (glib-2-8)
|
|
|
|
* atk (gnome-2-12)
|
|
|
|
* pango (pango-1-10)
|
|
|
|
* gtk+ (gtk-2-8)
|
2003-09-03 02:57:01 +08:00
|
|
|
* libart_lgpl
|
|
|
|
* gtkhtml2
|
|
|
|
* intltool
|
|
|
|
* gtk-doc
|
2001-09-26 20:52:12 +08:00
|
|
|
|
2001-01-29 20:50:19 +08:00
|
|
|
|
|
|
|
Patches
|
|
|
|
-------
|
2002-03-03 02:04:05 +08:00
|
|
|
Please submit patches to the gimp-developer@lists.xcf.berkeley.edu
|
2002-03-10 02:21:36 +08:00
|
|
|
mailing list. It's also a good idea to file a bug-report at
|
|
|
|
http://bugzilla.gnome.org/ and attach your patch to it. All kinds
|
|
|
|
of contributions are appreciated.
|
|
|
|
|
2001-01-29 20:50:19 +08:00
|
|
|
|
|
|
|
Autogenerated Files
|
|
|
|
-------------------
|
2002-03-03 02:04:05 +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
|
|
|
|
-----------
|
2002-03-03 02:04:05 +08:00
|
|
|
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:
|
2001-01-29 20:50:19 +08:00
|
|
|
|
2004-03-20 03:35:49 +08:00
|
|
|
* There's a single space between the function name and the opening
|
|
|
|
bracket.
|
|
|
|
|
2003-09-03 02:57:01 +08:00
|
|
|
* Function names are lowercase, words separated by underscores.
|
|
|
|
|
|
|
|
* Macros and enums are all uppercase, words seperated by
|
|
|
|
underscores.
|
|
|
|
|
|
|
|
* Types are all words capitalized, no separators between words.
|
2001-01-29 20:50:19 +08:00
|
|
|
|
2003-09-03 02:57:01 +08:00
|
|
|
* All functions in header files need to be prototyped.
|
2001-01-29 20:50:19 +08:00
|
|
|
|
2003-09-03 02:57:01 +08:00
|
|
|
* 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-01-29 20:50:19 +08:00
|
|
|
|
2002-03-03 02:04:05 +08:00
|
|
|
Try to make use of GLib's object system as much as possible. Do not
|
|
|
|
create 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-01-29 20:50:19 +08:00
|
|
|
|
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,
|
2002-05-03 20:45:22 +08:00
|
|
|
app/core/core-types.h etc. See devel-docs/includes.txt for a
|
|
|
|
detailed description of the include policy.
|
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.
|
|
|
|
|
2004-03-20 03:35:49 +08:00
|
|
|
One goal of GIMP development 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.
|