autoconf: 1999-09-22 Akim Demaille <akim@epita.fr> (76906)

From 76906a83b0e061190b2541e996ef3424858beb51 Mon Sep 17 00:00:00 2001
From: Akim Demaille <[EMAIL REDACTED]>
Date: Thu, 23 Sep 1999 09:49:56 +0000
Subject: [PATCH] 1999-09-22  Akim Demaille  <akim@epita.fr>         *
 install.texi: Give emore details on envvar handling.         * acgeneral.m4
 (AC_HELP_STRING): Add a third argument to tune the         width of the first
 column.         (AC_INIT_NOTICE): Initialize ac_arg_enable_help,
 ac_arg_with_help,         and ac_arg_var_help.         * acgeneral.m4
 (AC_INIT_PARSE_ARGS): Remove the handling of         --env-var=.  After
 debate, the solution chosen to specify envvars         to configure is a` la
 make: ./configure VAR=VAL.         (AC_INIT_PARSE_ARGS, --help): Output
 ac_arg_enable_help,         ac_arg_with_help, and ac_arg_var_help.         *
 acgeneral.m4 (AC_ARG_VAR): New macro, to register and document        
 influent envvars.         * acspecific.m4 (AC_PROG_CC): Document CFLAGS.     
    This is mainly to test AC_ARG_VAR.  Var to document are to be        
 defined.

---
 ChangeLog                |  18 +++++++
 INSTALL                  |  15 ++++--
 acgeneral.m4             | 108 ++++++++++++++++++++++++---------------
 acspecific.m4            |   1 +
 autoconf.texi            |   2 +-
 configure                |  38 ++++++--------
 doc/autoconf.texi        |   2 +-
 doc/install.texi         |  21 ++++++--
 install.texi             |  21 ++++++--
 lib/autoconf/general.m4  | 108 ++++++++++++++++++++++++---------------
 lib/autoconf/specific.m4 |   1 +
 11 files changed, 214 insertions(+), 121 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 86d469fe..1b1135da 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+1999-09-22  Akim Demaille  <akim@epita.fr>
+
+	* install.texi: Give emore details on envvar handling.
+	* acgeneral.m4 (AC_HELP_STRING): Add a third argument to tune the
+	width of the first column.
+	(AC_INIT_NOTICE): Initialize ac_arg_enable_help, ac_arg_with_help,
+	and ac_arg_var_help.
+	* acgeneral.m4 (AC_INIT_PARSE_ARGS): Remove the handling of
+ 	--env-var=.  After debate, the solution chosen to specify envvars
+	to configure is a` la make: ./configure VAR=VAL.
+	(AC_INIT_PARSE_ARGS, --help): Output ac_arg_enable_help,
+	ac_arg_with_help, and ac_arg_var_help.
+	* acgeneral.m4 (AC_ARG_VAR): New macro, to register and document
+	influent envvars.
+	* acspecific.m4 (AC_PROG_CC): Document CFLAGS.
+	This is mainly to test AC_ARG_VAR.  Var to document are to be
+	defined.
+
 1999-09-22  Akim Demaille  <akim@epita.fr>
 
 	* acgeneral.m4 (m4_default): New macro.
diff --git a/INSTALL b/INSTALL
index 5753aa6e..15e11277 100644
--- a/INSTALL
+++ b/INSTALL
@@ -55,12 +55,19 @@ Compilers and Options
 =====================
 
    Some systems require unusual options for compilation or linking that
-the `configure' script does not know about.  You can give `configure'
-initial values for variables by setting them in the environment.  Using
-a Bourne-compatible shell, you can do that on the command line like
-this:
+the `configure' script does not know about.  Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+   You can give `configure' initial values for variables by setting
+them in the environment.  You can do that on the command line like this:
      ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
 
+   Please, note that the former interface:
+     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+   or
+     env CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+   is deprecated and should be avoided.
+
 Compiling For Multiple Architectures
 ====================================
 
diff --git a/acgeneral.m4 b/acgeneral.m4
index a5aa636d..142bd2e9 100644
--- a/acgeneral.m4
+++ b/acgeneral.m4
@@ -529,12 +529,14 @@ popdef([ac_width])dnl
 popdef([ac_cursor])])
 
 
