From 166048823acb69d05caa521755154fdaf18246e3 Mon Sep 17 00:00:00 2001
From: Howard Chu <hyc@openldap.org>
Date: Thu, 25 Aug 2005 09:48:28 +0000
Subject: [PATCH] Enhance OL_ARG_ENABLE for overridable defaults, trim some
 redundancy in the passed in help string. (Append the valid args to the help
 string...)

---
 build/openldap.m4 |   8 ++--
 configure.in      | 119 ++++++++++++++++++++++------------------------
 2 files changed, 63 insertions(+), 64 deletions(-)

diff --git a/build/openldap.m4 b/build/openldap.m4
index e7035371ce..ab2371b3d5 100644
--- a/build/openldap.m4
+++ b/build/openldap.m4
@@ -20,9 +20,10 @@ dnl $1 = option name
 dnl $2 = help-string
 dnl $3 = default value	(auto).  "--" means do not set it by default
 dnl $4 = allowed values (auto yes no)
+dnl $5 = overridden default
 AC_DEFUN([OL_ARG_ENABLE], [# OpenLDAP --enable-$1
-	AC_ARG_ENABLE($1,ifelse($3,--,[$2],
-		[$2 @<:@]ifelse($3,,auto,$3)@:>@),[
+	pushdef([ol_DefVal],ifelse($3,,auto,$3))
+	AC_ARG_ENABLE($1,ifelse($4,,[$2],[$2] translit([$4],[ ],[|])) ifelse($3,--,,@<:@ol_DefVal@:>@),[
 	ol_arg=invalid
 	for ol_val in ifelse($4,,[auto yes no],[$4]) ; do
 		if test "$enableval" = "$ol_val" ; then
@@ -34,8 +35,9 @@ AC_DEFUN([OL_ARG_ENABLE], [# OpenLDAP --enable-$1
 	fi
 	ol_enable_$1="$ol_arg"
 ]ifelse($3,--,,[,
-[	ol_enable_$1=ifelse($3,,"auto","$3")]]))dnl
+[	ol_enable_$1=ifelse($5,,ol_DefVal,[${]$5[:-]ol_DefVal[}])]]))dnl
 dnl AC_MSG_RESULT([OpenLDAP -enable-$1 $ol_enable_$1])
+	popdef([ol_DefVal])
 # end --enable-$1
 ])dnl
 dnl
diff --git a/configure.in b/configure.in
index 9b3559877b..5204449f85 100644
--- a/configure.in
+++ b/configure.in
@@ -279,39 +279,38 @@ Backends="bdb dnssrv hdb ldap ldbm meta monitor null \
 AC_ARG_ENABLE(xxslapbackends,[
 SLAPD Backend Options:])
 
-OL_ARG_ENABLE(backends,[    --enable-backends	  enable all available backends no|yes|mod],
+OL_ARG_ENABLE(backends,[    --enable-backends	  enable all available backends],
 	--, [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],
-	[${ol_dflt_backends-yes}], [no yes mod])dnl
-OL_ARG_ENABLE(dnssrv,[    --enable-dnssrv	  enable dnssrv backend no|yes|mod],
-	[${ol_dflt_backends-no}], [no yes mod])dnl
-OL_ARG_ENABLE(hdb,[    --enable-hdb	  enable Hierarchical DB backend no|yes|mod],
-	[${ol_dflt_backends-yes}], [no yes mod])dnl
-OL_ARG_ENABLE(ldap,[    --enable-ldap	  enable ldap backend no|yes|mod],
-	[${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_ENABLE(ldbm_api,[      --enable-ldbm-api   use LDBM API auto|berkeley|bcompat|mdbm|gdbm],
+OL_ARG_ENABLE(bdb,[    --enable-bdb	  enable Berkeley DB backend],
+	yes, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(dnssrv,[    --enable-dnssrv	  enable dnssrv backend],
+	no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(hdb,[    --enable-hdb	  enable Hierarchical DB backend],
+	yes, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(ldap,[    --enable-ldap	  enable ldap backend],
+	no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(ldbm,[    --enable-ldbm	  enable ldbm backend],
+	no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(ldbm_api,[      --enable-ldbm-api   use LDBM API],
 	auto, [auto berkeley bcompat mdbm gdbm])
-OL_ARG_ENABLE(ldbm_type,[      --enable-ldbm-type  use LDBM type auto|btree|hash],
+OL_ARG_ENABLE(ldbm_type,[      --enable-ldbm-type  use LDBM type],
 	auto, [auto btree hash])
-OL_ARG_ENABLE(meta,[    --enable-meta	  enable metadirectory backend no|yes|mod],
-	[${ol_dflt_backends-no}], [no yes mod])dnl
-OL_ARG_ENABLE(monitor,[    --enable-monitor	  enable monitor backend no|yes|mod],
-	[${ol_dflt_backends-yes}], [no yes mod])dnl
-OL_ARG_ENABLE(null,[    --enable-null	  enable null backend no|yes|mod],
-	[${ol_dflt_backends-no}], [no yes mod])dnl
-OL_ARG_ENABLE(passwd,[    --enable-passwd	  enable passwd backend no|yes|mod],
-	[${ol_dflt_backends-no}], [no yes mod])dnl
-OL_ARG_ENABLE(perl,[    --enable-perl	  enable perl backend no|yes|mod],
-	[${ol_dflt_backends-no}], [no yes mod])dnl
-OL_ARG_ENABLE(relay,[    --enable-relay  	  enable relay backend no|yes|mod],
-	[${ol_dflt_backends-yes}], [no yes mod])dnl
-OL_ARG_ENABLE(shell,[    --enable-shell	  enable shell backend no|yes|mod],
-	[${ol_dflt_backends-no}], [no yes mod])dnl
-OL_ARG_ENABLE(sql,[    --enable-sql	  enable sql backend no|yes|mod],
-	[${ol_dflt_backends-no}], [no yes mod])dnl
+OL_ARG_ENABLE(meta,[    --enable-meta	  enable metadirectory backend],
+	no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(monitor,[    --enable-monitor	  enable monitor backend],
+	yes, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(null,[    --enable-null	  enable null backend],
+	no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(passwd,[    --enable-passwd	  enable passwd backend],
+	no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(perl,[    --enable-perl	  enable perl backend],
+	no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(relay,[    --enable-relay  	  enable relay backend],
+	yes, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(shell,[    --enable-shell	  enable shell backend],
+	no, [no yes mod], ol_enable_backends)dnl
+OL_ARG_ENABLE(sql,[    --enable-sql	  enable sql backend],
+	no, [no yes mod], ol_enable_backends)dnl
 
 dnl ----------------------------------------------------------------
 dnl SLAPD Overlay Options
@@ -321,38 +320,36 @@ Overlays="accesslog denyop dyngroup dynlist glue lastmod ppolicy proxycache \
 AC_ARG_ENABLE(xxslapoverlays,[
 SLAPD Overlay Options:])
 
-OL_ARG_ENABLE(overlays,[    --enable-overlays	  enable all available overlays no|yes|mod],
+OL_ARG_ENABLE(overlays,[    --enable-overlays	  enable all available overlays],
 	--, [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],
-	[${ol_dflt_overlays-no}], [no yes mod])
-OL_ARG_ENABLE(dyngroup,[    --enable-dyngroup	  Dynamic Group overlay 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],
-	[${ol_dflt_overlays-yes}], [no yes mod])
-OL_ARG_ENABLE(lastmod,[    --enable-lastmod	  Last Modification overlay no|yes|mod],
-	[${ol_dflt_overlays-no}], [no yes mod])
-OL_ARG_ENABLE(ppolicy,[    --enable-ppolicy	  Password Policy overlay no|yes|mod],
-	[${ol_dflt_overlays-no}], [no yes mod])
-OL_ARG_ENABLE(proxycache,[    --enable-proxycache	  Proxy Cache overlay no|yes|mod],
-	[${ol_dflt_overlays-no}], [no yes mod])
-OL_ARG_ENABLE(refint,[    --enable-refint	  Referential Integrity overlay 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],
-	[${ol_dflt_overlays-no}], [no yes mod])
-OL_ARG_ENABLE(syncprov,[    --enable-syncprov	  Syncrepl Provider overlay no|yes|mod],
-	[${ol_dflt_overlays-yes}], [no yes mod])
-OL_ARG_ENABLE(translucent,[    --enable-translucent  Translucent Proxy overlay no|yes|mod],
-	[${ol_dflt_overlays-no}], [no yes mod])
-OL_ARG_ENABLE(unique,[    --enable-unique       Attribute Uniqueness overlay no|yes|mod],
-	[${ol_dflt_overlays-no}], [no yes mod])
-
+OL_ARG_ENABLE(accesslog,[    --enable-accesslog	  In-Directory Access Logging overlay],
+	no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(denyop,[    --enable-denyop  	  Deny Operation overlay],
+	no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(dyngroup,[    --enable-dyngroup	  Dynamic Group overlay],
+	no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(dynlist,[    --enable-dynlist	  Dynamic List overlay],
+	no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(glue,[    --enable-glue	  Backend Glue overlay],
+	yes, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(lastmod,[    --enable-lastmod	  Last Modification overlay],
+	no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(ppolicy,[    --enable-ppolicy	  Password Policy overlay],
+	no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(proxycache,[    --enable-proxycache	  Proxy Cache overlay],
+	no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(refint,[    --enable-refint	  Referential Integrity overlay],
+	no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(retcode,[    --enable-retcode	  Return Code testing overlay],
+	no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(rwm,[    --enable-rwm       	  Rewrite/Remap overlay],
+	no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(syncprov,[    --enable-syncprov	  Syncrepl Provider overlay],
+	yes, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(translucent,[    --enable-translucent  Translucent Proxy overlay],
+	no, [no yes mod], ol_enable_overlays)
+OL_ARG_ENABLE(unique,[    --enable-unique       Attribute Uniqueness overlay],
+	no, [no yes mod], ol_enable_overlays)
 
 dnl ----------------------------------------------------------------
 dnl SLURPD OPTIONS
-- 
GitLab