The issue is that the bison rule says it creates a %.output file, but doesn't actually do that.
%.tab.c %.tab.h %.output: %.y @$(VECHO) BISON $@ $(BISON) -b $(basename $(basename $@)) -d $< Note that no target actually depends on any *.output file. -- Andreas Schwab, SUSE Labs, sch...@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different."