@node Building and Installing, Setting up a realm, What is Kerberos?, Top
@comment  node-name,  next,  previous,  up
@chapter Building and Installing

Heimdal uses GNU Autoconf to configure for specific hosts, and GNU
Automake to manage makefiles. If this is new to you, the short
instruction is to run the @code{configure} script in the top level
directory, and when that finishes @code{make}.

If you want to build the distribution in a different directory from the
source directory, you will need a make that implements VPATH correctly,
such as GNU make.

You will need to build the distribution:

@itemize @bullet
@item
A compiler that supports a ``loose'' ANSI C mode, such as @code{gcc}.
@item
lex or flex
@item
awk
@item
yacc or bison
@item
a socket library
@item
NDBM or Berkeley DB for building the server side.
@end itemize

When everything is built, you can install by doing @kbd{make
install}. The default location for installation is @file{/usr/heimdal},
but this can be changed by running @code{configure} with
@samp{--prefix=/some/other/place}.

If you need to change the default behavior, configure understands the
following options:

@table @asis
@item @kbd{--without-berkeley-db}
DB is preferred before NDBM, but if you for some reason want to use NDBM
instead, you can use this option.

@item @kbd{--with-krb4=@file{dir}}
Gives the location of Kerberos 4 libraries and headers. This enables
Kerberos 4 support in the applications (telnet, rsh, popper, etc) and
the KDC. It is automatically check for in @file{/usr/athena}. If you
keep libraries and headers in different places, you can instead give the
path to each with the @kbd{--with-krb4-lib=@file{dir}}, and
@kbd{--with-krb4-include=@file{dir}} options.

You will need a fairly recent version of our Kerberos 4 distribution for
@code{rshd} and @code{popper} to support version 4 clients.

@item @kbd{--enable-kaserver}
Enables experimental kaserver support in the KDC. This is the protocol
used by the ``KDC'' in AFS. Requires Kerberos 4 support.

@item @kbd{--enable-kaserver-db}
Enables experimental support for reading kaserver databases in hprop.
This is useful when migrating from a kaserver to a Heimdal KDC.

@item @kbd{--disable-otp}
By default some of the application programs will build with support for
one-time passwords (OTP).  Use this option to disable that support.

@item @kbd{--enable-osfc2}
Enable some C2 support for OSF/Digital Unix/Tru64.  Use this option if
you are running your OSF operating system in C2 mode.

@item @kbd{--with-readline=@file{dir}}
Gives the path for the GNU Readline library, which will be used in some
programs. If no readline library is found, the (simpler) editline
library will be used instead.

@item @kbd{--with-hesiod=@file{dir}}
Enables hesiod support in push.

@item @kbd{--enable-netinfo}
Add support for using netinfo to lookup configuration information.
Probably only useful (and working) on NextStep/Mac OS X.

@end table
