Building
There are several ways to build the MIT Kerberos source distribution for Linux and Unix operating systems. You can build starting from a source code tar file of a formal release, from a daily snapshot tar file, or from sources that you directly check out from the Subversion repository. Generally, end users will build from formal release tar files (or snapshots if they are adventurous), while only developers will build from checked-out sources. Naturally, building from checked-out sources is somewhat more involved, both procedurally and in terms of prerequisites.
Additionally, you may run the test suite, or build in maintainer mode, both of which have additional prerequisites. Maintainer mode allows for updates or rebuilds of elements not normally touched by the build process, such as regeneration of Makefile dependencies.
For more detailed build instructions (though possibly omitting some information on this wiki page), there is the krb5-1.7 install guide.
Contents
Prerequisites
Required software packages are listed below by their Debian / Ubuntu package names; other OSes may have different names for these packages.
Basic build requirements
The following are build requirements that might not be present on all OS installations if only basic C development tools are installed.
- byacc or bison (for getdate.y and FTP daemon)
- ncurses-dev (for some of the BSD applications)
- perl
Additional requirements for building from checked-out source
- autoconf
Additional requirements for running "make check"
- csh (for some of the Berkeley DB tests)
- dejagnu (for many dejagnu-based tests)
- expect (needed by dejagnu)
- g++ (for some API sanity checks)
- portmap (for lib/rpc/unit-test)
- tcl (needed by expect)
- tcl-dev (to build some kadm5 test programs)
Additional requirements for maintainer mode
- bison (needed to regenerate some checked-in YACC-based source files)
- gcc (and not some other compiler; needed for "make depend")
While not an issue for GNU platforms, GNU Make is required for some maintainer mode functionality if the platform's native "make" program is not GNU Make.
Building into a separate build directory
Often, especially when building in maintainer mode, it is best to build in a separate directory that is not the source directory. For correct functioning, some maintainer mode operations require that you build in a directory separate from the source tree.
To begin a build in a separate build directory, invoke configure
from an empty directory outside of the source tree. configure
will proceed to create all the required subdirectories and Makefiles, after which you can run make
.
For example, if you unpacked a krb5-current snapshot into /var/src/krb5-current
, you might do:
cd /var/src/krb5-current mkdir build cd build ../src/configure
Both relative paths and absolute paths to the configure script will work. configure
will examine the pathname used to invoke it to deduce the locations of everything in the source tree it needs.
Building from checked-out sources
Building the core MIT Kerberos software from checked-out source requires additional steps than building from a release tarball. Among other things, configure scripts are not checked into the repository.
Make sure you have GNU autoconf installed, then run
cd src ./util/reconf
This will create the configure scripts, allowing you to actually configure and build the source tree.
Maintainer mode
To build in maintainer mode, invoke the configure script like
.../configure --enable-maintainer-mode
This will activate some maintainer-specific Makefile rules, including automatic rebuilding of configure scripts and Makefiles.