Skip to content
Snippets Groups Projects
configure.in 66.2 KiB
Newer Older
dnl $OpenLDAP$
dnl Copyright 1998-2000 The OpenLDAP Foundation.  All Rights Reserved.
dnl 
dnl Redistribution and use in source and binary forms are permitted only
dnl as authorized by the OpenLDAP Public License.  A copy of this
dnl license is available at http://www.OpenLDAP.org/license.html or
dnl in file LICENSE in the 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.
# from] translit([$OpenLDAP$], $")] [
# Copyright 1998-2000 The OpenLDAP Foundation.  All Rights Reserved.
# 
# Redistribution and use in source and binary forms 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-2000 The OpenLDAP Foundation,  All Rights Reserved."
echo "Copying restrictions apply, see COPYRIGHT file."
dnl ----------------------------------------------------------------
dnl Disable config.cache!
define([AC_CACHE_LOAD], )dnl
define([AC_CACHE_SAVE], )dnl
Kurt Zeilenga's avatar
Kurt Zeilenga committed
dnl ================================================================
dnl Configure.in for OpenLDAP

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)

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
AC_SUBST(ldap_subdir)dnl

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
Kurt Zeilenga's avatar
Kurt Zeilenga committed
OL_ARG_ENABLE(proctitle,[  --enable-proctitle	enable proctitle support], yes)dnl
OL_ARG_ENABLE(cache,[  --enable-cache	enable caching], yes)dnl
OL_ARG_ENABLE(dns,[  --enable-dns		enable V2 DX Referrals extension], no)dnl
OL_ARG_ENABLE(referrals,[  --enable-referrals	enable V2 Referrals extension], yes)dnl
OL_ARG_ENABLE(kbind,[  --enable-kbind	enable V2 Kerberos IV bind], auto)dnl
OL_ARG_ENABLE(cldap,[  --enable-cldap	enable connectionless ldap], no)dnl
OL_ARG_ENABLE(ldapi,[  --enable-ldapi	enable domain socket (PF_LOCAL) ldap], no)dnl
OL_ARG_ENABLE(x_compile,[  --enable-x-compile	enable cross compiling],
	no, [yes no])dnl
dnl ----------------------------------------------------------------
dnl General "with" options
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 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	use threads],
	auto, [auto nt posix mach pth lwp yes no manual] )
OL_ARG_WITH(tls,[  --with-tls		with TLS/SSL support],
Bart Hartgers's avatar
 
Bart Hartgers committed
	auto, [auto ssleay openssl yes no] )
OL_ARG_WITH(yielding_select,[  --with-yielding-select	with implicitly yielding select],
	auto, [auto yes no manual] )
dnl ----------------------------------------------------------------
dnl Server options
dnl ----------------------------------------------------------------
dnl LDAPD OPTIONS
AC_ARG_WITH(xxldapdoptions,[LDAPD (X.500-to-LDAP Gateway) Options:])
OL_ARG_ENABLE(ldapd,[  --enable-ldapd	enable building ldapd], no)dnl