-dnl AC_HELP_STRING(LHS, RHS)
-dnl ------------------------
+dnl AC_HELP_STRING(LHS, RHS[, COLUMN])
+dnl ----------------------------------
 dnl
 dnl Format an Autoconf macro's help string so that it looks pretty when
-dnl the user executes "configure --help".  This macro takes two
-dnl arguments, a "left hand side" (LHS), and a "right hand side" (RHS).
+dnl the user executes "configure --help".  This macro takes three
+dnl arguments, a "left hand side" (LHS), a "right hand side" (RHS), and
+dnl the COLUMN which is a string of wide spaces which leads to the
+dnl the RHS column (default: 26 white spaces).
 dnl
 dnl The resulting string is suitable for use in other macros that require
 dnl a help string (e.g. AC_ARG_WITH).
@@ -570,23 +572,28 @@ dnl  column 0                  column 26
 dnl
 dnl This macro is a adhoc version of AC_WRAP.
 define([AC_HELP_STRING],
-[pushdef([ac_prefix], [                          ])dnl 26 spaces
-pushdef([ac_width], m4_eval(79 - len(ac_prefix)))dnl
-pushdef([ac_cursor], 0)dnl
-m4_format([  %-23s ], [$1])dnl
+[pushdef([AC_Prefix], m4_default([$3], [                          ]))dnl
+pushdef([AC_Prefix_Len], len(AC_Prefix))dnl Default: 26
+pushdef([AC_Prefix_Format], [  %-]m4_eval(len(AC_Prefix) - 3)[s])dnl [  %-23s]
+pushdef([AC_Width], m4_eval(79 - AC_Prefix_Len))dnl Width of the RHS column.
+pushdef([AC_Cursor], 0)dnl
+m4_format(AC_Prefix_Format, [$1])dnl
 dnl If the option is too wide, leave it alone on the line
-ifelse(m4_eval(len(m4_format([  %-23s ], [$1])) > 26),
+ifelse(m4_eval(len(m4_format(AC_Prefix_Format, [$1])) > AC_Prefix_Len),
        1, [
-]ac_prefix)dnl
-AC_FOREACH([ac_word], $2,
-[define([ac_cursor], m4_eval(ac_cursor + len(ac_word) + 1))dnl
-ifelse(m4_eval(ac_cursor > ac_width),
-       1, [define([ac_cursor], m4_eval(len(ac_word) + 1))]
-ac_prefix)dnl
-ac_word ])dnl
-popdef([ac_prefix])dnl
-popdef([ac_width])dnl
-popdef([ac_cursor])])
+]AC_Prefix)dnl
+AC_FOREACH([AC_Word], $2,
+[define([AC_Cursor], m4_eval(AC_Cursor + len(AC_Word) + 1))dnl
+ifelse(m4_eval(AC_Cursor > AC_Width),
+       1, [define([AC_Cursor], m4_eval(len(AC_Word) + 1))]
+AC_Prefix)dnl
+AC_Word ])dnl
+popdef([AC_Cursor])dnl
+popdef([AC_Width])dnl
+popdef([AC_Prefix_Format])dnl
+popdef([AC_Prefix_Len])dnl
+popdef([AC_Prefix])dnl
+])
 
 
 
@@ -603,7 +610,9 @@ AC_DEFUN(AC_INIT_NOTICE,
 # gives unlimited permission to copy, distribute and modify it.
 
 # Defaults:
-ac_help=
+ac_arg_with_help=
+ac_arg_enable_help=
+ac_arg_var_help=
 ac_default_prefix=/usr/local
 [#] Any additions from configure.in:])
 
@@ -738,21 +747,6 @@ changequote([, ])dnl
     esac
     eval "enable_${ac_feature}='$ac_optarg'" ;;
 
-  -env-* | --env-*)
-    ac_envvar=`echo $ac_option|sed -e 's/^-*env-//' -e 's/=.*//'`
-    # Reject names that are not valid shell variable names.
-changequote(, )dnl
-    if test -n "`echo $ac_envvar| sed 's/[_a-zA-Z0-9]//g'`"; then
-changequote([, ])dnl
-      AC_MSG_ERROR($ac_envvar: invalid variable name)
-    fi
-    case "$ac_option" in
-      *=*) ;;
-      *) AC_MSG_ERROR($ac_envvar: missing value) ;;
-    esac
-    eval "${ac_envvar}='$ac_optarg'"
-    export $ac_envvar ;;
-
   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
   | --exec | --exe | --ex)
