delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/05/26/12:19:00

Date: Tue, 26 May 1998 19:18:47 +0300 (IDT)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: Ruiter de M <mdruiter AT cs DOT vu DOT nl>
cc: djgpp AT delorie DOT com
Subject: Re: MAKE with BASH
In-Reply-To: <6kblf4$24n$1@star.cs.vu.nl>
Message-ID: <Pine.SUN.3.91.980526191816.20866G-100000@is>
MIME-Version: 1.0

On 25 May 1998, Ruiter de M wrote:

> Now we are at it, can't we force Make to use Bash (if available)?

No, AFAIK, you can't, not without rewriting the Makefile.  You can only 
force Make to invoke Bash for those commands which need a shell.  But if
Make decides that a command can be invoked directly, it won't call any
shell.

> I hate it when, for instance, configure figures out that
> //j/bin/ginstall.exe is my GNU-install and Make fails to run it
> (because it doesn't know about the //d/* Bash extension).

You shouldn't need to struggle with these problems in the first place.
If you set PATH_SEPARATOR=:, always set PATH_EXPAND=y as well.  This
will cause Bash to convert the pathnames back to the usual DOS
d:/foo/bar form when it invokes external program (make.exe is an
external program).

The //d/foo feature and PATH_SEPARATOR=: are only designed to make
Unix shell scripts which take PATH apart work.  You shouldn't be using
them in your general-purpose day-to-day work, since it is unsupported
by the core DJGPP library functions.  (A recent poll between DJGPP
developers on whether to add this support to DJGPP's libc was met with
mixed feelings, so most probably it won't be added.)

> I noticed the MAKESHELL-variable somewhere. Just what does it do
> _exactly_?

It has the same effect as SHELL, but takes precedence over SHELL.  It
is designed for those cases where people have SHELL defined for other
tools, and the value of SHELL is not good for Make.  (The description
is in README.dos file inside the Make distribution, and also in the
Info docs, under "Command Execution".)

> I have had some problems with makefiles using Bash that
> worked without MAKESHELL but not with it.

Please tell what were the problems, and how did you set MAKESHELL.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019