Mail Archives: djgpp/1996/12/31/01:48:11
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 -