, GNU make GNUmakefile makefile makefile, , , (decoy) makefile, /
default:
@echo "This requires GNU make, run gmake instead"
exit 70
GNU GNUmakefile, makefile GNU, , .
, make Makefile, , . FreeBSD BSDmakefile, makefile ( , , make ). AFAICT AIX Solaris make , .
makefile, GNU make, .
-, ( , OSF1, BSD Solaris), SOMETHING=$(shell ...) GNU make, GNU SOMETHING. - , . , $() (.. $(shell foo) /, function, ).
, , , , , :
GNUMAKE=$(shell echo GNUMAKE)
default: gnumake all
gnumake:
@[ "$(GNUMAKE)" = "GNUMAKE" ] || { echo GNU make required ; exit 70; }
, POSIX sh.
( , $(MAKE) -v , GNU make "make", make GNU make... PATH, make , , SHELL .)