[gnome-shell] Build: stop updating timestamp of st.h when not needed



commit 68a0d7897fa2bdf07b8ea39b67061282a4c75c7f
Author: Giovanni Campagna <gcampagna src gnome org>
Date:   Sat Jan 1 16:20:34 2011 +0100

    Build: stop updating timestamp of st.h when not needed
    
    Use the same approach as other generated headers (a temporary file,
    compare to the existing, then copy), to avoid touching st.h, so
    that other dependent objects are not rebuilt, if not needed.
    It should speed up building when switching git branches, as often
    config.status or automake are run, causing Makefiles to be recreated.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=638453

 .gitignore         |    2 ++
 src/Makefile-st.am |    9 +++++++--
 2 files changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 5a035eb..c3669d4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -52,6 +52,8 @@ src/test-recorder
 src/test-recorder.ogg
 src/test-theme
 src/st.h
+src/stamp-st.h
+src/stamp-st.h.tmp
 stamp-h1
 tests/run-test.sh
 xmldocs.make
diff --git a/src/Makefile-st.am b/src/Makefile-st.am
index 4d5d547..5792235 100644
--- a/src/Makefile-st.am
+++ b/src/Makefile-st.am
@@ -100,11 +100,16 @@ st_source_h =					\
 	st/st-widget.h				\
 	$(NULL)
 
-st.h: Makefile
+st.h: stamp-st.h
+	@true
+stamp-st.h: Makefile
 	$(AM_V_GEN) (echo "#define ST_H_INSIDE 1";	\
 	for name in $(st_source_h); do			\
 	  echo "#include <"$$name">";			\
-	done; echo "#undef ST_H_INSIDE") > st.h.tmp && mv st.h.tmp st.h
+	done; echo "#undef ST_H_INSIDE") > $  tmp &&  \
+	(cmp -s $  tmp st.h || cp $  tmp st.h) &&	\
+	rm -f $  tmp &&				\
+	echo timestamp > $(@F)
 
 BUILT_SOURCES += st.h
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]