Messages in this thread | | | Date | Wed, 2 Sep 1998 15:51:50 +0200 | From | Michael Riepe <> | Subject | Re: linux/Makefile: CONFIG_SHELL and SHELL |
| |
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
| |