Hi all,
Lately I've been needing to work hard to get around GNU Make's lack of
simultaneous multi-target recipes. It seems like it crops up in the world
of FPGA/ASIC/chip design, which has all kinds of ill-behaved compilers that
produce lots of outputs simultaneously.
I went back and read a bunch of the mailing-list conversations about ways
it could be implemented, and it seemed like nobody ever proposed a way we
could describe the syntax in-keeping with GNU Make's conventions.
So I've been chewing on the issue a bit, and I wanted to float this syntax
proposal:
What about having a special target called .GROUPTARGET, which could work as
shown below.
--- (sample Makefile) ---
foo1.out report.txt foo2.out foo3.out non_pattern.bit: TASK1_OUTPUTS
fob1.out static_file.bmm fob2.out fob3.out project_file.ngc: TASK2_OUTPUTS
TASK1_OUTPUTS: source1_a.src source1_b.src
$(EXTERNAL_UTIL_1) source1_a.src source1_b.src
TASK2_OUTPUTS: source2_a.src source2_b.src
$(EXTERNAL_UTIL_2) source2_a.src source2_b.src
.GROUPTARGET: TASK1_OUTPUTS TASK2_OUTPUTS
--- (end sample Makefile) ---
In the example above, any dependencies of .GROUPTARGET would be a
target-group. Each target group could be treated sort of like a conditional
PHONY that would run if any of the group's members were out-of-date.
What do you think?
-Nick
--
Nicholas Clark
Email: [email protected]
_______________________________________________
Help-make mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-make