Add logic to detect changes in generated files. If the old
and new files are identical, don't touch the generated file.
This avoids a lot of churn since many files depend on trace.h.

Signed-off-by: Blue Swirl <blauwir...@gmail.com>
---
 Makefile |   18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index ff39025..085e8ed 100644
--- a/Makefile
+++ b/Makefile
@@ -107,10 +107,24 @@ ui/vnc.o: QEMU_CFLAGS += $(VNC_TLS_CFLAGS)
 bt-host.o: QEMU_CFLAGS += $(BLUEZ_CFLAGS)

 trace.h: $(SRC_PATH)/trace-events config-host.mak
-       $(call quiet-command,sh $(SRC_PATH)/tracetool --$(TRACE_BACKEND) -h
< $< > $@,"  GEN   $@")
+       $(call quiet-command,sh $(SRC_PATH)/tracetool --$(TRACE_BACKEND) -h
< $< > $...@.tmp,"  GEN   $@")
+       @if test -f $@; then \
+         if ! cmp -s $@ $...@.tmp; then \
+           mv $...@.tmp $@; \
+         fi; \
+        else \
+         mv $...@.tmp $@; \
+        fi

 trace.c: $(SRC_PATH)/trace-events config-host.mak
-       $(call quiet-command,sh $(SRC_PATH)/tracetool --$(TRACE_BACKEND) -c
< $< > $@,"  GEN   $@")
+       $(call quiet-command,sh $(SRC_PATH)/tracetool --$(TRACE_BACKEND) -c
< $< > $...@.tmp,"  GEN   $@")
+       @if test -f $@; then \
+         if ! cmp -s $@ $...@.tmp; then \
+           mv $...@.tmp $@; \
+         fi; \
+        else \
+         mv $...@.tmp $@; \
+        fi

 trace.o: trace.c $(GENERATED_HEADERS)

-- 
1.6.2.4

Reply via email to