Date: Thu, 06 Sep 2012 11:17:12 -0500 From: Tim Daneliuk <tundra@tundraware.com> Cc: freebsd-questions@freebsd.org Subject: Re: Somewhat OT: Using Pipes Inside a GNU Make File Message-ID: <5048CC88.4030107@tundraware.com> In-Reply-To: <alpine.BSF.2.00.1209052012510.1779@wonkity.com> References: <5047E804.7050406@tundraware.com> <5047ED29.2040001@shatow.net> <50480361.8030601@tundraware.com> <alpine.BSF.2.00.1209052012510.1779@wonkity.com>
index | next in thread | previous in thread | raw e-mail
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
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5048CC88.4030107>
