On Sun, 10/20 18:39, Stefan Weil wrote: > The latest configure invocation was saved in config-host.mak and could > be extracted from that file to recreate the configuration. > > Now it is saved in a new file config.status which can be directly executed > to recreate the configuration. The file name and the comments were copied > from GNU autoconf. > > Makefile now uses config.status, but also includes transitional code > for the old mechanism. > > Signed-off-by: Stefan Weil <s...@weilnetz.de> > --- > > This patch still does not escape special characters in the command line. > I expect that most users don't use such characters, so they have no problem. > > It's easy to fix that for hosts with bash: simply replace %s by %q. > If required, this can be done in a later patch. > > Regards, > Stefan Weil > > Makefile | 9 ++++++++- > configure | 15 +++++++++++++-- > 2 files changed, 21 insertions(+), 3 deletions(-) > > diff --git a/Makefile b/Makefile > index b15003f..073f18b 100644 > --- a/Makefile > +++ b/Makefile > @@ -28,7 +28,14 @@ CONFIG_ALL=y > include $(SRC_PATH)/rules.mak > config-host.mak: $(SRC_PATH)/configure > @echo $@ is out-of-date, running configure > - @sed -n "/.*Configured with/s/[^:]*: //p" $@ | sh > + @# TODO: The next lines include code which supports a smooth > + @# transition from old configurations without config.status. > + @# This code can be removed after QEMU 1.7. > + @if test -x config.status; then \ > + ./config.status; \ > + else \ > + sed -n "/.*Configured with/s/[^:]*: //p" $@ | sh; \ > + fi > else > config-host.mak: > ifneq ($(filter-out %clean,$(MAKECMDGOALS)),$(if $(MAKECMDGOALS),,fail)) > diff --git a/configure b/configure > index 57ee62a..125d0c5 100755 > --- a/configure > +++ b/configure > @@ -27,6 +27,19 @@ printf " '%s'" "$0" "$@" >> config.log > echo >> config.log > echo "#" >> config.log > > +# Save the configure command line for later reuse. > +cat <<EOD >config.status > +#!/bin/sh > +# Generated by configure. > +# Run this file to recreate the current configuration. > +# Compiler output produced by configure, useful for debugging > +# configure, is in config.log if it exists. > +EOD > +printf "exec" >>config.status > +printf " '%s'" "$0" "$@" >>config.status > +echo >>config.status > +chmod +x config.status > + > error_exit() { > echo > echo "ERROR: $1" > @@ -3765,8 +3778,6 @@ config_host_mak="config-host.mak" > echo "# Automatically generated by configure - do not modify" > >config-all-disas.mak > > echo "# Automatically generated by configure - do not modify" > > $config_host_mak > -printf "# Configured with:" >> $config_host_mak > -printf " '%s'" "$0" "$@" >> $config_host_mak > echo >> $config_host_mak > > echo all: >> $config_host_mak
Reviewed-by: Fam Zheng <f...@redhat.com>