dnl ----------------------------------------------------------------
dnl SLAPD OPTIONS
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(modules,[    --enable-modules	enable dynamic module support], no)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(quipu,[    --enable-quipu	build quipu migration tools], no)dnl
OL_ARG_ENABLE(rlookups,[    --enable-rlookups	enable reverse lookups], auto)dnl
OL_ARG_ENABLE(aci,[    --enable-aci	enable per-object ACIs], no)dnl
OL_ARG_ENABLE(discreteaci,[    --enable-discreteaci	enable discrete rights in 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

dnl SLAPD Backend options
OL_ARG_ENABLE(bdb2,[    --enable-bdb2	enable bdb2 backend], no)dnl
OL_ARG_WITH(bdb2_module,[      --with-bdb2-module	module type], static,
	[static dynamic])
OL_ARG_ENABLE(ldap,[    --enable-ldap	enable ldap backend], no)dnl
OL_ARG_WITH(ldap_module,[      --with-ldap-module	module type], static,
	[static dynamic])
OL_ARG_ENABLE(ldbm,[    --enable-ldbm	enable ldbm backend], yes)dnl
OL_ARG_WITH(ldbm_api,[      --with-ldbm-api	use LDBM API], auto,
	[auto db2 db mdbm gdbm ndbm manual])
OL_ARG_WITH(ldbm_module,[      --with-ldbm-module	module type], static,
	[static dynamic])
OL_ARG_WITH(ldbm_type,[      --with-ldbm-type	use LDBM type], auto,
	[auto btree hash])

OL_ARG_ENABLE(passwd,[    --enable-passwd	enable passwd backend], no)dnl
OL_ARG_WITH(passwd_module,[      --with-passwd-module	module type], static,
	[static dynamic])
OL_ARG_ENABLE(perl,[    --enable-perl	enable perl backend], no)dnl
OL_ARG_WITH(perl_module,[      --with-perl-module	module type], static,
	[static dynamic])
OL_ARG_ENABLE(shell,[    --enable-shell	enable shell backend], no)dnl
OL_ARG_WITH(shell_module,[      --with-shell-module	module type], static,
	[static dynamic])
OL_ARG_ENABLE(tcl,[    --enable-tcl	enable tcl backend], no)dnl
OL_ARG_WITH(tcl_module,[      --with-tcl-module	module type], static,
	[static dynamic])
dnl ----------------------------------------------------------------
dnl SLURPD OPTIONS
Kurt Zeilenga's avatar
Kurt Zeilenga committed
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 ----------------------------------------------------------------

if test $ol_enable_dns = yes ; then
	if test $ol_enable_referrals = no ; then
		AC_MSG_ERROR([DNS requires --enable-referrals])
	fi
	if test $ol_enable_referrals = auto ; then
		AC_MSG_WARN([DNS requires referrals, adding --enable-referrals])
		ol_enable_referrals=yes
if test $ol_enable_slapd = no ; then
	dnl SLAPD was specificallly disabled
	if test $ol_enable_bdb2 = yes ; then
		AC_MSG_WARN([slapd disabled, ignoring --enable-bdb2 argument])
	if test $ol_enable_ldap = yes ; then
		AC_MSG_WARN([slapd disabled, ignoring --enable-ldap argument])
	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])
	if test $ol_enable_perl = yes ; then
		AC_MSG_WARN([slapd disabled, ignoring --enable-perl argument])
	if test $ol_enable_shell = yes ; then
		AC_MSG_WARN([slapd disabled, ignoring --enable-shell argument])
	if test $ol_enable_tcl = yes ; then
		AC_MSG_WARN([slapd disabled, ignoring --enable-tcl argument])
	if test $ol_enable_modules = yes ; then
		AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
	if test $ol_enable_multimaster = yes ; then
		AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster argument])
	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])
	if test $ol_enable_quipu = yes ; then
		AC_MSG_WARN([slapd disabled, ignoring --enable-quipu argument])
	fi
	if test $ol_enable_rlookups = yes ; then
		AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
	if test $ol_enable_aci = yes ; then
		AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
	fi
	if test $ol_enable_discreteaci = yes ; then
		AC_MSG_WARN([slapd disabled, ignoring --enable-discreteaci 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])
	if test $ol_with_bdb2_module != static ; then
		AC_MSG_WARN([slapd disabled, ignoring --with-bdb2-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_perl_module != static ; then
		AC_MSG_WARN([slapd disabled, ignoring --with-perl-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_tcl_module != static ; then
		AC_MSG_WARN([slapd disabled, ignoring --with-tcl-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_perl=no
	ol_enable_shell=no
	ol_enable_multimaster=no
	ol_enable_phonetic=no
	ol_enable_quipu=no
	ol_enable_rlookups=no
	ol_enable_aci=no
	ol_enable_discreteaci=no
	ol_enable_wrappers=no
	ol_with_ldbm_api=no
	ol_with_ldbm_type=no
	ol_with_bdb2_module=static
	ol_with_ldap_module=static
	ol_with_ldbm_module=static
	ol_with_passwd_module=static
	ol_with_perl_module=static
	ol_with_shell_module=static
	ol_with_tcl_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])
	if test $ol_with_ldbm_module != static ; then
		AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-module argument])
	fi

	if test $ol_enable_bdb2 = yes ; then
		AC_MSG_ERROR([BDB2 requires --enable-ldbm])
	fi

	if test $ol_enable_modules != yes -a \
		$ol_enable_ldap = no -a \
		$ol_enable_passwd = no -a \
		$ol_enable_shell = no -a \
		$ol_enable_tcl = no ; then
		AC_MSG_ERROR([slapd requires a backend])
	fi

	ol_with_ldbm_api=no
	ol_with_ldbm_type=no
elif test $ol_enable_bdb2 = yes ; then
	dnl SLAPD with BDB2

	if test $ol_with_ldbm_api != auto -a \
		$ol_with_ldbm_api != db2 ; then
		AC_MSG_ERROR([BDB2 requires LDBM API DB2])
	fi

	ol_with_ldbm_api=db2

else
	dnl SLAPD with LDBM

	if test $ol_enable_bdb2 != no ; then
		if test $ol_with_ldbm_api != auto -a \
			$ol_with_ldbm_api != db2 ; then
			AC_MSG_WARN([BDB2 requires LDBM api db2 or auto])
			ol_enable_bdb2=no
		fi
	fi

	if test $ol_with_ldbm_api = gdbm -a \
		$ol_with_ldbm_type = btree ; then
		AC_MSG_ERROR([GDBM only supports LDBM type hash])
Juan Gomez's avatar
Juan Gomez committed
	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])
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
fi

