OL_ARG_ENABLE(modules,[ --enable-modules enable dynamic module support], no)dnl
dnl OL_ARG_ENABLE(multimaster,[ --enable-multimaster enable multimaster replication], no)dnl
ol_enable_multimaster=${ol_enable_multimaster-no}
-OL_ARG_ENABLE(rewrite,[ --enable-rewrite enable DN rewriting in back-ldap and the rwm overlay], auto)dnl
+OL_ARG_ENABLE(rewrite,[ --enable-rewrite enable DN rewriting in back-ldap and rwm overlay], auto)dnl
OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups of client hostnames], no)dnl
OL_ARG_ENABLE(slapi,[ --enable-slapi enable SLAPI support (experimental)], no)dnl
OL_ARG_ENABLE(slp,[ --enable-slp enable SLPv2 support], no)dnl
SLAPD Backend Options:])
OL_ARG_ENABLE(backends,[ --enable-backends enable all available backends no|yes|mod],
- no, [no yes mod])dnl
+ --, [no yes mod])dnl
+test -n "$ol_enable_backends" && ol_dflt_backends="$ol_enable_backends"
OL_ARG_ENABLE(bdb,[ --enable-bdb enable Berkeley DB backend no|yes|mod],
- yes, [no yes mod])dnl
+ ${ol_dflt_backends-yes}, [no yes mod])dnl
OL_ARG_ENABLE(dnssrv,[ --enable-dnssrv enable dnssrv backend no|yes|mod],
- no, [no yes mod])dnl
+ ${ol_dflt_backends-no}, [no yes mod])dnl
OL_ARG_ENABLE(hdb,[ --enable-hdb enable Hierarchical DB backend no|yes|mod],
- yes, [no yes mod])dnl
+ ${ol_dflt_backends-yes}, [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_dflt_backends-no}, [no yes mod])dnl
+OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend no|yes|mod],
+ ${ol_dflt_backends-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_dflt_backends-no}, [no yes mod])dnl
OL_ARG_ENABLE(monitor,[ --enable-monitor enable monitor backend no|yes|mod],
- yes, [no yes mod])dnl
+ ${ol_dflt_backends-yes}, [no yes mod])dnl
OL_ARG_ENABLE(null,[ --enable-null enable null backend no|yes|mod],
- no, [no yes mod])dnl
+ ${ol_dflt_backends-no}, [no yes mod])dnl
OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend no|yes|mod],
- no, [no yes mod])dnl
+ ${ol_dflt_backends-no}, [no yes mod])dnl
OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend no|yes|mod],
- no, [no yes mod])dnl
+ ${ol_dflt_backends-no}, [no yes mod])dnl
OL_ARG_ENABLE(relay,[ --enable-relay enable relay backend no|yes|mod],
- yes, [no yes mod])dnl
+ ${ol_dflt_backends-yes}, [no yes mod])dnl
OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend no|yes|mod],
- no, [no yes mod])dnl
+ ${ol_dflt_backends-no}, [no yes mod])dnl
OL_ARG_ENABLE(sql,[ --enable-sql enable sql backend no|yes|mod],
- no, [no yes mod])dnl
+ ${ol_dflt_backends-no}, [no yes mod])dnl
dnl ----------------------------------------------------------------
dnl SLAPD Overlay Options
-Overlays="denyop dyngroup glue lastmod ppolicy proxycache rwm \
- refint syncprov translucent unique"
+Overlays="accesslog denyop dyngroup dynlist glue lastmod ppolicy proxycache \
+ refint retcode rwm syncprov translucent unique"
AC_ARG_WITH(xxslapoverlays,[
SLAPD Overlay Options:])
OL_ARG_ENABLE(overlays,[ --enable-overlays enable all available overlays no|yes|mod],
- no, [no yes mod])dnl
+ --, [no yes mod])dnl
+test -n "$ol_enable_overlays" && ol_dflt_overlays="$ol_enable_overlays"
+OL_ARG_ENABLE(accesslog,[ --enable-accesslog In-Directory Access Logging overlay no|yes|mod],
+ ${ol_dflt_overlays-no}, [no yes mod])
OL_ARG_ENABLE(denyop,[ --enable-denyop Deny Operation overlay no|yes|mod],
- no, [no yes mod])
+ ${ol_dflt_overlays-no}, [no yes mod])
OL_ARG_ENABLE(dyngroup,[ --enable-dyngroup Dynamic Group overlay no|yes|mod],
- no, [no yes mod])
+ ${ol_dflt_overlays-no}, [no yes mod])
+OL_ARG_ENABLE(dynlist,[ --enable-dynlist Dynamic List overlay no|yes|mod],
+ ${ol_dflt_overlays-no}, [no yes mod])
OL_ARG_ENABLE(glue,[ --enable-glue Backend Glue overlay no|yes|mod],
- yes, [no yes mod])
+ ${ol_dflt_overlays-yes}, [no yes mod])
OL_ARG_ENABLE(lastmod,[ --enable-lastmod Last Modification overlay no|yes|mod],
- no, [no yes mod])
+ ${ol_dflt_overlays-no}, [no yes mod])
OL_ARG_ENABLE(ppolicy,[ --enable-ppolicy Password Policy overlay no|yes|mod],
- no, [no yes mod])
+ ${ol_dflt_overlays-no}, [no yes mod])
OL_ARG_ENABLE(proxycache,[ --enable-proxycache Proxy Cache overlay no|yes|mod],
- no, [no yes mod])
+ ${ol_dflt_overlays-no}, [no yes mod])
OL_ARG_ENABLE(refint,[ --enable-refint Referential Integrity overlay no|yes|mod],
- no, [no yes mod])
+ ${ol_dflt_overlays-no}, [no yes mod])
+OL_ARG_ENABLE(retcode,[ --enable-retcode Return Code testing overlay no|yes|mod],
+ ${ol_dflt_overlays-no}, [no yes mod])
OL_ARG_ENABLE(rwm,[ --enable-rwm Rewrite/Remap overlay no|yes|mod],
- no, [no yes mod])
+ ${ol_dflt_overlays-no}, [no yes mod])
OL_ARG_ENABLE(syncprov,[ --enable-syncprov Syncrepl Provider overlay no|yes|mod],
- yes, [no yes mod])
+ ${ol_dflt_overlays-yes}, [no yes mod])
OL_ARG_ENABLE(translucent,[ --enable-translucent Translucent Proxy overlay no|yes|mod],
- no, [no yes mod])
+ ${ol_dflt_overlays-no}, [no yes mod])
OL_ARG_ENABLE(unique,[ --enable-unique Attribute Uniqueness overlay no|yes|mod],
- no, [no yes mod])
+ ${ol_dflt_overlays-no}, [no yes mod])
dnl ----------------------------------------------------------------
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
+ case "$ol_enable_backends" in yes | mod)
AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument])
- fi
+ esac
for i in $Backends; do
eval "ol_tmp=\$ol_enable_$i"
if test $ol_tmp != no ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
fi
dnl overlays
- if test $ol_enable_overlays != no ; then
+ case "$ol_enable_overlays" in yes | mod)
AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument])
- fi
+ esac
for i in $Overlays; do
eval "ol_tmp=\$ol_enable_$i"
if test $ol_tmp != no ; then
# force settings to no
ol_enable_slapi=no
- ol_enable_backends=no
- ol_enable_overlays=no
+ ol_enable_backends=
+ ol_enable_overlays=
ol_enable_modules=no
ol_enable_multimaster=no
ol_enable_rlookups=no
BUILD_SHELL=no
BUILD_SQL=no
-BUILD_CHAIN=no
+BUILD_ACCESSLOG=no
BUILD_DENYOP=no
BUILD_DYNGROUP=no
+BUILD_DYNLIST=no
BUILD_GLUE=no
BUILD_LASTMOD=no
BUILD_PPOLICY=no
BUILD_PROXYCACHE=no
BUILD_REFINT=no
+BUILD_RETCODE=no
BUILD_RWM=no
BUILD_SYNCPROV=no
BUILD_TRANSLUCENT=no
BUILD_UNIQUE=no
+SLAPD_STATIC_OVERLAYS=
SLAPD_DYNAMIC_OVERLAYS=
SLAPD_MODULES_LDFLAGS=
[define if you have POSIX termios])
fi
-AC_CHECK_HEADERS( \
+AC_CHECK_HEADERS( \
arpa/inet.h \
- arpa/nameser.h \
+ arpa/nameser.h \
assert.h \
- bits/types.h \
+ bits/types.h \
conio.h \
crypt.h \
direct.h \
libutil.h \
limits.h \
locale.h \
- netinet/tcp.h \
+ netinet/tcp.h \
malloc.h \
memory.h \
psap.h \
sys/errno.h \
sys/ioctl.h \
sys/param.h \
- sys/resource.h \
- sys/select.h \
- sys/socket.h \
+ sys/resource.h \
+ sys/select.h \
+ sys/socket.h \
sys/stat.h \
- sys/syslog.h \
+ sys/syslog.h \
sys/time.h \
sys/types.h \
sys/ucred.h \
syslog.h \
termios.h \
unistd.h \
+ utime.h \
winsock.h \
winsock2.h \
)
dnl The following is INTENTIONALLY scripted out because shell does not
dnl support variable names with the '@' character, which is what
dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
-if test "$ac_cv_header_winsock_h" = yes; then
+dnl
+dnl Skip Winsock tests on Cygwin
+if test "$ac_cv_cygwin" != yes && test "$ac_cv_header_winsock_h" = yes; then
AC_CACHE_CHECK([for winsock], [ol_cv_winsock],
save_LIBS="$LIBS"
for curlib in ws2_32 wsock32; do
dnl ----------------------------------------------------------------
dnl Check for resolver routines
-dnl need to check for both res_query and __res_query
-dnl need to check -lc, -lbind, and -lresolv
-ol_link_dnssrv=no
-AC_CHECK_FUNC(res_query,:)
-if test $ac_cv_func_res_query = no ; then
- AC_CHECK_FUNC(__res_query,:)
- ac_cv_func_res_query=$ac_cv_func___res_query
-fi
-
-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
-fi
-
-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
-fi
-
-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
-fi
-
-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
-fi
+OL_RESOLVER_LINK
-if test $ac_cv_func_res_query = no ; then
- AC_CHECK_LIB(resolv, _res_9_query)
- ac_cv_func_res_query=$ac_cv_lib_resolv_res_9_query
-fi
-
-if test "$ac_cv_func_res_query" = yes ; then
+ol_link_dnssrv=no
+if test "$ol_cv_lib_resolver" != no ; then
AC_DEFINE(HAVE_RES_QUERY,1,
[define if you have res_query()])
- if test $ol_enable_dnssrv != no ; then
+ if test "$ol_enable_dnssrv" != no ; then
ol_link_dnssrv=yes
fi
+
+ if test "$ol_cv_lib_resolver" != yes ; then
+ LIBS="$ol_cv_lib_resolver $LIBS"
+ fi
fi
-if test "$ol_enable_dnssrv" != no -a "$ol_link_dnssrv" = no ; then
- AC_MSG_ERROR([DNSSRV requires res_query()])
+if test "$ol_enable_dnssrv" = yes -o "$ol_enable_dnssrv" = mod ; then
+ if test "$ol_link_dnssrv" = no ; then
+ AC_MSG_ERROR([DNSSRV requires res_query()])
+ fi
+else
+ ol_enable_dnssrv=no
fi
AC_CHECK_FUNCS( hstrerror )
AC_MSG_ERROR([could not locate SQL headers])
])
+ sql_LIBS="$LIBS"
+ LIBS="$LTHREAD_LIBS"
+
AC_CHECK_LIB(iodbc,SQLDriverConnect,[have_iodbc=yes],[have_iodbc=no])
if test $have_iodbc = yes ; then
ol_link_sql="-liodbc"
fi
fi
+ LIBS="$sql_LIBS"
+
if test $ol_link_sql != no ; then
SLAPD_SQL_LIBS="$ol_link_sql"
AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
fi
+if test "$ol_enable_accesslog" != no ; then
+ BUILD_ACCESSLOG=$ol_enable_accesslog
+ if test "$ol_enable_accesslog" = mod ; then
+ MFLAG=SLAPD_MOD_DYNAMIC
+ SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS accesslog.la"
+ else
+ MFLAG=SLAPD_MOD_STATIC
+ SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS accesslog.o"
+ fi
+ AC_DEFINE_UNQUOTED(SLAPD_OVER_ACCESSLOG,$MFLAG,[define for In-Directory Access Logging overlay])
+fi
+
if test "$ol_enable_denyop" != no ; then
BUILD_DENYOP=$ol_enable_denyop
if test "$ol_enable_denyop" = mod ; then
SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS denyop.la"
else
MFLAG=SLAPD_MOD_STATIC
+ SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS denyop.o"
fi
AC_DEFINE_UNQUOTED(SLAPD_OVER_DENYOP,$MFLAG,[define for Dynamic Group overlay])
fi
SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dyngroup.la"
else
MFLAG=SLAPD_MOD_STATIC
+ SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dyngroup.o"
fi
AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNGROUP,$MFLAG,[define for Dynamic Group overlay])
fi
+if test "$ol_enable_dynlist" != no ; then
+ BUILD_DYNLIST=$ol_enable_dynlist
+ if test "$ol_enable_dynlist" = mod ; then
+ MFLAG=SLAPD_MOD_DYNAMIC
+ SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS dynlist.la"
+ else
+ MFLAG=SLAPD_MOD_STATIC
+ SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS dynlist.o"
+ fi
+ AC_DEFINE_UNQUOTED(SLAPD_OVER_DYNLIST,$MFLAG,[define for Dynamic List overlay])
+fi
+
if test "$ol_enable_glue" != no ; then
BUILD_GLUE=$ol_enable_glue
if test "$ol_enable_glue" = mod ; then
SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS glue.la"
else
MFLAG=SLAPD_MOD_STATIC
+ SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS glue.o"
fi
AC_DEFINE_UNQUOTED(SLAPD_OVER_GLUE,$MFLAG,[define for Backend Glue overlay])
fi
SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS lastmod.la"
else
MFLAG=SLAPD_MOD_STATIC
+ SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS lastmod.o"
fi
AC_DEFINE_UNQUOTED(SLAPD_OVER_LASTMOD,$MFLAG,[define for Last Modification overlay])
fi
SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS ppolicy.la"
else
MFLAG=SLAPD_MOD_STATIC
+ SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS ppolicy.o"
fi
AC_DEFINE_UNQUOTED(SLAPD_OVER_PPOLICY,$MFLAG,[define for Password Policy overlay])
fi
SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS pcache.la"
else
MFLAG=SLAPD_MOD_STATIC
+ SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS pcache.o"
fi
AC_DEFINE_UNQUOTED(SLAPD_OVER_PROXYCACHE,$MFLAG,[define for Proxy Cache overlay])
fi
SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS refint.la"
else
MFLAG=SLAPD_MOD_STATIC
+ SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS refint.o"
fi
AC_DEFINE_UNQUOTED(SLAPD_OVER_REFINT,$MFLAG,[define for Referential Integrity overlay])
fi
+if test "$ol_enable_retcode" != no ; then
+ BUILD_RETCODE=$ol_enable_retcode
+ if test "$ol_enable_retcode" = mod ; then
+ MFLAG=SLAPD_MOD_DYNAMIC
+ SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS retcode.la"
+ else
+ MFLAG=SLAPD_MOD_STATIC
+ SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS retcode.o"
+ fi
+ AC_DEFINE_UNQUOTED(SLAPD_OVER_RETCODE,$MFLAG,[define for Referential Integrity overlay])
+fi
+
if test "$ol_enable_rwm" != no ; then
BUILD_REWRITE=yes
BUILD_RWM=$ol_enable_rwm
SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS rwm.la"
else
MFLAG=SLAPD_MOD_STATIC
+ SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS rwm_x.o"
fi
AC_DEFINE_UNQUOTED(SLAPD_OVER_RWM,$MFLAG,[define for Rewrite/Remap overlay])
fi
SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS syncprov.la"
else
MFLAG=SLAPD_MOD_STATIC
+ SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS syncprov.o"
fi
AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
fi
SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
else
MFLAG=SLAPD_MOD_STATIC
+ SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS translucent.o"
fi
AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
fi
SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS unique.la"
else
MFLAG=SLAPD_MOD_STATIC
+ SLAPD_STATIC_OVERLAYS="$SLAPD_STATIC_OVERLAYS unique.o"
fi
AC_DEFINE_UNQUOTED(SLAPD_OVER_UNIQUE,$MFLAG,[define for Attribute Uniqueness overlay])
fi
AC_SUBST(BUILD_SHELL)
AC_SUBST(BUILD_SQL)
dnl overlays
- AC_SUBST(BUILD_CHAIN)
+ AC_SUBST(BUILD_ACCESSLOG)
AC_SUBST(BUILD_DENYOP)
AC_SUBST(BUILD_DYNGROUP)
+ AC_SUBST(BUILD_DYNLIST)
AC_SUBST(BUILD_GLUE)
AC_SUBST(BUILD_LASTMOD)
AC_SUBST(BUILD_PPOLICY)
AC_SUBST(BUILD_PROXYCACHE)
AC_SUBST(BUILD_REFINT)
+ AC_SUBST(BUILD_RETCODE)
AC_SUBST(BUILD_RWM)
AC_SUBST(BUILD_SYNCPROV)
AC_SUBST(BUILD_TRANSLUCENT)
AC_SUBST(SLAPD_NO_STATIC)
AC_SUBST(SLAPD_STATIC_BACKENDS)
AC_SUBST(SLAPD_DYNAMIC_BACKENDS)
+AC_SUBST(SLAPD_STATIC_OVERLAYS)
AC_SUBST(SLAPD_DYNAMIC_OVERLAYS)
AC_SUBST(PERL_CPPFLAGS)
libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk \
libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk \
libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk \
-libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-static.mk \
+libraries/librewrite/Makefile:build/top.mk:libraries/librewrite/Makefile.in:build/lib.mk:build/lib-shared.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 \