On Tue, Jun 12, 2012 at 10:50:33AM +0200, Paolo Bonzini wrote: >Il 12/06/2012 10:33, Wei Yang ha scritto: >> .PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS)) >> $(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: >> $(check-qtest-y) >> $(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \ >> gtester $(GTESTER_OPTIONS) -m=$(SPEED) >> $(check-qtest-$*-y),"GTESTER $@") >> >> I know the general idea is to create a rule for target such as >> check-qtest-x86_64. >> >> There are two colons, usually there is one colon in dependency. > >Search for "Static pattern rules". Static pattern rules are probably >the single most useful GNU make extension. They greatly limit the >amount of "magic" the make does, so the resulting Makefiles are more >easily debuggable. Here is an extract from the GNU make manual: > >===== > TARGETS ...: TARGET-PATTERN: PREREQ-PATTERNS ... > RECIPE > ... > >The TARGETS list specifies the targets that the rule applies to. The >targets can contain wildcard characters, just like the targets of >ordinary rules (*note Using Wildcard Characters in File Names: >Wildcards.). > > The TARGET-PATTERN and PREREQ-PATTERNS say how to compute the >prerequisites of each target. Each target is matched against the >TARGET-PATTERN to extract a part of the target name, called the "stem". >This stem is substituted into each of the PREREQ-PATTERNS to make the >prerequisite names (one from each PREREQ-PATTERN). >===== > > >$* is also replaced by the stem. In fact in this case, the stem is not >used in the PREREQ-PATTERNS, it is only used in the commands. > >Paolo Thanks :) I learn it.
-- Richard Yang Help you, Help me