Add stamp files for f/str-*

Ian Lance Taylor ian@wasabisystems.com
Wed Jan 28 18:13:00 GMT 2004


I find it a bit tedious that when I modify libiberty, several parts of
the Fortran compiler are rebuilt.  This happens because fini depends
upon libiberty, and str-*.[hj] depend upon fini.

This patch fixes that by using stamp files for f/str-*.[hj].

Note that we don't have to add the new files to f77.mostlyclean
because the top level mostlyclean target already deletes */stamp-*.

OK for mainline?

Ian


2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>

	* Make-lang.in (f/str-*.h, f/str-*.j): Use stamp files and
	move-if-change to avoid changing these files unnecessarily.


Index: f/Make-lang.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/f/Make-lang.in,v
retrieving revision 1.140
diff -p -u -r1.140 Make-lang.in
--- f/Make-lang.in	21 Jan 2004 02:01:45 -0000	1.140
+++ f/Make-lang.in	28 Jan 2004 17:52:06 -0000
@@ -103,26 +103,54 @@ f/stamp-str: f/str-1t.h f/str-1t.j f/str
  f/str-op.h f/str-op.j f/str-ot.h f/str-ot.j
 	$(STAMP) f/stamp-str
 
-f/str-1t.h f/str-1t.j: f/fini$(build_exeext) f/str-1t.fin
-	./f/fini$(build_exeext) $(srcdir)/f/str-1t.fin f/str-1t.j f/str-1t.h
-
-f/str-2t.h f/str-2t.j: f/fini$(build_exeext) f/str-2t.fin
-	./f/fini$(build_exeext) $(srcdir)/f/str-2t.fin f/str-2t.j f/str-2t.h
-
-f/str-fo.h f/str-fo.j: f/fini$(build_exeext) f/str-fo.fin
-	./f/fini$(build_exeext) $(srcdir)/f/str-fo.fin f/str-fo.j f/str-fo.h
-
-f/str-io.h f/str-io.j: f/fini$(build_exeext) f/str-io.fin
-	./f/fini$(build_exeext) $(srcdir)/f/str-io.fin f/str-io.j f/str-io.h
-
-f/str-nq.h f/str-nq.j: f/fini$(build_exeext) f/str-nq.fin
-	./f/fini$(build_exeext) $(srcdir)/f/str-nq.fin f/str-nq.j f/str-nq.h
-
-f/str-op.h f/str-op.j: f/fini$(build_exeext) f/str-op.fin
-	./f/fini$(build_exeext) $(srcdir)/f/str-op.fin f/str-op.j f/str-op.h
-
-f/str-ot.h f/str-ot.j: f/fini$(build_exeext) f/str-ot.fin
-	./f/fini$(build_exeext) $(srcdir)/f/str-ot.fin f/str-ot.j f/str-ot.h
+f/str-1t.h f/str-1t.j: f/stamp-1t ; @true
+f/stamp-1t: f/fini$(build_exeext) f/str-1t.fin
+	./f/fini$(build_exeext) $(srcdir)/f/str-1t.fin f/tmp-str-1t.j f/tmp-str-1t.h
+	$(SHELL) $(srcdir)/move-if-change f/tmp-str-1t.j f/str-1t.j
+	$(SHELL) $(srcdir)/move-if-change f/tmp-str-1t.h f/str-1t.h
+	$(STAMP) f/stamp-1t
+
+f/str-2t.h f/str-2t.j: f/stamp-2t ; @true
+f/stamp-2t: f/fini$(build_exeext) f/str-2t.fin
+	./f/fini$(build_exeext) $(srcdir)/f/str-2t.fin f/tmp-str-2t.j f/tmp-str-2t.h
+	$(SHELL) $(srcdir)/move-if-change f/tmp-str-2t.j f/str-2t.j
+	$(SHELL) $(srcdir)/move-if-change f/tmp-str-2t.h f/str-2t.h
+	$(STAMP) f/stamp-2t
+
+f/str-fo.h f/str-fo.j: f/stamp-fo ; @true
+f/stamp-fo: f/fini$(build_exeext) f/str-fo.fin
+	./f/fini$(build_exeext) $(srcdir)/f/str-fo.fin f/tmp-str-fo.j f/tmp-str-fo.h
+	$(SHELL) $(srcdir)/move-if-change f/tmp-str-fo.j f/str-fo.j
+	$(SHELL) $(srcdir)/move-if-change f/tmp-str-fo.h f/str-fo.h
+	$(STAMP) f/stamp-fo
+
+f/str-io.h f/str-io.j: f/stamp-io ; @true
+f/stamp-io: f/fini$(build_exeext) f/str-io.fin
+	./f/fini$(build_exeext) $(srcdir)/f/str-io.fin f/tmp-str-io.j f/tmp-str-io.h
+	$(SHELL) $(srcdir)/move-if-change f/tmp-str-io.j f/str-io.j
+	$(SHELL) $(srcdir)/move-if-change f/tmp-str-io.h f/str-io.h
+	$(STAMP) f/stamp-io
+
+f/str-nq.h f/str-nq.j: f/stamp-nq ; @true
+f/stamp-nq: f/fini$(build_exeext) f/str-nq.fin
+	./f/fini$(build_exeext) $(srcdir)/f/str-nq.fin f/tmp-str-nq.j f/tmp-str-nq.h
+	$(SHELL) $(srcdir)/move-if-change f/tmp-str-nq.j f/str-nq.j
+	$(SHELL) $(srcdir)/move-if-change f/tmp-str-nq.h f/str-nq.h
+	$(STAMP) f/stamp-nq
+
+f/str-op.h f/str-op.j: f/stamp-op ; @true
+f/stamp-op: f/fini$(build_exeext) f/str-op.fin
+	./f/fini$(build_exeext) $(srcdir)/f/str-op.fin f/tmp-str-op.j f/tmp-str-op.h
+	$(SHELL) $(srcdir)/move-if-change f/tmp-str-op.j f/str-op.j
+	$(SHELL) $(srcdir)/move-if-change f/tmp-str-op.h f/str-op.h
+	$(STAMP) f/stamp-op
+
+f/str-ot.h f/str-ot.j: f/stamp-ot ; @true
+f/stamp-ot: f/fini$(build_exeext) f/str-ot.fin
+	./f/fini$(build_exeext) $(srcdir)/f/str-ot.fin f/tmp-str-ot.j f/tmp-str-ot.h
+	$(SHELL) $(srcdir)/move-if-change f/tmp-str-ot.j f/str-ot.j
+	$(SHELL) $(srcdir)/move-if-change f/tmp-str-ot.h f/str-ot.h
+	$(STAMP) f/stamp-ot
 
 f/fini$(build_exeext): f/fini.o $(BUILD_LIBDEPS)
 	$(CC_FOR_BUILD) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o f/fini$(build_exeext) \
@@ -304,7 +332,7 @@ f77.maintainer-clean:
 # Stage hooks:
 # The main makefile has already created stage?/f.
 
-G77STAGESTUFF = f/*$(objext) f/fini$(build_exeext) f/stamp-str \
+G77STAGESTUFF = f/*$(objext) f/fini$(build_exeext) f/stamp-* \
   f/str-*.h f/str-*.j g77spec.o
 
 f77.stage1: stage1-start



More information about the Gcc-patches mailing list