[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 02/30] Move generation of config-host.h to Makefile
From: |
Juan Quintela |
Subject: |
[Qemu-devel] [PATCH 02/30] Move generation of config-host.h to Makefile from configure |
Date: |
Fri, 28 Aug 2009 20:56:37 +0200 |
Use timestamp based appreach to avoid not needed recompilation.
Add it to rules.mak
Many thanks to Paolo Bonzini for helpding the design, and the debug.
Signed-off-by: Juan Quintela <address@hidden>
---
Makefile | 10 +++++++---
configure | 20 +-------------------
create_config | 2 ++
rules.mak | 9 +++++++++
4 files changed, 19 insertions(+), 22 deletions(-)
diff --git a/Makefile b/Makefile
index bdac9b3..bf44461 100644
--- a/Makefile
+++ b/Makefile
@@ -24,7 +24,8 @@ else
DOCS=
endif
-build-all: $(TOOLS) $(DOCS) recurse-all
+build-all: config-host.h
+ $(MAKE) $(TOOLS) $(DOCS) recurse-all
config-host.mak: configure
ifneq ($(wildcard config-host.mak),)
@@ -32,10 +33,13 @@ ifneq ($(wildcard config-host.mak),)
@sed -n "/.*Configured with/s/[^:]*: //p" $@ | sh
endif
+config-host.h: config-host.h-timestamp
+config-host.h-timestamp: config-host.mak
+
SUBDIR_MAKEFLAGS=$(if $(V),,--no-print-directory)
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
@@ -192,7 +196,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; do \
rm -rf $$d || exit 1 ; \
diff --git a/configure b/configure
index b44ca4f..0b0fe2e 100755
--- a/configure
+++ b/configure
@@ -1691,13 +1691,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
@@ -1940,18 +1935,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}
@@ -2354,8 +2337,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 c0315ac..3cbfa3d 100644
--- a/rules.mak
+++ b/rules.mak
@@ -23,3 +23,12 @@ quiet-command = $(if $(V),$1,$(if $(2),@echo $2 && $1, @$1))
cc-option = $(shell if $(CC) $(1) $(2) -S -o /dev/null -xc /dev/null \
> /dev/null 2>&1; then echo "$(2)"; else echo "$(3)"; fi ;)
+
+# 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
--
1.6.2.5
- [Qemu-devel] [PATCH v4 00/30] Compile only devices that are used, Juan Quintela, 2009/08/28
- [Qemu-devel] [PATCH 01/30] Don't include config-host.mak from inside config.mak, Juan Quintela, 2009/08/28
- [Qemu-devel] [PATCH 02/30] Move generation of config-host.h to Makefile from configure,
Juan Quintela <=
- [Qemu-devel] [PATCH 03/30] Remove useless check for config-host.mak, Juan Quintela, 2009/08/28
- [Qemu-devel] [PATCH 06/30] Add new config-devices.mak for each target, Juan Quintela, 2009/08/28
- [Qemu-devel] [PATCH 05/30] Move generation of config-target.h to Makefile from configure, Juan Quintela, 2009/08/28
- [Qemu-devel] [PATCH 04/30] Rename config.{h, mak} config-target.{h, mak}, Juan Quintela, 2009/08/28
- [Qemu-devel] [PATCH 07/30] Generate gdbstub-xml.c only when needed, Juan Quintela, 2009/08/28
- [Qemu-devel] [PATCH 09/30] Only compile isa_mmio when one target uses it, Juan Quintela, 2009/08/28
- [Qemu-devel] [PATCH 10/30] Only compile qdev_addr when one target uses it, Juan Quintela, 2009/08/28
- [Qemu-devel] [PATCH 08/30] Only compile usb_ohci when one target uses it, Juan Quintela, 2009/08/28
- [Qemu-devel] [PATCH 11/30] Only compile nand when one target uses it, Juan Quintela, 2009/08/28
- [Qemu-devel] [PATCH 13/30] Only compile esp when one target uses it, Juan Quintela, 2009/08/28