Re: linux/Makefile: CONFIG_SHELL and SHELL

Michael Riepe (michael@stud.uni-hannover.de)
Wed, 2 Sep 1998 15:51:50 +0200


On Tue, Sep 01, 1998 at 10:04:08PM -0700, Linus Torvalds wrote:
>
> Why not fix "make" instead to either handle the shell extensions or at
> least notice that it doesn't know about some new meta-characters. As far
> as I know (but yes, I'm too lazy to try to find the standard), the brace
> expansion is part of the POSIX shell standard, and if make can't handle it
> then make is very arguably broken.

Brace expansion is a (t)csh feature. Bash happens to support it in
some configurations, e.g. my /bin/sh is a "stripped" bash, configured
with --enable-minimal-config, and does NOT support brace expansion.
I guess I wanted to see how many of my shell scripts broke ;)

Ksh uses `@(foo|bar)' instead of `{foo,bar}', but bash doesn't support
that, nor does the POSIX shell, AFAIK.

Make, on the other hand, is not responsible for handling shell
metacharacters. It simply spawns a ${SHELL}, that's all. Programmers
have to take care that their Makefiles (or shell scripts - I've seen
quite a few broken configure scripts) are portable - and a Makefile that
needs bash (or ksh) isn't. And please don't tell me that "On every
Linux system in the world, /bin/sh is a full-featured bash". It isn't,
and will probably never be.

-- 
 Michael "Tired" Riepe <Michael.Riepe@stud.uni-hannover.de>
 "All I wanna do is have a little fun before I die"

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html