Browse Source

+ faster remake3 :
stops when two executables are equal

pierre 27 years ago
parent
commit
936aefc511
1 changed files with 35 additions and 13 deletions
  1. 35 13
      compiler/makefile

+ 35 - 13
compiler/makefile

@@ -35,6 +35,7 @@ ifndef PP
 PP=ppc386
 PP=ppc386
 endif
 endif
 
 
+
 #####################################################################
 #####################################################################
 # Setup Targets
 # Setup Targets
 #####################################################################
 #####################################################################
@@ -156,6 +157,19 @@ endif
 # End of configurable section. Do not edit after this line.
 # End of configurable section. Do not edit after this line.
 #####################################################################
 #####################################################################
 
 
+DIFFEXIST:=$(shell $(DIFF) --help)
+
+# Used to avoid unnecessary steps in remake3
+ifdef DIFFEXIST
+ifdef OLDPP
+DIFFRESULT:=$(shell $(DIFF) $(OLDPP) $(PP))
+else
+DIFFRESULT=Not equal
+endif
+else
+DIFFRESULT=No diff program
+endif
+
 # set correct defines (also needed by mkdep)
 # set correct defines (also needed by mkdep)
 PPDEFS:=-d$(CPU) -dGDB -dFPC
 PPDEFS:=-d$(CPU) -dGDB -dFPC
 
 
@@ -211,6 +225,18 @@ MSGFILES:=$(wildcard *.msg)
 
 
 all : $(EXENAME)
 all : $(EXENAME)
 
 
+ifndef DIFFRESULT
+next :
+	@echo $(OLDPP) and $(PP) are equal
+	$(CP) $(PP) $(EXENAME)
+else
+next :
+	$(MAKE) clean
+	$(MAKE) -C $(UNITDIR) clean
+	$(MAKE) -C $(UNITDIR) 'PP=$(COMPILERDIR)/$(PP)' all
+	$(MAKE) all
+endif
+
 clean :
 clean :
 	-rm -f *.o *.ppu *.s $(EXENAME)
 	-rm -f *.o *.ppu *.s $(EXENAME)
 
 
@@ -276,27 +302,18 @@ remake: $(EXENAME)
 	$(MAKE) 'PP=./$(TEMPNAME)' all
 	$(MAKE) 'PP=./$(TEMPNAME)' all
 
 
 remake3: $(TEMPNAME3)
 remake3: $(TEMPNAME3)
-	$(MAKE) clean
-	$(MAKE) -C $(UNITDIR) clean
-	$(MAKE) -C $(UNITDIR) 'PP=$(COMPILERDIR)/$(TEMPNAME3)' all
-	$(MAKE) 'PP=./$(TEMPNAME3)' all
+	$(MAKE) 'PP=./$(TEMPNAME3)' 'OLDPP=./$(TEMPNAME2)' next
 	diff $(TEMPNAME3) $(EXENAME)
 	diff $(TEMPNAME3) $(EXENAME)
 
 
 $(TEMPNAME1) : $(EXENAME)
 $(TEMPNAME1) : $(EXENAME)
 	$(REPLACE) $(EXENAME) $(TEMPNAME1)
 	$(REPLACE) $(EXENAME) $(TEMPNAME1)
 
 
 $(TEMPNAME2) : $(TEMPNAME1)
 $(TEMPNAME2) : $(TEMPNAME1)
-	$(MAKE) clean
-	$(MAKE) -C $(UNITDIR) clean
-	$(MAKE) -C $(UNITDIR) 'PP=$(COMPILERDIR)/$(TEMPNAME1)' all
-	$(MAKE) 'PP=./$(TEMPNAME1)' all
+	$(MAKE) 'PP=./$(TEMPNAME1)' 'OLDPP=' next
 	$(REPLACE) $(EXENAME) $(TEMPNAME2)
 	$(REPLACE) $(EXENAME) $(TEMPNAME2)
 
 
 $(TEMPNAME3) : $(TEMPNAME2)
 $(TEMPNAME3) : $(TEMPNAME2)
-	$(MAKE) clean
-	$(MAKE) -C $(UNITDIR) clean
-	$(MAKE) -C $(UNITDIR) 'PP=$(COMPILERDIR)/$(TEMPNAME2)' all
-	$(MAKE) 'PP=./$(TEMPNAME2)' all
+	$(MAKE) 'PP=./$(TEMPNAME2)' 'OLDPP=./$(TEMPNAME1)' next
 	$(REPLACE) $(EXENAME) $(TEMPNAME3)
 	$(REPLACE) $(EXENAME) $(TEMPNAME3)
 
 
 cycle:
 cycle:
@@ -419,10 +436,15 @@ rtl :
 
 
 rtlclean :
 rtlclean :
 	make -C $(UNITDIR) clean
 	make -C $(UNITDIR) clean
+
 # Test of log at the end
 # Test of log at the end
 # does CVS add # at start of each line ??
 # does CVS add # at start of each line ??
 # $Log$
 # $Log$
-# Revision 1.22  1998-07-23 18:17:58  michael
+# Revision 1.23  1998-08-06 10:42:56  pierre
+#   + faster remake3 :
+#     stops when two executables are equal
+#
+# Revision 1.22  1998/07/23 18:17:58  michael
 # + Added ansirtl target to make an ansistrings capable rtl
 # + Added ansirtl target to make an ansistrings capable rtl
 #
 #
 # Revision 1.21  1998/07/22 21:33:32  michael
 # Revision 1.21  1998/07/22 21:33:32  michael