From m.seaman@infracaninophile.co.uk  Fri Apr 16 04:35:52 2004
Return-Path: <m.seaman@infracaninophile.co.uk>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id C933A16A4CE
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 16 Apr 2004 04:35:52 -0700 (PDT)
Received: from smtp.infracaninophile.co.uk (ns0.infracaninophile.co.uk [81.2.69.218])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 55B1B43D41
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 16 Apr 2004 04:35:51 -0700 (PDT)
	(envelope-from m.seaman@infracaninophile.co.uk)
Received: from happy-idiot-talk.infracaninophile.co.uk (localhost.infracaninophile.co.uk [IPv6:::1])
	by smtp.infracaninophile.co.uk (8.12.11/8.12.11) with ESMTP id i3GBZjeH006603
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 16 Apr 2004 12:35:45 +0100 (BST)
	(envelope-from matthew@happy-idiot-talk.infracaninophile.co.uk)
Received: (from matthew@localhost)
	by happy-idiot-talk.infracaninophile.co.uk (8.12.11/8.12.11/Submit) id i3GBZitP006602;
	Fri, 16 Apr 2004 12:35:44 +0100 (BST)
	(envelope-from matthew)
Message-Id: <200404161135.i3GBZitP006602@happy-idiot-talk.infracaninophile.co.uk>
Date: Fri, 16 Apr 2004 12:35:44 +0100 (BST)
From: Matthew Seaman <m.seaman@infracaninophile.co.uk>
Reply-To: Matthew Seaman <m.seaman@infracaninophile.co.uk>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: make.conf.5 documents non-existent MAKE_SHELL variable
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         65615
>Category:       docs
>Synopsis:       make.conf.5 documents non-existent MAKE_SHELL variable
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-doc
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          doc-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Apr 16 04:40:02 PDT 2004
>Closed-Date:    Sun Apr 18 00:13:44 PDT 2004
>Last-Modified:  Tue Jul 13 15:00:42 GMT 2004
>Originator:     Matthew Seaman
>Release:        FreeBSD 4.10-BETA i386
>Organization:
Infracaninophile
>Environment:
System: FreeBSD happy-idiot-talk.infracaninophile.co.uk 4.10-BETA FreeBSD 4.10-BETA #65: Thu Apr 15 21:47:54 BST 2004 root@happy-idiot-talk.infracaninophile.co.uk:/usr/obj/usr/src/sys/HAPPY-IDIOT-TALK i386


>Description:

make.conf(5) describes the MAKE_SHELL variable:

     MAKE_SHELL    (str) Controls the shell used internally by make(1) to
                   process the command scripts in makefiles.  sh(1), ksh(1),
                   and csh(1) all currently supported.

but there appears to be no support anywhere in the sources for the use
of that variable in Makefiles:

    % find /usr/src -type f -print | xargs grep MAKE_SHELL 
    /usr/src/contrib/libreadline/doc/Makefile.in:SHELL = @MAKE_SHELL@
    /usr/src/contrib/libreadline/CHANGELOG: - set MAKE_SHELL to /bin/sh and substitute into the Makefiles
    /usr/src/contrib/libreadline/CHANGELOG: - set SHELL from @MAKE_SHELL@
    /usr/src/contrib/libreadline/Makefile.in:SHELL = @MAKE_SHELL@
    /usr/src/contrib/libreadline/configure:MAKE_SHELL=/bin/sh
    /usr/src/contrib/libreadline/configure:s%@MAKE_SHELL@%$MAKE_SHELL%g
    /usr/src/contrib/libreadline/configure.in:MAKE_SHELL=/bin/sh
    /usr/src/contrib/libreadline/configure.in:AC_SUBST(MAKE_SHELL)
    /usr/src/contrib/libreadline/examples/Makefile.in:SHELL = @MAKE_SHELL@
    /usr/src/contrib/libreadline/shlib/Makefile.in:SHELL = @MAKE_SHELL@
    /usr/src/share/man/man5/make.conf.5:.It Va MAKE_SHELL
    /usr/src/share/man/man5/make.conf.5:MAKE_SHELL?=sh

This functionality appears to be provided by the .SHELL pseudo target
built into make(1).


>How-To-Repeat:

>Fix:

--- make.conf.5.diff begins here ---
--- make.conf.5.orig	Fri Apr 16 11:49:20 2004
+++ make.conf.5	Fri Apr 16 11:49:59 2004
@@ -182,19 +182,6 @@
 make's in
 .Pa /usr/src
 in this variable.
-.It Va MAKE_SHELL
-.Pq Vt str
-Controls the shell used internally by
-.Xr make 1
-to process the command scripts in makefiles.
-.Xr sh 1 ,
-.Xr ksh 1 ,
-and
-.Xr csh 1
-all currently supported.
-.Bd -literal -offset indent
-MAKE_SHELL?=sh
-.Ed
 .It Va MTREE_FOLLOWS_SYMLINKS
 .Pq Vt str
 Set this to
