From be0b76c255a5d2960a2cf0ad0a28c08df8f05b31 Mon Sep 17 00:00:00 2001
From: oliva <[EMAIL REDACTED]>
Date: Wed, 15 Sep 1999 02:29:01 +0000
Subject: [PATCH] * acgeneral.m4 (Configuration): Accept --env-VAR=VALUE and
VAR=value. * autoconf.texi, install.texi: Document it. * configure: Rebuilt.
---
ChangeLog | 7 +++++++
acgeneral.m4 | 27 +++++++++++++++++++++++++++
autoconf.texi | 2 ++
configure | 26 ++++++++++++++++++++++++--
doc/autoconf.texi | 2 ++
doc/install.texi | 21 ++++++++++++++-------
install.texi | 21 ++++++++++++++-------
lib/autoconf/general.m4 | 27 +++++++++++++++++++++++++++
8 files changed, 117 insertions(+), 16 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 287d7a4f..a5400722 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+1999-09-14 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
+
+ * acgeneral.m4 (Configuration): Accept --env-VAR=VALUE and
+ VAR=value.
+ * autoconf.texi, install.texi: Document it.
+ * configure: Rebuilt.
+
1999-09-14 Akim Demaille <akim@epita.fr>
* acgeneral.m4 (AC_HELP_STRING): Rewrite in m4. Have m4 work, and
diff --git a/acgeneral.m4 b/acgeneral.m4
index 44217731..bd01f41c 100644
--- a/acgeneral.m4
+++ b/acgeneral.m4
@@ -712,6 +712,21 @@ 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)
@@ -734,6 +749,7 @@ Usage: configure [options] [host]
Options: [defaults in brackets after descriptions]
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
@@ -979,6 +995,17 @@ changequote([, ])dnl
-*) AC_MSG_ERROR([$ac_option: invalid option; use --help to show usage])
;;
+ *=*)
+ ac_envvar=`echo $ac_option|sed -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
+ eval "${ac_envvar}='$ac_optarg'"
+ export $ac_envvar ;;
+
*)
changequote(, )dnl
if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
diff --git a/autoconf.texi b/autoconf.texi
index 6609c4f0..9ca57302 100644
--- a/autoconf.texi
+++ b/autoconf.texi
@@ -281,6 +281,7 @@ Running @code{configure} Scripts
* Optional Features:: Selecting optional features
* System Type:: Specifying the system type
* Sharing Defaults:: Setting site-wide defaults for @code{configure}
+* Environment Variables:: Defining environment variables.
* Operation Controls:: Changing how @code{configure} runs
Questions About Autoconf
@@ -5003,6 +5004,7 @@ may use comes with Autoconf.
* Optional Features:: Selecting optional features
* System Type:: Specifying the system type
* Sharing Defaults:: Setting site-wide defaults for @code{configure}
+* Environment Variables:: Defining environment variables.
* Operation Controls:: Changing how @code{configure} runs
@end menu
diff --git a/configure b/configure
index 291d7704..5e9b3673 100755
--- a/configure
+++ b/configure
@@ -120,6 +120,19 @@ 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)
@@ -141,6 +154,7 @@ Usage: configure [options] [host]
Options: [defaults in brackets after descriptions]
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
@@ -381,6 +395,15 @@ EOF
-*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
;;
+ *=*)
+ ac_envvar=`echo $ac_option|sed -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
+ eval "${ac_envvar}='$ac_optarg'"
+ export $ac_envvar ;;
+
*)
if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
echo "configure: warning: $ac_option: invalid host type" 1>&2
@@ -897,8 +920,7 @@ ac_given_INSTALL="$INSTALL"
# Allow concurrent executions
conftest=cft\$\$
-: \${CONFIG_FILES="Makefile
-testsuite/Makefile"}
+: \${CONFIG_FILES="Makefile testsuite/Makefile"}
rm -fr \`echo "\$CONFIG_FILES " | sed "s/:@BKL@^ @BKR@*//g"\`
trap 'rm -fr \$conftest*; exit 1' 1 2 15
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index 6609c4f0..9ca57302 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -281,6 +281,7 @@ Running @code{configure} Scripts
* Optional Features:: Selecting optional features
* System Type:: Specifying the system type
* Sharing Defaults:: Setting site-wide defaults for @code{configure}
+* Environment Variables:: Defining environment variables.
* Operation Controls:: Changing how @code{configure} runs
Questions About Autoconf
@@ -5003,6 +5004,7 @@ may use comes with Autoconf.
* Optional Features:: Selecting optional features
* System Type:: Specifying the system type
* Sharing Defaults:: Setting site-wide defaults for @code{configure}
+* Environment Variables:: Defining environment variables.
* Operation Controls:: Changing how @code{configure} runs
@end menu
diff --git a/doc/install.texi b/doc/install.texi
index f26dfcd4..a9432a9e 100644
--- a/doc/install.texi
+++ b/doc/install.texi
@@ -73,13 +73,7 @@ the @code{configure} script does not know about. You can give
environment. Using a Bourne-compatible shell, you can do that on the
command line like this:
@example
-CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
-@end example
-
-@noindent
-Or on systems that have the @code{env} program, you can do it like this:
-@example
-env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
@end example
@node Multiple Architectures
@@ -174,6 +168,19 @@ default values for variables like @code{CC}, @code{cache_file}, and
the @code{CONFIG_SITE} environment variable to the location of the site
script. A warning: not all @code{configure} scripts look for a site script.
+@node Environment Variables
+@section Environment Variables
+
+Variables not defined in a site shell script can be set in the
+environment passed to configure. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you can set them
+in the @code{configure} command line, using @samp{--env-VAR=value} or
+@samp{VAR=value}. For example, the switch
+@samp{--env-CC=/usr/local2/bin/gcc} will cause the specified gcc to be
+used as the C compiler (unless it is overridden in the site shell
+script).
+
@node Operation Controls
@section Operation Controls
diff --git a/install.texi b/install.texi
index f26dfcd4..a9432a9e 100644
--- a/install.texi
+++ b/install.texi
@@ -73,13 +73,7 @@ the @code{configure} script does not know about. You can give
environment. Using a Bourne-compatible shell, you can do that on the
command line like this:
@example
-CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
-@end example
-
-@noindent
-Or on systems that have the @code{env} program, you can do it like this:
-@example
-env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
@end example
@node Multiple Architectures
@@ -174,6 +168,19 @@ default values for variables like @code{CC}, @code{cache_file}, and
the @code{CONFIG_SITE} environment variable to the location of the site
script. A warning: not all @code{configure} scripts look for a site script.
+@node Environment Variables
+@section Environment Variables
+
+Variables not defined in a site shell script can be set in the
+environment passed to configure. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you can set them
+in the @code{configure} command line, using @samp{--env-VAR=value} or
+@samp{VAR=value}. For example, the switch
+@samp{--env-CC=/usr/local2/bin/gcc} will cause the specified gcc to be
+used as the C compiler (unless it is overridden in the site shell
+script).
+
@node Operation Controls
@section Operation Controls
diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4
index 44217731..bd01f41c 100644
--- a/lib/autoconf/general.m4
+++ b/lib/autoconf/general.m4
@@ -712,6 +712,21 @@ 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)
@@ -734,6 +749,7 @@ Usage: configure [options] [host]
Options: [defaults in brackets after descriptions]
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
@@ -979,6 +995,17 @@ changequote([, ])dnl
-*) AC_MSG_ERROR([$ac_option: invalid option; use --help to show usage])
;;
+ *=*)
+ ac_envvar=`echo $ac_option|sed -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
+ eval "${ac_envvar}='$ac_optarg'"
+ export $ac_envvar ;;
+
*)
changequote(, )dnl
if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then