Hello,

but shouldn't we also allow dot's for package options, ie. in
AC_ARG_ENABLE?  Like ``--enable-web-2.0''?

Actually, it's half done, because _AC_ENABLE_IF is shared by both
macros.  Perhaps we could factor out the four code snippets for
option parsing, too.

What about the following patch?

Have a nice day,
        Stepan
2006-11-14  Stepan Kasal  <[EMAIL PROTECTED]>

        * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Factor out
        code for --enable, --disable, --with, and --without to...
        (_AC_INIT_PARSE_ENABLE): ... a new macro.
        * doc/autoconf.texi (Package Options):
        * NEWS: Document that AC_ARG_ENABLE allows dots, too.

Index: NEWS
===================================================================
RCS file: /cvsroot/autoconf/autoconf/NEWS,v
retrieving revision 1.410
diff -u -r1.410 NEWS
--- NEWS        13 Nov 2006 20:40:06 -0000      1.410
+++ NEWS        14 Nov 2006 10:49:04 -0000
@@ -21,7 +21,7 @@
 
 ** New macros AC_C_FLEXIBLE_ARRAY_MEMBER, AC_C_VARARRAYS.
 
-** AC_ARG_WITH now allows '.' in package names.
+** AC_ARG_ENABLE and AC_ARG_WITH now allow '.' in feature and package names.
 
 ** AC_CHECK_DECL now also works with aggregate objects.
 
Index: doc/autoconf.texi
===================================================================
RCS file: /cvsroot/autoconf/autoconf/doc/autoconf.texi,v
retrieving revision 1.1106
diff -u -r1.1106 autoconf.texi
--- doc/autoconf.texi   13 Nov 2006 20:40:06 -0000      1.1106
+++ doc/autoconf.texi   14 Nov 2006 10:49:31 -0000
@@ -15688,12 +15688,12 @@
 shell commands @var{action-if-given}.  If neither option was given, run
 shell commands @var{action-if-not-given}.  The name @var{feature}
 indicates an optional user-level facility.  It should consist only of
-alphanumeric characters and dashes.
+alphanumeric characters, dashes, and dots.
 
 The option's argument is available to the shell commands
 @var{action-if-given} in the shell variable @code{enableval}, which is
 actually just the value of the shell variable
[EMAIL PROTECTED]@var{feature}}, with any @option{-} characters changed into
[EMAIL PROTECTED]@var{feature}}, with any non-alphanumeric characters changed 
into
 @samp{_}.  You may use that variable instead, if you wish.  The
 @var{help-string} argument is like that of @code{AC_ARG_WITH}
 (@pxref{External Software}).
Index: lib/autoconf/general.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/general.m4,v
retrieving revision 1.937
diff -u -r1.937 general.m4
--- lib/autoconf/general.m4     13 Nov 2006 20:40:06 -0000      1.937
+++ lib/autoconf/general.m4     14 Nov 2006 10:49:33 -0000
@@ -626,13 +626,7 @@
   | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
     datarootdir=$ac_optarg ;;
 
-  -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : "[.*[^-_$as_cr_alnum]]" >/dev/null &&
-      AC_MSG_ERROR([invalid feature name: $ac_feature])
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval enable_$ac_feature=no ;;
+  _AC_INIT_PARSE_ENABLE([disable], [feature], [no])
 
   -docdir | --docdir | --docdi | --doc | --do)
     ac_prev=docdir ;;
@@ -644,13 +638,7 @@
   -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
     dvidir=$ac_optarg ;;
 
-  -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([[^=]]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : "[.*[^-_$as_cr_alnum]]" >/dev/null &&
-      AC_MSG_ERROR([invalid feature name: $ac_feature])
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval enable_$ac_feature=\$ac_optarg ;;
+  _AC_INIT_PARSE_ENABLE([enable], [feature], [\$ac_optarg])
 
   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
@@ -840,21 +828,9 @@
   -version | --version | --versio | --versi | --vers | -V)
     ac_init_version=: ;;
 
-  -with-* | --with-*)
-    ac_package=`expr "x$ac_option" : 'x-*with-\([[^=]]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : "[.*[^-._$as_cr_alnum]]" >/dev/null &&
-      AC_MSG_ERROR([invalid package name: $ac_package])
-    [ac_package=`echo $ac_package | sed 's/[-.]/_/g'`]
-    eval with_$ac_package=\$ac_optarg ;;
+  _AC_INIT_PARSE_ENABLE([with],    [package], [\$ac_optarg])
 
-  -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : "[.*[^-._$as_cr_alnum]]" >/dev/null &&
-      AC_MSG_ERROR([invalid package name: $ac_package])
-    [ac_package=`echo $ac_package | sed 's/[-.]/_/g'`]
-    eval with_$ac_package=no ;;
+  _AC_INIT_PARSE_ENABLE([without], [package], [no])
 
   --x)
     # Obsolete; use --with-x.
@@ -943,6 +919,21 @@
 ])# _AC_INIT_PARSE_ARGS
 
 
+# _AC_INIT_PARSE_ENABLE(OPTION-NAME, FEATURE, VALUE)
+# --------------------------------------------------
+# Handle an `--enable' or a `--with' option.
+#
+m4_define([_AC_INIT_PARSE_ENABLE],
+[-$1-* | --$1-*)
+    ac_$2=`expr "x$ac_option" : 'x-*$1-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_$2" : "[.*[^-._$as_cr_alnum]]" >/dev/null &&
+      AC_MSG_ERROR([invalid $2 name: $ac_$2])
+    [ac_$2=`echo $ac_$2 | sed 's/[-.]/_/g'`]
+    eval with_$ac_$2=$3 ;;dnl
+])
+
+
 # _AC_INIT_HELP
 # -------------
 # Handle the `configure --help' message.

Reply via email to