From 42cb7d446827dce32a42b5b243bda522518b3d46 Mon Sep 17 00:00:00 2001 From: Julien Rioux Date: Mon, 2 Sep 2013 10:41:50 +0200 Subject: [PATCH] Keep bison-generated files in sync. Use a single rule to build header and source files from the syntax file, thus avoiding any possibility to have `make' rebuild one but not the other, which might happen if the syntax and target files have almost the same but slightly differing timestamps. See http://www.mail-archive.com/bug-lilypond@gnu.org/msg37081.html Fixes issue 3528: Keep bison-generated files in sync. http://code.google.com/p/lilypond/issues/detail?id=3528 --- stepmake/stepmake/c++-rules.make | 9 ++------- stepmake/stepmake/c-rules.make | 10 ++-------- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/stepmake/stepmake/c++-rules.make b/stepmake/stepmake/c++-rules.make index a368f4f..8de00bc 100644 --- a/stepmake/stepmake/c++-rules.make +++ b/stepmake/stepmake/c++-rules.make @@ -12,13 +12,8 @@ $(outdir)/%.lo: %.cc $(outdir)/%.lo: $(outdir)/%.cc $(DO_LO_DEP) $(CXX) -c $(ALL_CXXFLAGS) $(PIC_FLAGS) -o $@ $< -$(outdir)/%.cc: %.yy - $(BISON) -o $@ $< - -$(outdir)/%.hh: %.yy - $(BISON) -o $(subst .hh,-tmp.cc,$@) -d $< - rm $(subst .hh,-tmp.cc,$@) - mv $(subst .hh,-tmp.hh,$@) $@ +$(outdir)/%.cc $(outdir)/%.hh: %.yy + $(BISON) -d -o $(outdir)/$*.cc $< $(outdir)/%.cc: %.ll $(FLEX) -Cfe -p -p -o$@ $< diff --git a/stepmake/stepmake/c-rules.make b/stepmake/stepmake/c-rules.make index 620275b..954e7a3 100644 --- a/stepmake/stepmake/c-rules.make +++ b/stepmake/stepmake/c-rules.make @@ -12,14 +12,8 @@ $(outdir)/%.lo: %.c $(outdir)/%.lo: %.c $(DO_LO_DEP) $(CC) -c $(ALL_CFLAGS) $(PIC_FLAGS) -o $@ $< -$(outdir)/%.c: %.y - $(BISON) $< - mv $(*F).tab.c $@ - -$(outdir)/%.h: %.y - $(BISON) -d $< - mv $(*F).tab.h $@ - rm -f $(*F).tab.c # if this happens in the wrong order it triggers recompile of the .cc file +$(outdir)/%.c $(outdir)/%.h: %.y + $(BISON) -d -o $(outdir)/$*.c $< $(outdir)/%.c: %.l $(FLEX) -Cfe -p -p -o$@ $< -- 1.8.4.rc3