Hi Chris, Am Wed, 8 Dec 2010 14:20:03 -0500 schrieb Chris Cross <[email protected]>:
> Trying to understand how $(error) works. The manual says "error is > generated whenever this function is evaluated." With the makefile > below I would expect to see output from line1 of the recipe but only > see output from $(error). > target: > @echo recipe line 1 > $(error debug exit recipe line 2) > > $ make -f error.mk > error.mk:5: *** debug exit recipe line 2. Stop. Recipes are expanded (all $(eval) $(info) $(call) $(error) $(if) $(shell)... statements) in the make-process before it is given (as a job, thus maybe parallel to other jobs) to the shell to be executed (with one or more calls depending on .ONESHELL). Because error aborts, your recipe never gets to the second step. If you think about it, it cannot be different: As for example $(eval) changes the state of make (for example variables) it needs to run in the make-process without parallelisation -- before the job is kicked off itself. Best Regards, Bjoern _______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make
