Added MAKEFLAGS to sub-make invocations

Posix requires make to use MAKEFLAGS to affect the current and recursive
invocations of make, but allows implementations several formats for the variable.
Fixed SHELL variable protection

Posix-compliant make should never acquire the value of `$(SHELL)` from the
environment, even when `make -e` is used.