[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Quirk with rules producing multiple output files

From: Tim Murphy
Subject: Re: Quirk with rules producing multiple output files
Date: Thu, 11 Apr 2013 20:26:30 +0100


The example that I'm familiar with has had to invent a way to specify various special features without affecting make syntax - in other words similar to the kind of problem that gmake itself faces.

I think you may see discussions about it earlier in this or other gmake mailing lists but it's basically like #pragma in C/C++. e.g.

TEST_TEXTS := test1.txt test2.txt test3.txt

#pragma multi
$(TEST_TEXTS) : xtest.txt
        echo "Rebuilding $@"
        touch $(TEST_TEXTS)

So it looks like the previous example but the make engine knows that in this case one invocation of the rule is intended to generate all the outputs rather than the standard GNU interpretation of one invocation per target.

This idea has not found favour with GNU maintainers so far because it isn't an elegant extension of the GNU Make language and that is understandable but companies don't tend to wait around tor perfect solutions and it is at least a useful way to add implementation-specific features to make. It leaves the language untouched in such a way that older versions of make or other emulations can at least parse it.

If you google "pragma multi" you will find a better explanation than I can give.



On 11 April 2013 19:35, David Sankel <address@hidden> wrote:
On Thu, Apr 11, 2013 at 12:31 PM, Tim Murphy <address@hidden> wrote:
There are commercial emulations of GNU make that can handle multiple outputs. I don't want to plug them because that might be annoying. It's just worth mentioning that it can be done.

Can you provide an example of what syntax these other packages use for multiple output rules?

--David Sankel

You could help some brave and decent people to have access to uncensored news by making a donation at:


reply via email to

[Prev in Thread] Current Thread [Next in Thread]