AC_MSG_RESULT(done)

dnl ----------------------------------------------------------------
dnl Initialize vars
LDAP_LIBS=
LDBM_LIBS=
LTHREAD_LIBS=
LUTIL_LIBS=

LDAPD_LIBS=
SLAPD_LIBS=
SLURPD_LIBS=

BUILD_LDAPD=no
BUILD_SLAPD=no
BUILD_SLURPD=no

BUILD_LDBM=no
BUILD_PASSWD=no
BUILD_SHELL=no
Kurt Zeilenga's avatar
Kurt Zeilenga committed
BUILD_THREAD=no
BUILD_BDB2_DYNAMIC=static
BUILD_LDAP_DYNAMIC=static
BUILD_LDBM_DYNAMIC=static
BUILD_PASSWD_DYNAMIC=static
BUILD_PERL_DYNAMIC=static
BUILD_SHELL_DYNAMIC=static
BUILD_TCL_DYNAMIC=static
SLAPD_MODULES_LDFLAGS=
SLAPD_MODULES_CPPFLAGS=
SLAPD_PERL_LDFLAGS=
SASL_LIBS=
TERMCAP_LIBS=
Bart Hartgers's avatar
 
Bart Hartgers committed
TLS_LIBS=
dnl ================================================================
dnl Checks for programs

AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])

dnl ----------------------------------------------------------------
dnl
dnl Determine which C translator to use
dnl

dnl AIX Thread requires we use cc_r or xlc_r.
Kurt Zeilenga's avatar
Kurt Zeilenga committed
dnl But only do this IF AIX and CC is not set
dnl and threads are auto|yes|posix.
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
case "$target" in
Kurt Zeilenga's avatar
Kurt Zeilenga committed
*-*-aix*) dnl all AIX is not a good idea.
	if test -z "$CC" ; then
Kurt Zeilenga's avatar
Kurt Zeilenga committed
		case "$ol_with_threads" in
		auto | yes |  posix) ol_aix_threads=yes ;;
Kurt Zeilenga's avatar
Kurt Zeilenga committed
		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

Kurt Zeilenga's avatar
Kurt Zeilenga committed
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-""}

Howard Chu's avatar
Howard Chu committed
AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL
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)

dnl ----------------------------------------------------------------
dnl Perl
ol_link_perl=no
if test $ol_enable_perl != no ; then
	AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)

	if test "no$PERLBIN" = "no" ; then
		if test $ol_enable_perl = yes ; then
			AC_MSG_ERROR([could not locate perl])
		fi
		PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
		if test x"$ol_with_perl_module" = "xstatic" ; then
			SLAPD_PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e s/-lc//`"
		else
			MOD_PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e s/-lc//`"
		fi
		dnl should check perl version
		ol_link_perl=yes
	fi
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.])
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.])
dnl ----------------------------------------------------------------
Kurt Zeilenga's avatar
Kurt Zeilenga committed
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 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

Howard Chu's avatar
Howard Chu committed
	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])
	fi
	ol_link_modules=yes
else
	ol_with_bdb2_module=static
	ol_with_ldap_module=static
	ol_with_ldbm_module=static
	ol_with_passwd_module=static
	ol_with_perl_module=static
	ol_with_shell_module=static
	ol_with_tcl_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		\
Howard Chu's avatar
Howard Chu committed
	conio.h			\
Howard Chu's avatar
Howard Chu committed
	direct.h		\
Howard Chu's avatar
Howard Chu committed
	io.h			\
	libutil.h		\
	limits.h		\
	locale.h		\
	netinet/tcp.h	\
	malloc.h		\
	memory.h		\
	psap.h			\
	pwd.h			\
Howard Chu's avatar
Howard Chu committed
	process.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 HP-UX requires -lV3
AC_CHECK_LIB(V3, sigset)

Howard Chu's avatar
Howard Chu committed
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
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)
])

Kurt Zeilenga's avatar
Kurt Zeilenga committed
dnl require select
AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))

Howard Chu's avatar
Howard Chu committed
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 ----------------------------------------------------------------
Kurt Zeilenga's avatar
Kurt Zeilenga committed
dnl require POSIX regex
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
AC_CHECK_FUNC(res_search,:)
if test $ac_cv_func_res_search = no ; then 
	AC_CHECK_LIB(bind, res_search)
	ac_cv_func_res_search=$ac_cv_lib_bind_res_search