--- make.conf.5.diff ends here ---


>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->feedback 
State-Changed-By: schweikh 
State-Changed-When: Sat Apr 17 04:41:45 PDT 2004 
State-Changed-Why:  
What sources have you grepped? On CURRENT this is what I get: 
$ find /usr/src/* -type f -print | xargs grep MAKE_SHELL 
/usr/src/contrib/libreadline/CHANGELOG: - set MAKE_SHELL to /bin/sh and substitute into the Makefiles 
/usr/src/contrib/libreadline/CHANGELOG: - set SHELL from @MAKE_SHELL@ 
/usr/src/contrib/libreadline/Makefile.in:SHELL = @MAKE_SHELL@ 
/usr/src/contrib/libreadline/configure:MAKE_SHELL=/bin/sh 
/usr/src/contrib/libreadline/configure:s,@MAKE_SHELL@,$MAKE_SHELL,;t t 
/usr/src/contrib/libreadline/configure.in:MAKE_SHELL=/bin/sh 
/usr/src/contrib/libreadline/configure.in:AC_SUBST(MAKE_SHELL) 
/usr/src/contrib/libreadline/doc/Makefile.in:SHELL = @MAKE_SHELL@ 
/usr/src/contrib/libreadline/examples/Makefile.in:SHELL = @MAKE_SHELL@ 
/usr/src/contrib/libreadline/shlib/Makefile.in:SHELL = @MAKE_SHELL@ 
/usr/src/share/examples/etc/make.conf:# MAKE_SHELL controls the shell used internally by make(1) to process the 
/usr/src/share/examples/etc/make.conf:#MAKE_SHELL?=sh 
/usr/src/share/man/man5/make.conf.5:.It Va MAKE_SHELL 
/usr/src/share/man/man5/make.conf.5:.Dl "MAKE_SHELL?=sh" 
/usr/src/usr.bin/make/Makefile:MAKE_SHELL?=     sh 
/usr/src/usr.bin/make/Makefile:.if ${MAKE_SHELL} == "csh" 
/usr/src/usr.bin/make/Makefile:.elif ${MAKE_SHELL} == "sh" 
/usr/src/usr.bin/make/Makefile:.elif ${MAKE_SHELL} == "ksh" 
/usr/src/usr.bin/make/Makefile:.error "MAKE_SHELL must be set to one of "csh", "sh" or "ksh"." 

So MAKE_SHELL appears to be used for making make itself. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=65615 
State-Changed-From-To: feedback->closed 
State-Changed-By: schweikh 
State-Changed-When: Sun Apr 18 00:10:55 PDT 2004 
State-Changed-Why:  
MAKE_SHELL is used in HEAD (no MFC yet). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=65615 

From: Peter Pentchev <roam@ringlet.net>
To: Matthew Seaman <m.seaman@infracaninophile.co.uk>,
	bug-followup@FreeBSD.org
Cc:  
Subject: Re: docs/65615: make.conf.5 documents non-existent MAKE_SHELL variable
Date: Tue, 13 Jul 2004 17:55:35 +0300

 On Sat, Apr 17, 2004 at 01:00:13PM +0100, Matthew Seaman wrote:
 > On Sat, Apr 17, 2004 at 04:44:59AM -0700, Jens Schweikhardt wrote:
 > > Synopsis: make.conf.5 documents non-existent MAKE_SHELL variable
 > > 
 > > /usr/src/usr.bin/make/Makefile:MAKE_SHELL?=     sh
 > > /usr/src/usr.bin/make/Makefile:.if ${MAKE_SHELL} == "csh"
 > > /usr/src/usr.bin/make/Makefile:.elif ${MAKE_SHELL} == "sh"
 > > /usr/src/usr.bin/make/Makefile:.elif ${MAKE_SHELL} == "ksh"
 > > /usr/src/usr.bin/make/Makefile:.error "MAKE_SHELL must be set to one of \"csh\", \"sh\" or \"ksh\"."
 > > 
 > > So MAKE_SHELL appears to be used for making make itself.
 > 
 > Ah.  Well, I was looking at the RELENG_4 sources.  Seems this is a 5.x
 > thing that got MFC'd a bit too enthusiastically.
 
 It seems that Jens closed the PR without actually fixing the RELENG_4
 make.conf(5) manpage; the MAKE_SHELL description has been removed now.
 Thanks for noticing this!
 
 G'luck,
 Peter
 
 -- 
 Peter Pentchev	roam@ringlet.net    roam@sbnd.net    roam@FreeBSD.org
 PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
 Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
 When you are not looking at it, this sentence is in Spanish.
>Unformatted:
