]> git.draconx.ca Git - cdecl99.git/commitdiff
Don't touch unchanged flex/bison headers.
authorNick Bowler <nbowler@draconx.ca>
Tue, 21 Jun 2011 01:35:13 +0000 (21:35 -0400)
committerNick Bowler <nbowler@draconx.ca>
Tue, 21 Jun 2011 01:35:31 +0000 (21:35 -0400)
This prevents some spurious rebuilds.

Makefile.am

index 6921dbb16ef078b494342fd9b6d185681d7dbfee..6ea246a80644ffb8b7a3d9e97c265f6494922618 100644 (file)
@@ -20,7 +20,8 @@ src/parse.$(OBJEXT): src/scan.h
 src/scan.$(OBJEXT): src/parse.h
 src/libcdecl.$(OBJEXT): src/scan.h src/parse.h
 
-# These are required to prevent the builtin lex/yacc rules from triggering...
+# These are required to prevent the builtin lex/yacc rules from
+# superseding ours...
 src/scan.c src/scan.h: src/scan.stamp
 src/parse.c src/parse.h: src/parse.stamp
 
@@ -39,12 +40,22 @@ FLEX_V_0 = @echo "  FLEX  " $<;
 
 .y.stamp:
        $(AM_V_at) touch $@.tmp
-       $(BISON_V) $(BISON) -o $*.c --defines=$*.h $(BISONFLAGS) $<
+       $(BISON_V) $(BISON) -o $*.c --defines=$*.h.tmp $(BISONFLAGS) $<
+       $(AM_V_at) if cmp $*.h.tmp $*.h >/dev/null 2>&1; then \
+               rm -f $*.h.tmp; \
+       else \
+               mv -f $*.h.tmp $*.h; \
+       fi
        $(AM_V_at) mv -f $@.tmp $@
 
 .l.stamp:
        $(AM_V_at) touch $@.tmp
-       $(FLEX_V) $(FLEX) -o $*.c --header-file=$*.h $(FLEXFLAGS) $<
+       $(FLEX_V) $(FLEX) -o $*.c --header-file=$*.h.tmp $(FLEXFLAGS) $<
+       $(AM_V_at) if cmp $*.h.tmp $*.h >/dev/null 2>&1; then \
+               rm -f $*.h.tmp; \
+       else \
+               mv -f $*.h.tmp $*.h; \
+       fi
        $(AM_V_at) mv -f $@.tmp $@
 
 .stamp.c: