www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/12/31/01:48:11

Date: Tue, 31 Dec 1996 08:35:44 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: Dennis Bjorklund <md3den AT mdstud DOT chalmers DOT se>
cc: djgpp AT delorie DOT com
Subject: Re: make 3.75
In-Reply-To: <5a8491$925@nyheter.chalmers.se>
Message-ID: <Pine.SUN.3.91.961231081945.13841G@is>
MIME-Version: 1.0

On 30 Dec 1996, Dennis Bjorklund wrote:

> I changed from Make 3.73 to 3.75 since I wanted make to work with long
> filenames (it didn't work with pattern rules). But now my old makefiles
> doesn't work. I use 4dos and an action like this:
> 
> a:
>     gcc a.cc |& list /s
> 
> wich should send all output to list. The & means that stderr also is sent to
> list. It worked with the old make and doesn't work with the new one.
> 
> It sayes that & is not a command.

The DJGPP port of Make 3.75 has radically changed the way commands are
executed.  The new Make tries very hard to not call the shell, unless it's
a Unix-like shell (which 4DOS is not), but calls `system' from the DJGPP
library instead, so you don't lose long command lines when using
redirection and pipes.  While `system' emulates all the functionality of
COMMAND.COM and then some, it doesn't know about 4DOS-specific features 
such as "|&".  The best way to deal with this is to change your Makefiles 
so that they don't use 4DOS-specific tricks.

> I could fixed the first problem with redir. Then he complains that list
> is unknown.

This command should have worked:

a:
	redir -eo gcc a.cc | list /c

If it didn't, please try to understand why it fails.  Make shouldn't have 
any problems with built-in commands of your SHELL.  If it doesn't find 
`list' with any executable extension on the PATH, it should prepend 
"4dos.com /c " and try again.  How exactly do you set your SHELL 
variable?

- Raw text -


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