[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3] configure: preserve various environment vari
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v3] configure: preserve various environment variables in config.status |
Date: |
Tue, 11 Sep 2018 15:11:22 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
On 04/09/2018 14:36, Daniel P. Berrangé wrote:
> The config.status script is auto-generated by configure upon
> completion. The intention is that config.status can be later invoked by
> the developer directly, or by make indirectly, to re-detect the same
> environment that configure originally used.
>
> The current config.status script, however, only contains a record of the
> command line arguments to configure. Various environment variables have
> an effect on what configure will find. In particular PKG_CONFIG_LIBDIR &
> PKG_CONFIG_PATH vars will affect what libraries pkg-config finds. The
> PATH var will affect what toolchain binaries and XXXX-config scripts are
> found. The LD_LIBRARY_PATH var will affect what libraries are
> found. Most commands have env variables that will override the name/path
> of the default version configure finds.
>
> All these key env variables should be recorded in the config.status script.
>
> Autoconf would also preserve CFLAGS, LDFLAGS, LIBS, CPPFLAGS, but QEMU
> deals with those differently, expecting extra flags to be set using
> configure args, rather than env variables. At the end of the script we
> also don't have the original values of those env vars, as we modify them
> during configure.
>
> Reviewed-by: Eric Blake <address@hidden>
> Reviewed-by: Stefan Weil <address@hidden>
> Signed-off-by: Daniel P. Berrange <address@hidden>
> ---
> configure | 40 ++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 40 insertions(+)
>
> Previously sent 3 (!) years ago:
>
> v1: http://lists.gnu.org/archive/html/qemu-devel/2015-11/msg03953.html
> v2: http://lists.gnu.org/archive/html/qemu-devel/2015-11/msg04074.html
>
> Changed in v3:
>
> - Added 'unset' code (Stefan)
> - Clarify CFLAGS handling (Eric)
>
>
> diff --git a/configure b/configure
> index e7bddc04b0..718e89724a 100755
> --- a/configure
> +++ b/configure
> @@ -7518,6 +7518,46 @@ cat <<EOD >config.status
> # Compiler output produced by configure, useful for debugging
> # configure, is in config.log if it exists.
> EOD
> +
> +preserve_env() {
> + envname=$1
> +
> + eval envval=\$$envname
> +
> + if test -n "$envval"
> + then
> + echo "$envname='$envval'" >> config.status
> + echo "export $envname" >> config.status
> + else
> + echo "unset $envname" >> config.status
> + fi
> +}
> +
> +# Preserve various env variables that influence what
> +# features/build target configure will detect
> +preserve_env AR
> +preserve_env AS
> +preserve_env CC
> +preserve_env CPP
> +preserve_env CXX
> +preserve_env INSTALL
> +preserve_env LD
> +preserve_env LD_LIBRARY_PATH
> +preserve_env LIBTOOL
> +preserve_env MAKE
> +preserve_env NM
> +preserve_env OBJCOPY
> +preserve_env PATH
> +preserve_env PKG_CONFIG
> +preserve_env PKG_CONFIG_LIBDIR
> +preserve_env PKG_CONFIG_PATH
> +preserve_env PYTHON
> +preserve_env SDL_CONFIG
> +preserve_env SDL2_CONFIG
> +preserve_env SMBD
> +preserve_env STRIP
> +preserve_env WINDRES
> +
> printf "exec" >>config.status
> printf " '%s'" "$0" "$@" >>config.status
> echo ' "$@"' >>config.status
>
Queued, thanks.
Paolo