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
This commit is contained in:
Giovanni Campagna 2011-01-01 16:20:34 +01:00
parent d9d56b7492
commit 68a0d7897f
2 changed files with 9 additions and 2 deletions

2
.gitignore vendored
View File

@ -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

View File

@ -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