evoldoers / biomake

GNU-Make-like utility for managing builds and complex workflows
BSD 3-Clause "New" or "Revised" License
100 stars 9 forks source link

Silently unsupported GNU Make feature: Rules with Grouped Targets #81

Open rulatir opened 3 years ago

rulatir commented 3 years ago

The &: syntax for GNU Make Rules with Grouped Targets is accepted but doesn't have the expected effect of only executing the recipe once even if many targets in the group need rebuilding.

Makefile:

all: foo bar

clearlog:
    touch build.log && truncate -s 0 build.log

foo bar &: clearlog
    touch foo && touch bar && echo "Recipe invoked" >> build.log

.PHONY: clearlog

Contents of build.log after make all, i.e. "expected":

Recipe invoked

Contents of build.log after biomake -H all, i.e. "actual":

Recipe invoked
Recipe invoked

EDIT: this is a hypothetical question because I currently don't have means to promise anything, but if I could find a sponsor, would you be willing to accept bounties to fix incompatibilities like this and #79 and usability issues like #80 on a "within a reasonable timeframe" basis, rather than "when we get a chance to do it" basis? I believe there is some real market for a "GNU Make but with hashes".