Subject: Re: bmake-20071008 posted
To: Simon Gerraty <sjg@juniper.net>
From: Alan Barrett <apb@cequrux.com>
List: tech-pkg
Date: 10/12/2007 11:18:32
On Thu, 11 Oct 2007, Simon Gerraty wrote:
> Joerg Sonnenberger <joerg@britannica.bec.de> wrote:
> >Can you please merge in the patches to allow specifying arbitrary
> >shells instead of hard-coding them from a single directory? I've
> >mailed you those earlier with a minor bug. That's important for
> >Solaris :-)
>
> The shell handling in make was cleaned up a while back by dsl I think
> and probably achieves what you are after (see below).  This is all
> included in bmake, I suspect the shell handling in configure.in needs
> an overhaul as a result (not that I had any problems on SunOS).

Several people have done things to the shell handling in make.  The
change you are probably thinking of is that I added _BASENAME_DEFSHELL
and changed the order of entries in the shells[] array (job.c revision
1.121 and config.h revision 1.19 in the NetBSD CVS repository).

Hmm, the defshell handling in pkgsrc/devel/bmake's configure
script doesn't appear to have been updated after my changes. The
mapping from DEFSHELL integers to shell names has changed, and
it's now possible to use any arbitrary POSIX-compatible shell.
See [netbsd]/src/tools/make/configure.ac for how I derived
_BASENAME_DEFSHELL and _PATH_DEFSHELLDIR from BSHELL (which is set by
[netbsd]/src/build.sh).

This should probably all change again now that _BASENAME_DEFSHELL is
allowed to be a full path (and yet again if you follow my suggestion to
rename the _DEFSHELL_BASENAME variable).

Is it desirable to retain the old mapping from DEFSHELL values to shell
names?  If so, we'd have to shuffle the order of the shells[] array
again and re-work the _DEFSHELL_BASENAME stuff to suit.

--apb (Alan Barrett)