[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Substitution of SHELL and CONFIG_SHELL
From: |
Alexandre Duret-Lutz |
Subject: |
Re: Substitution of SHELL and CONFIG_SHELL |
Date: |
Sun, 15 Feb 2004 21:38:02 +0100 |
User-agent: |
Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3.50 (gnu/linux) |
>>> "Paul" == Paul Eggert <address@hidden> writes:
Paul> address@hidden (Niels Möller) writes:
>> When running configure generated by autoconf-2.59 on Solaris,
>> CONFIG_SHELL gets set to /bin/bash, which is ok. But then the value
>> somehow leaks over to SHELL, resulting in
>>
>> SHELL=/bin/bash
>>
>> being substituted into all my Makefiles. Is there a good reason for
>> that? Rules in Makefiles are generally written for /bin/sh, and unlike
>> configure, speed and availability of $LINENO doesn't really matter.
>> So I would generally feel a lot more comfortable with SHELL=/bin/sh in
>> the Makefiles.
>>
>> I noticed this because only because one user couldn't got bash errors
>> when running make, and it turned out he had a set -u in his .bashrc.
>> To me, doing that unconditionally in .bashrc seems like a very broken
>> thing to do,
Sorry if I'm missing something obvious, but why was `.bashrc'
read at all? I though it was only read by interactive shells.
[...]
Paul> The change to Autoconf to use 'address@hidden@' rather than
Paul> 'SHELL=/bin/sh' was done a long time ago:
Paul> Wed Sep 3 23:00:44 1997 Chris Provenzano <address@hidden>
Paul> * configure : New configure generated by autoconf.
Paul> * Makefile.in : Set address@hidden@. configure now substiutes
Paul> ${CONFIG_SHELL-/bin/sh} in for @SHELL@ at configure time.
It was changed from /bin/sh to @SHELL@ by the same person in Automake.
Mon Sep 11 16:07:55 1997 Chris Provenzano <address@hidden>
* header-vars.am: address@hidden@
[...]
Paul> Also, perhaps this is more of an Automake issue rather than an
Paul> Autoconf issue? That is, either the GNU coding standards should be
Paul> changed, or Automake should be changed to output "SHELL = /bin/sh"
Paul> rather than "SHELL = @SHELL@" into Makefile.in. (Or perhaps it should
Paul> be changed to "SHELL = @MAKE_SHELL@" so that we could distinguish the
Paul> two uses of shells.)
Hmmm, what are these two uses? It seems preferable to me not to
multiply the number of shells in use. What is good for
configure ought to be good for make.
--
Alexandre Duret-Lutz