From owner-freebsd-hackers@FreeBSD.ORG Sun Sep 22 23:38:02 2013 Return-Path: Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4DD54500; Sun, 22 Sep 2013 23:38:02 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mho-02-ewr.mailhop.org (mho-02-ewr.mailhop.org [204.13.248.72]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 216122F4E; Sun, 22 Sep 2013 23:38:01 +0000 (UTC) Received: from c-24-8-230-52.hsd1.co.comcast.net ([24.8.230.52] helo=damnhippie.dyndns.org) by mho-02-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1VNtDu-000O9n-VF; Sun, 22 Sep 2013 23:37:55 +0000 Received: from [172.22.42.240] (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id r8MNbpRN022766; Sun, 22 Sep 2013 17:37:51 -0600 (MDT) (envelope-from ian@FreeBSD.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 24.8.230.52 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX1/NtI61I85ts8+D2uTeLGV/ Subject: Re: The right way to invoke sh from a freebsd makefile? From: Ian Lepore To: Glen Barber In-Reply-To: <20130922232710.GD2336@glenbarber.us> References: <1379891905.1197.115.camel@revolution.hippie.lan> <20130922232710.GD2336@glenbarber.us> Content-Type: text/plain; charset="us-ascii" Date: Sun, 22 Sep 2013 17:37:51 -0600 Message-ID: <1379893071.1197.119.camel@revolution.hippie.lan> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Cc: FreeBSD Hackers , freebsd-current X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Sep 2013 23:38:02 -0000 On Sun, 2013-09-22 at 19:27 -0400, Glen Barber wrote: > On Sun, Sep 22, 2013 at 05:18:25PM -0600, Ian Lepore wrote: > > What's the right way to launch the bourne shell from a makefile? I had > > assumed the ${SHELL} variable would be set to "the right" copy > > of /bin/sh (like maybe the one in tmp or legacy at various stages). It > > appears that that's not the case, and ${SHELL} is whatever comes from > > the environment, which can lead to using csh or bash or whatever. > > > > I see some of our makefiles use just a bare "sh" which seems reasonable > > to me, but I don't want to glitch this in src/include/Makefile again. > > The goal is to run a script in src/include/Makefile by launching sh with > > the script name (as opposed to launching the script and letting the #! > > do its thing, which doesn't work if the source dir is mounted noexec). > > > > I think BUILDENV_SHELL is what you are looking for. For this specific > case, I think instead of '#!/bin/sh', maybe '#!/usr/bin/env sh' may be > preferable. > > Glen > No, BUILDENV_SHELL is a special thing... it's used when you "make buildenv" to chroot into a cross-build environment to work interactively. I added that long ago because I can't live in a csh shell (I mean, I can't do anything, I'm totally lost), and I wanted a way to have "make buildenv" put me right into bash (of course, you have to have bash in the chroot). The flavor of hashbang to use shouldn't matter, since what I'm after here is launching the shell to run the script without using the hashbang mechanism. -- Ian