On Tuesday, February 19, 2019 10:51:42 AM EST Masahiro Yamada wrote: > > ------------(Makefile begin)--------- > .PHONY: all > all: foo.x foo.z > > %.x %.z: > touch $@ > -------------(Makefile end)---------- > > $ rm foo* > $ make > touch foo.x > $ make > touch foo.z > $ make > make: Nothing to be done for 'all'. > > When multiple targets appear in one implicit rule, > Make runs the recipe just once instead of twice > even when it is requested to create two targets. > > In this case, does Make assume the recipe > will create both %.x and %.z ? > > Is this behavior intentional? > Documented somewhere?
There are two cases, both documented in the GNU Make manual: 1. https://www.gnu.org/software/make/manual/html_node/Multiple-Targets.html 2. https://www.gnu.org/software/make/manual/html_node/Pattern-Intro.html Your example is covered by the first reference which describes multiple targets for a normal rule. If you want the recipe in a rule to create more than one target, you have to use a pattern rule as documented in the second reference. -- JP _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make