xref: /freebsd/krb5/util/build-tools/krb5-config.sh (revision 621e0e7f27303452c2f5b5fcf93aaf72e2b036a6)
1ee3960cbSCy Schubert#!/bin/sh
2ee3960cbSCy Schubert
3ee3960cbSCy Schubert# Copyright 2001, 2002, 2003 by the Massachusetts Institute of Technology.
4ee3960cbSCy Schubert# All Rights Reserved.
5ee3960cbSCy Schubert#
6ee3960cbSCy Schubert# Export of this software from the United States of America may
7ee3960cbSCy Schubert#   require a specific license from the United States Government.
8ee3960cbSCy Schubert#   It is the responsibility of any person or organization contemplating
9ee3960cbSCy Schubert#   export to obtain such a license before exporting.
10ee3960cbSCy Schubert#
11ee3960cbSCy Schubert# WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
12ee3960cbSCy Schubert# distribute this software and its documentation for any purpose and
13ee3960cbSCy Schubert# without fee is hereby granted, provided that the above copyright
14ee3960cbSCy Schubert# notice appear in all copies and that both that copyright notice and
15ee3960cbSCy Schubert# this permission notice appear in supporting documentation, and that
16ee3960cbSCy Schubert# the name of M.I.T. not be used in advertising or publicity pertaining
17ee3960cbSCy Schubert# to distribution of the software without specific, written prior
18ee3960cbSCy Schubert# permission.  Furthermore if you modify this software you must label
19ee3960cbSCy Schubert# your software as modified software and not distribute it in such a
20ee3960cbSCy Schubert# fashion that it might be confused with the original M.I.T. software.
21ee3960cbSCy Schubert# M.I.T. makes no representations about the suitability of
22ee3960cbSCy Schubert# this software for any purpose.  It is provided "as is" without express
23ee3960cbSCy Schubert# or implied warranty.
24ee3960cbSCy Schubert#
25ee3960cbSCy Schubert#
26ee3960cbSCy Schubert
27ee3960cbSCy Schubert# Configurable parameters set by autoconf
28ee3960cbSCy Schubert# Disreagard the above. Edit this by hand in the bespoke FreeBSD build.
29*621e0e7fSCy Schubertversion_string="Kerberos 5 release 1.22.1"
30ee3960cbSCy Schubert
31ee3960cbSCy Schubertprefix=/usr
32ee3960cbSCy Schubertexec_prefix=${prefix}
33ee3960cbSCy Schubertincludedir=${prefix}/include
34ee3960cbSCy Schubertlibdir=${exec_prefix}/lib
35ee3960cbSCy SchubertCC_LINK='$(CC) $(PROG_LIBPATH) $(PROG_RPATH_FLAGS) $(CFLAGS) $(LDFLAGS)'
36ee3960cbSCy SchubertKDB5_DB_LIB=
37ee3960cbSCy SchubertRPATH_FLAG=''
38ee3960cbSCy SchubertPROG_RPATH_FLAGS=''
39ee3960cbSCy SchubertPTHREAD_CFLAGS='-pthread'
40ee3960cbSCy SchubertDL_LIB=''
41ee3960cbSCy SchubertDEFCCNAME='FILE:/tmp/krb5cc_%{uid}'
42ee3960cbSCy SchubertDEFKTNAME='FILE:/etc/krb5.keytab'
43ee3960cbSCy SchubertDEFCKTNAME='FILE:/var/krb5/user/%{euid}/client.keytab'
44ee3960cbSCy Schubert
45ee3960cbSCy SchubertLIBS='-lintl -L/usr/local/lib'
46ee3960cbSCy SchubertGEN_LIB=
47ee3960cbSCy Schubert
48ee3960cbSCy Schubert# Defaults for program
49ee3960cbSCy Schubertlibrary=krb5
50ee3960cbSCy Schubert
51ee3960cbSCy Schubert# Some constants
52ee3960cbSCy Schubertvendor_string="Massachusetts Institute of Technology"
53ee3960cbSCy Schubert
54ee3960cbSCy Schubert# Process arguments
55ee3960cbSCy Schubert# Yes, we are sloppy, library specifications can come before options
56ee3960cbSCy Schubertwhile test $# != 0; do
57ee3960cbSCy Schubert    case $1 in
58ee3960cbSCy Schubert	--all)
59ee3960cbSCy Schubert	    do_all=1
60ee3960cbSCy Schubert	    ;;
61ee3960cbSCy Schubert	--cflags)
62ee3960cbSCy Schubert	    do_cflags=1
63ee3960cbSCy Schubert	    ;;
64ee3960cbSCy Schubert	--defccname)
65ee3960cbSCy Schubert	    do_defccname=1
66ee3960cbSCy Schubert	    ;;
67ee3960cbSCy Schubert	--defcktname)
68ee3960cbSCy Schubert	    do_defcktname=1
69ee3960cbSCy Schubert	    ;;
70ee3960cbSCy Schubert	--defktname)
71ee3960cbSCy Schubert	    do_defktname=1
72ee3960cbSCy Schubert	    ;;
73ee3960cbSCy Schubert	--deps) # historically a no-op
74ee3960cbSCy Schubert	    ;;
75ee3960cbSCy Schubert	--exec-prefix)
76ee3960cbSCy Schubert	    do_exec_prefix=1
77ee3960cbSCy Schubert	    ;;
78ee3960cbSCy Schubert	--help)
79ee3960cbSCy Schubert	    do_help=1
80ee3960cbSCy Schubert	    ;;
81ee3960cbSCy Schubert	--libs)
82ee3960cbSCy Schubert	    do_libs=1
83ee3960cbSCy Schubert	    ;;
84ee3960cbSCy Schubert	--prefix)
85ee3960cbSCy Schubert	    do_prefix=1
86ee3960cbSCy Schubert	    ;;
87ee3960cbSCy Schubert	--vendor)
88ee3960cbSCy Schubert	    do_vendor=1
89ee3960cbSCy Schubert	    ;;
90ee3960cbSCy Schubert	--version)
91ee3960cbSCy Schubert	    do_version=1
92ee3960cbSCy Schubert	    ;;
93ee3960cbSCy Schubert	krb5)
94ee3960cbSCy Schubert	    library=krb5
95ee3960cbSCy Schubert	    ;;
96ee3960cbSCy Schubert	gssapi)
97ee3960cbSCy Schubert	    library=gssapi
98ee3960cbSCy Schubert	    ;;
99ee3960cbSCy Schubert	gssrpc)
100ee3960cbSCy Schubert	    library=gssrpc
101ee3960cbSCy Schubert	    ;;
102ee3960cbSCy Schubert	kadm-client)
103ee3960cbSCy Schubert	    library=kadm_client
104ee3960cbSCy Schubert	    ;;
105ee3960cbSCy Schubert	kadm-server)
106ee3960cbSCy Schubert	    library=kadm_server
107ee3960cbSCy Schubert	    ;;
108ee3960cbSCy Schubert	kdb)
109ee3960cbSCy Schubert	    library=kdb
110ee3960cbSCy Schubert	    ;;
111ee3960cbSCy Schubert	*)
112ee3960cbSCy Schubert	    echo "$0: Unknown option \`$1' -- use \`--help' for usage"
113ee3960cbSCy Schubert	    exit 1
114ee3960cbSCy Schubert    esac
115ee3960cbSCy Schubert    shift
116ee3960cbSCy Schubertdone
117ee3960cbSCy Schubert
118ee3960cbSCy Schubert# If required options - provide help
119ee3960cbSCy Schubertif test -z "$do_all" -a -z "$do_version" -a -z "$do_vendor" -a \
120ee3960cbSCy Schubert    -z "$do_prefix" -a -z "$do_vendor" -a -z "$do_exec_prefix" -a \
121ee3960cbSCy Schubert    -z "$do_defccname" -a -z "$do_defktname" -a -z "$do_defcktname" -a \
122ee3960cbSCy Schubert    -z "$do_cflags" -a -z "$do_libs"; then
123ee3960cbSCy Schubert    do_help=1
124ee3960cbSCy Schubertfi
125ee3960cbSCy Schubert
126ee3960cbSCy Schubert
127ee3960cbSCy Schubertif test -n "$do_help"; then
128ee3960cbSCy Schubert    echo "Usage: $0 [OPTIONS] [LIBRARIES]"
129ee3960cbSCy Schubert    echo "Options:"
130ee3960cbSCy Schubert    echo "        [--help]          Help"
131ee3960cbSCy Schubert    echo "        [--all]           Display version, vendor, and various values"
132ee3960cbSCy Schubert    echo "        [--version]       Version information"
133ee3960cbSCy Schubert    echo "        [--vendor]        Vendor information"
134ee3960cbSCy Schubert    echo "        [--prefix]        Kerberos installed prefix"
135ee3960cbSCy Schubert    echo "        [--exec-prefix]   Kerberos installed exec_prefix"
136ee3960cbSCy Schubert    echo "        [--defccname]     Show built-in default ccache name"
137ee3960cbSCy Schubert    echo "        [--defktname]     Show built-in default keytab name"
138ee3960cbSCy Schubert    echo "        [--defcktname]    Show built-in default client keytab name"
139ee3960cbSCy Schubert    echo "        [--cflags]        Compile time CFLAGS"
140ee3960cbSCy Schubert    echo "        [--libs]          List libraries required to link [LIBRARIES]"
141ee3960cbSCy Schubert    echo "Libraries:"
142ee3960cbSCy Schubert    echo "        krb5              Kerberos 5 application"
143ee3960cbSCy Schubert    echo "        gssapi            GSSAPI application with Kerberos 5 bindings"
144ee3960cbSCy Schubert    echo "        gssrpc            GSSAPI RPC application"
145ee3960cbSCy Schubert    echo "        kadm-client       Kadmin client"
146ee3960cbSCy Schubert    echo "        kadm-server       Kadmin server"
147ee3960cbSCy Schubert    echo "        kdb               Application that accesses the kerberos database"
148ee3960cbSCy Schubert    exit 0
149ee3960cbSCy Schubertfi
150ee3960cbSCy Schubert
151ee3960cbSCy Schubertif test -n "$do_all"; then
152ee3960cbSCy Schubert    all_exit=
153ee3960cbSCy Schubert    do_version=1
154ee3960cbSCy Schubert    do_prefix=1
155ee3960cbSCy Schubert    do_exec_prefix=1
156ee3960cbSCy Schubert    do_vendor=1
157ee3960cbSCy Schubert    title_version="Version:     "
158ee3960cbSCy Schubert    title_prefix="Prefix:      "
159ee3960cbSCy Schubert    title_exec_prefix="Exec_prefix: "
160ee3960cbSCy Schubert    title_vendor="Vendor:      "
161ee3960cbSCy Schubertelse
162ee3960cbSCy Schubert    all_exit="exit 0"
163ee3960cbSCy Schubertfi
164ee3960cbSCy Schubert
165ee3960cbSCy Schubertif test -n "$do_version"; then
166ee3960cbSCy Schubert    echo "$title_version$version_string"
167ee3960cbSCy Schubert    $all_exit
168ee3960cbSCy Schubertfi
169ee3960cbSCy Schubert
170ee3960cbSCy Schubertif test -n "$do_vendor"; then
171ee3960cbSCy Schubert    echo "$title_vendor$vendor_string"
172ee3960cbSCy Schubert    $all_exit
173ee3960cbSCy Schubertfi
174ee3960cbSCy Schubert
175ee3960cbSCy Schubertif test -n "$do_prefix"; then
176ee3960cbSCy Schubert    echo "$title_prefix$prefix"
177ee3960cbSCy Schubert    $all_exit
178ee3960cbSCy Schubertfi
179ee3960cbSCy Schubert
180ee3960cbSCy Schubertif test -n "$do_exec_prefix"; then
181ee3960cbSCy Schubert    echo "$title_exec_prefix$exec_prefix"
182ee3960cbSCy Schubert    $all_exit
183ee3960cbSCy Schubertfi
184ee3960cbSCy Schubert
185ee3960cbSCy Schubertif test -n "$do_defccname"; then
186ee3960cbSCy Schubert    echo "$DEFCCNAME"
187ee3960cbSCy Schubert    $all_exit
188ee3960cbSCy Schubertfi
189ee3960cbSCy Schubert
190ee3960cbSCy Schubertif test -n "$do_defktname"; then
191ee3960cbSCy Schubert    echo "$DEFKTNAME"
192ee3960cbSCy Schubert    $all_exit
193ee3960cbSCy Schubertfi
194ee3960cbSCy Schubert
195ee3960cbSCy Schubertif test -n "$do_defcktname"; then
196ee3960cbSCy Schubert    echo "$DEFCKTNAME"
197ee3960cbSCy Schubert    $all_exit
198ee3960cbSCy Schubertfi
199ee3960cbSCy Schubert
200ee3960cbSCy Schubertif test -n "$do_cflags"; then
201ee3960cbSCy Schubert    if test x"$includedir" != x"/usr/include" ; then
202ee3960cbSCy Schubert        echo "-I${includedir}"
203ee3960cbSCy Schubert    else
204ee3960cbSCy Schubert        echo ''
205ee3960cbSCy Schubert    fi
206ee3960cbSCy Schubertfi
207ee3960cbSCy Schubert
208ee3960cbSCy Schubert
209ee3960cbSCy Schubertif test -n "$do_libs"; then
210ee3960cbSCy Schubert    # Assumes /usr/lib is the standard library directory everywhere...
211ee3960cbSCy Schubert    if test "$libdir" = /usr/lib; then
212ee3960cbSCy Schubert	libdirarg=
213ee3960cbSCy Schubert    else
214ee3960cbSCy Schubert	libdirarg="-L$libdir"
215ee3960cbSCy Schubert    fi
216ee3960cbSCy Schubert    # Ugly gross hack for our build tree
217ee3960cbSCy Schubert    lib_flags=`echo $CC_LINK | sed -e 's/\$(CC)//' \
218ee3960cbSCy Schubert	    -e 's/\$(PURE)//' \
219ee3960cbSCy Schubert	    -e 's#\$(PROG_RPATH_FLAGS)#'"$PROG_RPATH_FLAGS"'#' \
220ee3960cbSCy Schubert	    -e 's#\$(PROG_RPATH)#'$libdir'#' \
221ee3960cbSCy Schubert	    -e 's#\$(PROG_LIBPATH)#'$libdirarg'#' \
222ee3960cbSCy Schubert	    -e 's#\$(RPATH_FLAG)#'"$RPATH_FLAG"'#' \
223ee3960cbSCy Schubert	    -e 's#\$(LDFLAGS)##' \
224ee3960cbSCy Schubert	    -e 's#\$(PTHREAD_CFLAGS)#'"$PTHREAD_CFLAGS"'#' \
225ee3960cbSCy Schubert	    -e 's#\$(CFLAGS)##'`
226ee3960cbSCy Schubert
227ee3960cbSCy Schubert    if test $library = 'kdb'; then
228ee3960cbSCy Schubert	lib_flags="$lib_flags -lkdb5 $KDB5_DB_LIB"
229ee3960cbSCy Schubert	library=krb5
230ee3960cbSCy Schubert    fi
231ee3960cbSCy Schubert
232ee3960cbSCy Schubert    if test $library = 'kadm_server'; then
233ee3960cbSCy Schubert	lib_flags="$lib_flags -lkadm5srv_mit -lkdb5 $KDB5_DB_LIB"
234ee3960cbSCy Schubert	library=gssrpc
235ee3960cbSCy Schubert    fi
236ee3960cbSCy Schubert
237ee3960cbSCy Schubert    if test $library = 'kadm_client'; then
238ee3960cbSCy Schubert	lib_flags="$lib_flags -lkadm5clnt_mit"
239ee3960cbSCy Schubert	library=gssrpc
240ee3960cbSCy Schubert    fi
241ee3960cbSCy Schubert
242ee3960cbSCy Schubert    if test $library = 'gssrpc'; then
243ee3960cbSCy Schubert	lib_flags="$lib_flags -lgssrpc"
244ee3960cbSCy Schubert	library=gssapi
245ee3960cbSCy Schubert    fi
246ee3960cbSCy Schubert
247ee3960cbSCy Schubert    if test $library = 'gssapi'; then
248ee3960cbSCy Schubert	lib_flags="$lib_flags -lgssapi_krb5"
249ee3960cbSCy Schubert	library=krb5
250ee3960cbSCy Schubert    fi
251ee3960cbSCy Schubert
252ee3960cbSCy Schubert    if test $library = 'krb5'; then
253ee3960cbSCy Schubert	lib_flags="$lib_flags -lkrb5 -lk5crypto -lcom_err"
254ee3960cbSCy Schubert    fi
255ee3960cbSCy Schubert
256ee3960cbSCy Schubert    # If we ever support a flag to generate output suitable for static
257ee3960cbSCy Schubert    # linking, we would output "-lkrb5support $GEN_LIB $LIBS $DL_LIB"
258ee3960cbSCy Schubert    # here.
259ee3960cbSCy Schubert
260ee3960cbSCy Schubert    echo $lib_flags
261ee3960cbSCy Schubertfi
262ee3960cbSCy Schubert
263ee3960cbSCy Schubertexit 0
264