[binutils-gdb] Use a stamp file for init.c

Tom Tromey tromey@sourceware.org
Mon Jul 9 14:04:00 GMT 2018


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=1998086d5436499e8eaf16772e300459662c3d7c

commit 1998086d5436499e8eaf16772e300459662c3d7c
Author: Tom Tromey <tom@tromey.com>
Date:   Mon Jul 2 07:03:13 2018 -0600

    Use a stamp file for init.c
    
    This introduces a stamp file for init.c.  This prevents constant
    rebuilds of init.o, by arranging for init.c to only be modified when
    its contents change.  (FWIW this is a standard idiom in use by
    Automake and by gdb itself for many years.)
    
    gdb/ChangeLog
    2018-07-09  Tom Tromey  <tom@tromey.com>
    
    	* Makefile.in (init.c): Depend on stamp-init.
    	(stamp-init): New rule, from init.c rule.
    	(clean mostlyclean): Remove stamp-init.

Diff:
---
 gdb/ChangeLog   | 6 ++++++
 gdb/Makefile.in | 9 +++++----
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 93f972b3..7e39800 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
 2018-07-09  Tom Tromey  <tom@tromey.com>
 
+	* Makefile.in (init.c): Depend on stamp-init.
+	(stamp-init): New rule, from init.c rule.
+	(clean mostlyclean): Remove stamp-init.
+
+2018-07-09  Tom Tromey  <tom@tromey.com>
+
 	* Makefile.in (INIT_FILES): Remove CONFIG_SRCS,
 	SUBDIR_GCC_COMPILE_SRCS.
 
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index b35ca2e..d14e867 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -1849,7 +1849,8 @@ test-cp-name-parser$(EXEEXT): test-cp-name-parser.o $(LIBIBERTY)
 # in sub-directories such as cli/ and mi/.
 
 INIT_FILES = $(COMMON_OBS)
-init.c: $(INIT_FILES)
+init.c: stamp-init; @true
+stamp-init: $(INIT_FILES)
 	@$(ECHO_INIT_C) echo "Making init.c"
 	@rm -f init.c-tmp init.l-tmp
 	@touch init.c-tmp
@@ -1879,8 +1880,8 @@ init.c: $(INIT_FILES)
 	@echo '{' >>init.c-tmp
 	@sed -e 's/\(.*\)/  _initialize_\1 ();/' <init.l-tmp >>init.c-tmp
 	@echo '}' >>init.c-tmp
-	@rm init.l-tmp
-	@mv init.c-tmp init.c
+	@$(SHELL) $(srcdir)/../move-if-change init.c-tmp init.c
+	@echo stamp > stamp-init
 
 .PRECIOUS: init.c
 
@@ -1947,7 +1948,7 @@ tags: TAGS
 clean mostlyclean: $(CONFIG_CLEAN)
 	@$(MAKE) $(FLAGS_TO_PASS) DO=clean "DODIRS=$(CLEANDIRS)" subdir_do
 	rm -f *.o *.a $(ADD_FILES) *~ init.c-tmp init.l-tmp version.c-tmp
-	rm -f init.c version.c
+	rm -f init.c stamp-init version.c
 	rm -f gdb$(EXEEXT) core make.log
 	rm -f gdb[0-9]$(EXEEXT)
 	rm -f test-cp-name-parser$(EXEEXT)



More information about the Gdb-cvs mailing list