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