Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 May 2001 00:53:17 +1000 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Akinori MUSHA <knu@iDaemons.org>
Cc:        Maxim Sobolev <sobomax@FreeBSD.org>, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/usr.bin/make Makefile
Message-ID:  <Pine.BSF.4.21.0105200013500.36447-100000@besplex.bde.org>
In-Reply-To: <86ofsqejx6.wl@archon.local.idaemons.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 19 May 2001, Akinori MUSHA wrote:

> Speaking of speed increase, does anybody object against MFC'ing this?
> This allows you to use /bin/ksh instead of the default of /bin/sh.

Yes.  The DEFSHELL stuff is wrong even in -current.  It complicates fixing
the documented and required ways for controlling the shell:

Documented way: there is a shell variable named .SHELL, and
".SHELL: path=/somewhere/someshell" is documented to set the shell.
See /usr/share/doc/psd/12.make/*.  This seems to be broken.

Required (POSIX spec) way: (an old draft of) POSIX.2 says:
---
 The SHELL macro shall be treated specially.  It shall be provided by make
 and set to the pathname of the shell command language interpreter (see sh
 in 4.56).  The SHELL environment variable shall not affect the value of
 the SHELL macro.  If SHELL is defined in the makefile or is specified on
 the command line, it shall replace the original value of the SHELL macro,
 but shall not affect the SHELL environment variable.  Other effects of
 defining SHELL in the makefile or on the command line are implementation
 defined.
 ...
 The historical MAKESHELL feature was omitted.  In some implementations it
 is used to provide a way of letting a user override the shell to be used
 to run make commands.  This was confusing; for a portable make, the shell
 should be chosen by the makefile writer or specified on the make command
 line and not by a user running make.
---

This is certainly broken -- make(1) treats the SHELL macro non-specially.

Bruce


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0105200013500.36447-100000>