make-alpha
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Output quoting (was: Re: Possible solution for special characters in


From: Frank Heckenbach
Subject: Re: Output quoting (was: Re: Possible solution for special characters in makefile paths)
Date: Thu, 10 Apr 2014 22:55:34 +0200

Eli Zaretskii wrote:

> > I didn't say there was a contradiction. The only one, kind of, is
> > that I think the quoting should be done automatically by default
> > (e.g. by having SHELL_QUOTE set by default and used automatically).
> 
> Can you give an example, so I'm sure I'm on the same page as you are?

I gave a possible SHELL_QUOTE definition for sh-style quoting in
previous mails.

If make would define this by default and apply it automatically when
substituting a variable in a recipe, the recipe could simply look
like this, without any explicit quoting:

%.x: %.y
        process $< -o $@

Which make internally would turn into:

        process $(call SHELL_QUOTE,$<) -o $(call SHELL_QUOTE,$@)

So when calling make "a b'c<d.x", make would e.g. call:

        process 'a b'\''c<d'.y -o 'a b'\''c<d'.x

> > will not continue to work if $</$@ contain special characters (which
> > I think is not so bad because they already don't work if $</$@
> > contain a certain special character, i.e. ').
> 
> So how would you suggest to handle the built-in rules such that they
> will still work with file names that have embedded spaces?

If SHELL_QUOTE is applied automatically, the built-in rules need no
modification because they don't contain explicit quoting either.

Now, if you want to use another interpreter with different quoting
rules, you can do:

SHELL = /bin/frob
SHELL_QUOTE = $(subst or whatever ...)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]