]> git.sur5r.net Git - openldap/blobdiff - configure.in
ITS#3671 must release conn->c_mutex to allow blocked writers to exit
[openldap] / configure.in
index 6f0f2a689c46e140979ca3b0927624987582cf1e..07384b14a1f4e13f4a52d516338776f59c603aa9 100644 (file)
@@ -1,7 +1,7 @@
 dnl $OpenLDAP$
 dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
 dnl
-dnl Copyright 1998-2004 The OpenLDAP Foundation.
+dnl Copyright 1998-2005 The OpenLDAP Foundation.
 dnl All rights reserved.
 dnl
 dnl Redistribution and use in source and binary forms, with or without
@@ -23,7 +23,7 @@ define([AC_INIT_BINSH],
 
 # This work is part of OpenLDAP Software <http://www.openldap.org/>.
 #
-# Copyright 1998-2004 The OpenLDAP Foundation.
+# Copyright 1998-2005 The OpenLDAP Foundation.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -34,7 +34,7 @@ define([AC_INIT_BINSH],
 # top-level directory of the distribution or, alternatively, at
 # <http://www.OpenLDAP.org/license.html>.
 
-echo "Copyright 1998-2004 The OpenLDAP Foundation. All rights reserved."
+echo "Copyright 1998-2005 The OpenLDAP Foundation. All rights reserved."
 echo " Restrictions apply, see COPYRIGHT and LICENSE files."
 ])dnl
 dnl ----------------------------------------------------------------
