From: Jan Kiszka <jan.kiszka@web.de>
To: Juan Quintela <quintela@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH 02/31] Move generation of config-host.h to Makefile from configure
Date: Fri, 09 Oct 2009 09:06:08 +0200 [thread overview]
Message-ID: <4ACEE0E0.1030307@web.de> (raw)
In-Reply-To: <479bbb59a908a1b60cb921e5f9718b7cd54d58d0.1254875337.git.quintela@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 4938 bytes --]
Juan Quintela wrote:
> Use timestamp based appreach to avoid not needed recompilation.
> Add it to rules.mak
>
This patch somehow raises the build noise ratio:
make[1]: `qemu-io' is up to date.
make[1]: `qemu-img' is up to date.
make[1]: `qemu-doc.html' is up to date.
make[1]: `qemu-tech.html' is up to date.
make[1]: `qemu.1' is up to date.
make[1]: `qemu-img.1' is up to date.
make[1]: `qemu-nbd.8' is up to date.
...
I don't immediately see why, but I bet you are so deep into this that
you can quickly find and fix the reason. :)
Thanks,
Jan
> Many thanks to Paolo Bonzini for helpding the design, and the debug.
>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> Makefile | 13 +++++++++----
> configure | 20 +-------------------
> create_config | 2 ++
> rules.mak | 9 +++++++++
> 4 files changed, 21 insertions(+), 23 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index c552739..144b392 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -29,7 +29,10 @@ else
> DOCS=
> endif
>
> -build-all: $(TOOLS) $(DOCS) recurse-all
> +SUBDIR_MAKEFLAGS=$(if $(V),,--no-print-directory)
> +
> +build-all: config-host.h
> + $(call quiet-command, $(MAKE) $(SUBDIR_MAKEFLAGS) $(TOOLS) $(DOCS) recurse-all,)
>
> config-host.mak: configure
> ifneq ($(wildcard config-host.mak),)
> @@ -37,10 +40,12 @@ ifneq ($(wildcard config-host.mak),)
> @sed -n "/.*Configured with/s/[^:]*: //p" $@ | sh
> endif
>
> -SUBDIR_MAKEFLAGS=$(if $(V),,--no-print-directory)
> +config-host.h: config-host.h-timestamp
> +config-host.h-timestamp: config-host.mak
> +
> SUBDIR_RULES=$(patsubst %,subdir-%, $(TARGET_DIRS))
>
> -subdir-%:
> +subdir-%: config-host.h
> $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" TARGET_DIR="$*/" all,)
>
> $(filter %-softmmu,$(SUBDIR_RULES)): libqemu_common.a
> @@ -200,7 +205,7 @@ clean:
> done
>
> distclean: clean
> - rm -f config-host.mak config-host.h config-host.ld $(DOCS) qemu-options.texi qemu-img-cmds.texi
> + rm -f config-host.mak config-host.h* config-host.ld $(DOCS) qemu-options.texi qemu-img-cmds.texi
> rm -f qemu-{doc,tech}.{info,aux,cp,dvi,fn,info,ky,log,pg,toc,tp,vr}
> for d in $(TARGET_DIRS) libhw32 libhw64 libuser; do \
> rm -rf $$d || exit 1 ; \
> diff --git a/configure b/configure
> index ed5d7d6..fd3cb24 100755
> --- a/configure
> +++ b/configure
> @@ -1800,13 +1800,8 @@ echo "-> Your SDL version is too old - please upgrade to have SDL support"
> fi
>
> config_host_mak="config-host.mak"
> -config_host_h="config-host.h"
> config_host_ld="config-host.ld"
>
> -#echo "Creating $config_host_mak and $config_host_h"
> -
> -test -f $config_host_h && mv $config_host_h ${config_host_h}~
> -
> echo "# Automatically generated by configure - do not modify" > $config_host_mak
> printf "# Configured with:" >> $config_host_mak
> printf " '%s'" "$0" "$@" >> $config_host_mak
> @@ -2064,18 +2059,6 @@ echo "LIBS+=$LIBS" >> $config_host_mak
> echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak
> echo "EXESUF=$EXESUF" >> $config_host_mak
>
> -echo "/* Automatically generated by configure - do not modify */" > $config_host_h
> -
> -/bin/sh $source_path/create_config < $config_host_mak >> $config_host_h
> -
> -if test -f ${config_host_h}~ ; then
> - if cmp -s $config_host_h ${config_host_h}~ ; then
> - mv ${config_host_h}~ $config_host_h
> - else
> - rm ${config_host_h}~
> - fi
> -fi
> -
> # generate list of library paths for linker script
>
> $ld --verbose -v 2> /dev/null | grep SEARCH_DIR > ${config_host_ld}
> @@ -2474,8 +2457,7 @@ fi
> echo "LDFLAGS+=$ldflags" >> $config_mak
> echo "QEMU_CFLAGS+=$cflags" >> $config_mak
>
> -echo "/* Automatically generated by configure - do not modify */" > $config_h
> -echo "#include \"../config-host.h\"" >> $config_h
> +echo "#include \"../config-host.h\"" > $config_h
>
> /bin/sh $source_path/create_config < $config_mak >> $config_h
>
> diff --git a/create_config b/create_config
> index 5bc8fb6..30d0487 100755
> --- a/create_config
> +++ b/create_config
> @@ -1,5 +1,7 @@
> #!/bin/sh
>
> +echo "/* Automatically generated by create_config - do not modify */"
> +
> while read line; do
>
> case $line in
> diff --git a/rules.mak b/rules.mak
> index b380903..ca95351 100644
> --- a/rules.mak
> +++ b/rules.mak
> @@ -35,3 +35,12 @@ quiet-command = $(if $(V),$1,$(if $(2),@echo $2 && $1, @$1))
>
> cc-option = $(if $(shell $(CC) $1 $2 -S -o /dev/null -xc /dev/null \
> >/dev/null 2>&1 && echo OK), $2, $3)
> +
> +# Generate timestamp files for .h include files
> +
> +%.h: %.h-timestamp
> + @test -f $@ || cp $< $@
> +
> +%.h-timestamp: %.mak
> + $(call quiet-command, $(SRC_PATH)/create_config < $< > $@, " GEN $*.h")
> + @cmp $@ $*.h >/dev/null 2>&1 || cp $@ $*.h
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]
next prev parent reply other threads:[~2009-10-09 7:06 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-07 0:40 [Qemu-devel] [PATCH v5 00/31] Compile only devices that are used Juan Quintela
2009-10-07 0:40 ` [Qemu-devel] [PATCH 01/31] Don't include config-host.mak from inside config.mak Juan Quintela
2009-10-07 0:40 ` [Qemu-devel] [PATCH 02/31] Move generation of config-host.h to Makefile from configure Juan Quintela
2009-10-09 7:06 ` Jan Kiszka [this message]
2009-10-07 0:40 ` [Qemu-devel] [PATCH 03/31] Remove useless check for config-host.mak Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 04/31] Rename config.{h, mak} config-target.{h, mak} Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 05/31] Move generation of config-target.h to Makefile from configure Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 06/31] Add new config-devices.mak for each target Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 07/31] Generate config-devices.h Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 08/31] Generate gdbstub-xml.c only when needed Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 09/31] Only compile usb_ohci when one target uses it Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 10/31] Only compile isa_mmio " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 11/31] Only compile qdev_addr " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 12/31] Only compile nand " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 13/31] Only compile ecc " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 14/31] Only compile esp " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 15/31] Only compile escc " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 16/31] Only compile m48t59 " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 17/31] Only compile ptimer " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 18/31] Only compile sd " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 19/31] Only compile max7310 " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 20/31] Only compile wm8750 " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 21/31] Only compile twl92230 " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 22/31] Only compile tsc2005 " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 23/31] Only compile lm832x " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 24/31] Only compile tmp105 " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 25/31] Only compile stellaris_input " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 26/31] Only compile sd0303 " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 27/31] Only compile sd0323 " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 28/31] Only compile ads7846 " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 29/31] Only compile max111x " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 30/31] Only compile ssi-sd " Juan Quintela
2009-10-07 0:41 ` [Qemu-devel] [PATCH 31/31] Only compile ssi " Juan Quintela
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4ACEE0E0.1030307@web.de \
--to=jan.kiszka@web.de \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.