On Tue, 19 Jan 2016 04:56:42 -0500, Phillip Lord wrote: > While writing a make file, I've just hit the situation where I need to > write a rule of the form: > > > a b c d e: x y z > generate_abcde > > > Unfortunately, this doesn't work as the semantics are equivalent to the > rules where the targets are separate -- that is generate_abcde gets run > multiple times. > > I've done some poking around, and found that a couple of solutions, > either with pattern rules or otherwise by creating an intermediate file, > as described here: > > http://lists.gnu.org/archive/html/help-make/2007-04/msg00021.html > > My understanding is that there is no other way to do this, but I was > wondering why this was the case; would it be possible to support to make > for this directly?
Right now, no, there is no support for that in GNU Make. The automake manual has a section on how to do multiple outputs (that are all gross, because automake supports (nearly?) every implementation of make): https://www.gnu.org/software/automake/manual/html_node/Multiple-Outputs.html As noted in the mailing list thread you linked, if {a,b,c,d,e} and at least one of {x,y,z} have a common stem, then pattern rules can be used with GNU Make (this syntax is non-portable). However, if the filenames have nothing to do with eachother, then GNU Make has no way of expressing that. -- Happy hacking, ~ Luke Shumaker _______________________________________________ Help-make mailing list Help-make@gnu.org https://lists.gnu.org/mailman/listinfo/help-make