> Date: Mon, 06 Mar 2006 23:56:59 -0600
> From: Matt England <[EMAIL PROTECTED]>
> Cc: "Paul D. Smith" <[EMAIL PROTECTED]>,[EMAIL PROTECTED],
>  [email protected],[email protected]
> 
> Ok, so I built make-3.81rc1 and still experience make not stopping upon 
> errors.

I think this is expected behavior, at least on the Make side.  See
below.

> $ make main.exe
> -- generating makefile: main.d
> main.cpp:1:21: sys/msg.h: No such file or directory
> g++ -c  main.cpp -o main.o
> main.cpp:1:21: sys/msg.h: No such file or directory
> make: *** [main.o] Error 1
> 
> Note that the first error should stop the make, but it doesn't.

No, it shouldn't stop Make, IMO.  This is because these two commands
are actually a single shell command, as far as Make is concerned:

> $(DDD_FILES):
>          @echo -- generating makefile: $@
>          @set -e; rm -f $@;                                          \
>          echo "$(DFILE_HDR)" > $@;                                   \
>          $(CXX) -M $(CXXFLAGS) $< > [EMAIL PROTECTED](PID);                   
>    \
>          sed 's,^.*\.o[ :]*,$(@:%.d=%.o) $@: ,g' < [EMAIL PROTECTED](PID) >> 
> $@;  \
>          rm -f [EMAIL PROTECTED](PID)

The command here is a single shell command, as evidenced by the
backslashes before each newline.  So Make doesn't regain control until
this whole multi-line command returns.

In other words, if the command needs to stop after the first error,
it's the shell that needs to stop and return to Make.

I don't know how this worked on Cygwin for you, perhaps you used a
different shell, or perhaps the Cygwin Make interacts differently with
the shell.


_______________________________________________
Make-w32 mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/make-w32

Reply via email to