Somewhat OT: Using Pipes Inside a GNU Make File
Tim Daneliuk
tundra at tundraware.com
Thu Sep 6 16:16:51 UTC 2012
On 09/05/2012 09:15 PM, Warren Block wrote:
> On Wed, 5 Sep 2012, Tim Daneliuk wrote:
>
>> On 09/05/2012 07:24 PM, Bryan Drewery wrote:
>>> On 9/5/2012 7:02 PM, Tim Daneliuk wrote:
>>>> A bit off topic, but I'm kind of stuck. I am using gmake and want to
>>>> do something like this:
>>>>
>>>> FOO := $(shell a | b | c)
>>>>
>>>> But this appears not to work. Only the 'a' command is executed. The
>>>> remainder
>>>> of the pipeline is ignored. Is there some clean way to implement this
>>>> kind of thing?
>>>>
>>>>
>>>
>>> I use this in a GNUMakefile and it works fine.
>>>
>>> BRANCH := $(shell git branch --no-color | grep "^*" | sed -e 's/^\* //')
>>>
>>>
>>> You may need to post a more specific example.
>>>
>>> Bryan> _______________________________________________
>>
>> Here's the line that is failing:
>>
>> 2LATEX = $(shell which rst2latex.py rst2latex | tr '\012' ' ' | awk '{print $1}') --stylesheet=parskip
>
> Bryan's example is using := for assignment.
That wasn't it, as it turned out. The problem was in the awk statement.
Instead of:
awk '{print $1}'
I had to use:
awk '{print $$1}'
This is necessary because $1 is a *make* variable but $$1 is the awk variable I wanted ($1)....
D'uh ....
-----------------------------------------------------------------------
Tim Daneliuk
More information about the freebsd-questions
mailing list