If a command fails in make
, such as gcc
, it exits...
gcc
gcc: fatal error: no input files
compilation terminated.
make: *** [main.o] Error 4
However, if I have a pipe the exit status of the last command in the pipe is taken. As an example, gcc | cat
, will not fail because cat
succeeds.
I'm aware the exit codes for the whole pipe are stored in the PIPESTATUS
array and I could get the error code 4 with ${PIPESTATUS[0]}
. How should I structure my makefile to handle a piped command and exit on failure as normal?
As in the comments, another example is gcc | grep something
. Here, I assume the most desired behavior is still for gcc
and only gcc
to cause failure and not grep
if it doesn't find anything.