Chapter 4 - Building and installing Exim
1. Unpacking
Exim is distributed as a gzipped or bzipped tar file which, when unpacked, creates a directory with the name of the current release (for example, exim-4.80) into which the following files are placed:
| ACKNOWLEDGMENTS | contains some acknowledgments |
| CHANGES | contains a reference to where changes are documented |
| LICENCE | the GNU General Public Licence |
| Makefile | top-level make file |
| NOTICE | conditions for the use of Exim |
| README | list of files, directories and simple build instructions |
Other files whose names begin with README may also be present. The following subdirectories are created:
| Local | an empty directory for local configuration files |
| OS | OS-specific files |
| doc | documentation files |
| exim_monitor | source files for the Exim monitor |
| scripts | scripts used in the build process |
| src | remaining source files |
| util | independent utilities |
The main utility programs are contained in the src directory, and are built with the Exim binary. The util directory contains a few optional scripts that may be useful to some sites.
2. Multiple machine architectures and operating systems
The building process for Exim is arranged to make it easy to build binaries for a number of different architectures and operating systems from the same set of source files. Compilation does not take place in the src directory. Instead, a build directory is created for each architecture and operating system. Symbolic links to the sources are installed in this directory, which is where the actual building takes place. In most cases, Exim can discover the machine architecture and operating system for itself, but the defaultsass="do The accept router
The accept router has no private options of its own. Unless it is being used purely for verification (see verify_only) a transport is required to be defined by the generic transport option. If the preconditions that are specified by generic options are met, the router accepts the address and queues it for the given transport. The most common use of this router is for setting up deliveries to local mailboxes. For example:
localusers: driver = accept domains = mydomain.example check_local_user transport = local_delivery
The domains condition in this example checks the domain of the address, and check_local_user checks that the local part is the login of a local user. When both preconditions are met, the accept router runs, and queues the address for the local_delivery transport.