Newer
Older
dnl Copyright 1998-2001 The OpenLDAP Foundation. All Rights Reserved.
dnl Redistribution and use in source and binary forms, with or without
dnl modification, are permitted only as authorized by the OpenLDAP
dnl Public License. A copy of this license is available at
dnl http://www.OpenLDAP.org/license.html or in file LICENSE in the
dnl top-level directory of the distribution.
dnl ----------------------------------------------------------------
dnl Redefine AC_INIT_BINSH to provide RCS IDs and copyright notice
dnl at top of generated configure script. Prints simple copyright.
define([AC_INIT_BINSH],
[[#! /bin/sh
# $]OpenLDAP[$
# from] translit([$OpenLDAP$], $")] [
# Copyright 1998-2001 The OpenLDAP Foundation. All Rights Reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted only as authorized by the OpenLDAP
# Public License. A copy of this license is available at
# http://www.OpenLDAP.org/license.html or in file LICENSE in the
# top-level directory of the distribution.
echo "Copyright 1998-2001 The OpenLDAP Foundation, All Rights Reserved."
echo "Restrictions apply, see COPYRIGHT and LICENSE files."
])dnl
dnl ----------------------------------------------------------------
dnl Disable config.cache!
define([AC_CACHE_LOAD], )dnl
define([AC_CACHE_SAVE], )dnl
dnl ================================================================
dnl Configure.in for OpenLDAP
AC_INIT(build/version)dnl
# set unset (borrowed from autoconf 2.49c)
if (OL_FOO=OL_FOO; unset OL_FOO) >/dev/null 2>&1; then
ol_unset=unset
else
ol_unset=false
fi
# unset CDPATH
$ol_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
AC_CONFIG_AUX_DIR(build)dnl
OL_VERSION=`cat $ac_aux_dir/version`
if test -z "$OL_VERSION"; then
AC_MSG_ERROR([could not determine version])
fi
echo "Configuring OpenLDAP $OL_VERSION ..."
dnl Determine host platform
dnl we try not to use this for much
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE(OpenLDAP,[$OL_VERSION], [no defines])dnl
AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
dnl We use autoconf features new to 2.13.
dnl aclocal.m4 should be built using aclocal from automake 1.4
dnl libtool 1.3.3 should be installed.
AC_PREREQ(2.13)dnl Required Autoconf version
AC_CONFIG_HEADER(include/portable.h include/ldap_features.h include/lber_types.h)dnl
dnl ================================================================
dnl Start Args
AC_MSG_CHECKING(configure arguments)
AC_PREFIX_DEFAULT(/usr/local)
top_builddir=`pwd`
AC_SUBST(top_builddir)dnl
dnl ----------------------------------------------------------------
dnl --with-subdir
ldap_subdir="/openldap"
AC_ARG_WITH(subdir,
[ --with-subdir=DIR change default subdirectory used for installs],
[case "$withval" in
no) ldap_subdir=""
;;
yes)
;;
/*|\\*)
;;
*)
ldap_subdir="/$withval"
;;
esac
dnl ----------------------------------------------------------------
dnl General "enable" options
OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes)dnl
OL_ARG_ENABLE(syslog,[ --enable-syslog enable syslog support], auto)dnl
OL_ARG_ENABLE(proctitle,[ --enable-proctitle enable proctitle support], yes)dnl
OL_ARG_ENABLE(cache,[ --enable-cache enable caching (experimental)], no)dnl
OL_ARG_ENABLE(referrals,[ --enable-referrals enable LDAPv2+ Referrals (experimental)], no)dnl
OL_ARG_ENABLE(kbind,[ --enable-kbind enable LDAPv2+ Kerberos IV bind (deprecated)], no)dnl
OL_ARG_ENABLE(ipv6,[ --enable-ipv6 enable IPv6 support], auto)dnl
OL_ARG_ENABLE(local,[ --enable-local enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
OL_ARG_ENABLE(x_compile,[ --enable-x-compile enable cross compiling],
dnl ----------------------------------------------------------------
dnl OL_ARG_ENABLE(dmalloc,[ --enable-dmalloc enable debug malloc support], no)dnl
OL_ARG_WITH(cyrus_sasl,[ --with-cyrus-sasl with Cyrus SASL support],
auto, [auto yes no] )
OL_ARG_WITH(fetch,[ --with-fetch with fetch URL support],
auto, [auto yes no] )
OL_ARG_WITH(kerberos,[ --with-kerberos with Kerberos support],
auto, [auto k5 k5only k425 kth k4 afs yes no])
OL_ARG_WITH(readline,[ --with-readline with readline support],
OL_ARG_WITH(threads,[ --with-threads with threads],
auto, [auto nt posix mach pth lwp yes no manual] )
OL_ARG_WITH(tls,[ --with-tls with TLS/SSL support],
OL_ARG_WITH(yielding_select,[ --with-yielding-select with implicitly yielding select],
dnl ----------------------------------------------------------------
dnl ----------------------------------------------------------------
dnl ----------------------------------------------------------------
AC_ARG_WITH(xxslapdoptions,[SLAPD (Standalone LDAP Daemon) Options:])
OL_ARG_ENABLE(slapd,[ --enable-slapd enable building slapd], yes)dnl
OL_ARG_ENABLE(cleartext,[ --enable-cleartext enable cleartext passwords], yes)dnl
OL_ARG_ENABLE(crypt,[ --enable-crypt enable crypt(3) passwords], auto)dnl
OL_ARG_ENABLE(kpasswd,[ --enable-kpasswd enable kerberos password verification], no)dnl
OL_ARG_ENABLE(spasswd,[ --enable-spasswd enable (Cyrus) SASL password verification], no)dnl
OL_ARG_ENABLE(modules,[ --enable-modules enable dynamic module support], no)dnl
dnl OL_ARG_ENABLE(multimaster,[ --enable-multimaster enable multimaster replication], no)dnl
OL_ARG_ENABLE(phonetic,[ --enable-phonetic enable phonetic/soundex], no)dnl
OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups], no)dnl
OL_ARG_ENABLE(aci,[ --enable-aci enable per-object ACIs], no)dnl
OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
OL_ARG_ENABLE(dynamic,[ --enable-dynamic enable linking built binaries with dynamic libs], no)dnl
OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend], no)dnl
OL_ARG_WITH(dnssrv_module,[ --with-dnssrv-module module type], static,
OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend], no)dnl
OL_ARG_WITH(ldap_module,[ --with-ldap-module module type], static,
OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend], yes)dnl
OL_ARG_WITH(ldbm_api,[ --with-ldbm-api with LDBM API], auto,
[auto berkeley bcompat mdbm gdbm])
OL_ARG_WITH(ldbm_module,[ --with-ldbm-module module type], static,
OL_ARG_WITH(ldbm_type,[ --with-ldbm-type use LDBM type], auto,
OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend], no)dnl
OL_ARG_WITH(passwd_module,[ --with-passwd-module module type], static,
OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend], no)dnl
OL_ARG_WITH(shell_module,[ --with-shell-module module type], static,
OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend], no)dnl
OL_ARG_WITH(sql_module,[ --with-sql-module module type], static,
[static dynamic])
dnl ----------------------------------------------------------------
AC_ARG_WITH(xxslurpdoptions,[SLURPD (Replication Daemon) Options:])
OL_ARG_ENABLE(slurpd,[ --enable-slurpd enable building slurpd], auto)dnl
dnl ----------------------------------------------------------------
AC_ARG_WITH(xxliboptions,[Library Generation & Linking Options])
AC_ENABLE_STATIC
dnl AC_DISABLE_SHARED
AC_ENABLE_SHARED
dnl ----------------------------------------------------------------
dnl General "enable" options
# validate options
if test $ol_enable_slapd = no ; then
dnl SLAPD was specificallly disabled
if test $ol_enable_dnssrv = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-dnssrv argument])
fi
if test $ol_enable_ldap = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-ldap argument])
fi
if test $ol_enable_ldbm = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm argument])
fi
if test $ol_enable_passwd = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-passwd argument])
fi
if test $ol_enable_shell = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-shell argument])
fi
if test $ol_enable_sql = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-sql argument])
fi
if test $ol_enable_modules = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
fi
dnl if test $ol_enable_multimaster = yes ; then
dnl AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument])
dnl fi
if test $ol_enable_wrappers = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
fi
if test $ol_enable_phonetic = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-phonetic argument])
fi
if test $ol_enable_rlookups = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
fi
if test $ol_enable_aci = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
fi
if test $ol_with_ldbm_api != auto ; then
AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-api argument])
fi
if test $ol_with_ldbm_type != auto ; then
AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-type argument])
fi
if test $ol_with_dnssrv_module != static ; then
AC_MSG_WARN([slapd disabled, ignoring --with-dnssrv-module argument])
fi
if test $ol_with_ldap_module != static ; then
AC_MSG_WARN([slapd disabled, ignoring --with-ldap-module argument])
fi
if test $ol_with_ldbm_module != static ; then
AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-module argument])
fi
if test $ol_with_passwd_module != static ; then
AC_MSG_WARN([slapd disabled, ignoring --with-passwd-module argument])
fi
if test $ol_with_shell_module != static ; then
AC_MSG_WARN([slapd disabled, ignoring --with-shell-module argument])
fi
if test $ol_with_sql_module != static ; then
AC_MSG_WARN([slapd disabled, ignoring --with-sql-module argument])
fi
if test $ol_enable_slurpd = yes ; then
AC_MSG_ERROR([slurpd requires slapd])
fi
# force settings to no
ol_enable_ldap=no
ol_enable_ldbm=no
ol_enable_passwd=no
ol_enable_shell=no
ol_enable_sql=no
ol_enable_phonetic=no
ol_enable_rlookups=no
ol_with_ldbm_api=no
ol_with_ldbm_type=no
ol_with_dnssrv_module=static
ol_with_ldap_module=static
ol_with_ldbm_module=static
ol_with_passwd_module=static
ol_with_shell_module=static
ol_with_sql_module=static
ol_enable_slurpd=no
elif test $ol_enable_ldbm = no ; then
dnl SLAPD without LDBM
if test $ol_with_ldbm_api != auto ; then
AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-api argument])
fi
if test $ol_with_ldbm_type != auto ; then
AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-type argument])
fi
if test $ol_with_ldbm_module != static ; then
AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-module argument])
fi
if test $ol_enable_modules != yes -a \
$ol_enable_dnssrv = no -a \
$ol_enable_ldap = no -a \
$ol_enable_passwd = no -a \
$ol_enable_shell = no -a \
$ol_enable_sql = no ; then
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
AC_MSG_ERROR([slapd requires a backend])
fi
ol_with_ldbm_api=no
ol_with_ldbm_type=no
ol_with_ldbm_module=static
else
dnl SLAPD with LDBM
if test $ol_with_ldbm_api = gdbm -a \
$ol_with_ldbm_type = btree ; then
AC_MSG_ERROR([GDBM only supports LDBM type hash])
fi
if test $ol_with_ldbm_api = mdbm -a \
$ol_with_ldbm_type = btree ; then
AC_MSG_ERROR([MDBM only supports LDBM type hash])
fi
if test $ol_with_ldbm_api = ndbm -a \
$ol_with_ldbm_type = btree ; then
AC_MSG_ERROR([NDBM only supports LDBM type hash])
fi
fi
if test $ol_enable_slurpd = yes ; then
dnl SLURPD was specifically enabled
if test $ol_with_threads = no ; then
AC_MSG_ERROR([slurpd requires threads])
fi
fi
if test $ol_enable_kbind = yes -o $ol_enable_kpasswd = yes ; then
if test $ol_with_kerberos = no ; then
AC_MSG_ERROR([options require --with-kerberos])
fi
elif test $ol_enable_kbind = no -o $ol_enable_kpasswd = no ; then
if test $ol_with_kerberos != no -a $ol_with_kerberos != auto ; then
AC_MSG_WARN([Kerberos detection enabled unnecessarily]);
fi
fi
if test $ol_enable_spasswd = yes ; then
if test $ol_with_cyrus_sasl = no ; then
AC_MSG_ERROR([options require --with-cyrus-sasl])
fi
dnl ----------------------------------------------------------------
dnl Initialize vars
LDBM_LIBS=
LTHREAD_LIBS=
LUTIL_LIBS=
SLAPD_LIBS=
SLURPD_LIBS=
BUILD_SLAPD=no
BUILD_SLURPD=no
BUILD_THREAD=no
BUILD_DNSSRV=no
BUILD_LDAP=no
BUILD_LDBM=no
BUILD_PASSWD=no
BUILD_SHELL=no
BUILD_SQL=no
BUILD_DNSSRV_DYNAMIC=static
BUILD_LDAP_DYNAMIC=static
BUILD_LDBM_DYNAMIC=static
BUILD_PASSWD_DYNAMIC=static
BUILD_SHELL_DYNAMIC=static
BUILD_SQL_DYNAMIC=static
SLAPD_MODULES_LDFLAGS=
SLAPD_MODULES_CPPFLAGS=
SLAPD_MODULES_LIST=
SLAPD_SQL_LDFLAGS=
SLAPD_SQL_LIBS=
SLAPD_SQL_INCLUDES=
KRB4_LIBS=
KRB5_LIBS=
MODULES_LIBS=
dnl ================================================================
dnl Checks for programs
dnl AC_PROG_INSTALL
AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
dnl ----------------------------------------------------------------
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
dnl
dnl Determine which C translator to use
dnl
dnl AIX Thread requires we use cc_r or xlc_r.
dnl But only do this IF AIX and CC is not set
dnl and threads are auto|yes|posix.
dnl
dnl If we find cc_r|xlc_r, force pthreads and assume
dnl pthread_create is in $LIBS (ie: don't bring in
dnl any additional thread libraries)
dnl If we do not find cc_r|xlc_r, disable threads
ol_aix_threads=no
case "$target" in
*-*-aix*) dnl all AIX is not a good idea.
if test -z "$CC" ; then
case "$ol_with_threads" in
auto | yes | posix) ol_aix_threads=yes ;;
esac
fi
;;
esac
if test $ol_aix_threads = yes ; then
if test -z "${CC}" ; then
AC_CHECK_PROGS(CC,cc_r xlc_r cc)
if test "$CC" = cc ; then
dnl no CC! don't allow --with-threads
if test $ol_with_threads != auto ; then
AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX])
else
AC_MSG_WARN([disabling threads, no cc_r on AIX])
fi
ol_with_threads=no
fi
fi
if test "${CC}" = "cc_r" -o "${CC}" = "xlc_r" ; then
ol_with_threads=posix
ol_cv_pthread_create=yes
fi
fi
if test -z "${CC}"; then
AC_CHECK_PROGS(CC,cc)
fi
dnl The default CFLAGS is empty NOT whatever AC_PROG_CC sets.
dnl (for now, let autoconf sort this out)
dnl CFLAGS=${CFLAGS-""}
AC_LIBTOOL_DLOPEN
AC_PROG_LIBTOOL
AC_PROG_AWK
OL_PROG_LN_H
AC_PROG_LN_S
if test "$LN_H" = "cp" -a "$LN_S" = "ln"; then
LN_S="$LN_H"
fi
AC_PATH_PROG(SENDMAIL, sendmail, /usr/lib/sendmail,
$PATH:/usr/libexec:/usr/lib:/usr/sbin:/usr/etc:/etc)
AC_PATH_PROG(EDITOR, vi, /usr/ucb/vi, $PATH:/usr/ucb)
AC_PATH_PROG(FINGER, finger, /usr/ucb/finger, $PATH:/usr/ucb)
AC_PROG_CPP
dnl ----------------------------------------------------------------
dnl Cross compiling checks
if test $cross_compiling = yes -a $ol_enable_x_compile = yes; then
AC_MSG_WARN([cross compiling.... some functionality will be removed.])
elif test $cross_compiling = no -a $ol_enable_x_compile = yes; then
AC_MSG_WARN([programs compiled here do run here...])
AC_MSG_ERROR([ if not cross compiling, use --disable-x-compile.])
elif test $cross_compiling = yes -a $ol_enable_x_compile = no; then
AC_MSG_WARN([programs compiled here do not run here...])
AC_MSG_ERROR([ if cross compiling, add --enable-x-compile.])
fi
dnl ----------------------------------------------------------------
dnl Checks for UNIX Variants
AC_AIX
AC_ISC_POSIX
AC_MINIX
dnl ----------------------------------------------------------------
dnl Checks for system services
AC_CYGWIN
AC_MINGW32
AC_EXEEXT
AC_OBJEXT
AC_DEFINE_UNQUOTED( EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
dnl ----------------------------------------------------------------
dnl BeOS requires -lbe -lroot -lnet
AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
dnl ----------------------------------------------------------------
dnl OpenLDAP requires STDC features
AM_PROG_CC_STDC
if test "X${am_cv_prog_cc_stdc}" = "Xno" ; then
AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
fi
dnl ----------------------------------------------------------------
dnl Check cc depend flags
OL_MKDEPEND
if test "${ol_cv_mkdep}" = no ; then
# this will soon become an error
AC_MSG_WARN([do not know how to generate dependencies])
fi
dnl ----------------------------------------------------------------
dnl Check for AIX security library
AC_CHECK_LIB(s, afopen, [
AUTH_LIBS=-ls
AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
])
dnl ----------------------------------------------------------------
dnl Check for module support
ol_link_modules=no
if test $ol_enable_modules != no ; then
AC_CHECK_HEADERS(ltdl.h)
if test $ac_cv_header_ltdl_h = no ; then
AC_MSG_ERROR([could not locate libtool ltdl.h])
fi
AC_CHECK_LIB(ltdl, lt_dlinit, [
MODULES_LIBS=-lltdl
AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
])
if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
AC_MSG_ERROR([could not locate libtool -lltdl])
ol_link_modules=yes
ol_with_dnssrv_module=static
ol_with_ldap_module=static
ol_with_ldbm_module=static
ol_with_passwd_module=static
ol_with_shell_module=static
ol_with_sql_module=static
fi
dnl ----------------------------------------------------------------
dnl Checks for header files.
OL_HEADER_STDC
if test $ol_cv_header_stdc != yes; then
AC_MSG_WARN([could not locate Standard C compliant headers])
fi
AC_HEADER_DIRENT
AC_HEADER_SYS_WAIT
AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
if test $am_cv_sys_posix_termios = yes ; then
AC_DEFINE(HAVE_POSIX_TERMIOS,1,
[define if you have POSIX termios])
fi
AC_CHECK_HEADERS( \
arpa/inet.h \
arpa/nameser.h \
assert.h \
errno.h \
fcntl.h \
filio.h \
getopt.h \
grp.h \
libutil.h \
limits.h \
locale.h \
netinet/tcp.h \
malloc.h \
memory.h \
psap.h \
pwd.h \
resolv.h \
sgtty.h \
shadow.h \
stddef.h \
string.h \
strings.h \
sysexits.h \
sys/file.h \
sys/filio.h \
sys/errno.h \
sys/ioctl.h \
sys/param.h \
sys/resource.h \
sys/select.h \
sys/socket.h \
sys/syslog.h \
sys/time.h \
sys/types.h \
syslog.h \
termios.h \
unistd.h \
dnl ----------------------------------------------------------------
dnl Checks for libraries
dnl SASL and SSL need dlopen on some platforms
AC_CHECK_FUNC(dlopen, :, [AC_CHECK_LIB(dl, dlopen)])
dnl HP-UX requires -lV3
AC_CHECK_LIB(V3, sigset)
dnl Gotta check for winsock manually
if test $ac_cv_header_winsock_h = yes; then
AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
AC_TRY_LINK([#include <winsock.h>],[
socket(0,0,0);
select(0,NULL,NULL,NULL,NULL);
closesocket(0);
gethostname(NULL,0);
],[ol_cv_winsock=yes],[ol_cv_winsock=no])])
if test $ol_cv_winsock = yes ; then
AC_DEFINE(HAVE_WINSOCK,1,[define if you have winsock])
ac_cv_func_socket=yes
ac_cv_func_select=yes
ac_cv_func_closesocket=yes
ac_cv_func_gethostname=yes
fi
fi
dnl Find socket()
dnl Likely combinations:
dnl -lsocket [ -lnsl_s | -lnsl ]
dnl -linet
AC_CHECK_FUNC(socket, :, [
dnl hopefully we won't include too many libraries
AC_CHECK_LIB(socket, main)
AC_CHECK_LIB(net, main)
AC_CHECK_LIB(nsl_s, main)
AC_CHECK_LIB(nsl, main)
AC_CHECK_LIB(inet, socket)
AC_CHECK_LIB(gen, main)
])
AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
if test "${ac_cv_header_winsock_h}" != yes; then
dnl Select arg types
dnl (if this detection becomes permenent, it and the select() detection
dnl should be done before the yielding select test)
AC_FUNC_SELECT_ARGTYPES
fi
dnl check to see if system call automatically restart
dnl AC_SYS_RESTARTABLE_SYSCALLS
dnl ----------------------------------------------------------------
AC_CHECK_HEADERS( regex.h )
if test "$ac_cv_header_regex_h" != yes ; then
AC_MSG_ERROR([POSIX regex.h required.])
fi
AC_CHECK_FUNC(regfree, :, AC_MSG_ERROR([POSIX regex required.]))
OL_POSIX_REGEX
if test "$ol_cv_c_posix_regex" = no ; then
AC_MSG_ERROR([broken POSIX regex!])
fi
dnl ----------------------------------------------------------------
dnl Check for resolver routines
ol_link_dnssrv=no
AC_CHECK_FUNC(res_query,:)
if test $ac_cv_func_res_query = no ; then
AC_CHECK_LIB(bind, res_query)
ac_cv_func_res_query=$ac_cv_lib_bind_res_query
if test $ac_cv_func_res_query = no ; then
AC_CHECK_LIB(bind, __res_query)
ac_cv_func_res_query=$ac_cv_lib_bind___res_query
if test $ac_cv_func_res_query = no ; then
AC_CHECK_LIB(resolv, res_query)
ac_cv_func_res_query=$ac_cv_lib_resolv_res_query
if test "$ac_cv_func_res_query" = yes ; then
AC_DEFINE(HAVE_RES_QUERY,1,
[define if you have res_query()])
if test $ol_enable_dnssrv != no ; then
ol_link_dnssrv=yes
fi
if test "$ol_enable_dnssrv" = yes -a "$ol_link_dnssrv" = no ; then
AC_MSG_ERROR([DNSSRV requires res_query()])
fi
dnl ----------------------------------------------------------------
dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
dnl PF_LOCAL may use getaddrinfo in available
if test $ac_cv_func_getaddrinfo = no -o $ac_cv_func_inet_ntop = no ; then
if test $ol_enable_ipv6 = yes ; then
AC_MSG_ERROR([IPv6 support requires getaddrinfo() and inet_ntop()])
AC_CACHE_CHECK([INET6_ADDRSTRLEN],[ol_cv_inet6_addrstrlen],[
AC_EGREP_CPP(__has_inet6_addrstrlen__,[
# include <netinet/in.h>
# ifdef INET6_ADDRSTRLEN
__has_inet6_addrstrlen__;
# endif
], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])])
if test $ol_cv_inet6_addrstrlen = yes ; then
ol_link_ipv6=yes
elif test $ol_enable_ipv6 = yes ; then
AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN])
fi
fi
if test $ol_enable_local != no ; then
AC_CHECK_HEADERS( sys/un.h )
if test $ol_enable_local = auto ; then
ol_enable_local=$ac_cv_header_sys_un_h
elif test $ac_cv_header_sys_un_h = no ; then
AC_MSG_ERROR([AF_LOCAL domain support requires sys/un.h])
fi
fi
dnl ----------------------------------------------------------------
dnl Kerberos
ol_link_kbind=no
ol_link_kpasswd=no
ol_link_krb5=no
ol_link_krb4=no
if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
-o $ol_with_kerberos = k5 -o $ol_with_kerberos = k5only \
-o $ol_with_kerberos = k425 ; then
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
AC_CHECK_HEADERS(krb5.h)
if test $ac_cv_header_krb5_h = yes ; then
dnl lazy check for Heimdal Kerberos
AC_CHECK_HEADERS(heim_err.h)
if test $ac_cv_header_heim_err_h = yes ; then
krb5_impl=heimdal
else
krb5_impl=mit
fi
if test $krb5_impl = mit; then
AC_CHECK_LIB(krb5, main,
[have_krb5=yes
KRB5_LIBS="-lkrb5 -lcrypto -lcom_err"],
[have_krb5=no],
[-lcrypto -lcom_err])
elif test $krb5_impl = heimdal; then
AC_CHECK_LIB(krb5, main,
[have_krb5=yes
KRB5_LIBS="-lkrb5 -ldes -lasn1 -lroken -lcom_err"],
[have_krb5=no],
[-ldes -lasn1 -lroken -lcom_err])
AC_DEFINE(HAVE_HEIMDAL_KERBEROS, 1,
[define if you have HEIMDAL Kerberos])
else
have_krb5=no
fi
if test $have_krb5 = yes ; then
ol_link_krb5=yes
AC_DEFINE(HAVE_KRB5, 1,
[define if you have Kerberos V])
if test $ol_enable_kpasswd != no ; then
ol_link_kpasswd=yes;
fi
if test $ol_with_kerberos = k5only ; then
ol_with_kerberos=found
fi
elif test $ol_with_kerberos != auto ; then
AC_MSG_ERROR([Required Kerberos 5 support not available])
fi
fi
fi
if test $ol_link_krb5 = yes -a \( $ol_with_kerberos = yes -o \
$ol_with_kerberos = auto -o $ol_with_kerberos = k425 \) ; then
AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
if test $ac_cv_header_kerberosIV_krb_h = yes ; then
if test $krb5_impl = mit; then
AC_CHECK_LIB(krb4, main, [have_k425=yes
KRB4_LIBS="-lkrb4 -ldes425"], [have_k425=no],
[-ldes425 -lkrb5 -lcrypto -lcom_err])
elif test $krb5_impl = heimdal; then
AC_CHECK_LIB(krb4, main, [have_k425=yes
KRB4_LIBS="-lkrb4"], [have_k425=no],
[-lkrb5 -ldes -lasn1 -lroken -lcom_err])
else
have_425=no
AC_MSG_WARN([Unrecongized Kerberos5 Implementation])
fi
if test $have_k425 = yes ; then
ol_with_kerberos=found
ol_link_krb4=yes
AC_DEFINE(HAVE_KRB425, 1,
[define if you have Kerberos V with IV support])
AC_DEFINE(HAVE_KRB4, 1,
[define if you have Kerberos IV])
AC_CACHE_CHECK([for des_debug in Kerberos libraries],
[ol_cv_var_des_debug], [
dnl save the flags
save_LIBS="$LIBS"
LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS"
AC_TRY_LINK([
#include <kerberosIV/krb.h>
#include <kerberosIV/des.h>
extern int des_debug;
],[
des_debug = 1;
], ol_cv_var_des_debug=yes, ol_cv_var_des_debug=no)
dnl restore the LIBS
LIBS="$save_LIBS"
])
if test $ol_cv_var_des_debug = yes ; then
AC_DEFINE(HAVE_DES_DEBUG,1,
[define if you have Kerberos des_debug])
fi
LIBS="$save_LIBS"
fi
fi
fi
if test $ol_link_krb5 = yes ; then
ol_with_kerberos=found
fi
if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \
-o $ol_with_kerberos = k4 -o $ol_with_kerberos = kth ; then
AC_CHECK_HEADERS(krb.h des.h krb-archaeology.h )
if test $ac_cv_header_krb_h = yes ; then
AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
if test $have_k4 = yes ; then
ol_with_kerberos=found
ol_link_krb4=yes
AC_DEFINE(HAVE_KRB4, 1,
[define if you have Kerberos IV])
KRB4_LIBS="-lkrb -ldes"
if test $ac_cv_header_krb_archaeology_h = yes ; then
AC_DEFINE(HAVE_KTH_KERBEROS, 1,
[define if you have Kth Kerberos])
fi
if test $ol_link_krb4 = yes -a $ol_enable_kpasswd != no ; then
ol_link_kpasswd=yes
fi
if test $ol_link_krb4 = yes -a $ol_enable_kbind != no ; then
ol_link_kbind=yes
elif test $ol_enable_kbind = yes ; then
AC_MSG_ERROR([Kerberos IV detection failed])
fi
if test $ol_link_krb4 = yes -o $ol_link_krb5 = yes ; then
AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
elif test $ol_with_kerberos != auto -a $ol_with_kerberos != no ; then
dnl ----------------------------------------------------------------
dnl TLS/SSL
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
ol_link_tls=no
if test $ol_with_tls != no ; then
AC_CHECK_HEADERS(openssl/ssl.h ssl.h)
if test $ac_cv_header_openssl_ssl_h = yes -o $ac_cv_header_ssl_h = yes ; then
AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms,
[have_ssleay=yes
need_rsaref=no],
[have_ssleay=no],
[-lcrypto])
if test $have_ssleay = no ; then
AC_CHECK_LIB(ssl, SSL_library_init,
[have_ssleay=yes
need_rsaref=no], [have_ssleay=no],
[-lcrypto])
fi
if test $have_ssleay = no ; then
AC_CHECK_LIB(ssl, ssl3_accept,
[have_ssleay=yes
need_rsaref=yes], [have_ssleay=no],
[-lcrypto -lRSAglue -lrsaref])
fi
if test $have_ssleay = yes ; then
ol_with_tls=found
ol_link_tls=yes
AC_DEFINE(HAVE_SSLEAY, 1,
[define if you have SSLeay or OpenSSL])
if test $need_rsaref = yes; then
AC_DEFINE(HAVE_RSAREF, 1,
[define if you have RSAref])
TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
else
TLS_LIBS="-lssl -lcrypto"
fi
fi
fi
else
AC_WARN([TLS privacy protection not supported!])
fi
if test $ol_link_tls = yes ; then
AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
elif test $ol_with_tls = auto ; then
AC_WARN([Could not locate TLS/SSL package])
AC_WARN([TLS privacy protection not supported!])
elif test $ol_with_tls != no ; then
AC_ERROR([Could not locate TLS/SSL package])
fi
dnl ----------------------------------------------------------------