Az
-M-et a SUSv2-ben nem ismeri a
c89, a SUSv3-ban (= POSIX 1003.1, 2004 Edition-ben) pedig nem ismeri a
c99.
Az
ifneq,
wildcard,
includekulcsszavak egyikét sem ismeri sem a SUSv2
make, sem a SUSv3
make. Utóbbinak érdemes elolvasni a RATIONALE szakaszát, ugyanis beszél többek között az
include-ról:
Historically, the make utility has been an especially fertile ground for vendor and research organization-specific syntax modifications and extensions. Examples include: [...] Adding C preprocessor-style "include" and "ifdef" constructs (System V, GNU, BSD, and others).[...]
The best way to provide portable makefiles is to include all of the rules needed in the makefile itself.
[...]
The System V INCLUDE feature was considered, but not included. This would treat a line that began in the first column and contained INCLUDE <filename> as an indication to read <filename> at that point in the makefile. This is difficult to use in a portable way, and it raises concerns about nesting levels and diagnostics. System V, BSD, GNU, and others have used different methods for including files.
The System V dynamic dependency feature was not included.
A SUS az én meglátásomban egy "write once, compile anywhere" helyzetre törekszik, és a szabvány a hangsúlyt a "compile anywhere"-re helyezi. A "write once" hogyanja a fejlesztő dolga, "develop anywhere" nem szerepel a célkitűzésben.