Technically, you oughtn't even rely on the left-to-right traversal since the 
order is undefined /and/ will even occur in parallel when the -j flag is used.  
Makefiles ought to be coded with -j in mind.

HTH,
Noel

John Graham-Cumming wrote:

On Mon, 2005-02-07 at 09:54, Robert P. J. Day wrote:

$(Program): build_msg (OBJECTS) $(BUILTINS_DEP) ...
        ... regular commands here ...

.PHONY: build_msg
build_msg:
        @printf ... building $(Program) ...

the text reads:

 "Because the printf is in a phony target, the message is printed
immediately before any prerequisites are updated."

really?


No.  Just try an experiment:

    .PHONY: all
    all: real-target phony-target other-real-target

    real-target: ; @echo $@
    other-real-target: ; @echo $@

    .PHONY: phony-target
    phony-target: ; @echo $@

And you'll see the output is

    real-target
    phony-target
    other-real-target

Try permuting the prerequisites of all and you see that Make traverses
them left to right.  PHONY only affects whether the prerequisite will be
updated or not.

John.


_______________________________________________
Help-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-make

Reply via email to