If I understand correctly, the $(MAKE) after the colon will never get executed, so there's no point in putting it there (except perhaps as a somewhat cryptic comment)
Envoyé: jeudi 26 novembre 2015 à 14:03 De: "David Boyce" <d...@boyski.com> À: "Ewan Delanoy" <ewan.dela...@gmx.fr> Cc: help-make <help-make@gnu.org> Objet: Re: Meaning of @: The colon is not a make feature at all but a shell construct. It’s a “do-nothing” command; the result is similar to commenting out the line, except that in this case the $(unstage) action would still take place since it’s separated by a semicolon. BTW this is a badly written makefile because “;” should almost never be used in a make recipe since it throws away exit status. A good recipe uses && to separate commands which might fail. Consider the canonical typo example: “cd /tmpp; rm -rf *” vs “cd /tmpp && rm -rf *”. On Thu, Nov 26, 2015 at 4:55 AM, Ewan Delanoy <ewan.dela...@gmx.fr> wrote: > > > Below is the "bootstrap" rule in gcc5.2.0's Makefile. What I don't > get is the meaning > of the @: at the beginning of the seventh line. I couldn't find it in > the manual. > I only know that @ before a shell command makes that command executed > but not displayed, > but why add the : ? > > > .PHONY: bootstrap bootstrap-lean > bootstrap: > echo stage3 > stage_final > @r=`${PWD_COMMAND}`; export r; \ > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ > $(MAKE) $(RECURSE_FLAGS_TO_PASS) stage3-bubble > @: $(MAKE); $(unstage) > @r=`${PWD_COMMAND}`; export r; \ > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ > TFLAGS="$(STAGE3_TFLAGS)"; \ > $(MAKE) $(TARGET_FLAGS_TO_PASS) all-host all-target > _______________________________________________ > Help-make mailing list > Help-make@gnu.org > [1]https://lists.gnu.org/mailman/listinfo/help-make References 1. https://lists.gnu.org/mailman/listinfo/help-make _______________________________________________ Help-make mailing list Help-make@gnu.org https://lists.gnu.org/mailman/listinfo/help-make