@@ -783,7 +777,6 @@ Defaults for the options are specified in brackets.
 
 Configuration:
   --cache-file=FILE       cache test results in FILE
-  [--env-]VAR=VALUE       set environment variable VAR to VALUE
   --help                  print this message
   --no-create             do not create output files
   --quiet, --silent       do not print \`checking...' messages
@@ -832,9 +825,19 @@ Features and packages:
   --x-libraries=DIR       X library files are in DIR
 EOF
 changequote([, ])dnl
-    if test -n "$ac_help"; then
+dnl It would be great to sort, unfortunately, since each entry maybe
+dnl split on several lines, it is not as evident as a simple `| sort'.
+    if test -n "$ac_arg_enable_help"; then
+      echo "
+--enable options recognized:$ac_arg_enable_help"
+    fi
+    if test -n "$ac_arg_with_help"; then
+      echo "
+--with options recognized:$ac_arg_with_help"
+    fi
+    if test -n "$ac_arg_var_help"; then
       echo "
---enable and --with options recognized:$ac_help"
+Some of the influent environment variables:$ac_arg_var_help"
     fi
     exit 0 ;;
 
@@ -1243,7 +1246,7 @@ dnl AC_ARG_ENABLE(FEATURE, HELP-STRING, ACTION-IF-TRUE [, ACTION-IF-FALSE])
 dnl -----------------------------------------------------------------------
 AC_DEFUN(AC_ARG_ENABLE,
 [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
-ac_help="$ac_help
+ac_arg_enable_help="$ac_arg_enable_help
 [$2]"
 AC_DIVERT_POP()dnl
 [#] Check whether --enable-[$1] or --disable-[$1] was given.
@@ -1268,7 +1271,7 @@ dnl ### Working with optional software
 dnl AC_ARG_WITH(PACKAGE, HELP-STRING, ACTION-IF-TRUE [, ACTION-IF-FALSE])
 AC_DEFUN(AC_ARG_WITH,
 [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
-ac_help="$ac_help
+ac_arg_with_help="$ac_arg_with_help
 [$2]"
 AC_DIVERT_POP()dnl
 [#] Check whether --with-[$1] or --without-[$1] was given.
@@ -1288,6 +1291,27 @@ AC_ARG_WITH([$1], [  --with-$1], [$2], [$3])dnl
 
 
 
+dnl ### Remembering env vars for reconfiguring
+
+dnl AC_ARG_VAR(VARNAME, DOCUMENTATION)
+dnl ----------------------------------
+dnl Register VARNAME as a variable configure should remember, and
+dnl document it in --help.
+AC_DEFUN(AC_ARG_VAR,
+[AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
+ac_arg_var_help="$ac_arg_var_help
+AC_HELP_STRING([$1], [$2], [              ])"
+AC_DIVERT_POP()dnl
+dnl Prepend instead of appending, so that envvars set on the cmd line
+dnl win over the environment.  Don't register envvars not set.
+dnl Don't register several times.
+case "${$1+set} $ac_configure_args" in
+ *" $1="* );;
+ "set "*) ac_configure_args="$1='[$]$1' $ac_configure_args";;
+esac])
+
+
+
 dnl ### Transforming program names.
 
 
@@ -2474,8 +2498,8 @@ AC_SHELL_IFELSE(test AC_VAR_GET(ac_var) = yes,
 AC_VAR_POPDEF([ac_var])dnl
 ])dnl AC_CHECK_DECL
 
-dnl AC_CHECK_DECL(SYMBOL... , [, INCLUDES,
-dnl              [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl AC_CHECK_DECLS(SYMBOL... , [, INCLUDES,
+dnl                [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
 AC_DEFUN(AC_CHECK_DECLS,
 [for ac_sym in $1
 do
diff --git a/acspecific.m4 b/acspecific.m4
index 7ac816e8..8045651a 100644
--- a/acspecific.m4
+++ b/acspecific.m4
@@ -76,6 +76,7 @@ dnl just gives the user an opportunity to specify an alternative search
 dnl list for the C compiler.
 AC_DEFUN(AC_PROG_CC,
 [AC_BEFORE([$0], [AC_PROG_CPP])dnl
+AC_ARG_VAR([CFLAGS], [Extra flags for the C compiler])
 ifelse([$1], ,
 [
   AC_CHECK_PROG(CC, gcc, gcc)
diff --git a/autoconf.texi b/autoconf.texi
index 9e56720e..2b1655af 100644
--- a/autoconf.texi
+++ b/autoconf.texi
@@ -376,7 +376,7 @@ systems that lack them.  Work is in progress to add those features in
 the future.
 
 Autoconf imposes some restrictions on the names of macros used with
-@code{#ifdef} in C programs (@pxref{Preprocessor Symbol Index}).
+@code{#if} in C programs (@pxref{Preprocessor Symbol Index}).
 
 Autoconf requires GNU @code{m4} in order to generate the scripts.  It
 uses features that some UNIX versions of @code{m4} do not have.  It also
diff --git a/configure b/configure
index 9618d0e3..94cd5037 100755
--- a/configure
+++ b/configure
@@ -8,7 +8,9 @@
 # gives unlimited permission to copy, distribute and modify it.
 
 # Defaults:
-ac_help=
+ac_arg_with_help=
+ac_arg_enable_help=
+ac_arg_var_help=
 ac_default_prefix=/usr/local
 # Any additions from configure.in:
 
@@ -121,19 +123,6 @@ do
     esac
     eval "enable_${ac_feature}='$ac_optarg'" ;;
 
-  -env-* | --env-*)
-    ac_envvar=`echo $ac_option|sed -e 's/^-*env-//' -e 's/=.*//'`
-    # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_envvar| sed 's/[_a-zA-Z0-9]//g'`"; then
-      { echo "configure: error: $ac_envvar: invalid variable name" 1>&2; exit 1; }
-    fi
-    case "$ac_option" in
-      *=*) ;;
-      *) { echo "configure: error: $ac_envvar: missing value" 1>&2; exit 1; } ;;
-    esac
-    eval "${ac_envvar}='$ac_optarg'"
-    export $ac_envvar ;;
-
   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
   | --exec | --exe | --ex)
@@ -163,7 +152,6 @@ Defaults for the options are specified in brackets.
 
 Configuration:
   --cache-file=FILE       cache test results in FILE
-  [--env-]VAR=VALUE       set environment variable VAR to VALUE
   --help                  print this message
   --no-create             do not create output files
   --quiet, --silent       do not print \`checking...' messages
@@ -211,9 +199,17 @@ Features and packages:
   --x-includes=DIR        X include files are in DIR
   --x-libraries=DIR       X library files are in DIR
 EOF
-    if test -n "$ac_help"; then
+    if test -n "$ac_arg_enable_help"; then
+      echo "
+--enable options recognized:$ac_arg_enable_help"
+    fi
+    if test -n "$ac_arg_with_help"; then
+      echo "
+--with options recognized:$ac_arg_with_help"
+    fi
+    if test -n "$ac_arg_var_help"; then
       echo "
---enable and --with options recognized:$ac_help"
+Some of the influent environment variables:$ac_arg_var_help"
     fi
     exit 0 ;;
 
@@ -587,7 +583,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word... $ac_c" 1>&6
-echo "configure:591: checking for $ac_word" 1>&5
+echo "configure:587: checking for $ac_word" 1>&5
 if test "${ac_cv_path_M4+set}" = set; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -628,7 +624,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word... $ac_c" 1>&6
-echo "configure:632: checking for $ac_word" 1>&5
+echo "configure:628: checking for $ac_word" 1>&5
 if test "${ac_cv_prog_AWK+set}" = set; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -661,7 +657,7 @@ done
 # Extract the first word of "perl", so it can be a program name with args.
 set dummy perl; ac_word=$2
 echo $ac_n "checking for $ac_word... $ac_c" 1>&6
-echo "configure:665: checking for $ac_word" 1>&5
+echo "configure:661: checking for $ac_word" 1>&5
 if test "${ac_cv_path_PERL+set}" = set; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -731,7 +727,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install... $ac_c" 1>&6
-echo "configure:735: checking for a BSD compatible install" 1>&5
+echo "configure:731: checking for a BSD compatible install" 1>&5
 if test -z "$INSTALL"; then
 if test "${ac_cv_path_install+set}" = set; then
   echo $ac_n "(cached) $ac_c" 1>&6
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index 9e56720e..2b1655af 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -376,7 +376,7 @@ systems that lack them.  Work is in progress to add those features in
 the future.
 
 Autoconf imposes some restrictions on the names of macros used with
-@code{#ifdef} in C programs (@pxref{Preprocessor Symbol Index}).
+@code{#if} in C programs (@pxref{Preprocessor Symbol Index}).
 
 Autoconf requires GNU @code{m4} in order to generate the scripts.  It
 uses features that some UNIX versions of @code{m4} do not have.  It also
diff --git a/doc/install.texi b/doc/install.texi
index a9432a9e..b40df89e 100644
--- a/doc/install.texi
+++ b/doc/install.texi
@@ -67,15 +67,26 @@ other programs in order to regenerate files that came with the distribution.
 @node Compilers and Options
 @section Compilers and Options
 
-Some systems require unusual options for compilation or linking that
-the @code{configure} script does not know about.  You can give
-@code{configure} initial values for variables by setting them in the
-environment.  Using a Bourne-compatible shell, you can do that on the
-command line like this:
+Some systems require unusual options for compilation or linking that the
+@code{configure} script does not know about.  Run @samp{./configure
+--help} for details on some of the pertinent environment variables.
+
+You can give @code{configure} initial values for variables by setting
+them in the environment.  You can do that on the command line like this:
 @example
 ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
 @end example
 
+Please, note that the former interface:
+@example
+CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+@end example
+or
+@example
+env CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+@end example
+is deprecated and should be avoided.
+
 @node Multiple Architectures
 @section Compiling For Multiple Architectures
 
diff --git a/install.texi b/install.texi
index a9432a9e..b40df89e 100644
--- a/install.texi
+++ b/install.texi
@@ -67,15 +67,26 @@ other programs in order to regenerate files that came with the distribution.
 @node Compilers and Options
 @section Compilers and Options
 
-Some systems require unusual options for compilation or linking that
-the @code{configure} script does not know about.  You can give
-@code{configure} initial values for variables by setting them in the
-environment.  Using a Bourne-compatible shell, you can do that on the
-command line like this:
+Some systems require unusual options for compilation or linking that the
+@code{configure} script does not know about.  Run @samp{./configure
+--help} for details on some of the pertinent environment variables.
+
+You can give @code{configure} initial values for variables by setting
+them in the environment.  You can do that on the command line like this:
 @example
 ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
 @end example
 
+Please, note that the former interface:
+@example
+CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+@end example
+or
+@example
+env CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+@end example
+is deprecated and should be avoided.
+
 @node Multiple Architectures
 @section Compiling For Multiple Architectures
 
diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4
index a5aa636d..142bd2e9 100644
--- a/lib/autoconf/general.m4
+++ b/lib/autoconf/general.m4
@@ -529,12 +529,14 @@ popdef([ac_width])dnl
 popdef([ac_cursor])])
 
 
-dnl AC_HELP_STRING(LHS, RHS)
-dnl ------------------------
+dnl AC_HELP_STRING(LHS, RHS[, COLUMN])
+dnl ----------------------------------
 dnl
 dnl Format an Autoconf macro's help string so that it looks pretty when
-dnl the user executes "configure --help".  This macro takes two
-dnl arguments, a "left hand side" (LHS), and a "right hand side" (RHS).
+dnl the user executes "configure --help".  This macro takes three
+dnl arguments, a "left hand side" (LHS), a "right hand side" (RHS), and
+dnl the COLUMN which is a string of wide spaces which leads to the
+dnl the RHS column (default: 26 white spaces).
 dnl
 dnl The resulting string is suitable for use in other macros that require
 dnl a help string (e.g. AC_ARG_WITH).
@@ -570,23 +572,28 @@ dnl  column 0                  column 26
 dnl
 dnl This macro is a adhoc version of AC_WRAP.
 define([AC_HELP_STRING],
-[pushdef([ac_prefix], [                          ])dnl 26 spaces
-pushdef([ac_width], m4_eval(79 - len(ac_prefix)))dnl
-pushdef([ac_cursor], 0)dnl
-m4_format([  %-23s ], [$1])dnl
+[pushdef([AC_Prefix], m4_default([$3], [                          ]))dnl
+pushdef([AC_Prefix_Len], len(AC_Prefix))dnl Default: 26
+pushdef([AC_Prefix_Format], [  %-]m4_eval(len(AC_Prefix) - 3)[s])dnl [  %-23s]
+pushdef([AC_Width], m4_eval(79 - AC_Prefix_Len))dnl Width of the RHS column.
+pushdef([AC_Cursor], 0)dnl
+m4_format(AC_Prefix_Format, [$1])dnl
 dnl If the option is too wide, leave it alone on the line
-ifelse(m4_eval(len(m4_format([  %-23s ], [$1])) > 26),
+ifelse(m4_eval(len(m4_format(AC_Prefix_Format, [$1])) > AC_Prefix_Len),
        1, [
-]ac_prefix)dnl
-AC_FOREACH([ac_word], $2,
-[define([ac_cursor], m4_eval(ac_cursor + len(ac_word) + 1))dnl
-ifelse(m4_eval(ac_cursor > ac_width),
-       1, [define([ac_cursor], m4_eval(len(ac_word) + 1))]
-ac_prefix)dnl
-ac_word ])dnl
-popdef([ac_prefix])dnl
-popdef([ac_width])dnl
-popdef([ac_cursor])])
+]AC_Prefix)dnl
+AC_FOREACH([AC_Word], $2,
+[define([AC_Cursor], m4_eval(AC_Cursor + len(AC_Word) + 1))dnl
+ifelse(m4_eval(AC_Cursor > AC_Width),
+       1, [define([AC_Cursor], m4_eval(len(AC_Word) + 1))]
+AC_Prefix)dnl
+AC_Word ])dnl
+popdef([AC_Cursor])dnl
+popdef([AC_Width])dnl
+popdef([AC_Prefix_Format])dnl
+popdef([AC_Prefix_Len])dnl
+popdef([AC_Prefix])dnl
+])
 
 
 
@@ -603,7 +610,9 @@ AC_DEFUN(AC_INIT_NOTICE,
 # gives unlimited permission to copy, distribute and modify it.
 
 # Defaults:
-ac_help=
+ac_arg_with_help=
+ac_arg_enable_help=
+ac_arg_var_help=
 ac_default_prefix=/usr/local
 [#] Any additions from configure.in:])
 
@@ -738,21 +747,6 @@ changequote([, ])dnl
     esac
     eval "enable_${ac_feature}='$ac_optarg'" ;;
 
-  -env-* | --env-*)
-    ac_envvar=`echo $ac_option|sed -e 's/^-*env-//' -e 's/=.*//'`
-    # Reject names that are not valid shell variable names.
-changequote(, )dnl
-    if test -n "`echo $ac_envvar| sed 's/[_a-zA-Z0-9]//g'`"; then
-changequote([, ])dnl
-      AC_MSG_ERROR($ac_envvar: invalid variable name)
-    fi
-    case "$ac_option" in
-      *=*) ;;
-      *) AC_MSG_ERROR($ac_envvar: missing value) ;;
-    esac
-    eval "${ac_envvar}='$ac_optarg'"
-    export $ac_envvar ;;
-
   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
   | --exec | --exe | --ex)
@@ -783,7 +777,6 @@ Defaults for the options are specified in brackets.
 
 Configuration:
   --cache-file=FILE       cache test results in FILE
-  [--env-]VAR=VALUE       set environment variable VAR to VALUE
   --help                  print this message
   --no-create             do not create output files
   --quiet, --silent       do not print \`checking...' messages
@@ -832,9 +825,19 @@ Features and packages:
   --x-libraries=DIR       X library files are in DIR
 EOF
 changequote([, ])dnl
-    if test -n "$ac_help"; then
+dnl It would be great to sort, unfortunately, since each entry maybe
+dnl split on several lines, it is not as evident as a simple `| sort'.
+    if test -n "$ac_arg_enable_help"; then
+      echo "
+--enable options recognized:$ac_arg_enable_help"
+    fi
+    if test -n "$ac_arg_with_help"; then
+      echo "
+--with options recognized:$ac_arg_with_help"
+    fi
+    if test -n "$ac_arg_var_help"; then
       echo "
---enable and --with options recognized:$ac_help"
+Some of the influent environment variables:$ac_arg_var_help"
     fi
     exit 0 ;;
 
@@ -1243,7 +1246,7 @@ dnl AC_ARG_ENABLE(FEATURE, HELP-STRING, ACTION-IF-TRUE [, ACTION-IF-FALSE])
 dnl -----------------------------------------------------------------------
 AC_DEFUN(AC_ARG_ENABLE,
 [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
-ac_help="$ac_help
+ac_arg_enable_help="$ac_arg_enable_help
 [$2]"
 AC_DIVERT_POP()dnl
 [#] Check whether --enable-[$1] or --disable-[$1] was given.
@@ -1268,7 +1271,7 @@ dnl ### Working with optional software
 dnl AC_ARG_WITH(PACKAGE, HELP-STRING, ACTION-IF-TRUE [, ACTION-IF-FALSE])
 AC_DEFUN(AC_ARG_WITH,
 [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
-ac_help="$ac_help
+ac_arg_with_help="$ac_arg_with_help
 [$2]"
 AC_DIVERT_POP()dnl
 [#] Check whether --with-[$1] or --without-[$1] was given.
@@ -1288,6 +1291,27 @@ AC_ARG_WITH([$1], [  --with-$1], [$2], [$3])dnl
 
 
 
+dnl ### Remembering env vars for reconfiguring
+
+dnl AC_ARG_VAR(VARNAME, DOCUMENTATION)
+dnl ----------------------------------
+dnl Register VARNAME as a variable configure should remember, and
+dnl document it in --help.
+AC_DEFUN(AC_ARG_VAR,
+[AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
+ac_arg_var_help="$ac_arg_var_help
+AC_HELP_STRING([$1], [$2], [              ])"
+AC_DIVERT_POP()dnl
+dnl Prepend instead of appending, so that envvars set on the cmd line
+dnl win over the environment.  Don't register envvars not set.
+dnl Don't register several times.
+case "${$1+set} $ac_configure_args" in
+ *" $1="* );;
+ "set "*) ac_configure_args="$1='[$]$1' $ac_configure_args";;
+esac])
+
+
+
 dnl ### Transforming program names.
 
 
@@ -2474,8 +2498,8 @@ AC_SHELL_IFELSE(test AC_VAR_GET(ac_var) = yes,
 AC_VAR_POPDEF([ac_var])dnl
 ])dnl AC_CHECK_DECL
 
-dnl AC_CHECK_DECL(SYMBOL... , [, INCLUDES,
-dnl              [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl AC_CHECK_DECLS(SYMBOL... , [, INCLUDES,
+dnl                [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
 AC_DEFUN(AC_CHECK_DECLS,
 [for ac_sym in $1
 do
diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
index 7ac816e8..8045651a 100644
--- a/lib/autoconf/specific.m4
+++ b/lib/autoconf/specific.m4
@@ -76,6 +76,7 @@ dnl just gives the user an opportunity to specify an alternative search
 dnl list for the C compiler.
 AC_DEFUN(AC_PROG_CC,
 [AC_BEFORE([$0], [AC_PROG_CPP])dnl
+AC_ARG_VAR([CFLAGS], [Extra flags for the C compiler])
 ifelse([$1], ,
 [
   AC_CHECK_PROG(CC, gcc, gcc)