# -*-perl-*- $description = 'Test the $(shell ...) function.'; $details = ''; # Test standard shell run_make_test('.PHONY: all OUT := $(shell echo hi) all: ; @echo $(OUT) ','','hi'); # Test shells inside rules. run_make_test('.PHONY: all all: ; @echo $(shell echo hi) ','','hi'); # Verify .SHELLSTATUS run_make_test('.PHONY: all PRE := $(.SHELLSTATUS) $(shell exit 0) OK := $(.SHELLSTATUS) $(shell exit 1) BAD := $(.SHELLSTATUS) all: ; @echo PRE=$(PRE) OK=$(OK) BAD=$(BAD) ','','PRE= OK=0 BAD=1'); # Test unescaped comment characters in shells. Savannah bug #20513 if ($all_tests) { run_make_test(q! FOO := $(shell echo '#') foo: ; echo '$(FOO)' !, '', "#\n"); } # Test shells inside exported environment variables. # This is the test that fails if we try to put make exported variables into # the environment for a $(shell ...) call. run_make_test(' export HI = $(shell echo hi) .PHONY: all all: ; @echo $$HI ','','hi'); # Test shell errors in recipes including offset run_make_test(' all: @echo hi $(shell ./basdfdfsed there) @echo there ', '', "#MAKE#: ./basdfdfsed: Command not found\nhi\nthere\n"); 1; ### Local Variables: ### eval: (setq whitespace-action (delq 'auto-cleanup whitespace-action)) ### End: