Parallel jobs with order-only prerequisites

2014-10-12 Thread Steven Simpson
Hi, I'm using GNU Make 3.81 to compile a Java source tree, and extract what is essentially a header file of its public methods and fields, i.e. the parts of the source tree that another tree might depend on. I'll refer to this header file as a 'profile', and the set of classes in a source tr

Re: Parallel jobs with order-only prerequisites

2014-10-13 Thread Steven Simpson
Hi Dawid, On 13/10/14 00:03, Dawid Gosławski wrote: What is the reason that you are not defining api to be target as well ? You mean this?: %.done %.api: %.src ... touch "$*.done" If you do that, and make a non-profile change, the module keeps being compiled on each invocati

Re: Parallel jobs with order-only prerequisites

2014-10-13 Thread Steven Simpson
On 13/10/14 08:45, Steven Simpson wrote: There's a relationship between %.done and %.api, which is that %.api is a (potentially non-updating) by-product of building %.done, and that information is needed for parallelism, but it can't be represented using : or :| between them. Howev

Re: Parallel jobs with order-only prerequisites

2014-10-14 Thread Steven Simpson
Dawid, On 13/10/14 21:56, Dawid Gosławski wrote: I was talking about something like that: all:: | foo.done @echo "\nCompilation finished !!!\n" @echo "\nListing timestamps:" @find ./ -name "*api*" -printf "%f - %c\n" | sort DATA := "BASIC API" FILES :=foo.src bar.src baz.src %

Re: a syntax for multitarget rules

2014-11-13 Thread Steven Simpson
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_OUTP

Re: a syntax for multitarget rules

2014-11-14 Thread Steven Simpson
On 14/11/14 10:35, Tim Murphy wrote: To save typing here's an example of some of the possible hacks: http://www.cmcrossroads.com/article/rules-multiple-outputs-gnu-make You'll see the problem with "chaining" dependencies - there is a situation when a file is deleted and running make again doesn

Finding second route through rules

2015-12-09 Thread Steven Simpson
Hi, Just noticed a change in behaviour between 3.81 and 4.1: %.foo: %.bar @echo from bar %.foo: %.baz @echo from baz %.baz: %.qux @echo from qux %.bar: %.quux @echo from quux gwonk: a.bar So there is a route from a.quux -> a.bar -> a.foo, and from a.qux ->

Re: Finding second route through rules

2016-01-20 Thread Steven Simpson
Hi! Did this slip under the radar? Thanks! On 09/12/15 17:25, Steven Simpson wrote: Just noticed a change in behaviour between 3.81 and 4.1: %.foo: %.bar @echo from bar %.foo: %.baz @echo from baz %.baz: %.qux @echo from qux %.bar: %.quux @echo from quux gwonk: a.bar So

Re: Environment Variable to Customize .INCLUDE_DIRS

2016-01-23 Thread Steven Simpson
On 22/01/16 16:57, Afif Elghraoui wrote: I know that i can also pass in a custom include path on the command line, but I would like to have some files with generic rules that I can include without any special command line invocation or hardcoding the absolute path. I keep a bash function in ~

Re: Finding second route through rules

2016-02-02 Thread Steven Simpson
Hi Luke, On 01/02/16 21:29, Luke Shumaker wrote: > Having to keep track of the bar's, baz's, qu+x's didn't help either :) Sorry; I realised after posting that it might be a burden. > Here is an "improved" makefile that I think demonstrates the situation > more clearly. [Snip an improved makefil

Re: Finding second route through rules

2016-06-13 Thread Steven Simpson
Hi again! On 01/02/16 21:29, Luke Shumaker wrote: Here is an "improved" makefile that I think demonstrates the situation more clearly. default: a.foo %.foo: %.correct @echo $@ from $< %.foo: %.mislead @echo $@ from $<

Re: should make elide the difference between "dir" and "dir/"?

2021-10-10 Thread Steven Simpson
Hi, On 03/10/2021 21:50, David Boyce wrote: For instance in the test case below the target depends on its parent directory $(@D) which comes out as "foo". We've supplied a rule for making it but due to the behavior of the $(dir ...) function that comes out as "foo/" which doesn't match. $ cat Ma