xref: /freebsd/crypto/krb5/doc/pdf/build.tex (revision 7f2fe78b9dd5f51c821d771b63d2e096f6fd49e9)
1%% Generated by Sphinx.
2\def\sphinxdocclass{report}
3\documentclass[letterpaper,10pt,english]{sphinxmanual}
4\ifdefined\pdfpxdimen
5   \let\sphinxpxdimen\pdfpxdimen\else\newdimen\sphinxpxdimen
6\fi \sphinxpxdimen=.75bp\relax
7\ifdefined\pdfimageresolution
8    \pdfimageresolution= \numexpr \dimexpr1in\relax/\sphinxpxdimen\relax
9\fi
10%% let collapsible pdf bookmarks panel have high depth per default
11\PassOptionsToPackage{bookmarksdepth=5}{hyperref}
12
13\PassOptionsToPackage{warn}{textcomp}
14\usepackage[utf8]{inputenc}
15\ifdefined\DeclareUnicodeCharacter
16% support both utf8 and utf8x syntaxes
17  \ifdefined\DeclareUnicodeCharacterAsOptional
18    \def\sphinxDUC#1{\DeclareUnicodeCharacter{"#1}}
19  \else
20    \let\sphinxDUC\DeclareUnicodeCharacter
21  \fi
22  \sphinxDUC{00A0}{\nobreakspace}
23  \sphinxDUC{2500}{\sphinxunichar{2500}}
24  \sphinxDUC{2502}{\sphinxunichar{2502}}
25  \sphinxDUC{2514}{\sphinxunichar{2514}}
26  \sphinxDUC{251C}{\sphinxunichar{251C}}
27  \sphinxDUC{2572}{\textbackslash}
28\fi
29\usepackage{cmap}
30\usepackage[T1]{fontenc}
31\usepackage{amsmath,amssymb,amstext}
32\usepackage{babel}
33
34
35
36\usepackage{tgtermes}
37\usepackage{tgheros}
38\renewcommand{\ttdefault}{txtt}
39
40
41
42\usepackage[Bjarne]{fncychap}
43\usepackage{sphinx}
44
45\fvset{fontsize=auto}
46\usepackage{geometry}
47
48
49% Include hyperref last.
50\usepackage{hyperref}
51% Fix anchor placement for figures with captions.
52\usepackage{hypcap}% it must be loaded after hyperref.
53% Set up styles of URL: it should be placed after hyperref.
54\urlstyle{same}
55
56
57\usepackage{sphinxmessages}
58\setcounter{tocdepth}{0}
59
60
61
62\title{Building MIT Kerberos}
63\date{ }
64\release{1.21.3}
65\author{MIT}
66\newcommand{\sphinxlogo}{\vbox{}}
67\renewcommand{\releasename}{Release}
68\makeindex
69\begin{document}
70
71\pagestyle{empty}
72\sphinxmaketitle
73\pagestyle{plain}
74\sphinxtableofcontents
75\pagestyle{normal}
76\phantomsection\label{\detokenize{build/index::doc}}
77
78
79\sphinxAtStartPar
80This section details how to build and install MIT Kerberos software
81from the source.
82
83
84\chapter{Prerequisites}
85\label{\detokenize{build/index:prerequisites}}
86\sphinxAtStartPar
87In order to build Kerberos V5, you will need approximately 60\sphinxhyphen{}70
88megabytes of disk space.  The exact amount will vary depending on the
89platform and whether the distribution is compiled with debugging
90symbol tables or not.
91
92\sphinxAtStartPar
93Your C compiler must conform to ANSI C (ISO/IEC 9899:1990, “c89”).
94Some operating systems do not have an ANSI C compiler, or their
95default compiler requires extra command\sphinxhyphen{}line options to enable ANSI C
96conformance.
97
98\sphinxAtStartPar
99If you wish to keep a separate build tree, which contains the compiled
100*.o file and executables, separate from your source tree, you will
101need a make program which supports \sphinxstylestrong{VPATH}, or you will need to use
102a tool such as lndir to produce a symbolic link tree for your build
103tree.
104
105
106\chapter{Obtaining the software}
107\label{\detokenize{build/index:obtaining-the-software}}
108\sphinxAtStartPar
109The source code can be obtained from MIT Kerberos Distribution page,
110at \sphinxurl{https://kerberos.org/dist/index.html}.
111The MIT Kerberos distribution comes in an archive file, generally
112named krb5\sphinxhyphen{}VERSION\sphinxhyphen{}signed.tar, where \sphinxstyleemphasis{VERSION} is a placeholder for
113the major and minor versions of MIT Kerberos.  (For example, MIT
114Kerberos 1.9 has major version “1” and minor version “9”.)
115
116\sphinxAtStartPar
117The krb5\sphinxhyphen{}VERSION\sphinxhyphen{}signed.tar contains a compressed tar file consisting
118of the sources for all of Kerberos (generally named
119krb5\sphinxhyphen{}VERSION.tar.gz) and a PGP signature file for this source tree
120(generally named krb5\sphinxhyphen{}VERSION.tar.gz.asc).  MIT highly recommends that
121you verify the integrity of the source code using this signature,
122e.g., by running:
123
124\begin{sphinxVerbatim}[commandchars=\\\{\}]
125\PYG{n}{tar} \PYG{n}{xf} \PYG{n}{krb5}\PYG{o}{\PYGZhy{}}\PYG{n}{VERSION}\PYG{o}{\PYGZhy{}}\PYG{n}{signed}\PYG{o}{.}\PYG{n}{tar}
126\PYG{n}{gpg} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{verify} \PYG{n}{krb5}\PYG{o}{\PYGZhy{}}\PYG{n}{VERSION}\PYG{o}{.}\PYG{n}{tar}\PYG{o}{.}\PYG{n}{gz}\PYG{o}{.}\PYG{n}{asc}
127\end{sphinxVerbatim}
128
129\sphinxAtStartPar
130Unpack krb5\sphinxhyphen{}VERSION.tar.gz in some directory. In this section we will assume
131that you have chosen the top directory of the distribution the directory
132\sphinxcode{\sphinxupquote{/u1/krb5\sphinxhyphen{}VERSION}}.
133
134\sphinxAtStartPar
135Review the README file for the license, copyright and other sprecific to the
136distribution information.
137
138
139\chapter{Contents}
140\label{\detokenize{build/index:contents}}
141
142\section{Organization of the source directory}
143\label{\detokenize{build/directory_org:organization-of-the-source-directory}}\label{\detokenize{build/directory_org::doc}}
144\sphinxAtStartPar
145Below is a brief overview of the organization of the complete source
146directory.  More detailed descriptions follow.
147
148
149\begin{savenotes}\sphinxattablestart
150\centering
151\begin{tabulary}{\linewidth}[t]{|T|T|}
152\hline
153
154\sphinxAtStartPar
155appl
156&
157\sphinxAtStartPar
158Kerberos application client and server programs
159\\
160\hline
161\sphinxAtStartPar
162ccapi
163&
164\sphinxAtStartPar
165Credential cache services
166\\
167\hline
168\sphinxAtStartPar
169clients
170&
171\sphinxAtStartPar
172Kerberos V5 user programs (See \DUrole{xref,std,std-ref}{user\_commands})
173\\
174\hline
175\sphinxAtStartPar
176config
177&
178\sphinxAtStartPar
179Configure scripts
180\\
181\hline
182\sphinxAtStartPar
183config\sphinxhyphen{}files
184&
185\sphinxAtStartPar
186Sample Kerberos configuration files
187\\
188\hline
189\sphinxAtStartPar
190include
191&
192\sphinxAtStartPar
193include files needed to build the Kerberos system
194\\
195\hline
196\sphinxAtStartPar
197kadmin
198&
199\sphinxAtStartPar
200Administrative interface to the Kerberos database: \DUrole{xref,std,std-ref}{kadmin(1)}, \DUrole{xref,std,std-ref}{kdb5\_util(8)}, \DUrole{xref,std,std-ref}{ktutil(1)}.
201\\
202\hline
203\sphinxAtStartPar
204kdc
205&
206\sphinxAtStartPar
207Kerberos V5 Authentication Service and Key Distribution Center
208\\
209\hline
210\sphinxAtStartPar
211{\hyperref[\detokenize{build/directory_org:lib}]{\sphinxcrossref{lib}}}
212&
213\sphinxAtStartPar
214Libraries for use with/by Kerberos V5
215\\
216\hline
217\sphinxAtStartPar
218plugins
219&
220\sphinxAtStartPar
221Kerberos plugins directory
222\\
223\hline
224\sphinxAtStartPar
225po
226&
227\sphinxAtStartPar
228Localization infrastructure
229\\
230\hline
231\sphinxAtStartPar
232prototype
233&
234\sphinxAtStartPar
235Templates files containing the MIT copyright message and a placeholder for the title and description of the file.
236\\
237\hline
238\sphinxAtStartPar
239kprop
240&
241\sphinxAtStartPar
242Utilities for propagating the database to replica KDCs \DUrole{xref,std,std-ref}{kprop(8)} and \DUrole{xref,std,std-ref}{kpropd(8)}
243\\
244\hline
245\sphinxAtStartPar
246tests
247&
248\sphinxAtStartPar
249Test suite
250\\
251\hline
252\sphinxAtStartPar
253{\hyperref[\detokenize{build/directory_org:util}]{\sphinxcrossref{util}}}
254&
255\sphinxAtStartPar
256Various utilities for building/configuring the code, sending bug reports, etc.
257\\
258\hline
259\sphinxAtStartPar
260windows
261&
262\sphinxAtStartPar
263Source code for building Kerberos V5 on Windows (see windows/README)
264\\
265\hline
266\end{tabulary}
267\par
268\sphinxattableend\end{savenotes}
269
270
271\subsection{lib}
272\label{\detokenize{build/directory_org:lib}}\label{\detokenize{build/directory_org:id1}}
273\sphinxAtStartPar
274The lib directory contain several subdirectories as well as some
275definition and glue files.
276\begin{itemize}
277\item {}
278\sphinxAtStartPar
279The apputils directory contains the code for the generic network
280servicing.
281
282\item {}
283\sphinxAtStartPar
284The crypto subdirectory contains the Kerberos V5 encryption
285library.
286
287\item {}
288\sphinxAtStartPar
289The gssapi library contains the Generic Security Services API,
290which is a library of commands to be used in secure client\sphinxhyphen{}server
291communication.
292
293\item {}
294\sphinxAtStartPar
295The kadm5 directory contains the libraries for the KADM5
296administration utilities.
297
298\item {}
299\sphinxAtStartPar
300The Kerberos 5 database libraries are contained in kdb.
301
302\item {}
303\sphinxAtStartPar
304The krb5 directory contains Kerberos 5 API.
305
306\item {}
307\sphinxAtStartPar
308The rpc directory contains the API for the Kerberos Remote
309Procedure Call protocol.
310
311\end{itemize}
312
313
314\subsection{util}
315\label{\detokenize{build/directory_org:util}}\label{\detokenize{build/directory_org:id2}}\begin{description}
316\item[{The util directory contains several utility programs and libraries.}] \leavevmode\begin{itemize}
317\item {}
318\sphinxAtStartPar
319the programs used to configure and build the code, such as
320autoconf, lndir, kbuild, reconf, and makedepend, are in this
321directory.
322
323\item {}
324\sphinxAtStartPar
325the profile directory contains most of the functions which parse
326the Kerberos configuration files (krb5.conf and kdc.conf).
327
328\item {}
329\sphinxAtStartPar
330the Kerberos error table library and utilities (et);
331
332\item {}
333\sphinxAtStartPar
334the Sub\sphinxhyphen{}system library and utilities (ss);
335
336\item {}
337\sphinxAtStartPar
338database utilities (db2);
339
340\item {}
341\sphinxAtStartPar
342pseudo\sphinxhyphen{}terminal utilities (pty);
343
344\item {}
345\sphinxAtStartPar
346bug\sphinxhyphen{}reporting program send\sphinxhyphen{}pr;
347
348\item {}
349\sphinxAtStartPar
350a generic support library support used by several of our other
351libraries;
352
353\item {}
354\sphinxAtStartPar
355the build infrastructure for building lightweight Kerberos client
356(collected\sphinxhyphen{}client\sphinxhyphen{}lib)
357
358\item {}
359\sphinxAtStartPar
360the tool for validating Kerberos configuration files
361(confvalidator);
362
363\item {}
364\sphinxAtStartPar
365the toolkit for kernel integrators for building krb5 code subsets
366(gss\sphinxhyphen{}kernel\sphinxhyphen{}lib);
367
368\item {}
369\sphinxAtStartPar
370source code for building Kerberos V5 on MacOS (mac)
371
372\item {}
373\sphinxAtStartPar
374Windows getopt operations (windows)
375
376\end{itemize}
377
378\end{description}
379
380
381\section{Doing the build}
382\label{\detokenize{build/doing_build:doing-the-build}}\label{\detokenize{build/doing_build::doc}}
383
384\subsection{Building within a single tree}
385\label{\detokenize{build/doing_build:building-within-a-single-tree}}\label{\detokenize{build/doing_build:do-build}}
386\sphinxAtStartPar
387If you only need to build Kerberos for one platform, using a single
388directory tree which contains both the source files and the object
389files is the simplest.  However, if you need to maintain Kerberos for
390a large number of platforms, you will probably want to use separate
391build trees for each platform.  We recommend that you look at OS
392Incompatibilities, for notes that we have on particular operating
393systems.
394
395\sphinxAtStartPar
396If you don’t want separate build trees for each architecture, then use
397the following abbreviated procedure:
398
399\begin{sphinxVerbatim}[commandchars=\\\{\}]
400\PYG{n}{cd} \PYG{o}{/}\PYG{n}{u1}\PYG{o}{/}\PYG{n}{krb5}\PYG{o}{\PYGZhy{}}\PYG{n}{VERSION}\PYG{o}{/}\PYG{n}{src}
401\PYG{o}{.}\PYG{o}{/}\PYG{n}{configure}
402\PYG{n}{make}
403\end{sphinxVerbatim}
404
405\sphinxAtStartPar
406That’s it!
407
408
409\subsection{Building with separate build directories}
410\label{\detokenize{build/doing_build:building-with-separate-build-directories}}
411\sphinxAtStartPar
412If you wish to keep separate build directories for each platform, you
413can do so using the following procedure.  (Note, this requires that
414your make program support VPATH.  GNU’s make will provide this
415functionality, for example.)  If your make program does not support
416this, see the next section.
417
418\sphinxAtStartPar
419For example, if you wish to store the binaries in \sphinxcode{\sphinxupquote{tmpbuild}} build
420directory you might use the following procedure:
421
422\begin{sphinxVerbatim}[commandchars=\\\{\}]
423\PYG{n}{mkdir} \PYG{o}{/}\PYG{n}{u1}\PYG{o}{/}\PYG{n}{tmpbuild}
424\PYG{n}{cd} \PYG{o}{/}\PYG{n}{u1}\PYG{o}{/}\PYG{n}{tmpbuild}
425\PYG{o}{/}\PYG{n}{u1}\PYG{o}{/}\PYG{n}{krb5}\PYG{o}{\PYGZhy{}}\PYG{n}{VERSION}\PYG{o}{/}\PYG{n}{src}\PYG{o}{/}\PYG{n}{configure}
426\PYG{n}{make}
427\end{sphinxVerbatim}
428
429
430\subsection{Building using lndir}
431\label{\detokenize{build/doing_build:building-using-lndir}}
432\sphinxAtStartPar
433If you wish to keep separate build directories for each platform, and
434you do not have access to a make program which supports VPATH, all is
435not lost.  You can use the lndir program to create symbolic link trees
436in your build directory.
437
438\sphinxAtStartPar
439For example, if you wish to create a build directory for solaris
440binaries you might use the following procedure:
441
442\begin{sphinxVerbatim}[commandchars=\\\{\}]
443mkdir /u1/krb5\PYGZhy{}VERSION/solaris
444cd /u1/krb5\PYGZhy{}VERSION/solaris
445/u1/krb5\PYGZhy{}VERSION/src/util/lndir `pwd`/../src
446./configure
447make
448\end{sphinxVerbatim}
449
450\sphinxAtStartPar
451You must give an absolute pathname to lndir because it has a bug that
452makes it fail for relative pathnames.  Note that this version differs
453from the latest version as distributed and installed by the
454XConsortium with X11R6.  Either version should be acceptable.
455
456
457\subsection{Installing the binaries}
458\label{\detokenize{build/doing_build:installing-the-binaries}}
459\sphinxAtStartPar
460Once you have built Kerberos, you should install the binaries. You can
461do this by running:
462
463\begin{sphinxVerbatim}[commandchars=\\\{\}]
464\PYG{n}{make} \PYG{n}{install}
465\end{sphinxVerbatim}
466
467\sphinxAtStartPar
468If you want to install the binaries into a destination directory that
469is not their final destination, which may be convenient if you want to
470build a binary distribution to be deployed on multiple hosts, you may
471use:
472
473\begin{sphinxVerbatim}[commandchars=\\\{\}]
474\PYG{n}{make} \PYG{n}{install} \PYG{n}{DESTDIR}\PYG{o}{=}\PYG{o}{/}\PYG{n}{path}\PYG{o}{/}\PYG{n}{to}\PYG{o}{/}\PYG{n}{destdir}
475\end{sphinxVerbatim}
476
477\sphinxAtStartPar
478This will install the binaries under \sphinxstyleemphasis{DESTDIR/PREFIX}, e.g., the user
479programs will install into \sphinxstyleemphasis{DESTDIR/PREFIX/bin}, the libraries into
480\sphinxstyleemphasis{DESTDIR/PREFIX/lib}, etc.  \sphinxstyleemphasis{DESTDIR} must be an absolute path.
481
482\sphinxAtStartPar
483Some implementations of make allow multiple commands to be run in
484parallel, for faster builds.  We test our Makefiles in parallel builds
485with GNU make only; they may not be compatible with other parallel
486build implementations.
487
488
489\subsection{Testing the build}
490\label{\detokenize{build/doing_build:testing-the-build}}
491\sphinxAtStartPar
492The Kerberos V5 distribution comes with built\sphinxhyphen{}in regression tests.  To
493run them, simply type the following command while in the top\sphinxhyphen{}level
494build directory (i.e., the directory where you sent typed make to
495start building Kerberos; see {\hyperref[\detokenize{build/doing_build:do-build}]{\sphinxcrossref{\DUrole{std,std-ref}{Building within a single tree}}}}):
496
497\begin{sphinxVerbatim}[commandchars=\\\{\}]
498\PYG{n}{make} \PYG{n}{check}
499\end{sphinxVerbatim}
500
501\sphinxAtStartPar
502On some operating systems, you have to run \sphinxcode{\sphinxupquote{make install}} before
503running \sphinxcode{\sphinxupquote{make check}}, or the test suite will pick up installed
504versions of Kerberos libraries rather than the newly built ones.  You
505can install into a prefix that isn’t in the system library search
506path, though.  Alternatively, you can configure with
507\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}disable\sphinxhyphen{}rpath}, which renders the build tree less suitable
508for installation, but allows testing without interference from
509previously installed libraries.
510
511\sphinxAtStartPar
512There are additional regression tests available, which are not run
513by \sphinxcode{\sphinxupquote{make check}}.  These tests require manual setup and teardown of
514support infrastructure which is not easily automated, or require
515excessive resources for ordinary use.  The procedure for running
516the manual tests is documented at
517\sphinxurl{https://k5wiki.kerberos.org/wiki/Manual\_Testing}.
518
519
520\subsection{Cleaning up the build}
521\label{\detokenize{build/doing_build:cleaning-up-the-build}}\begin{itemize}
522\item {}
523\sphinxAtStartPar
524Use \sphinxcode{\sphinxupquote{make clean}} to remove all files generated by running make
525command.
526
527\item {}
528\sphinxAtStartPar
529Use \sphinxcode{\sphinxupquote{make distclean}} to remove all files generated by running
530./configure script.  After running \sphinxcode{\sphinxupquote{make distclean}} your source
531tree (ideally) should look like the raw (just un\sphinxhyphen{}tarred) source
532tree.
533
534\end{itemize}
535
536
537\subsection{Using autoconf}
538\label{\detokenize{build/doing_build:using-autoconf}}
539\sphinxAtStartPar
540(If you are not a developer, you can ignore this section.)
541
542\sphinxAtStartPar
543In the Kerberos V5 source directory, there is a configure script which
544automatically determines the compilation environment and creates the
545proper Makefiles for a particular platform.  This configure script is
546generated using autoconf, which you should already have installed if
547you will be making changes to \sphinxcode{\sphinxupquote{src/configure.in}}.
548
549\sphinxAtStartPar
550Normal users will not need to worry about running autoconf; the
551distribution comes with the configure script already prebuilt.
552
553\sphinxAtStartPar
554The autoconf package comes with a script called \sphinxcode{\sphinxupquote{autoreconf}} that
555will automatically run \sphinxcode{\sphinxupquote{autoconf}} and \sphinxcode{\sphinxupquote{autoheader}} as needed.  You
556should run \sphinxcode{\sphinxupquote{autoreconf}} from the top source directory, e.g.:
557
558\begin{sphinxVerbatim}[commandchars=\\\{\}]
559\PYG{n}{cd} \PYG{o}{/}\PYG{n}{u1}\PYG{o}{/}\PYG{n}{krb5}\PYG{o}{\PYGZhy{}}\PYG{n}{VERSION}\PYG{o}{/}\PYG{n}{src}
560\PYG{n}{autoreconf} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{verbose}
561\end{sphinxVerbatim}
562
563
564\section{Options to \sphinxstyleemphasis{configure}}
565\label{\detokenize{build/options2configure:options-to-configure}}\label{\detokenize{build/options2configure:options2configure}}\label{\detokenize{build/options2configure::doc}}
566\sphinxAtStartPar
567There are a number of options to configure which you can use to
568control how the Kerberos distribution is built.
569
570
571\subsection{Most commonly used options}
572\label{\detokenize{build/options2configure:most-commonly-used-options}}\begin{description}
573\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}help}}] \leavevmode
574\sphinxAtStartPar
575Provides help to configure.  This will list the set of commonly
576used options for building Kerberos.
577
578\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}prefix=}\sphinxstyleemphasis{PREFIX}}] \leavevmode
579\sphinxAtStartPar
580By default, Kerberos will install the package’s files rooted at
581\sphinxcode{\sphinxupquote{/usr/local}}.  If you desire to place the binaries into the
582directory \sphinxstyleemphasis{PREFIX}, use this option.
583
584\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}exec\sphinxhyphen{}prefix=}\sphinxstyleemphasis{EXECPREFIX}}] \leavevmode
585\sphinxAtStartPar
586This option allows one to separate the architecture independent
587programs from the host\sphinxhyphen{}dependent files (configuration files,
588manual pages).  Use this option to install architecture\sphinxhyphen{}dependent
589programs in \sphinxstyleemphasis{EXECPREFIX}.  The default location is the value of
590specified by \sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}prefix} option.
591
592\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}localstatedir=}\sphinxstyleemphasis{LOCALSTATEDIR}}] \leavevmode
593\sphinxAtStartPar
594This option sets the directory for locally modifiable
595single\sphinxhyphen{}machine data.  In Kerberos, this mostly is useful for
596setting a location for the KDC data files, as they will be
597installed in \sphinxcode{\sphinxupquote{LOCALSTATEDIR/krb5kdc}}, which is by default
598\sphinxcode{\sphinxupquote{PREFIX/var/krb5kdc}}.
599
600\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}netlib}{[}=\sphinxstyleemphasis{libs}{]}}] \leavevmode
601\sphinxAtStartPar
602Allows for suppression of or replacement of network libraries.  By
603default, Kerberos V5 configuration will look for \sphinxcode{\sphinxupquote{\sphinxhyphen{}lnsl}} and
604\sphinxcode{\sphinxupquote{\sphinxhyphen{}lsocket}}.  If your operating system has a broken resolver
605library or fails to pass the tests in \sphinxcode{\sphinxupquote{src/tests/resolv}}, you
606will need to use this option.
607
608\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}enable\sphinxhyphen{}dns\sphinxhyphen{}for\sphinxhyphen{}realm}}] \leavevmode
609\sphinxAtStartPar
610Enable the use of DNS to look up a host’s Kerberos realm,
611if the information is not provided in
612\DUrole{xref,std,std-ref}{krb5.conf(5)}.  See \DUrole{xref,std,std-ref}{mapping\_hostnames}
613for information about using DNS to determine the default realm.
614DNS lookups for realm names are disabled by default.
615
616\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}system\sphinxhyphen{}et}}] \leavevmode
617\sphinxAtStartPar
618Use an installed version of the error\sphinxhyphen{}table (et) support software,
619the compile\_et program, the com\_err.h header file and the com\_err
620library.  If these are not in the default locations, you may wish
621to specify \sphinxcode{\sphinxupquote{CPPFLAGS=\sphinxhyphen{}I/some/dir}} and
622\sphinxcode{\sphinxupquote{LDFLAGS=\sphinxhyphen{}L/some/other/dir}} options at configuration time as
623well.
624
625\sphinxAtStartPar
626If this option is not given, a version supplied with the Kerberos
627sources will be built and installed along with the rest of the
628Kerberos tree, for Kerberos applications to link against.
629
630\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}system\sphinxhyphen{}ss}}] \leavevmode
631\sphinxAtStartPar
632Use an installed version of the subsystem command\sphinxhyphen{}line interface
633software, the mk\_cmds program, the \sphinxcode{\sphinxupquote{ss/ss.h}} header file and the
634ss library.  If these are not in the default locations, you may
635wish to specify \sphinxcode{\sphinxupquote{CPPFLAGS=\sphinxhyphen{}I/some/dir}} and
636\sphinxcode{\sphinxupquote{LDFLAGS=\sphinxhyphen{}L/some/other/dir}} options at configuration time as
637well.  See also the \sphinxstylestrong{SS\_LIB} option.
638
639\sphinxAtStartPar
640If this option is not given, the ss library supplied with the
641Kerberos sources will be compiled and linked into those programs
642that need it; it will not be installed separately.
643
644\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}system\sphinxhyphen{}db}}] \leavevmode
645\sphinxAtStartPar
646Use an installed version of the Berkeley DB package, which must
647provide an API compatible with version 1.85.  This option is
648unsupported and untested.  In particular, we do not know if the
649database\sphinxhyphen{}rename code used in the dumpfile load operation will
650behave properly.
651
652\sphinxAtStartPar
653If this option is not given, a version supplied with the Kerberos
654sources will be built and installed.  (We are not updating this
655version at this time because of licensing issues with newer
656versions that we haven’t investigated sufficiently yet.)
657
658\end{description}
659
660
661\subsection{Environment variables}
662\label{\detokenize{build/options2configure:environment-variables}}\begin{description}
663\item[{\sphinxstylestrong{CC=}\sphinxstyleemphasis{COMPILER}}] \leavevmode
664\sphinxAtStartPar
665Use \sphinxstyleemphasis{COMPILER} as the C compiler.
666
667\item[{\sphinxstylestrong{CFLAGS=}\sphinxstyleemphasis{FLAGS}}] \leavevmode
668\sphinxAtStartPar
669Use \sphinxstyleemphasis{FLAGS} as the default set of C compiler flags.
670
671\item[{\sphinxstylestrong{CPP=}\sphinxstyleemphasis{CPP}}] \leavevmode
672\sphinxAtStartPar
673C preprocessor to use. (e.g., \sphinxcode{\sphinxupquote{CPP=\textquotesingle{}gcc \sphinxhyphen{}E\textquotesingle{}}})
674
675\item[{\sphinxstylestrong{CPPFLAGS=}\sphinxstyleemphasis{CPPOPTS}}] \leavevmode
676\sphinxAtStartPar
677Use \sphinxstyleemphasis{CPPOPTS} as the default set of C preprocessor flags.  The
678most common use of this option is to select certain \#define’s for
679use with the operating system’s include files.
680
681\item[{\sphinxstylestrong{DB\_HEADER=}\sphinxstyleemphasis{headername}}] \leavevmode
682\sphinxAtStartPar
683If db.h is not the correct header file to include to compile
684against the Berkeley DB 1.85 API, specify the correct header file
685name with this option. For example, \sphinxcode{\sphinxupquote{DB\_HEADER=db3/db\_185.h}}.
686
687\item[{\sphinxstylestrong{DB\_LIB=}\sphinxstyleemphasis{libs}…}] \leavevmode
688\sphinxAtStartPar
689If \sphinxcode{\sphinxupquote{\sphinxhyphen{}ldb}} is not the correct library specification for the
690Berkeley DB library version to be used, override it with this
691option. For example, \sphinxcode{\sphinxupquote{DB\_LIB=\sphinxhyphen{}ldb\sphinxhyphen{}3.3}}.
692
693\item[{\sphinxstylestrong{DEFCCNAME=}\sphinxstyleemphasis{ccachename}}] \leavevmode
694\sphinxAtStartPar
695Override the built\sphinxhyphen{}in default credential cache name.
696For example, \sphinxcode{\sphinxupquote{DEFCCNAME=DIR:/var/run/user/\%\{USERID\}/ccache}}
697See \DUrole{xref,std,std-ref}{parameter\_expansion} for information about supported
698parameter expansions.
699
700\item[{\sphinxstylestrong{DEFCKTNAME=}\sphinxstyleemphasis{keytabname}}] \leavevmode
701\sphinxAtStartPar
702Override the built\sphinxhyphen{}in default client keytab name.
703The format is the same as for \sphinxstyleemphasis{DEFCCNAME}.
704
705\item[{\sphinxstylestrong{DEFKTNAME=}\sphinxstyleemphasis{keytabname}}] \leavevmode
706\sphinxAtStartPar
707Override the built\sphinxhyphen{}in default keytab name.
708The format is the same as for \sphinxstyleemphasis{DEFCCNAME}.
709
710\item[{\sphinxstylestrong{LD=}\sphinxstyleemphasis{LINKER}}] \leavevmode
711\sphinxAtStartPar
712Use \sphinxstyleemphasis{LINKER} as the default loader if it should be different from
713C compiler as specified above.
714
715\item[{\sphinxstylestrong{LDFLAGS=}\sphinxstyleemphasis{LDOPTS}}] \leavevmode
716\sphinxAtStartPar
717This option informs the linker where to get additional libraries
718(e.g., \sphinxcode{\sphinxupquote{\sphinxhyphen{}L\textless{}lib dir\textgreater{}}}).
719
720\item[{\sphinxstylestrong{LIBS=}\sphinxstyleemphasis{LDNAME}}] \leavevmode
721\sphinxAtStartPar
722This option allows one to specify libraries to be passed to the
723linker (e.g., \sphinxcode{\sphinxupquote{\sphinxhyphen{}l\textless{}library\textgreater{}}})
724
725\item[{\sphinxstylestrong{PKCS11\_MODNAME=}\sphinxstyleemphasis{library}}] \leavevmode
726\sphinxAtStartPar
727Override the built\sphinxhyphen{}in default PKCS11 library name.
728
729\item[{\sphinxstylestrong{SS\_LIB=}\sphinxstyleemphasis{libs}…}] \leavevmode
730\sphinxAtStartPar
731If \sphinxcode{\sphinxupquote{\sphinxhyphen{}lss}} is not the correct way to link in your installed ss
732library, for example if additional support libraries are needed,
733specify the correct link options here.  Some variants of this
734library are around which allow for Emacs\sphinxhyphen{}like line editing, but
735different versions require different support libraries to be
736explicitly specified.
737
738\sphinxAtStartPar
739This option is ignored if \sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}system\sphinxhyphen{}ss} is not specified.
740
741\item[{\sphinxstylestrong{YACC}}] \leavevmode
742\sphinxAtStartPar
743The ‘Yet Another C Compiler’ implementation to use. Defaults to
744the first program found out of: ‘\sphinxtitleref{bison \sphinxhyphen{}y}’, ‘\sphinxtitleref{byacc}’,
745‘\sphinxtitleref{yacc}’.
746
747\item[{\sphinxstylestrong{YFLAGS}}] \leavevmode
748\sphinxAtStartPar
749The list of arguments that will be passed by default to \$YACC.
750This script will default YFLAGS to the empty string to avoid a
751default value of \sphinxcode{\sphinxupquote{\sphinxhyphen{}d}} given by some make applications.
752
753\end{description}
754
755
756\subsection{Fine tuning of the installation directories}
757\label{\detokenize{build/options2configure:fine-tuning-of-the-installation-directories}}\begin{description}
758\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}bindir=}\sphinxstyleemphasis{DIR}}] \leavevmode
759\sphinxAtStartPar
760User executables.  Defaults to \sphinxcode{\sphinxupquote{EXECPREFIX/bin}}, where
761\sphinxstyleemphasis{EXECPREFIX} is the path specified by \sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}exec\sphinxhyphen{}prefix}
762configuration option.
763
764\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}sbindir=}\sphinxstyleemphasis{DIR}}] \leavevmode
765\sphinxAtStartPar
766System admin executables.  Defaults to \sphinxcode{\sphinxupquote{EXECPREFIX/sbin}}, where
767\sphinxstyleemphasis{EXECPREFIX} is the path specified by \sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}exec\sphinxhyphen{}prefix}
768configuration option.
769
770\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}sysconfdir=}\sphinxstyleemphasis{DIR}}] \leavevmode
771\sphinxAtStartPar
772Read\sphinxhyphen{}only single\sphinxhyphen{}machine data such as krb5.conf.
773Defaults to \sphinxcode{\sphinxupquote{PREFIX/etc}}, where
774\sphinxstyleemphasis{PREFIX} is the path specified by \sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}prefix} configuration
775option.
776
777\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}libdir=}\sphinxstyleemphasis{DIR}}] \leavevmode
778\sphinxAtStartPar
779Object code libraries.  Defaults to \sphinxcode{\sphinxupquote{EXECPREFIX/lib}}, where
780\sphinxstyleemphasis{EXECPREFIX} is the path specified by \sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}exec\sphinxhyphen{}prefix}
781configuration option.
782
783\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}includedir=}\sphinxstyleemphasis{DIR}}] \leavevmode
784\sphinxAtStartPar
785C header files.  Defaults to \sphinxcode{\sphinxupquote{PREFIX/include}}, where \sphinxstyleemphasis{PREFIX} is
786the path specified by \sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}prefix} configuration option.
787
788\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}datarootdir=}\sphinxstyleemphasis{DATAROOTDIR}}] \leavevmode
789\sphinxAtStartPar
790Read\sphinxhyphen{}only architecture\sphinxhyphen{}independent data root.  Defaults to
791\sphinxcode{\sphinxupquote{PREFIX/share}}, where \sphinxstyleemphasis{PREFIX} is the path specified by
792\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}prefix} configuration option.
793
794\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}datadir=}\sphinxstyleemphasis{DIR}}] \leavevmode
795\sphinxAtStartPar
796Read\sphinxhyphen{}only architecture\sphinxhyphen{}independent data.  Defaults to path
797specified by \sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}datarootdir} configuration option.
798
799\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}localedir=}\sphinxstyleemphasis{DIR}}] \leavevmode
800\sphinxAtStartPar
801Locale\sphinxhyphen{}dependent data.  Defaults to \sphinxcode{\sphinxupquote{DATAROOTDIR/locale}}, where
802\sphinxstyleemphasis{DATAROOTDIR} is the path specified by \sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}datarootdir}
803configuration option.
804
805\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}mandir=}\sphinxstyleemphasis{DIR}}] \leavevmode
806\sphinxAtStartPar
807Man documentation.  Defaults to \sphinxcode{\sphinxupquote{DATAROOTDIR/man}}, where
808\sphinxstyleemphasis{DATAROOTDIR} is the path specified by \sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}datarootdir}
809configuration option.
810
811\end{description}
812
813
814\subsection{Program names}
815\label{\detokenize{build/options2configure:program-names}}\begin{description}
816\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}program\sphinxhyphen{}prefix=}\sphinxstyleemphasis{PREFIX}}] \leavevmode
817\sphinxAtStartPar
818Prepend \sphinxstyleemphasis{PREFIX} to the names of the programs when installing
819them. For example, specifying \sphinxcode{\sphinxupquote{\sphinxhyphen{}\sphinxhyphen{}program\sphinxhyphen{}prefix=mit\sphinxhyphen{}}} at the
820configure time will cause the program named \sphinxcode{\sphinxupquote{abc}} to be
821installed as \sphinxcode{\sphinxupquote{mit\sphinxhyphen{}abc}}.
822
823\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}program\sphinxhyphen{}suffix=}\sphinxstyleemphasis{SUFFIX}}] \leavevmode
824\sphinxAtStartPar
825Append \sphinxstyleemphasis{SUFFIX} to the names of the programs when installing them.
826For example, specifying \sphinxcode{\sphinxupquote{\sphinxhyphen{}\sphinxhyphen{}program\sphinxhyphen{}suffix=\sphinxhyphen{}mit}} at the configure
827time will cause the program named \sphinxcode{\sphinxupquote{abc}} to be installed as
828\sphinxcode{\sphinxupquote{abc\sphinxhyphen{}mit}}.
829
830\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}program\sphinxhyphen{}transform\sphinxhyphen{}name=}\sphinxstyleemphasis{PROGRAM}}] \leavevmode
831\sphinxAtStartPar
832Run \sphinxcode{\sphinxupquote{sed \sphinxhyphen{}e PROGRAM}} on installed program names. (\sphinxstyleemphasis{PROGRAM} is a
833sed script).
834
835\end{description}
836
837
838\subsection{System types}
839\label{\detokenize{build/options2configure:system-types}}\begin{description}
840\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}build=}\sphinxstyleemphasis{BUILD}}] \leavevmode
841\sphinxAtStartPar
842Configure for building on \sphinxstyleemphasis{BUILD}
843(e.g., \sphinxcode{\sphinxupquote{\sphinxhyphen{}\sphinxhyphen{}build=x86\_64\sphinxhyphen{}linux\sphinxhyphen{}gnu}}).
844
845\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}host=}\sphinxstyleemphasis{HOST}}] \leavevmode
846\sphinxAtStartPar
847Cross\sphinxhyphen{}compile to build programs to run on \sphinxstyleemphasis{HOST}
848(e.g., \sphinxcode{\sphinxupquote{\sphinxhyphen{}\sphinxhyphen{}host=x86\_64\sphinxhyphen{}linux\sphinxhyphen{}gnu}}).  By default, Kerberos V5
849configuration will look for “build” option.
850
851\end{description}
852
853
854\subsection{Optional features}
855\label{\detokenize{build/options2configure:optional-features}}\begin{description}
856\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}disable\sphinxhyphen{}option\sphinxhyphen{}checking}}] \leavevmode
857\sphinxAtStartPar
858Ignore unrecognized \textendash{}enable/\textendash{}with options.
859
860\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}disable\sphinxhyphen{}}\sphinxstyleemphasis{FEATURE}}] \leavevmode
861\sphinxAtStartPar
862Do not include \sphinxstyleemphasis{FEATURE} (same as \textendash{}enable\sphinxhyphen{}FEATURE=no).
863
864\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}enable\sphinxhyphen{}}\sphinxstyleemphasis{FEATURE}{[}=\sphinxstyleemphasis{ARG}{]}}] \leavevmode
865\sphinxAtStartPar
866Include \sphinxstyleemphasis{FEATURE} {[}ARG=yes{]}.
867
868\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}enable\sphinxhyphen{}maintainer\sphinxhyphen{}mode}}] \leavevmode
869\sphinxAtStartPar
870Enable rebuilding of source files, Makefiles, etc.
871
872\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}disable\sphinxhyphen{}delayed\sphinxhyphen{}initialization}}] \leavevmode
873\sphinxAtStartPar
874Initialize library code when loaded.  Defaults to delay until
875first use.
876
877\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}disable\sphinxhyphen{}thread\sphinxhyphen{}support}}] \leavevmode
878\sphinxAtStartPar
879Don’t enable thread support.  Defaults to enabled.
880
881\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}disable\sphinxhyphen{}rpath}}] \leavevmode
882\sphinxAtStartPar
883Suppress run path flags in link lines.
884
885\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}enable\sphinxhyphen{}athena}}] \leavevmode
886\sphinxAtStartPar
887Build with MIT Project Athena configuration.
888
889\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}disable\sphinxhyphen{}kdc\sphinxhyphen{}lookaside\sphinxhyphen{}cache}}] \leavevmode
890\sphinxAtStartPar
891Disable the cache which detects client retransmits.
892
893\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}disable\sphinxhyphen{}pkinit}}] \leavevmode
894\sphinxAtStartPar
895Disable PKINIT plugin support.
896
897\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}disable\sphinxhyphen{}aesni}}] \leavevmode
898\sphinxAtStartPar
899Disable support for using AES instructions on x86 platforms.
900
901\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}enable\sphinxhyphen{}asan}{[}=\sphinxstyleemphasis{ARG}{]}}] \leavevmode
902\sphinxAtStartPar
903Enable building with asan memory error checking.  If \sphinxstyleemphasis{ARG} is
904given, it controls the \sphinxhyphen{}fsanitize compilation flag value (the
905default is “address”).
906
907\end{description}
908
909
910\subsection{Optional packages}
911\label{\detokenize{build/options2configure:optional-packages}}\begin{description}
912\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}}\sphinxstyleemphasis{PACKAGE}{[}=ARG{]}}] \leavevmode
913\sphinxAtStartPar
914Use \sphinxstyleemphasis{PACKAGE} (e.g., \sphinxcode{\sphinxupquote{\sphinxhyphen{}\sphinxhyphen{}with\sphinxhyphen{}imap}}).  The default value of \sphinxstyleemphasis{ARG}
915is \sphinxcode{\sphinxupquote{yes}}.
916
917\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}without\sphinxhyphen{}}\sphinxstyleemphasis{PACKAGE}}] \leavevmode
918\sphinxAtStartPar
919Do not use \sphinxstyleemphasis{PACKAGE} (same as \sphinxcode{\sphinxupquote{\sphinxhyphen{}\sphinxhyphen{}with\sphinxhyphen{}PACKAGE=no}})
920(e.g., \sphinxcode{\sphinxupquote{\sphinxhyphen{}\sphinxhyphen{}without\sphinxhyphen{}libedit}}).
921
922\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}size\sphinxhyphen{}optimizations}}] \leavevmode
923\sphinxAtStartPar
924Enable a few optimizations to reduce code size possibly at some
925run\sphinxhyphen{}time cost.
926
927\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}system\sphinxhyphen{}et}}] \leavevmode
928\sphinxAtStartPar
929Use the com\_err library and compile\_et utility that are already
930installed on the system, instead of building and installing
931local versions.
932
933\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}system\sphinxhyphen{}ss}}] \leavevmode
934\sphinxAtStartPar
935Use the ss library and mk\_cmds utility that are already installed
936on the system, instead of building and using private versions.
937
938\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}system\sphinxhyphen{}db}}] \leavevmode
939\sphinxAtStartPar
940Use the berkeley db utility already installed on the system,
941instead of using a private version.  This option is not
942recommended; enabling it may result in incompatibility with key
943databases originating on other systems.
944
945\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}netlib=}\sphinxstyleemphasis{LIBS}}] \leavevmode
946\sphinxAtStartPar
947Use the resolver library specified in \sphinxstyleemphasis{LIBS}.  Use this variable
948if the C library resolver is insufficient or broken.
949
950\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}hesiod=}\sphinxstyleemphasis{path}}] \leavevmode
951\sphinxAtStartPar
952Compile with Hesiod support.  The \sphinxstyleemphasis{path} points to the Hesiod
953directory.  By default Hesiod is unsupported.
954
955\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}ldap}}] \leavevmode
956\sphinxAtStartPar
957Compile OpenLDAP database backend module.
958
959\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}lmdb}}] \leavevmode
960\sphinxAtStartPar
961Compile LMDB database backend module.
962
963\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}vague\sphinxhyphen{}errors}}] \leavevmode
964\sphinxAtStartPar
965Do not send helpful errors to client.  For example, if the KDC
966should return only vague error codes to clients.
967
968\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}crypto\sphinxhyphen{}impl=}\sphinxstyleemphasis{IMPL}}] \leavevmode
969\sphinxAtStartPar
970Use specified crypto implementation (e.g., \sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}crypto\sphinxhyphen{}impl=}\sphinxstyleemphasis{openssl}).  The default is the native MIT
971Kerberos implementation \sphinxcode{\sphinxupquote{builtin}}.  The other currently
972implemented crypto backend is \sphinxcode{\sphinxupquote{openssl}}.  (See
973\DUrole{xref,std,std-ref}{mitK5features})
974
975\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}without\sphinxhyphen{}libedit}}] \leavevmode
976\sphinxAtStartPar
977Do not compile and link against libedit.  Some utilities will no
978longer offer command history or completion in interactive mode if
979libedit is disabled.
980
981\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}readline}}] \leavevmode
982\sphinxAtStartPar
983Compile and link against GNU readline, as an alternative to libedit.
984
985\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}system\sphinxhyphen{}verto}}] \leavevmode
986\sphinxAtStartPar
987Use an installed version of libverto.  If the libverto header and
988library are not in default locations, you may wish to specify
989\sphinxcode{\sphinxupquote{CPPFLAGS=\sphinxhyphen{}I/some/dir}} and \sphinxcode{\sphinxupquote{LDFLAGS=\sphinxhyphen{}L/some/other/dir}} options
990at configuration time as well.
991
992\sphinxAtStartPar
993If this option is not given, the build system will try to detect
994an installed version of libverto and use it if it is found.
995Otherwise, a version supplied with the Kerberos sources will be
996built and installed.  The built\sphinxhyphen{}in version does not contain the
997full set of back\sphinxhyphen{}end modules and is not a suitable general
998replacement for the upstream version, but will work for the
999purposes of Kerberos.
1000
1001\sphinxAtStartPar
1002Specifying \sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}without\sphinxhyphen{}system\sphinxhyphen{}verto} will cause the built\sphinxhyphen{}in
1003version of libverto to be used unconditionally.
1004
1005\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}with\sphinxhyphen{}krb5\sphinxhyphen{}config=}\sphinxstyleemphasis{PATH}}] \leavevmode
1006\sphinxAtStartPar
1007Use the krb5\sphinxhyphen{}config program at \sphinxstyleemphasis{PATH} to obtain the build\sphinxhyphen{}time
1008default credential cache, keytab, and client keytab names.  The
1009default is to use \sphinxcode{\sphinxupquote{krb5\sphinxhyphen{}config}} from the program path.  Specify
1010\sphinxcode{\sphinxupquote{\sphinxhyphen{}\sphinxhyphen{}without\sphinxhyphen{}krb5\sphinxhyphen{}config}} to disable the use of krb5\sphinxhyphen{}config and
1011use the usual built\sphinxhyphen{}in defaults.
1012
1013\item[{\sphinxstylestrong{\sphinxhyphen{}}\sphinxstylestrong{\sphinxhyphen{}without\sphinxhyphen{}keyutils}}] \leavevmode
1014\sphinxAtStartPar
1015Build without libkeyutils support.  This disables the KEYRING
1016credential cache type.
1017
1018\end{description}
1019
1020
1021\subsection{Examples}
1022\label{\detokenize{build/options2configure:examples}}
1023\sphinxAtStartPar
1024For example, in order to configure Kerberos on a Solaris machine using
1025the suncc compiler with the optimizer turned on, run the configure
1026script with the following options:
1027
1028\begin{sphinxVerbatim}[commandchars=\\\{\}]
1029\PYG{o}{\PYGZpc{}} \PYG{o}{.}\PYG{o}{/}\PYG{n}{configure} \PYG{n}{CC}\PYG{o}{=}\PYG{n}{suncc} \PYG{n}{CFLAGS}\PYG{o}{=}\PYG{o}{\PYGZhy{}}\PYG{n}{O}
1030\end{sphinxVerbatim}
1031
1032\sphinxAtStartPar
1033For a slightly more complicated example, consider a system where
1034several packages to be used by Kerberos are installed in
1035\sphinxcode{\sphinxupquote{/usr/foobar}}, including Berkeley DB 3.3, and an ss library that
1036needs to link against the curses library.  The configuration of
1037Kerberos might be done thus:
1038
1039\begin{sphinxVerbatim}[commandchars=\\\{\}]
1040\PYG{o}{.}\PYG{o}{/}\PYG{n}{configure} \PYG{n}{CPPFLAGS}\PYG{o}{=}\PYG{o}{\PYGZhy{}}\PYG{n}{I}\PYG{o}{/}\PYG{n}{usr}\PYG{o}{/}\PYG{n}{foobar}\PYG{o}{/}\PYG{n}{include} \PYG{n}{LDFLAGS}\PYG{o}{=}\PYG{o}{\PYGZhy{}}\PYG{n}{L}\PYG{o}{/}\PYG{n}{usr}\PYG{o}{/}\PYG{n}{foobar}\PYG{o}{/}\PYG{n}{lib} \PYGZbs{}
1041\PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{k}{with}\PYG{o}{\PYGZhy{}}\PYG{n}{system}\PYG{o}{\PYGZhy{}}\PYG{n}{et} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{k}{with}\PYG{o}{\PYGZhy{}}\PYG{n}{system}\PYG{o}{\PYGZhy{}}\PYG{n}{ss} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{k}{with}\PYG{o}{\PYGZhy{}}\PYG{n}{system}\PYG{o}{\PYGZhy{}}\PYG{n}{db}  \PYGZbs{}
1042\PYG{n}{SS\PYGZus{}LIB}\PYG{o}{=}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{\PYGZhy{}lss \PYGZhy{}lcurses}\PYG{l+s+s1}{\PYGZsq{}}  \PYG{n}{DB\PYGZus{}HEADER}\PYG{o}{=}\PYG{n}{db3}\PYG{o}{/}\PYG{n}{db\PYGZus{}185}\PYG{o}{.}\PYG{n}{h} \PYG{n}{DB\PYGZus{}LIB}\PYG{o}{=}\PYG{o}{\PYGZhy{}}\PYG{n}{ldb}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{3.3}
1043\end{sphinxVerbatim}
1044
1045
1046\section{osconf.hin}
1047\label{\detokenize{build/osconf:osconf-hin}}\label{\detokenize{build/osconf::doc}}
1048\sphinxAtStartPar
1049There is one configuration file which you may wish to edit to control
1050various compile\sphinxhyphen{}time parameters in the Kerberos distribution:
1051
1052\begin{sphinxVerbatim}[commandchars=\\\{\}]
1053\PYG{n}{include}\PYG{o}{/}\PYG{n}{osconf}\PYG{o}{.}\PYG{n}{hin}
1054\end{sphinxVerbatim}
1055
1056\sphinxAtStartPar
1057The list that follows is by no means complete, just some of the more
1058interesting variables.
1059\begin{description}
1060\item[{\sphinxstylestrong{DEFAULT\_PROFILE\_PATH}}] \leavevmode
1061\sphinxAtStartPar
1062The pathname to the file which contains the profiles for the known
1063realms, their KDCs, etc. The default value is \sphinxcode{\sphinxupquote{/etc/krb5.conf}}.
1064
1065\item[{\sphinxstylestrong{DEFAULT\_KEYTAB\_NAME}}] \leavevmode
1066\sphinxAtStartPar
1067The type and pathname to the default server keytab file.  The
1068default is \DUrole{xref,std,std-ref}{DEFKTNAME}.
1069
1070\item[{\sphinxstylestrong{DEFAULT\_KDC\_ENCTYPE}}] \leavevmode
1071\sphinxAtStartPar
1072The default encryption type for the KDC database master key.  The
1073default value is \sphinxcode{\sphinxupquote{aes256\sphinxhyphen{}cts\sphinxhyphen{}hmac\sphinxhyphen{}sha1\sphinxhyphen{}96}}.
1074
1075\item[{\sphinxstylestrong{RCTMPDIR}}] \leavevmode
1076\sphinxAtStartPar
1077The directory which stores replay caches.  The default is
1078\sphinxcode{\sphinxupquote{/var/tmp}}.
1079
1080\item[{\sphinxstylestrong{DEFAULT\_KDB\_FILE}}] \leavevmode
1081\sphinxAtStartPar
1082The location of the default database.  The default value is
1083\DUrole{xref,std,std-ref}{LOCALSTATEDIR}\sphinxcode{\sphinxupquote{/krb5kdc}}\sphinxcode{\sphinxupquote{/principal}}.
1084
1085\end{description}
1086
1087
1088
1089\renewcommand{\indexname}{Index}
1090\printindex
1091\end{document}