]> git.sur5r.net Git - openldap/blobdiff - configure.in
Fix: ldapadd with undefined objectclass causes assertion failure (ITS#3097)
[openldap] / configure.in
index e223f558c2e06b217022e88d1063cbef3da8d82a..59ac67254095c8ff72db1d0c12d676528f3a2090 100644 (file)
@@ -195,11 +195,15 @@ OL_ARG_ENABLE(slapi,[    --enable-slapi        enable SLAPI support (experimenta
 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
+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
@@ -220,22 +224,32 @@ OL_ARG_ENABLE(sql,[    --enable-sql         enable sql backend no|yes|mod], no, [no ye
 
 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(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
@@ -252,12 +266,35 @@ AC_ENABLE_SHARED
 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
@@ -293,6 +330,9 @@ if test $ol_enable_slapd = no ; 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
@@ -304,6 +344,8 @@ if test $ol_enable_slapd = no ; then
        # 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
@@ -372,19 +414,12 @@ else
                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
 
@@ -469,9 +504,12 @@ BUILD_SQL=no
 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=
 
@@ -1849,22 +1887,17 @@ if test $ol_with_ldbm_api = auto \
        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])
@@ -1910,13 +1943,13 @@ if test $ol_with_ldbm_api = ndbm ; then
 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 ----------------------------------------------------------------
@@ -2621,6 +2654,17 @@ if test "$ol_enable_dyngroup" != no ; then
        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
@@ -2643,6 +2687,17 @@ if test "$ol_enable_proxycache" != no ; 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
@@ -2655,6 +2710,17 @@ if test "$ol_enable_rwm" != no ; then
        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
@@ -2718,9 +2784,12 @@ dnl overlays
   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)