On Thu, 07 Feb 2008, David Laight wrote: > The SHELL make/env variable lets you set the shell make should use for > all its commands. This can to be a full path. At run time, make doesn't use $SHELL for anything, AFAIK. At build time, configure scripts or the like may choose a value to pass as DEFSHELL_CUSTOM (via "-D" options to the compiler), and make will then use that as the default shell for everything it does at run time. For example, src/build.sh sets HOST_SH, src/tools/make/configure sets BSHELL, and src/tools/make/buildmake.sh[.in] passes -DDEFSHELL_CUSTOM to the compiler. Similarly, pkgsrc/bootstrap/bootstrap may pass --with-defshell to pkgsrc/devel/bmake's configure script, and that passes -DDEFSHELL_CUSTOM to the compiler. > I think the tables are used to sort out how make should drive the > various shells (eg when trying to use a single shell to execute a > group of commands). > As such it should be using the 'basename' of $SHELL to determine > which table to use. Yes, it does that if you put ".SHELL: name=csh" in a Makefile. Who does that, and do we really need to keep supporting it? --apb (Alan Barrett)