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

aotto <[email protected]>
Newsgroups gmane.comp.gnu.make.general
Message-ID <[email protected]>
On 08.12.22 18:25, Kaz Kylheku wrote:
> On 2022-12-08 09:00, aotto wrote:
>> I found the reason, it was the "-silent" switch.
>>
>>       -s, --silent, --quiet
>>             Silent operation; do not print the commands as they are executed.
>>
>> but in reality the "-silent" switch even disable the "fail-on-error" feature
> Rathern, I suspect yuo have something in the Makefile
> which inspects the flags (MAKEFLAGS variable), and produces different
> behavior.

well, more research

1. it is an automake project with additional "hand-written" rules imported with "include"

> grep  MAKEFLAGS Makefile
  sane_makeflags=$$MAKEFLAGS; \
    case $$MAKEFLAGSin \
        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
              ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
        $(MAKE) $(AM_MAKEFLAGS) distdir-am
        @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
          $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
          $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \


> grep  silent Makefile
am__v_lt_0 = --silent

command executed: *make -silent MqC.mq.cs*

rules:

MAKE_LNG        :=  cs

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

MqC.mq.$(MAKE_LNG).before: $(mqmsgque_meta) $(lng_MqC) $(lng_LIB) $(MqC_before) $(MqC_mq_before) $(lib_MqC)

mqmsgque_meta   := $(csmqmsgque_meta)

csmqmsgque_meta  := $(srcdir)/.LibMqMsgque_cs.meta

$(csmqmsgque_meta): LibMqMsgque_cs.h ../libmqmsgque/inline_mq.h $(libmqmsgque_meta)

$(csmkkernel_meta) $(csmqmsgque_meta) $(cslcconfig_meta):
     @$(call green,$(c_Meta) -meta $@ -header $<)
     @$(c_Meta) -meta $@ -header $< && touch $@

MqC_mq_after    := libcsmqmsgque.la csmqmsgque.dll


*PROBLEM*: the SECOND "|" command "MqC.mq.$(MAKE_LNG).after" is executed if the "-silent" switch is active

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


sincerely

ao
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.