To build kerberos v5 alpha/beta test distribution:

A) find about 30M free.

B) pick up and build the following support pieces/programs if you don't
have them already installed:
	unifdef		from ftp.uu.net:/bsd-sources/pgrm/unifdef/
	imake
	makedepend	both are on athena-dist in separate pieces;
			these versions are bodily removed from X11R4 and
			cleaned up enough to build separately.  If you
			already have the X11R4 versions kicking around,
			use them instead.

	ss, com_err	also on athena-dist in separate pieces.  You may
			have older versions (the big difference is that
			the older versions call the C compiler
			directly; the newer versions leave a .c file for
			your own use), so make sure you get the right ones.

	isode 6.8	from uu.psi.com in /isode/isode-interim.tar.Z
			>>>Be sure to apply our patches (pepsy-diffs)
				before building<<<
C) building the system:

Two steps:
1) edit any files you need to change (see below)
2) run 'make world' and everything should get built.
3) If you want to install stuff, you can later run 'make install'.

Most of things you should need to change will be in
include/krb5/stock/osconf.h, config/site.def and/or an
architecture-specific file in config/.

config/site.def:
---------------

If you don't have imake, makedepend, mk_cmds (ss processor), compile_et
(com_err processor) and pepsy in your $PATH, then add #defines to
config/site.def to give
their location.  See the top of Project.tmpl for the #define'ed names
you should use.

If you need additional include paths to get the include files for
<ss/ss.h>, <com_err.h> or the ISODE stuff, then put the appropriate -I
flag(s) into the #define of StandardIncludes in config/site.def.

If you need additional library search paths to get the libraries, then
put the appropriate -L flag(s) into the #define of LdLibLocations in
config/site.def.

See the other comments in config/site.def for other options you may wish
to turn on (such as moving the default locations for various installed
programs & manual pages).

config/<machine>.cf:
------------------

Imake uses a separate configuration file to turn on/off certain options
on a per-system/architecture basis.  See config/Imake.tmpl if you need
to figure out the name of the config file your machine will use.
[They're the same as those for X11R4, except that BSD on a VAX uses
<vaxbsd.cf> rather than <bsd.cf> (XXX)]

See ultrix.cf, sun.cf, vaxbsd.cf, ibm.cf for examples of things you
might want to include in this file.

Certain options which control some conditional compilations of interest
are:
HasVoidSignalReturn		YES if signal catching functions should
				be void; NO if they should return int.
HasPosixTermios			YES if you have POSIX termios terminal controls
				NO if you have BSD/V7 sgtty stuff.
				(if you have neither, check out the code
				 in lib/os/read_pwd.c)

HasPosixFileLocks		YES if you have POSIX file locking commands
				NO if you have BSD-style flock() commands
				(if you have neither, check out the code
				 in lib/os/lock_file.c)

HasPosixTypes			YES if you have POSIX *_t types in your
				header files
				NO if you don't
HasStringH			YES if you have <string.h>
				NO if you don't
HasStdlibH			YES if you have <stdlib.h>
				NO if you don't
UseSysTimeH			YES if you should use <sys/time.h> for
					struct timeval
				NO if you shouldn't
UseTimeH			YES if you should use <time.h> for ...
				if neither this nor UseSysTimeH is defined,
				then <sys/time.h> will be used if OS_BSD
				is set, otherwise <time.h> will be used.

HasInet				YES if you have BSD internet sockets
				NO if you don't (not much will work in
				this dist without them, though... see lib/os/)
HaveSetenv			YES if you have setenv() in your library
				NO if you don't
HasGcc				YES if you have gcc and want to use it,
				NO if you don't
HasNdbm				YES if you have ndbm(3), <ndbm.h>
				NO if you have dbm(3)

Bitsize32			#define'd if you have 32-bit words
				if not, good luck with the DES library.
Bitsize16	
Bitsize64	

DesDefines	 		-D flags to configure the DES library.
				common flags here are:
				-DMSBFIRST	(big-endian)
				-DLSBFIRST	(little-endian)
				-DMUSTALIGN	(if you have to align
						 references to longwords)
				-DBIG		(32 bits)

HasSaberC			YES if you have Saber-C (this turns on
				Makefile additions to make loading easier)
				NO if you don't (but you should get it!)
SaberDefines			extra -D flags for Saber-C loading
				(such as -Dconst= to avoid a bug in
				older versions of saber)

WantPrototypes			YES if your C compiler supports function
				prototypes. redundant if your compiler
				defines __STDC__, but may be useful if
				your compiler has prototypes but isn't
				fully __STDC__

NeedNarrowPrototypes		YES if your C compiler supports function
				prototypes AND you do not want the
				parameter types to be widened/promoted.
				NO if you want them widened (normal
				setting, since narrow versions can lead
				to interoperability problems between
				modules compiled with different compilers)

MakeDependFlags			extra defines to be passed onto
				makedepend when generating include file
				dependencies.  These might be flags that
				your compiler sends automatically but
				makedepend doesn't know about, e.g.:
				-D__STDC__ -I/local/gcc-includes
STDCTopIncludes			XXX include path for alternate STDC-ized
				include files
StandardDefines			-D flags for this system, e.g.
				-YPOSIX -D_POSIX_SOURCE
StandardCppDefines		-D flags to pass when only calling cpp, e.g.
				-DPOSIX -D_POSIX_SOURCE

telnet/telnetd need special configuration options, which are sometimes
determined by the operating system defines.  see
appl/telnet/telnet/Imakefile, appl/telnet/telnetd/Imakefile, and
appl/telnet/old-makefiles/* for details.

include/krb5/stock/osconf.h:
---------------------------
There are several defaults you may wish to adjust in osconf.h:

DEFAULT_CONFIG_FILENAME		The pathname to the file which defines
				the known realms and their KDCs.  Same
				format as V4 krb.conf
DEFAULT_TRANS_FILENAME		The pathname to the file which a priori
				assigns hosts to realms.  Same format as
				V4 krb.realms
DEFAULT_LNAME_FILENAME		The pathname to the database mapping
				authentication names to local account names.
				See kdb5_anadd(8).
DEFAULT_KEYTAB_NAME		The type and pathname to the default
				server keytab file (the equivalent of v4
				/etc/srvtab).
DEFAULT_KDC_ETYPE		The default encryption type for the KDC.
DEFAULT_KDC_KEYTYPE		The default keytype for the KDC.
KDCRCACHE			The name of the replay cache used by
				the KDC.
RCTMPDIR			The directory which stores replay
				caches.
