>>>>> Paul D Smith writes: > I can't imagine what the problem might be... certainly bash works > fine for me with GNU make on Linux and Solaris...
Something really strange is happening. There seems to be some random variation in the results. For this Makefile: ---------------------------------------------------------------------- FOO:=$(shell echo foo) BAR:=$(shell ls Makefile) all: @echo FOO = $(FOO) @echo BAR = $(BAR) ---------------------------------------------------------------------- version 3.79.1 always gives: ---------------------------------------------------------------------- FOO = foo BAR = Makefile ---------------------------------------------------------------------- regardless of the shell. But for 3.80, I see behaviour like this: ---------------------------------------------------------------------- [matt@delta]date; for shell in bash ksh sh; do echo; echo /bin/$shell; make SHELL=/bin/$shell; done; Thu Dec 19 16:19:27 GMT 2002 /bin/bash FOO = BAR = /bin/ksh FOO = BAR = /bin/sh FOO = foo BAR = [matt@delta]date; for shell in bash ksh sh; do echo; echo /bin/$shell; make SHELL=/bin/$shell; done; Thu Dec 19 16:19:29 GMT 2002 /bin/bash FOO = foo BAR = Makefile /bin/ksh FOO = foo BAR = /bin/sh FOO = BAR = [matt@delta]date; for shell in bash ksh sh; do echo; echo /bin/$shell; make SHELL=/bin/$shell; done; Thu Dec 19 16:19:30 GMT 2002 /bin/bash FOO = BAR = Makefile /bin/ksh FOO = foo BAR = /bin/sh FOO = foo BAR = ---------------------------------------------------------------------- I ran some tests with the -d flag, and here is a sample sdiff output for one job with bash and one with ksh (with the PIDs factored out): ------------------------------------------------------------------------------------------------------------------- Considering target file `all'. Considering target file `all'. File `all' does not exist. File `all' does not exist. Finished prerequisites of target file `all'. Finished prerequisites of target file `all'. Must remake target `all'. Must remake target `all'. > FOO = foo > Got a SIGCHLD; 1 unreaped children. Putting child 0x140019880 (all) PID xxxx on the chain. Putting child 0x140019880 (all) PID xxxx on the chain. Live child 0x140019880 (all) PID xxxx Live child 0x140019880 (all) PID xxxx FOO = < Got a SIGCHLD; 1 unreaped children. < Reaping winning child 0x140019880 PID xxxx Reaping winning child 0x140019880 PID xxxx Live child 0x140019880 (all) PID xxxx Live child 0x140019880 (all) PID xxxx BAR = BAR = Got a SIGCHLD; 1 unreaped children. Got a SIGCHLD; 1 unreaped children. Reaping winning child 0x140019880 PID xxxx Reaping winning child 0x140019880 PID xxxx Removing child 0x140019880 PID xxxx from chain. Removing child 0x140019880 PID xxxx from chain. Successfully remade target file `all'. Successfully remade target file `all'. ------------------------------------------------------------------------------------------------------------------- _______________________________________________ Bug-make mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-make