Skip to content
Snippets Groups Projects
configure.in 66.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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
    
    
    # set unset (borrowed from autoconf 2.14a)
    if (unset 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
    
    
    
    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(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(ipv6,[  --enable-ipv6 	enable IPv6 support], auto)dnl
    OL_ARG_ENABLE(unix,[  --enable-unix		enable UNIX domain socket support], auto)dnl
    
    OL_ARG_ENABLE(x_compile,[  --enable-x-compile	enable cross compiling],
    	no, [yes no])dnl
    
    dnl ----------------------------------------------------------------
    
    dnl General "with" options
    
    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 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 ----------------------------------------------------------------
    
    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(spasswd,[    --enable-spasswd	enable (Cyrus) SASL 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(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(dnssrv,[    --enable-dnssrv	enable dnssrv backend], no)dnl
    
    OL_ARG_WITH(dnssrv_module,[      --with-dnssrv-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,
    
    Kurt Zeilenga's avatar
    Kurt Zeilenga committed
    	[auto berkeley bcompat mdbm gdbm])
    
    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(sql,[    --enable-sql	enable sql backend], no)dnl
    OL_ARG_WITH(sql_module,[      --with-sql-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_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])
    
    	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_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])
    
    	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_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_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_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_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_perl=no
    	ol_enable_shell=no
    
    	ol_enable_multimaster=no
    
    	ol_enable_phonetic=no
    
    	ol_enable_quipu=no
    
    	ol_enable_rlookups=no
    
    	ol_enable_wrappers=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_perl_module=static
    	ol_with_shell_module=static
    	ol_with_tcl_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])
    
    	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_sql = 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
    
    
    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])
    
    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
    
    elif test $ol_enable_kbind = no -o $ol_enable_kpasswd = no ; then
    	if test $ol_with_kerberos != auto ; then
    		AC_MSG_WARN([Kerberos detection enabled unnecessarily]);
    	else
    		ol_with_kerberos=no
    	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
    
    AC_MSG_RESULT(done)
    
    
    dnl ----------------------------------------------------------------
    dnl Initialize vars
    
    LDAP_LIBS=
    
    LDBM_LIBS=
    LTHREAD_LIBS=
    LUTIL_LIBS=
    
    
    SLAPD_LIBS=
    SLURPD_LIBS=
    
    BUILD_SLAPD=no
    BUILD_SLURPD=no
    
    
    BUILD_QUIPU=no
    BUILD_THREAD=no
    
    BUILD_DNSSRV=no
    
    BUILD_LDBM=no
    BUILD_PASSWD=no
    
    BUILD_SHELL=no
    
    BUILD_DNSSRV_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
    
    BUILD_SQL_DYNAMIC=static
    
    SLAPD_MODULES_LDFLAGS=
    SLAPD_MODULES_CPPFLAGS=
    
    SLAPD_PERL_LDFLAGS=
    
    SLAPD_SQL_LDFLAGS=
    SLAPD_SQL_LIBS=
    SLAPD_SQL_INCLUDES=
    
    
    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 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 PF_INET6 support requires getaddrinfo
    dnl PF_UNIX may use getaddrinfo in available
    AC_CHECK_FUNCS( getaddrinfo )
    
    if test $ac_cv_func_getaddrinfo = no ; then
    	if test $ol_enable_ipv6 = yes ; then
    		AC_MSG_ERROR([IPv6 support requires getaddrinfo()])
    	fi
    	ol_enable_ipv6=no
    fi
    
    if test $ol_enable_unix != no ; then
    	AC_CHECK_HEADERS( sys/un.h )
    
    	if test $ol_enable_unix = auto ; then
    		ol_enable_unix=$ac_cv_header_sys_un_h
    	elif test $ac_cv_header_sys_un_h = no ; then
    		AC_MSG_ERROR([UNIX domain support requires sys/un.h])
    	fi
    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_dnssrv_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_with_sql_module=static
    
    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 ----------------------------------------------------------------
    
    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 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_kbind=no
    ol_link_kpasswd=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_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 = 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 -a $ol_enable_kpasswd != no ; then
    	ol_link_kpasswd=yes;
    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