Unsupported GNU Make options
Option | eMake response if specified |
---|---|
|
Error message |
|
Ignored |
|
Ignored |
|
Error message |
|
Error message |
|
Error message |
|
Error message |
GNU Make 3.81 support
eMake does not support the following GNU Make 3.81 features:
-
Though
$(eval)
is allowed in rule bodies, any variables created by the$(eval)
exist only in the scope of the rule being processed, not at the global scope as in GNU Make. For example, the following is not supported:
all: $(eval foo: bar)
-
Using ` $*` for an archive member target
GNU Make 3.82 Support
GNU Make 3.82 emulation supports the following GNU Make 3.82 features:
-
Multi-line variable definition types
-
Behavior in which pattern rule searches prefer the most-specific matching pattern, rather than the first matching pattern. For example, for a target {{foo.o}} and patterns {{%.o}} and {{f%.o}}, in that order, gmake 3.81 uses the {{%.o}} pattern, because it is the first match, but gmake 3.82 uses the {{f%.o}} pattern, because it is a more specific match
Other GNU Make 3.82 features are not supported.
GNU Make 4.0 and 4.1 support
GNU Make 4.0 and 4.1 emulation supports the GNU Make 4.0 shell assignment feature, where VAR!=<command>
is equivalent to VAR:=$(<shell command>)
. Other GNU Make 4.0 features are not supported.
GNU Make 4.2 support
GNU Make 4.2 emulation supports the GNU Make 4.2 $(.SHELLSTATUS)
variable. This variable is set to the exit status of the last !=
or $(shell …)
function invoked in this instance of Make. The value is 0
if successful or > 0
if not successful. The value is unset if the !=
or $(shell …)
function was not invoked. Other GNU Make 4.2 features are not supported.