%% [EMAIL PROTECTED] writes: yi> Is the order of definitions and actions in makefile important?
In some cases yes, in some cases no. See the GNU make manual, section on "How Make Reads a Makefile" for information on when variables are expanded in various contexts in a makefile. The GNU make manual is your friend :). yi> VAR1= ... yi> VAR2=... yi> clean: ... yi> ... yi> VAR3= $(shell ....) yi> make_dep: .... yi> ..... yi> Will VAR3 be calculated (= executing the shell command) ONLY for yi> make_dep ? The shell command in VAR3 will be invoked every single time the value of VAR3 is used. Recursive variables, like the ones you're using above, have their contents re-expanded every time they are used. Compare this to simply-expanded variables (:=). See the GNU make manual for information on the difference. yi> or does the make parser first calculates all definition and then yi> starts checking for actions ? It doesn't really work like that. Make parses the entire makefile, and as it does so it will expand variables as needed to construct the dependency graph. Again, see the GNU make manual for details. Then, after the makefiles are all read, make will start to invoke command scripts to build targets that are out of date. As it attempts to build each target, it will evaluate the variables in that target's command scripts. -- ------------------------------------------------------------------------------- Paul D. Smith <[EMAIL PROTECTED]> Find some GNU make tips at: http://www.gnu.org http://make.paulandlesley.org "Please remain calm...I may be mad, but I am a professional." --Mad Scientist _______________________________________________ Help-make mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/help-make
