# Backticks in makefiles

## Recommended Posts

spraff    100
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

##### Share on other sites
Zahlman    1682
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)?

##### Share on other sites
ToohrVyk    1596
Depending on your make variety, BAR=$(FOO,>.x) or BAR=$(FOO:%=%.x) (or something else).

Macro modifiers, Text functions.