On Tue, Dec 18, 2012 at 01:47:54PM +0100, Alexander Hall wrote: > On 12/18/12 12:54, Marc Espie wrote: > >On Tue, Dec 18, 2012 at 12:02:15PM +0100, Marc Espie wrote: > >>Is this theoretical, or is there an actual Makefile where this is a problem > >>? > >> > >>I'd rather NOT go through extra shell forking just for the sake of it. > >> > >>Also, echo -e is specific to ksh and NOT a posix option, so you're going > >>to end up with something that is deeply non-portable. > >> > >>Either way, this is fucked up. > > > >Let me put things another way: I'd rather NOT put echo as a shell built-in, > >because it is very often needed as a "raw thingy". Actually, I would even > >say that instead of running echo directly, it would make sense to have > >it be a built-in in make proper... > > I guess that makes sense in a way. People should not rely on any of > the various behaviours of echo, so if there is a chance that the > firdst parameter to echo is a dash, they should use sth else. > > However, the exposed behaviour in the example shown is confusing. > Does it deserve being mentioned in the man page? > > Right now, it says: > > As an optimization, make may execute very simple commands without > going through an extra shell process, as long as this does not > change observable behavior. > > Should we mention `echo` being an exception or are there more? > Should we say "with a few minor exception"? Or should we just leave > it as-is? > > /Alexander
You could probably mention echo [-eE] in "BUGS AND LIMITATIONS". I'd recommend avoiding it as it is completely not portable, and putting a see printf(1) as well...