Backticks in makefiles

Started by
1 comment, last by ToohrVyk 15 years, 5 months ago
Hi there. This makefile

FOO = a b
BAR = `for i in $(FOO); do echo $$i.x; done`
demo:
        echo $(BAR)
outputs this:

echo `for i in a b; do echo $i.x; done`
a.x b.x
I was expecting it to output

echo a.x b.x
a.x b.x
I need the backticks to be evaluated BEFORE the variable BAR is assigned, not after. How do I do this? The reason is that I'm going to use BAR thusly:

demo: $(BAR)
        ...
So if there's a better way to get the transformed FOO into the dependency list of "demo:" then that'll do. Thanks
Advertisement
Do you really need something this complicated?

Have you considered moving the shell commands to a batch file and just calling the batch file from the makefile?

Have you considered using a script to generate the makefile (if the goal here is to avoid repeating 'for' commands of a common form)?
Depending on your make variety, BAR=$(FOO,>.x) or BAR=$(FOO:%=%.x) (or something else).

Macro modifiers, Text functions.

This topic is closed to new replies.

Advertisement