@@ -214,7 +214,7 @@ OL_ARG_ENABLE(bdb,[    --enable-bdb   enable Berkeley DB backend no|yes|mod],
 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
+       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,
@@ -242,20 +242,22 @@ OL_ARG_ENABLE(sql,[    --enable-sql         enable sql backend no|yes|mod],
 
 dnl ----------------------------------------------------------------
 dnl SLAPD Overlay Options
-Overlays="chain denyop dyngroup lastmod ppolicy proxycache rwm \
-       refint syncprov unique"
+Overlays="denyop dyngroup dynlist glue lastmod ppolicy proxycache \
+       refint 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
-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(dynlist,[    --enable-dynlist      Dynamic List overlay no|yes|mod],
+       no, [no yes mod])
+OL_ARG_ENABLE(glue,[    --enable-glue    Backend Glue overlay no|yes|mod],
+       yes, [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],
@@ -266,8 +268,10 @@ OL_ARG_ENABLE(refint,[    --enable-refint    Referential Integrity overlay no|yes
        no, [no yes mod])
 OL_ARG_ENABLE(rwm,[    --enable-rwm              Rewrite/Remap overlay no|yes|mod],
        no, [no yes mod])
-OL_ARG_ENABLE(syncprov,[    --enable-syncprov            Syncrepl Provider overlay no|yes|mod],
+OL_ARG_ENABLE(syncprov,[    --enable-syncprov    Syncrepl Provider overlay no|yes|mod],
        yes, [no yes mod])
+OL_ARG_ENABLE(translucent,[    --enable-translucent  Translucent Proxy overlay no|yes|mod],
+       no, [no yes mod])
 OL_ARG_ENABLE(unique,[    --enable-unique       Attribute Uniqueness overlay no|yes|mod],
        no, [no yes mod])
 
@@ -444,10 +448,6 @@ else
        fi
 fi
 
-if test $ol_enable_chain != no -a $ol_enable_ldap = no ; then
-       AC_MSG_ERROR([--enable-chain requires --enable-ldap])
-fi
-
 if test $ol_enable_meta = yes -a $ol_enable_ldap = no ; then
        AC_MSG_ERROR([--enable-meta requires --enable-ldap])
 fi
@@ -525,11 +525,15 @@ BUILD_SQL=no
 BUILD_CHAIN=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_RWM=no
+BUILD_SYNCPROV=no
+BUILD_TRANSLUCENT=no
 BUILD_UNIQUE=no
 
 SLAPD_DYNAMIC_OVERLAYS=
@@ -537,7 +541,7 @@ SLAPD_DYNAMIC_OVERLAYS=
 SLAPD_MODULES_LDFLAGS=
 SLAPD_MODULES_CPPFLAGS=
 
-SLAPD_STATIC_BACKENDS=
+SLAPD_STATIC_BACKENDS=back-ldif
 SLAPD_DYNAMIC_BACKENDS=
 
 SLAPD_PERL_LDFLAGS=
@@ -815,13 +819,16 @@ AC_CHECK_HEADERS( \
        winsock2.h              \
 )
 
-
 dnl ----------------------------------------------------------------
 dnl Checks for libraries
 
+AC_CHECK_FUNCS( sigaction sigset )
+
 dnl HP-UX requires -lV3
 dnl this is not needed on newer versions of HP-UX
-AC_CHECK_LIB(V3, sigset)
+if test $ac_cv_func_sigaction = no && test $ac_cv_func_sigaction = no ; then
+       AC_CHECK_LIB(V3, sigset)
+fi
 
 dnl The following is INTENTIONALLY scripted out because shell does not
 dnl support variable names with the '@' character, which is what
@@ -964,51 +971,28 @@ fi
 
 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
+OL_RESOLVER_LINK
 
-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
-
-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 )
@@ -2090,6 +2074,9 @@ if test $ol_enable_sql != no ; then
                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"
@@ -2100,6 +2087,8 @@ if test $ol_enable_sql != no ; then
                fi
        fi
 
+       LIBS="$sql_LIBS"
+
        if test $ol_link_sql != no ; then
                SLAPD_SQL_LIBS="$ol_link_sql"
 
@@ -2421,6 +2410,12 @@ AC_DEFINE(LBER_TAG_T,long)
 dnl ----------------------------------------------------------------
 dnl Checks for library functions.
 AC_FUNC_MEMCMP
+
+if test $ac_cv_func_memcmp_clean = no ; then
+       AC_DEFINE(NEED_MEMCMP_REPLACEMENT,1,
+               [define if memcmp is not 8-bit clean or is otherwise broken])
+fi
+
 dnl AM_FUNC_MKTIME dnl checks for sys/time.h and unistd.h
 AC_FUNC_STRFTIME
 dnl AM_FUNC_STRTOD
@@ -2479,9 +2474,7 @@ AC_CHECK_FUNCS(           \
        setsid                  \
        setuid                  \
        seteuid                 \
-       sigaction               \
        signal                  \
-       sigset                  \
        strdup                  \
        strpbrk                 \
        strrchr                 \
@@ -2511,6 +2504,9 @@ if test "$ac_cv_func_getopt" != yes; then
 fi
 if test "$ac_cv_func_getpeereid" != yes; then
        OL_MSGHDR_MSG_ACCRIGHTS
+       if test "$ac_cv_func_getpeereid" != yes; then
+               OL_MSGHDR_MSG_CONTROL
+       fi
        LIBSRCS="$LIBSRCS getpeereid.c"
 fi
 if test "$ac_cv_func_snprintf" != yes -o "$ac_cv_func_vsnprintf" != yes; then
@@ -2768,17 +2764,6 @@ if test "$ol_link_sql" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_SQL,$MFLAG,[define to support SQL backend])
 fi
 
-if test "$ol_enable_chain" != no ; then
-       BUILD_CHAIN=$ol_enable_chain
-       if test "$ol_enable_chain" = mod ; then
-               MFLAG=SLAPD_MOD_DYNAMIC
-               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS chain.la"
-       else
-               MFLAG=SLAPD_MOD_STATIC
-       fi
-       AC_DEFINE_UNQUOTED(SLAPD_OVER_CHAIN,$MFLAG,[define for Dynamic Group overlay])
-fi
-
 if test "$ol_enable_denyop" != no ; then
        BUILD_DENYOP=$ol_enable_denyop
        if test "$ol_enable_denyop" = mod ; then
@@ -2801,6 +2786,28 @@ if test "$ol_enable_dyngroup" != no ; then
        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
+       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
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS glue.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_GLUE,$MFLAG,[define for Backend Glue overlay])
+fi
+
 if test "$ol_enable_lastmod" != no ; then
        BUILD_LASTMOD=$ol_enable_lastmod
        if test "$ol_enable_lastmod" = mod ; then
@@ -2868,6 +2875,17 @@ if test "$ol_enable_syncprov" != no ; then
        AC_DEFINE_UNQUOTED(SLAPD_OVER_SYNCPROV,$MFLAG,[define for Syncrepl Provider overlay])
 fi
 
+if test "$ol_enable_translucent" != no ; then
+       BUILD_TRANSLUCENT=$ol_enable_translucent
+       if test "$ol_enable_translucent" = mod ; then
+               MFLAG=SLAPD_MOD_DYNAMIC
+               SLAPD_DYNAMIC_OVERLAYS="$SLAPD_DYNAMIC_OVERLAYS translucent.la"
+       else
+               MFLAG=SLAPD_MOD_STATIC
+       fi
+       AC_DEFINE_UNQUOTED(SLAPD_OVER_TRANSLUCENT,$MFLAG,[define for Translucent Proxy overlay])
+fi
+
 if test "$ol_enable_unique" != no ; then
        BUILD_UNIQUE=$ol_enable_unique
        if test "$ol_enable_unique" = mod ; then
@@ -2909,62 +2927,6 @@ else
        PLAT=UNIX
 fi
 
-if test -z "$SLAPD_STATIC_BACKENDS"; then
-       SLAPD_NO_STATIC='#'
-else
-       SLAPD_NO_STATIC=
-fi
-
-dnl Generate static backend header file
-BACKEND_HEADER=servers/slapd/backend.h
-cat > $BACKEND_HEADER << EOF
-/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
- *
- * Copyright 1998-2004 The OpenLDAP Foundation.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted only as authorized by the OpenLDAP
- * Public License.
- *
- * A copy of this license is available in the file LICENSE in the
- * top-level directory of the distribution or, alternatively, at
- * <http://www.OpenLDAP.org/license.html>.
- */
-/* This file is automatically generated by configure; please do not edit.
- */
-
-EOF
-
-for b in $SLAPD_STATIC_BACKENDS; do
-       bb=`echo "$b" | sed -e 's;back-;;'`
-       
-       cat >> $BACKEND_HEADER << EOF
-extern BI_init ${bb}_back_initialize;
-EOF
-done
-
-cat >> $BACKEND_HEADER << EOF
-
-static BackendInfo binfo[[]] = {
-EOF
-
-for b in $SLAPD_STATIC_BACKENDS; do
-       bb=`echo "$b" | sed -e 's;back-;;'`
-       
-       cat >> $BACKEND_HEADER << EOF
-       { "$bb", ${bb}_back_initialize },
-EOF
-done
-
-cat >> $BACKEND_HEADER << EOF
-       { NULL, NULL }
-};
-
-/* end of generated file */
-EOF
-dnl done generating static backend header file
-
 AC_SUBST(LIBSRCS)
 AC_SUBST(PLAT)
 AC_SUBST(WITH_SASL)
@@ -2994,12 +2956,15 @@ dnl overlays
   AC_SUBST(BUILD_CHAIN)
   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_RWM)
   AC_SUBST(BUILD_SYNCPROV)
+  AC_SUBST(BUILD_TRANSLUCENT)
   AC_SUBST(BUILD_UNIQUE)
 AC_SUBST(BUILD_SLURPD)
 
@@ -3074,6 +3039,7 @@ servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefi
 servers/slapd/back-hdb/Makefile:build/top.mk:servers/slapd/back-hdb/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 \
+servers/slapd/back-ldif/Makefile:build/top.mk:servers/slapd/back-ldif/Makefile.in:build/mod.mk \
 servers/slapd/back-meta/Makefile:build/top.mk:servers/slapd/back-meta/Makefile.in:build/mod.mk \
 servers/slapd/back-monitor/Makefile:build/top.mk:servers/slapd/back-monitor/Makefile.in:build/mod.mk \
 servers/slapd/back-null/Makefile:build/top.mk:servers/slapd/back-null/Makefile.in:build/mod.mk \
@@ -3092,5 +3058,57 @@ tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk \
 ,[
 chmod +x tests/run
 date > stamp-h
+BACKENDSC="servers/slapd/backends.c"
+echo "Making $BACKENDSC"
+rm -f $BACKENDSC
+cat > $BACKENDSC << ENDX
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 1998-2005 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
+ */
+/* This file is automatically generated by configure; please do not edit. */
+
+#include "portable.h"
+#include "slap.h"
+
+ENDX
+if test "${STATIC_BACKENDS}"; then
+       for b in config ${STATIC_BACKENDS}; do
+               bb=`echo "${b}" | sed -e 's/back-//'`
+               cat >> $BACKENDSC << ENDX
+extern BI_init ${bb}_back_initialize;
+ENDX
+       done
+
+       cat >> $BACKENDSC << ENDX
+
+BackendInfo slap_binfo[[]] = {
+ENDX
+
+       for b in config ${STATIC_BACKENDS}; do
+               bb=`echo "${b}" | sed -e 's/back-//'`
+               echo "    Add ${bb} ..."
+               cat >> $BACKENDSC << ENDX
+       { "${bb}", ${bb}_back_initialize },
+ENDX
+       done
+
+       cat >> $BACKENDSC << ENDX
+       { NULL, NULL },
+};
+
+/* end of generated file */
+ENDX
+fi
+
 echo Please run \"make depend\" to build dependencies
-])
+],[STATIC_BACKENDS="$SLAPD_STATIC_BACKENDS"])