%% "Bhatt, Milan C" <[EMAIL PROTECTED]> writes:
bmc> Because tcsh wasn't fully POSIX compliant, it could not properly
bmc> establish a pipe for communication between the sub-make processes
bmc> leading to gmake complaining that the "job sever" wasn't
bmc> available.
Wow. I'm really surprised that C shell is so broken. But, you're
right; here's a test makefile I used:
#SHELL = /bin/tcsh
all: one two
one two:
@echo 'all: ; @echo $@' | $(MAKE) -f -
If you run this with the SHELL line commented out and -j2 or whatever,
it works fine. If you uncomment the SHELL line, it gives that error
because the file descriptors in the submake aren't valid any longer.
I couldn't see any way, reading the man page, to disable this behavior.
Note this has little to do with POSIX, per se. Neither csh nor tcsh
have any relationship whatsoever to POSIX. POSIX defines only one
shell, and that's Bourne (plus some stuff from ksh). C shell variants
aren't even close, so it's not relevant to talk about POSIX compliance
and csh/tcsh.
I'll add a note to the GNU make docs that if you want to use jobserver
you can't use csh/tcsh as your SHELL (I tested this with csh on Solaris
and it failed as well, so it's not just tcsh).
This should not be a great hardship, since no one in their right mind
would do scripting in csh/tcsh anyway ;)
--
-------------------------------------------------------------------------------
Paul D. Smith <[EMAIL PROTECTED]> Find some GNU make tips at:
http://www.gnu.org http://www.paulandlesley.org/gmake/
"Please remain calm...I may be mad, but I am a professional." --Mad Scientist
_______________________________________________
Bug-make mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-make