* Don't print out HOW we are running Flex unless in verbose mode. We already
authorChris Lattner <sabre@nondot.org>
Mon, 4 Aug 2003 19:47:06 +0000 (19:47 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 4 Aug 2003 19:47:06 +0000 (19:47 +0000)
  hide the bison command line.
* If running flex or bison gives us the files we already have, don't overwrite
  the ones we have, which cause unnecessary compilation.  I demand the ability
  to make meaningless changes without penalty!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7571 91177308-0d34-0410-b5e6-96231b3b80d8

Makefile.common
Makefile.rules

index 2612e6fc656b3cbe090ff6e3efae8fceef716a4c..9dfbdffe249db04deb0fbcb7fa4c6c6d123108fd 100644 (file)
@@ -766,10 +766,15 @@ YACC_OUTPUT = $(addprefix $(YACC_FILES:%.y=%), .h .cpp .output)
 # FIXME.  (f.e. char Buffer[10000]; )
 #
 %.cpp: %.l
-       $(FLEX) -t $< | $(SED) '/^find_rule/d' | \
+       @echo Flex\'ing $<...
+       $(VERB) $(FLEX) -t $< | $(SED) '/^find_rule/d' | \
                      $(SED) 's/void yyunput/inline void yyunput/' | \
           $(SED) 's/void \*yy_flex_realloc/inline void *yy_flex_realloc/' | \
-          $(SED) 's/#define YY_BUF_SIZE 16384/#define YY_BUF_SIZE (16384*64)/' > $@
+          $(SED) 's/#define YY_BUF_SIZE 16384/#define YY_BUF_SIZE (16384*64)/' \
+              > $@.tmp
+       $(VERB) diff -q $@ $@.tmp || ${MV} -f $@.tmp $@
+       @# remove the output of flex if it didn't get moved over...
+       @rm -f $@.tmp
 
 # Rule for building the bison parsers...
 %.c: %.y     # Cancel built-in rules for yacc
@@ -777,8 +782,10 @@ YACC_OUTPUT = $(addprefix $(YACC_FILES:%.y=%), .h .cpp .output)
 %.cpp %.h : %.y
        @echo Bison\'ing $<...
        $(VERB) $(BISON) -v -d -p $(<:%Parser.y=%) $*.y
-       $(VERB) ${MV} -f $*.tab.c $*.cpp
-       $(VERB) ${MV} -f $*.tab.h $*.h
+       $(VERB) diff -q $*.tab.c $*.cpp || ${MV} -f $*.tab.c $*.cpp
+       $(VERB) diff -q $*.tab.h $*.h || ${MV} -f $*.tab.h $*.h
+       @# If the files were not updated, don't leave them lying around...
+       @rm -f $*.tab.c $*.tab.h
 
 # To create the directories...
 %/.dir:
index 2612e6fc656b3cbe090ff6e3efae8fceef716a4c..9dfbdffe249db04deb0fbcb7fa4c6c6d123108fd 100644 (file)
@@ -766,10 +766,15 @@ YACC_OUTPUT = $(addprefix $(YACC_FILES:%.y=%), .h .cpp .output)
 # FIXME.  (f.e. char Buffer[10000]; )
 #
 %.cpp: %.l
-       $(FLEX) -t $< | $(SED) '/^find_rule/d' | \
+       @echo Flex\'ing $<...
+       $(VERB) $(FLEX) -t $< | $(SED) '/^find_rule/d' | \
                      $(SED) 's/void yyunput/inline void yyunput/' | \
           $(SED) 's/void \*yy_flex_realloc/inline void *yy_flex_realloc/' | \
-          $(SED) 's/#define YY_BUF_SIZE 16384/#define YY_BUF_SIZE (16384*64)/' > $@
+          $(SED) 's/#define YY_BUF_SIZE 16384/#define YY_BUF_SIZE (16384*64)/' \
+              > $@.tmp
+       $(VERB) diff -q $@ $@.tmp || ${MV} -f $@.tmp $@
+       @# remove the output of flex if it didn't get moved over...
+       @rm -f $@.tmp
 
 # Rule for building the bison parsers...
 %.c: %.y     # Cancel built-in rules for yacc
@@ -777,8 +782,10 @@ YACC_OUTPUT = $(addprefix $(YACC_FILES:%.y=%), .h .cpp .output)
 %.cpp %.h : %.y
        @echo Bison\'ing $<...
        $(VERB) $(BISON) -v -d -p $(<:%Parser.y=%) $*.y
-       $(VERB) ${MV} -f $*.tab.c $*.cpp
-       $(VERB) ${MV} -f $*.tab.h $*.h
+       $(VERB) diff -q $*.tab.c $*.cpp || ${MV} -f $*.tab.c $*.cpp
+       $(VERB) diff -q $*.tab.h $*.h || ${MV} -f $*.tab.h $*.h
+       @# If the files were not updated, don't leave them lying around...
+       @rm -f $*.tab.c $*.tab.h
 
 # To create the directories...
 %/.dir: