dnl Configure.in for OpenLDAP
AC_INIT(build/version.sh)dnl
-# set unset (borrowed from autoconf 2.14a)
-if (unset FOO) >/dev/null 2>&1; then
+# 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
+$ol_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
AC_CONFIG_AUX_DIR(build)dnl
dnl we try not to use this for much
AC_CANONICAL_SYSTEM
-AM_INIT_AUTOMAKE(OpenLDAP,[$OL_VERSION], [no defines])dnl
-AC_SUBST(PACKAGE)
-AC_SUBST(VERSION)
+AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
+AC_SUBST(PACKAGE)dnl
+AC_SUBST(VERSION)dnl
AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
+AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION,$OL_API_INC,Version)
+AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MAJOR,$OL_MAJOR,Major)
+AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MINOR,$OL_MINOR,Minor)
+AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Patch)
+
+OPENLDAP_LIBVERSION=$OL_API_LIB
+AC_SUBST(OPENLDAP_LIBVERSION)dnl
+
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.
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(aci,[ --enable-aci enable per-object ACIs], no)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(crypt,[ --enable-crypt enable crypt(3) passwords], no)dnl
+OL_ARG_ENABLE(dynamic,[ --enable-dynamic enable linking built binaries with dynamic libs], no)dnl
OL_ARG_ENABLE(kpasswd,[ --enable-kpasswd enable Kerberos password verification], no)dnl
+OL_ARG_ENABLE(lmpasswd,[ --enable-lmpasswd enable LAN Manager passwords], 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
+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], auto)dnl
-OL_ARG_ENABLE(aci,[ --enable-aci enable per-object ACIs], no)dnl
+OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups], no)dnl
+OL_ARG_ENABLE(slp, [ --enable-slp enable SLPv2 support], 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(bdb,[ --enable-bdb enable Berkeley DB backend], no)dnl
+OL_ARG_WITH(bdb_module,[ --with-bdb-module module type], static,
+ [static dynamic])
OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend], no)dnl
OL_ARG_WITH(dnssrv_module,[ --with-dnssrv-module module type], static,
[static dynamic])
# validate options
if test $ol_enable_slapd = no ; then
dnl SLAPD was specificallly disabled
+ if test $ol_enable_bdb = yes ; then
+ AC_MSG_WARN([slapd disabled, ignoring --enable-bdb argument])
+ fi
if test $ol_enable_dnssrv = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-dnssrv argument])
fi
if test $ol_enable_modules = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
fi
- if test $ol_enable_multimaster = yes ; then
- AC_MSG_WARN([slapd disabled, ignoring --enable-multimaster 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_with_ldbm_type != auto ; then
AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-type argument])
fi
+ if test $ol_with_bdb_module != static ; then
+ AC_MSG_WARN([slapd disabled, ignoring --with-bdb-module argument])
+ fi
if test $ol_with_dnssrv_module != static ; then
AC_MSG_WARN([slapd disabled, ignoring --with-dnssrv-module argument])
fi
fi
# force settings to no
+ ol_enable_bdb=no
ol_enable_dnssrv=no
ol_enable_ldap=no
ol_enable_ldbm=no
ol_enable_sql=no
ol_enable_modules=no
- ol_enable_multimaster=no
+dnl ol_enable_multimaster=no
ol_enable_phonetic=no
ol_enable_rlookups=no
ol_enable_aci=no
ol_with_ldbm_api=no
ol_with_ldbm_type=no
+ ol_with_bdb_module=static
ol_with_dnssrv_module=static
ol_with_ldap_module=static
ol_with_ldbm_module=static
fi
if test $ol_enable_modules != yes -a \
+ $ol_enable_bdb = no -a \
$ol_enable_dnssrv = no -a \
$ol_enable_ldap = no -a \
$ol_enable_passwd = no -a \
fi
fi
+if test $ol_enable_lmpasswd = yes ; then
+ if test $ol_with_tls = no ; then
+ AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
+ 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])
if test $ol_with_cyrus_sasl = no ; then
AC_MSG_ERROR([options require --with-cyrus-sasl])
fi
- ol_link_spasswd=yes
+ ol_with_cyrus_sasl=yes
fi
AC_MSG_RESULT(done)
BUILD_THREAD=no
+BUILD_BDB=no
BUILD_DNSSRV=no
BUILD_LDAP=no
BUILD_LDBM=no
BUILD_SQL=no
BUILD_TCL=no
+BUILD_BDB_DYNAMIC=static
BUILD_DNSSRV_DYNAMIC=static
BUILD_LDAP_DYNAMIC=static
BUILD_LDBM_DYNAMIC=static
MODULES_LIBS=
AUTH_LIBS=
+SLAPD_SLP_LIBS=
+
dnl ================================================================
dnl Checks for programs
])
-dnl ----------------------------------------------------------------
-dnl PF_INET6 support requires getaddrinfo
-dnl PF_LOCAL 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_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 Check for module support
ol_link_modules=no
fi
ol_link_modules=yes
else
+ ol_with_bdb_module=static
ol_with_dnssrv_module=static
ol_with_ldap_module=static
ol_with_ldbm_module=static
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
+AC_CHECK_FUNCS( getaddrinfo )
+
+ol_link_ipv6=no
+if test $ac_cv_func_getaddrinfo = no ; then
+ if test $ol_enable_ipv6 = yes ; then
+ AC_MSG_ERROR([IPv6 support requires getaddrinfo()])
+ fi
+else
+ AC_CHECK_FUNCS( gai_strerror )
+
+ 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
AC_ERROR([Could not locate TLS/SSL package])
fi
+dnl ----------------------------------------------------------------
+dnl LAN Manger password checking requires DES from OpenSSL
+if test $ol_enable_lmpasswd != no; then
+ if test $ol_link_tls != yes ; then
+ AC_ERROR([LAN Manager passwords require OpenSSL])
+ fi
+
+ AC_DEFINE(SLAPD_LMHASH, 1, [define to support LAN Manager passwords])
+fi
+
dnl ----------------------------------------------------------------
dnl Tests for reentrant functions necessary to build a
dnl thread_safe -lldap.
AC_MSG_WARN([Strong authentication not supported!])
fi
fi
+
+ elif test $ol_enable_spasswd != no ; then
+ ol_link_spasswd=yes
fi
+
else
AC_MSG_WARN([SASL authentication not supported!])
if test $ol_link_tls = no ; then
fi
fi
+dnl ----------------------------------------------------------------
+dnl Check for SLPv2 Compliant API Library
+if test $ol_enable_slp != no ; then
+ AC_CHECK_HEADERS( slp.h )
+
+ if test $ac_cv_header_slp_h = yes ; then
+ AC_CHECK_LIB(slp, SLPOpen, [have_slp=yes], [have_slp=no])
+ if test $have_slp = yes ; then
+ AC_DEFINE(HAVE_SLP, 1, [define if you have -lslp])
+ SLAPD_SLP_LIBS=-lslp
+ fi
+
+ elif test $ol_enable_slp = yes ; then
+ AC_MSG_ERROR([SLP not found])
+ fi
+fi
+
dnl ----------------------------------------------------------------
dnl Checks for typedefs, structures, and compiler characteristics.
AC_TYPE_MODE_T
if test "$ol_enable_local" != no; then
AC_DEFINE(LDAP_PF_LOCAL,1,[define to support PF_LOCAL])
fi
-if test "$ol_enable_ipv6" != no; then
+if test "$ol_link_ipv6" != no; then
AC_DEFINE(LDAP_PF_INET6,1,[define to support PF_INET6])
fi
if test "$ol_enable_cleartext" != no ; then
if test "$ol_link_spasswd" != no ; then
AC_DEFINE(SLAPD_SPASSWD,1,[define to support SASL passwords])
fi
-if test "$ol_enable_multimaster" != no ; then
- AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
-fi
+dnl if test "$ol_enable_multimaster" != no ; then
+dnl AC_DEFINE(SLAPD_MULTIMASTER,1,[define to support multimaster replication])
+dnl fi
if test "$ol_enable_phonetic" != no ; then
AC_DEFINE(SLAPD_PHONETIC,1,[define to support phonetic])
fi
SLAPD_MODULES_LDFLAGS="-dlopen self"
fi
+if test "$ol_enable_bdb" != no ; then
+ AC_DEFINE(SLAPD_BDB,1,[define to support BDB backend])
+ BUILD_SLAPD=yes
+ BUILD_BDB=yes
+ if test "$ol_with_bdb_module" != static ; then
+ AC_DEFINE(SLAPD_BDB_DYNAMIC,1,
+ [define to support dynamic BDB backend])
+ BUILD_BDB=mod
+ BUILD_BDB_DYNAMIC=shared
+ SLAPD_MODULES_LIST="$SLAPD_MODULES_LIST -dlopen \$(SLAP_DIR)back-bdb/back_bdb.la"
+ fi
+fi
+
if test "$ol_link_dnssrv" != no ; then
AC_DEFINE(SLAPD_DNSSRV,1,[define to support DNS SRV backend])
BUILD_SLAPD=yes
AC_SUBST(DYN_EXT)
AC_SUBST(BUILD_SLAPD)
+ AC_SUBST(BUILD_BDB)
AC_SUBST(BUILD_DNSSRV)
AC_SUBST(BUILD_LDAP)
AC_SUBST(BUILD_LDBM)
AC_SUBST(BUILD_SHELL)
AC_SUBST(BUILD_SQL)
AC_SUBST(BUILD_TCL)
+ AC_SUBST(BUILD_BDB_DYNAMIC)
AC_SUBST(BUILD_DNSSRV_DYNAMIC)
AC_SUBST(BUILD_LDAP_DYNAMIC)
AC_SUBST(BUILD_LDBM_DYNAMIC)
AC_SUBST(MODULES_LIBS)
AC_SUBST(AUTH_LIBS)
+AC_SUBST(SLAPD_SLP_LIBS)
+
AC_SUBST(SLAPD_SQL_LDFLAGS)
AC_SUBST(SLAPD_SQL_LIBS)
AC_SUBST(SLAPD_SQL_INCLUDES)
libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk \
servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
+servers/slapd/back-bdb/Makefile:build/top.mk:servers/slapd/back-bdb/Makefile.in:build/mod.mk \
servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk \
servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/mod.mk \
servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/mod.mk \