# Git repositories

The following applies for the entire the Courier mail server source code distribution, and sub-modules (the Courier IMAP server, sqwebmail, maildrop, as well as Cone, and a few other minor subprojects).

In order to build from the Git repository, you must have the following additional software installed:

1. `autoconf`.
2. `automake`.
3. `libtool`
4. `gettext`
5. `gmake`, of course.
6. sysconftool - this is an extra autoconf macro used by the Courier mail server's `configure.in` script (not needed, of course, to build `sysconftool` itself).
7. Courier Unicode Library - This library implements several algorithms related to the Unicode Standard.
8. The following tools that convert Docbook XML to HTML and man page documentation: various Docbook DTDS, the "docbook-utils" tools, the "sgml-common/xml-common" package, which are conveniently aggregated in Red Hat's docbook-tools directory; Docbook XSL stylesheets; XHTML 1.0 XSL stylesheets; HTML 4.01 stylesheets; the Gnome XSLT library, and the current version of the tidy tool. NOTE: Most systems already include packages for all of these tools. It's rather unfeasible to try to assemble this entire toolkit yourself, find these packages and install them.

These additional dependencies are only required if building from git, and not the packaged tarballs.

The source code is divided into two Git repositories:

- The top level directory consists of subdirectories, one for each project (courier, cone, courier-imap, etc...):

  `git://git.code.sf.net/p/courier/courier.git`, or `https://github.com/svarshavchik/courier.git`.

- Shared modules and libraries. After cloning the main repository, follow the instructions in the `INSTALLME` file to clone the shared module repository, and finish the setup.

  `git://git.code.sf.net/p/courier/courier-libs.git`, or `https://github.com/svarshavchik/courier-libs.git`.

NOTE: Automatically-generated `configure` and `Makefile`, `libtool`, and `sysconftool` scripts are NOT stored in the repository, and you must build them yourself. The `INSTALLME` file+script takes care of rebuilding it, by running the `autobloat` script.

The `autobloat` script automatically runs `automake`, `autoconf`, `libtool`, `sysconftool`, from the current directory.

NOTE: The "courier" module/directory is the entire mail server that includes all components (imap, maildrop, sqwebmail, etc...). The other top-level directories ("courier-imap", "sqwebmail", ...), after being combined with the second, shared module repository, end up building just the individual component.