[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: escaping bracket in function arguments
From: |
Mayuresh |
Subject: |
Re: escaping bracket in function arguments |
Date: |
Tue, 23 Dec 2008 19:34:36 +0530 |
User-agent: |
KMail/1.9.9 |
> On 12/22/08, Mayuresh <address@hidden> wrote:
> > I am not able to find the right way to escape bracket in particular in
> > the arguments of a function. See example below:
> >
> > LIST=a b c
> > LISTP=$(addprefix "\(", $(LIST))
> >
> > all:
> > echo $(LISTP)
> >
> > I get the error:
> > makefile:2: *** unterminated call to function `addprefix': missing `)'.
> > Stop.
> >
> > I can work around this by defining bracket as a variable and then using
> > it in
> > place of actual bracket, though it will be nicer if I could escape the
> > bracket directly. Can someone help?
> >
> > Mayuresh.
>
> Saying something along the lines of ...
>
> PAREN :=(
> LIST :=a b c
> LISTP := $(addprefix $(PAREN), $(LIST))
>
> all:
> echo "$(LISTP)"
>
> ... is probably what you want.
>
> 1. Most special characters in GNU Make have to be parametrized and
> often times $(subst)'ed in place of existing variables.
Wonder why some special characters are allowed to be escaped while some others
are not. For example, I can easily escape # like this:
LIST=a b c
LISTP=$(addprefix "\#", $(LIST))
all:
echo $(LISTP)
> 2. Not inserting quotes around the echo string will result in shell
> syntax failures because `(' is a delimiter in bourne shell.
>
> Cheers,
> -Garrett