help-make
[Top][All Lists]
Advanced

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

Re: Question WHY is gnu make does not stop on error on rule


From: Paul Smith
Subject: Re: Question WHY is gnu make does not stop on error on rule
Date: Thu, 08 Dec 2022 14:21:58 -0500
User-agent: Evolution 3.46.1 (by Flathub.org)

On Thu, 2022-12-08 at 19:59 +0100, aotto wrote:
> HA HA HA - I fund the bug !!
> 
> I used "-silent" and not "--silent", the "-silent" is parsed as

That's funny, but I'm not sure why it works differently in 4.4 since
that was still the case in 4.3, if you use "-silent".

> MqC.mq.$(MAKE_LNG): | MqC.mq.$(MAKE_LNG).before MqC.mq.$(MAKE_LNG).after

This usage is dangerous, because:

  $ false
  $ echo $?
  1

  $ false | cat
  $ echo $?
  0

See how the pipeline swallowed the failing exit code?  The exit code of
a pipeline is always the exit code of the last statement in the
pipeline (here, the "cat" program).

If you want to require bash you can use something like:

  SHELL := /bin/bash
  .SHELLFLAGS = -o pipefail -c

which will force the exit code of a pipeline to be the exit code of the
last failing command, not the last command.

If you don't want to require bash, you'll have to get a LOT fancier
than simply adding a pipe in a variable, if you want to preserve exit
codes.




reply via email to

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