fi
if test $ac_cv_func_res_search = no ; then 
	AC_CHECK_LIB(bind, __res_search)
	ac_cv_func_res_search=$ac_cv_lib_bind___res_search
fi
if test $ac_cv_func_res_search = no ; then 
	AC_CHECK_LIB(resolv, res_search)
	ac_cv_func_res_search=$ac_cv_lib_resolv_res_search
fi

if test "$ac_cv_func_res_search" = yes ; then
	AC_DEFINE(HAVE_RES_SEARCH,1,
		[define if you have res_search()])
elif test $ol_enable_dns = yes ; then
	AC_MSG_ERROR([--enable-dns requires res_search])
elif test $ol_enable_dns != no ; then
	AC_MSG_WARN([no res_search, disabling DNS support])
dnl ----------------------------------------------------------------
dnl ISODE tests
ol_link_isode=no
Kurt Zeilenga's avatar
Kurt Zeilenga committed
if test $ol_enable_ldapd != no ; then
	AC_MSG_WARN([ldapd is not supported and may suffer from bit rot.])
Kurt Zeilenga's avatar
Kurt Zeilenga committed
	dnl look for ISODE libraries
	AC_CHECK_LIB(xtpp, main, [
		ol_link_isode=yes
		AC_DEFINE(HAVE_XTPP,1, [define if you have -lxttp])
		LDAPD_LIBS="$LDAPD_LIBS -lxtpp -lxtdsap -lxtisode -losi"
		],:,[-lxtdsap -lxtisode -losi])
Kurt Zeilenga's avatar
Kurt Zeilenga committed
	AC_CHECK_LIB(dsap, main, [
		ol_link_isode=yes
		AC_DEFINE(HAVE_DSAP,1, [define if you have -ldsap])
Kurt Zeilenga's avatar
Kurt Zeilenga committed
		LDAPD_LIBS="$LDAPD_LIBS -ldsap"
		],:,[-lisode])
Kurt Zeilenga's avatar
Kurt Zeilenga committed
	AC_CHECK_LIB(isode, main, [
		ol_link_isode=yes
		AC_DEFINE(HAVE_ISODE,1, [define if you have -lisode])
Kurt Zeilenga's avatar
Kurt Zeilenga committed
		LDAPD_LIBS="$LDAPD_LIBS -lisode"
		],:)
fi

if test $ol_link_isode != no; then
	AC_CHECK_LIB(pp, main, [
		AC_DEFINE(HAVE_PP,1, [define if you have -lpp])
		LDAPD_LIBS="-lpp $LDAPD_LIBS"
		],:)

	AC_PATH_PROG(PEPSY, pepsy)
fi
dnl ----------------------------------------------------------------
dnl QUIPU
if test $ol_enable_quipu != no ; then
	AC_CHECK_HEADERS(quipu/commonarg.h)

	if test $ac_cv_header_quipu_commonarg_h = yes ; then
		BUILD_QUIPU=yes
	elif test $ol_enable_quipu = auto ; then
		AC_MSG_WARN([no quipu for --enable-quipu=auto, disabling])
	else
		AC_MSG_ERROR(no quipu for --enable-quipu=$ol_enable_quipu)
	fi
fi

dnl ----------------------------------------------------------------
dnl Kerberos
ol_link_krb5=no

if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 \
	-o $ol_with_kerberos = k5only -o $ol_with_kerberos = k425 ; then

	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
			AC_MSG_WARN([Unrecongized Kerberos5 Implementation])
		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_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

ol_link_krb4=no
if test $ol_link_krb5 = yes -a \
	\( $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"
			])

Kurt Zeilenga's avatar
Kurt Zeilenga committed
			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"
if test $ol_link_krb5 = yes ; then
	ol_with_kerberos=found
fi

if test $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])

			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 -o $ol_link_krb5 = yes ; then
	AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
Kurt Zeilenga's avatar
Kurt Zeilenga committed
elif test $ol_with_kerberos != auto -a $ol_with_kerberos != no ; then
	AC_MSG_ERROR([Kerberos detection failed.])
dnl ----------------------------------------------------------------
dnl TLS/SSL
Bart Hartgers's avatar
 
Bart Hartgers committed
ol_link_tls=no
if test $ol_with_tls != no ; then
Bart Hartgers's avatar
 
Bart Hartgers committed
	
	AC_CHECK_HEADERS(openssl/ssl.h ssl.h)
Bart Hartgers's avatar
 
Bart Hartgers committed
	
	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])
Bart Hartgers's avatar
 
Bart Hartgers committed
			
Julio Sánchez Fernández's avatar
 
Julio Sánchez Fernández committed
		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