On 5 January 2015 at 18:13, SF Markus Elfring <[email protected]
> wrote:
> > I assume that you want something different from this
> > but you need to explain better, sorry :-)
>
> I hope that an other wording will be clearer.
>
> Can make rules be extended on demand while a build script
> is evaluated?
>
> How much can a command like "getconf _NPROCESSORS_ONLN"
> influence rule evaluation directly during a make run?
>
Ok, well I'll make a guess at what you want:
You have some sort of work which you can control the "granularity" i.e.
you can either have 1 rule that generates 10 targets or you can have 10
rules that generate 1 target.
Normally I'd just say "have 10 rules that generate 10 targets" because this
is the simplest thing to do and works properly within make and is what
people expect. But I can imagine ways in which this would not be efficient
- particularly if the startup time for the rule was high.
So you have in your toolbox $(shell) and $(eval).
$(eval) lets you generate rules dynamically.
$(shell) lets you run an external tool in a shell
e.g. you could use $(shell) to find out how many processors there were like
this (linux):
NPROC:=$(shell grep "processor" /proc/cpuinfo | cut -b12- )
# this returns "0 1 2 3" etc
# Then you might use eval to generate rules dynamically:
$(foreach N,$(NPROC),$(eval
# YOUR DYNAMIC RULE
MYTARGET_$(N):
<TAB>mytool --dosomething -o$@
)
)
I am probably guessing wrong but perhaps this gives you some ideas.
Regards,
Tim
--
You could help some brave and decent people to have access to uncensored
news by making a donation at:
http://www.thezimbabwean.co.uk/friends/
_______________________________________________
Bug-make mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-make