[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Recursive GMAKE with -j option

From: Paul D. Smith
Subject: RE: Recursive GMAKE with -j option
Date: Mon, 2 Jul 2001 16:51:34 -0400

%% "Bhatt, Milan C" <address@hidden> 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 <address@hidden>          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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]