OL_ARG_ENABLE(slp,[ --enable-slp enable SLPv2 support], no)dnl
OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
-
+dnl ----------------------------------------------------------------
+dnl SLAPD Backend Options
Backends="bdb dnssrv hdb ldap ldbm meta monitor null \
passwd perl relay shell sql"
-dnl SLAPD Backend options
-OL_ARG_ENABLE(bdb,[ --enable-bdb enable Berkeley DB backend no|yes|mod], yes, [no yes mod])dnl
-OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend no|yes|mod], no, [no yes mod])dnl
-OL_ARG_ENABLE(hdb,[ --enable-hdb enable Hierarchical DB backend], no, [no yes mod])dnl
-OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend], no, [no yes mod])dnl
-OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend], no, [no yes mod])dnl
-OL_ARG_WITH(ldbm_api,[ --with-ldbm-api with LDBM API auto|berkeley|bcompat|mdbm|gdbm], auto,
- [auto berkeley bcompat mdbm gdbm])
-OL_ARG_WITH(ldbm_type,[ --with-ldbm-type use LDBM type auto|btree|hash], auto,
- [auto btree hash])
-OL_ARG_ENABLE(meta,[ --enable-meta enable metadirectory backend], no, [no yes mod])dnl
-OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend], yes, [no yes mod])dnl
-OL_ARG_ENABLE(null,[ --enable-null enable null backend], no, [no yes mod])dnl
-OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend], no, [no yes mod])dnl
-OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend], no, [no yes mod])dnl
-OL_ARG_ENABLE(relay,[ --enable-relay enable relay backend], yes, [no yes mod])dnl
-OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend], no, [no yes mod])dnl
-OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend], no, [no yes mod])dnl
+AC_ARG_WITH(xxslapbackends,[
+SLAPD Backend Options:])
+
+OL_ARG_ENABLE(backends,[ --enable-backends enable all available backends no|yes|mod],
+ no, [no yes mod])dnl
+OL_ARG_ENABLE(bdb,[ --enable-bdb enable Berkeley DB backend no|yes|mod],
+ yes, [no yes mod])dnl
+OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend no|yes|mod],
+ no, [no yes mod])dnl
+OL_ARG_ENABLE(hdb,[ --enable-hdb enable Hierarchical DB backend no|yes|mod],
+ no, [no yes mod])dnl
+OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend no|yes|mod],
+ no, [no yes mod])dnl
+OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend no|yes|mod], no,
+ [no yes mod])dnl
+OL_ARG_WITH(ldbm_api,[ --with-ldbm-api with LDBM API auto|berkeley|bcompat|mdbm|gdbm],
+ auto, [auto berkeley bcompat mdbm gdbm])
+OL_ARG_WITH(ldbm_type,[ --with-ldbm-type use LDBM type auto|btree|hash],
+ auto, [auto btree hash])
+OL_ARG_ENABLE(meta,[ --enable-meta enable metadirectory backend no|yes|mod],
+ no, [no yes mod])dnl
+OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend no|yes|mod],
+ yes, [no yes mod])dnl
+OL_ARG_ENABLE(null,[ --enable-null enable null backend no|yes|mod],
+ no, [no yes mod])dnl
+OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend no|yes|mod],
+ no, [no yes mod])dnl
+OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend no|yes|mod],
+ no, [no yes mod])dnl
+OL_ARG_ENABLE(relay,[ --enable-relay enable relay backend no|yes|mod],
+ yes, [no yes mod])dnl
+OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend no|yes|mod],
+ no, [no yes mod])dnl
+OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend no|yes|mod],
+ no, [no yes mod])dnl
dnl ----------------------------------------------------------------
dnl SLAPD Overlay Options
-Overlays="chain denyop dyngroup ppolicy proxycache rwm"
+Overlays="chain denyop dyngroup lastmod ppolicy proxycache rwm \
+ refint unique"
AC_ARG_WITH(xxslapoverlays,[
SLAPD Overlay Options:])
-OL_ARG_ENABLE(chain,[ --enable-chain LDAP Chain Response no|yes|mod], no,
- [no yes mod])
-OL_ARG_ENABLE(denyop,[ --enable-denyop Deny Operation overlay no|yes|mod], no,
- [no yes mod])
-OL_ARG_ENABLE(dyngroup,[ --enable-dyngroup Dynamic Group overlay no|yes|mod], no,
- [no yes mod])
-OL_ARG_ENABLE(ppolicy,[ --enable-ppolicy Password Policy overlay no|yes|mod], no,
- [no yes mod])
-OL_ARG_ENABLE(proxycache,[ --enable-proxycache Proxy Cache overlay no|yes|mod], no,
- [no yes mod])
-OL_ARG_ENABLE(rwm,[ --enable-rwm Rewrite/Remap overlay no|yes|mod], no,
- [no yes mod])
+
+OL_ARG_ENABLE(overlays,[ --enable-overlays enable all available overlays no|yes|mod],
+ no, [no yes mod])dnl
+OL_ARG_ENABLE(chain,[ --enable-chain LDAP Chain Response no|yes|mod],
+ no, [no yes mod])
+OL_ARG_ENABLE(denyop,[ --enable-denyop Deny Operation overlay no|yes|mod],
+ no, [no yes mod])
+OL_ARG_ENABLE(dyngroup,[ --enable-dyngroup Dynamic Group overlay no|yes|mod],
+ no, [no yes mod])
+OL_ARG_ENABLE(lastmod,[ --enable-lastmod Last Modification overlay no|yes|mod],
+ no, [no yes mod])
+OL_ARG_ENABLE(ppolicy,[ --enable-ppolicy Password Policy overlay no|yes|mod],
+ no, [no yes mod])
+OL_ARG_ENABLE(proxycache,[ --enable-proxycache Proxy Cache overlay no|yes|mod],
+ no, [no yes mod])
+OL_ARG_ENABLE(refint,[ --enable-refint Referential Integrity overlay no|yes|mod],
+ no, [no yes mod])
+OL_ARG_ENABLE(rwm,[ --enable-rwm Rewrite/Remap overlay no|yes|mod],
+ no, [no yes mod])
+OL_ARG_ENABLE(unique,[ --enable-unique Attribute Uniqueness overlay no|yes|mod],
+ no, [no yes mod])
+
dnl ----------------------------------------------------------------
dnl SLURPD OPTIONS
dnl ----------------------------------------------------------------
dnl General "enable" options
+# Activate any backends that were not explicitly enabled.
+# Note that back_bdb defaults to "yes" so this loop won't touch it.
+if test $ol_enable_backends != no ; then
+ for i in $Backends; do
+ eval "ol_tmp=\$ol_enable_$i"
+ if test $ol_tmp = no ; then
+ eval "ol_enable_$i=$ol_enable_backends"
+ fi
+ done
+fi
+# Activate the overlays
+if test $ol_enable_overlays != no ; then
+ for i in $Overlays; do
+ eval "ol_tmp=\$ol_enable_$i"
+ if test $ol_tmp = no ; then
+ eval "ol_enable_$i=$ol_enable_overlays"
+ fi
+ done
+fi
+
# validate options
if test $ol_enable_slapd = no ; then
dnl SLAPD was specificallly disabled
if test $ol_enable_slapi = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
fi
+ if test $ol_enable_backends != no ; then
+ AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument])
+ fi
for i in $Backends; do
eval "ol_tmp=\$ol_enable_$i"
if test $ol_tmp != no ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
- eval "\$ol_enable_$i=no"
+ eval "ol_enable_$i=no"
fi
done
if test $ol_enable_modules = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
fi
dnl overlays
+ if test $ol_enable_overlays != no ; then
+ AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument])
+ fi
for i in $Overlays; do
eval "ol_tmp=\$ol_enable_$i"
if test $ol_tmp != no ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
- eval "\$ol_enable_$i=no"
+ eval "ol_enable_$i=no"
fi
done
# force settings to no
ol_enable_slapi=no
+ ol_enable_backends=no
+ ol_enable_overlays=no
ol_enable_modules=no
ol_enable_multimaster=no
ol_enable_rlookups=no
AC_MSG_ERROR([NDBM only supports LDBM type hash])
fi
- if test $ol_enable_bdb = yes -o $ol_enable_hdb = yes ; then
+ if test $ol_enable_bdb != no -o $ol_enable_hdb != no ; then
if test $ol_with_ldbm_api = auto ; then
ol_with_ldbm_api=berkeley
elif test $ol_with_ldbm_api != berkeley ; then
AC_MSG_ERROR([LDBM API not compatible with BDB/HDB])
fi
-
- elif test $ol_enable_bdb = auto ; then
- if test $ol_with_ldbm_api != berkeley \
- -o $ol_with_ldbm_api != auto ; then
- AC_MSG_WARN([LDBM API not compatible with BDB, disabling BDB])
- ol_enable_bdb=no
- fi
fi
fi
BUILD_CHAIN=no
BUILD_DENYOP=no
BUILD_DYNGROUP=no
+BUILD_LASTMOD=no
BUILD_PPOLICY=no
BUILD_PROXYCACHE=no
+BUILD_REFINT=no
BUILD_RWM=no
+BUILD_UNIQUE=no
SLAPD_DYNAMIC_OVERLAYS=
eval "ol_tmp=\$ol_enable_$i"
if test $ol_tmp = mod ; then
AC_MSG_WARN([building static $i backend])
- eval "\$ol_enable_$i=yes"
+ eval "ol_enable_$i=yes"
fi
done
for i in $Overlays; do
eval "ol_tmp=\$ol_enable_$i"
if test $ol_tmp = mod ; then
AC_MSG_WARN([building static $i overlay])
- eval "\$ol_enable_$i=yes"
+ eval "ol_enable_$i=yes"
fi
done
fi
dnl check to see if system call automatically restart
dnl AC_SYS_RESTARTABLE_SYSCALLS
+dnl ----------------------------------------------------------------
+# strerror checks
+OL_STRERROR
+
dnl ----------------------------------------------------------------
dnl require POSIX regex
AC_CHECK_HEADERS( regex.h )
AC_MSG_ERROR([DNSSRV requires res_query()])
fi
+AC_CHECK_FUNCS( hstrerror )
+
dnl ----------------------------------------------------------------
dnl PF_INET6 support requires getaddrinfo and INET6_ADDRSTRLEN
dnl PF_LOCAL may use getaddrinfo in available
fi
fi
-if test $ol_enable_bdb = yes -a $ol_link_ldbm != berkeley ; then
- AC_MSG_ERROR(BDB: BerkeleyDB not available)
-elif test $ol_enable_bdb != no -a $ol_link_ldbm = berkeley ; then
- OL_BDB_COMPAT
-
- if test $ol_cv_bdb_compat = yes ; then
- ol_enable_bdb=yes
- elif test $ol_enable_bdb = yes ; then
- AC_MSG_ERROR([BDB: BerkeleyDB version incompatible])
+if test $ol_enable_bdb != no -o $ol_enable_hdb != no; then
+ if test $ol_link_ldbm != berkeley ; then
+ AC_MSG_ERROR(BDB/HDB: BerkeleyDB not available)
else
- ol_enable_bdb=no
+ OL_BDB_COMPAT
+
+ if test $ol_cv_bdb_compat != yes ; then
+ AC_MSG_ERROR([BDB/HDB: BerkeleyDB version incompatible])
+ fi
fi
fi
-if test $ol_enable_hdb = yes -a $ol_link_ldbm != berkeley ; then
- AC_MSG_ERROR([HDB: BerkeleyDB not available])
-fi
if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
AC_MSG_WARN([Could not find LDBM with BTREE support])
fi
if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
- AC_MSG_WARN([could not find suitable LDBM backend])
- if test $ol_enable_ldbm = yes ; then
- AC_MSG_ERROR([select appropriate LDBM options or disable])
- fi
+ AC_MSG_ERROR([could not find suitable LDBM backend])
+fi
- AC_MSG_WARN(disabling LDBM)
- ol_enable_ldbm=no
+if test $ol_enable_bdb = yes -o \
+ $ol_enable_hdb = yes -o \
+ $ol_enable_ldbm = yes ; then
+ SLAPD_LIBS="$SLAPD_LIBS \$(LDBM_LIBS)"
fi
dnl ----------------------------------------------------------------
AC_COMPILE_CHECK_SIZEOF(short)
AC_COMPILE_CHECK_SIZEOF(int)
AC_COMPILE_CHECK_SIZEOF(long)
+AC_COMPILE_CHECK_SIZEOF(wchar_t)
if test "$ac_cv_sizeof_int" -lt 4 ; then
AC_MSG_WARN([OpenLDAP requires 'int' to be 32 bits or greater.])
signal \
sigset \
strdup \
- strerror \
strpbrk \
strrchr \
strsep \
fi
fi
-dnl ----------------------------------------------------------------
-# Check Configuration
-OL_SYS_ERRLIST
-
dnl ----------------------------------------------------------------
dnl Sort out defines
AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
fi
+if test "$ol_enable_lastmod" != no ; then
+ BUILD_LASTMOD=$ol_enable_lastmod
+ if test "$ol_enable_lastmod" = mod ; then
+ MFLAG=SLAPD_MOD_DYNAMIC
+ SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la"
+ else
+ MFLAG=SLAPD_MOD_STATIC
+ fi
+ AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay])
+fi
+
if test "$ol_enable_ppolicy" != no ; then
BUILD_PPOLICY=$ol_enable_ppolicy
if test "$ol_enable_ppolicy" = mod ; then
AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
fi
+if test "$ol_enable_refint" != no ; then
+ BUILD_REFINT=$ol_enable_refint
+ if test "$ol_enable_refint" = mod ; then
+ MFLAG=SLAPD_MOD_DYNAMIC
+ SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
+ else
+ MFLAG=SLAPD_MOD_STATIC
+ fi
+ AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
+fi
+
if test "$ol_enable_rwm" != no ; then
BUILD_REWRITE=yes
BUILD_RWM=$ol_enable_rwm
AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
fi
+if test "$ol_enable_unique" != no ; then
+ BUILD_UNIQUE=$ol_enable_unique
+ if test "$ol_enable_unique" = mod ; then
+ MFLAG=SLAPD_MOD_DYNAMIC
+ SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
+ else
+ MFLAG=SLAPD_MOD_STATIC
+ fi
+ AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
+fi
+
if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
$BUILD_SLAPD = yes ; then
BUILD_SLURPD=yes
AC_SUBST(BUILD_CHAIN)
AC_SUBST(BUILD_DENYOP)
AC_SUBST(BUILD_DYNGROUP)
+ AC_SUBST(BUILD_LASTMOD)
AC_SUBST(BUILD_PPOLICY)
AC_SUBST(BUILD_PROXYCACHE)
+ AC_SUBST(BUILD_REFINT)
AC_SUBST(BUILD_RWM)
+ AC_SUBST(BUILD_UNIQUE)
AC_SUBST(BUILD_SLURPD)
AC_SUBST(LDAP_LIBS)