-dnl $Id: configure.in,v 1.248 1999/08/28 04:00:47 kdz Exp $
-
+dnl $OpenLDAP$
+dnl
dnl Copyright 1998,1999 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 ----------------------------------------------------------------
+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,1999 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-1999 The OpenLDAP Foundation, All Rights Reserved."
+echo "Copying restrictions apply, see COPYRIGHT file."
+])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
AC_CONFIG_AUX_DIR(build)dnl
AC_MSG_ERROR([could not determine version])
fi
-dnl ----------------------------------------------------------------
+echo "Configuring OpenLDAP $OL_VERSION ..."
+
dnl Determine host platform
dnl we try not to use this for much
AC_CANONICAL_SYSTEM
AC_CONFIG_HEADER(include/portable.h include/ldap_features.h include/lber_types.h)dnl
-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,
AC_SUBST(ldap_subdir)dnl
+dnl ----------------------------------------------------------------
+dnl General "enable" options
OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes)dnl
-dnl ol_enable_syslog=no
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], yes)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(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_WITH(tcl_module,[ --with-tcl-module module type], static,
[static dynamic])
+dnl ----------------------------------------------------------------
dnl SLURPD OPTIONS
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_dns = yes ; then
AC_MSG_RESULT(done)
-## Initialize vars
+dnl ----------------------------------------------------------------
+dnl Initialize vars
LDAP_LIBS=
LDIF_LIBS=
LDBM_LIBS=
SLAPD_MODULES_LIST=
SLAPD_PERL_LDFLAGS=
-SLAPD_PERL_CPPFLAGS=
+MOD_PERL_LDFLAGS=
+PERL_CPPFLAGS=
+MOD_TCL_LIB=
KRB_LIBS=
READLINE_LIBS=
SASL_LIBS=
TLS_LIBS=
MODULES_LIBS=
-dnl ----------------------------------------------------------------
+dnl ================================================================
dnl Checks for programs
dnl AC_PROG_INSTALL
AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
+dnl ----------------------------------------------------------------
dnl
dnl Determine which C translator to use
dnl
AC_LIBTOOL_DLOPEN
AC_PROG_LIBTOOL
-dnl AC_PROG_MAKE_SET
AC_PROG_AWK
OL_PROG_LN_H
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)
fi
else
- SLAPD_PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e s/-lc//`"
- SLAPD_PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
-
+ 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
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.])
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_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
AC_MSG_WARN([do not know how to generate dependencies])
fi
-dnl
+dnl ----------------------------------------------------------------
dnl Check for module support
-dnl
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)
AC_MSG_ERROR([could not locate libtool -lltdl])
fi
ol_link_modules=yes
+
else
ol_with_bdb2_module=static
ol_with_ldap_module=static
dnl ----------------------------------------------------------------
dnl Checks for libraries
+dnl HP-UX requires -lV3
+AC_CHECK_LIB(V3, sigset)
+
dnl Find socket()
dnl Likely combinations:
dnl -lsocket [ -lnsl_s | -lnsl ]
dnl require select
AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
+dnl AC_CHECK_FUNCS(socketpair)
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
+dnl check to see if system call automatically restart
+dnl AC_SYS_RESTARTABLE_SYSCALLS
+dnl ----------------------------------------------------------------
dnl require POSIX regex
AC_CHECK_HEADERS( regex.h )
if test "$ac_cv_header_regex_h" != yes ; then
AC_MSG_ERROR([broken POSIX regex!])
fi
-dnl HP-UX requires -lV3
-AC_CHECK_LIB(V3, sigset)
-
+dnl ----------------------------------------------------------------
dnl Check for resolver routines
AC_CHECK_FUNC(res_search,:)
if test $ac_cv_func_res_search = no ; then
fi
-# ISODE tests
+dnl ----------------------------------------------------------------
+dnl ISODE tests
ol_link_isode=no
if test $ol_enable_ldapd != no ; then
AC_MSG_WARN([ldapd is not supported and may suffer from bit rot.])
AC_PATH_PROG(PEPSY, pepsy)
fi
+dnl ----------------------------------------------------------------
+dnl QUIPU
if test $ol_enable_quipu != no ; then
AC_CHECK_HEADERS(quipu/commonarg.h)
fi
fi
-dnl
-dnl check for kerberos
-dnl
+dnl ----------------------------------------------------------------
+dnl Kerberos
ol_link_kerberos=no
if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 ; then
AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
fi
-dnl
-dnl Check for SSL/TLS
-dnl
+dnl ----------------------------------------------------------------
+dnl TLS/SSL
ol_link_tls=no
if test $ol_with_tls != no ; then
AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
fi
+dnl ----------------------------------------------------------------
dnl Tests for reentrant functions necessary to build a
dnl thread_safe -lldap.
AC_CHECK_FUNCS( \
AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_REENTRANT,1)
fi
+dnl ----------------------------------------------------------------
+dnl Threads?
ol_link_threads=no
if test $ol_with_threads = auto -o $ol_with_threads = yes \
-o $ol_with_threads = posix ; then
[define this to use DBBTREE w/ LDBM backend])
fi
+ OL_BERKELEY_DB2_DB_THREAD
+
dnl $ol_cv_lib_db2 should be yes or -ldb
dnl (it could be no, but that would be an error
if test $ol_cv_lib_db2 != yes ; then
ol_link_bdb2=no
if test $ol_link_ldbm = db2 -a $ol_enable_bdb2 != no ; then
- ol_link_bdb2=yes
+ if test $ol_cv_berkeley_db2_db_thread != no ; then
+ ol_link_bdb2=yes
+ else
+ AC_MSG_WARN([Installed BerkeleyDB does not provide DB_THREAD support.])
+ fi
fi
if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db ; then
ol_enable_ldbm=no
fi
+dnl ----------------------------------------------------------------
if test $ol_enable_wrappers != no ; then
AC_CHECK_HEADERS(tcpd.h)
if test $ac_cv_header_tcpd_h != yes ; then
have_wrappers=no
else
- AC_CHECK_LIB(wrap, main,
- [have_wrappers=yes], [have_wrappers=no])
+ AC_TRY_COMPILE([
+int allow_severity = 0;
+int deny_severity = 0;
+ ],[hosts_access()],[have_wrappers=yes],[have_wrappers=no])
fi
if test $have_wrappers = yes ; then
AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
- SLAPD_LIBS="$SLAPD_LIBS -lwrap"
+ WRAP_LIBS="-lwrap"
dnl We add another check for -lnsl since some libwrap's
dnl need it, but it isn't always included from above
AC_MSG_WARN(disabling wrappers support)
ol_enable_wrappers=no
+ WRAP_LIBS=""
fi
fi
+dnl ----------------------------------------------------------------
if test $ol_enable_syslog != no ; then
AC_CHECK_FUNC(openlog)
if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
ol_enable_syslog=$ac_cv_func_openlog
fi
+dnl ----------------------------------------------------------------
if test $ol_enable_dmalloc != no ; then
AC_CHECK_HEADERS(dmalloc.h)
AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
fi
+dnl ----------------------------------------------------------------
+dnl TCL
if test $ol_enable_tcl != no ; then
AC_CHECK_HEADERS(tcl.h)
if test $ac_cv_header_tcl_h != yes ; then
have_tcl=no
else
- AC_CHECK_LIB(tcl,main,
- [have_tcl=yes; SLAPD_LIBS="$SLAPD_LIBS -ltcl"],
- [have_tcl=no])
-
- if test $have_tcl != yes; then
- AC_CHECK_LIB(tcl7.6,main,
- [have_tcl=yes; SLAPD_LIBS="$SLAPD_LIBS -ltcl7.6"],
- [have_tcl=no])
- fi
-
- if test $have_tcl != yes; then
- AC_CHECK_LIB(tcl8.0,main,
- [have_tcl=yes; SLAPD_LIBS="$SLAPD_LIBS -ltcl8.0"],
- [have_tcl=no])
- fi
+ for lib in tcl tcl7.6 tcl8.0 tcl8.2 ; do
+ AC_CHECK_LIB($lib,main,
+ [have_tcl=yes
+ if test x"$ol_with_tcl_module" == "xstatic" ; then
+ SLAPD_LIBS="$SLAPD_LIBS -l${lib}"
+ else
+ MOD_TCL_LIB="-l${lib}"
+ fi;break],[have_tcl=no])
+ done
fi
if test $have_tcl != yes ; then
fi
fi
-# ud needs termcap (should insert check here)
+dnl ----------------------------------------------------------------
+dnl ud needs termcap (should insert check here)
ol_link_termcap=no
AC_CHECK_HEADERS(termcap.h ncurses.h)
TERMCAP_LIBS=
fi
+dnl ----------------------------------------------------------------
dnl
dnl Check for fetch URL support
dnl should be extended to support other fetch URL APIs
fi
fi
+dnl ----------------------------------------------------------------
dnl
dnl Check for fetch URL support
dnl should be extended to support other fetch URL APIs
fi
fi
+dnl ----------------------------------------------------------------
dnl
dnl Check for GNU readline
dnl
fi
-# FreeBSD (and others) have crypt(3) in -lcrypt
+dnl ----------------------------------------------------------------
+dnl FreeBSD (and others) have crypt(3) in -lcrypt
if test $ol_enable_crypt != no ; then
AC_CHECK_FUNC(crypt, [have_crypt=yes], [
AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
fi
fi
-# FreeBSD (and others) have setproctitle(3) in -lutil
+dnl ----------------------------------------------------------------
+dnl FreeBSD (and others) have setproctitle(3) in -lutil
if test $ol_enable_proctitle != no ; then
AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
AC_CHECK_LIB(util, setproctitle,
memcpy \
memmove \
mkstemp \
+ pipe \
read \
recv \
recvfrom \
setsid \
setuid \
seteuid \
+ sigaction \
signal \
sigset \
snprintf \
AC_SUBST(LDBM_LIBS)
AC_SUBST(LTHREAD_LIBS)
AC_SUBST(LUTIL_LIBS)
+AC_SUBST(WRAP_LIBS)
+AC_SUBST(MOD_TCL_LIB)
AC_SUBST(SLAPD_MODULES_CPPFLAGS)
AC_SUBST(SLAPD_MODULES_LDFLAGS)
AC_SUBST(SLAPD_MODULES_LIST)
-AC_SUBST(SLAPD_PERL_CPPFLAGS)
+AC_SUBST(PERL_CPPFLAGS)
AC_SUBST(SLAPD_PERL_LDFLAGS)
+AC_SUBST(MOD_PERL_LDFLAGS)
AC_SUBST(KRB_LIBS)
AC_SUBST(READLINE_LIBS)