www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/04/07/04:23:38

Date: Tue, 7 Apr 1998 11:22:56 +0300 (IDT)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: Kbwms <Kbwms AT aol DOT com>
cc: djgpp AT delorie DOT com
Subject: Re: Possible Problem with Make
In-Reply-To: <29b61693.3528fca9@aol.com>
Message-ID: <Pine.SUN.3.91.980407112239.14139F-100000@is>
MIME-Version: 1.0

On Mon, 6 Apr 1998, Kbwms wrote:

>     Report bugs to <bug-gnu-utils AT prep DOT ai DOT mit DOT edu>.
> 
> That address to report bugs can't be right, can it?

Why not?  It's exactly right.

However, bug reports that seem to be peculiar to the DJGPP port or
specific to DOS/Windows platforms (like it is in your case) should be
posted here first, as explained in the file README.dos which comes
with the Make distribution.  So you did the right thing.

> I am getting Error -1 but I don't know how to decipher that.

"Error -1" usually means that Make was unable to find a file or a
program it needs to run.

>     makedep:
>             mkdep $(SOURCE_NAMES)
> 
> Make should be trying to launch a shell command, mkdep.sh.  Problem
> is, make can't find it.

You didn't post enough info to unlock the cause of the problem, so I
can only guess what could happen.  To fully understand this, I need to
know what mkdep.sh says and whether it is in the current directory or
on the PATH.

One possibility is that mkdep.sh doesn't have the string "#!/bin/sh"
on its first line.  Without that line, Make will not know that this is
a shell script, and will not know how to run it.

Another possible cause is that mkdep.sh *was* run, but some part of it
failed and caused the entire script to fail with exit code of -1 which
was then returned to Make.

> The following are defined:
> 
>     MAKESHELL    =  c:/usr/bin/sh.exe
>     SHELL        =  c:/usr/bin/sh.exe

I think these variables don't affect this case at all, unless
$(SOURCE_NAMES) includes shell wildcards.  GNU Make doesn't call the
shell at all unless the command seems to require it.  So I assume that
Make is invoking mkdep.sh directly, not through the shell.  (The
underlying library functions called by Make *will* of course need to
call the shell, but they don't use the above variables as well.)

What you do need is to have C:\USR\BIN on your PATH.  But this line

>             sh mkdep $(SOURCE_NAMES)

which works, seems to indicate that it is already on your PATH.

> This is what I had to do under the previous version of make (3.75).

Make 3.76.1 didn't change anything in neither how shell scripts are
run nor how Unix-style shells are supported.  So both of these
versions will work or fail in the same way in your case.

- Raw text -


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