[Top][All Lists]

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

Re: GNU make 4.3.91 release candidate available

From: Frank Heckenbach
Subject: Re: GNU make 4.3.91 release candidate available
Date: Wed, 19 Oct 2022 06:31:56 +0200

> * WARNING: Future backward-incompatibility!
>   In the NEXT release of GNU Make, pattern rules will implement the same
>   behavior change for multiple targets as explicit grouped targets, below: if
>   any target of the rule is needed by the build, the recipe will be invoked if
>   any target of the rule is missing or out of date.  During testing some
>   makefiles were found to contain pattern rules that do not build all targets;
>   this can cause issues so we are delaying this change for one release cycle
>   to allow these makefiles to be updated.  GNU Make shows a warning if it
>   detects this situation: "pattern recipe did not update peer target".

This warning doesn't seem to be given for indirect targets as e.g.
would be the case with bison and cc: %.y -> %.[ch] -> %.o which was
the case that caused me problems with 4.3.90. I've since fixed my
Makefile, so no actual problem to me, but I just did a recheck and
expected to see this warning with my old Makefile and didn't get it.

% cat Makefile
%.c %.h &: %.y; touch "$@"

%.o: %.c; touch "$@"

foo.y: ; touch "$@"

clean: ; @rm -f foo.y foo.c foo.o

% make clean; make -s foo.c
Makefile:1: warning: pattern recipe did not update peer target 'foo.h'.
% make clean; make -s foo.o

reply via email to

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