"make" doesn't execute recipes with /bin/sh. For instance, consider the following Makefile file: ---------------------------------------- SHELL = /bin/sh all: true ---------------------------------------- and put a script called "true" in your path, containing: echo foo exit 1 I get: $ make true foo make: *** [Makefile:4: all] Error 1 There is no such issue with other SHELL values. Note: according to POSIX, "true", like some other utilities, is not subject to PATH search.