help-make
[Top][All Lists]
Advanced

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

Re: a syntax for multitarget rules


From: Steven Simpson
Subject: Re: a syntax for multitarget rules
Date: Thu, 13 Nov 2014 21:46:27 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0

Hi,

On 11/11/14 05:44, Nicholas Clark wrote:
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


Is it not sufficient to create an empty target?:

task1.done: source1_a.src source1_b.src
    $(EXTERNAL_UTIL_1) source1_a.src source1_b.src
    touch $@

task2.done: source2_a.src source2_b.src
    $(EXTERNAL_UTIL_2) source2_a.src source2_b.src
    touch $@

If you need any of the files created by task 2, you just name task2.done as the prerequisite. Or have I misunderstood?...

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.

Are you saying that $(EXTERNAL_UTIL_1) won't necessarily update all of TASK1_OUTPUTS (otherwise, they would all be out-of-date together)?

Cheers,

Steven



reply via email to

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