What follows is a list of features, which are not yet supported in this
implementation of Make:
- the override directive
- the foreach function
- the origin function
- the shell function
- static pattern rules
- double colon rules
- VPATH search path for dependencies
- the vpath directive
- communicating options to a submake
- the automatic variables $ˆ, $? and $%
- the directives .IGNORE, .PRECIOUS and .SILENT
- archives are not supported.
- the automatic variable MAKELEVEL is not implemented.
- the MAKEFILES variable is not supported
- parallel execution is not supported.
- the special significance of + in a command line
What follows is a list of incompatibilities:
- the command line arguments are different
- GNU Make allows conditional expressions in five forms:
ifeq (arg1,arg2)
ifeq 'arg1' 'arg2'
ifeq "arg1" "arg2"
ifeq 'arg1' "arg2"
ifeq "arg1" 'arg2'
this implementation only allows the first form.
- the AmigaDOS wildcard syntax is different than that used in Unix.
- the behaviour of certain pattern rules may not be what is
expected because GNU Make only matches patterns in the file part
of the pathname, whereas the entire pathname is matched in this
implementation.
- executing the Make program from within a Makefile is untested,
and the author doesn't know what to expect.
- None of the builtin rules are the same. Only a very basic set
of C language rules have been included to save memory.
Embellishing the builtin rules can be done in one of the Makefiles
which are read in before the user Makefile.
- When using the dir function, pathnames without a directory
part are not translated into ./ for the current directory,
because in AmigaDOS, the current directory is the null string.
Thus dir and nodir may not be undone with the
join function.
- GNU Make does not allow conditional commands, but they are
supported in this program.
- GNU Make does not support the exists or nexists
conditions, but they are supported in this program.
- The use of quotation marks and backslash characters to delimit
strings and escape characters respectively is ignored on the most
part in this program.
- GNU Make may consider the dependent of an implicit rule (a
pattern rule) to be terminal; ie. there is no need for the
dependent of an implicit rule to be made first. This program
does not consider such a dependent as terminal. A single
suffix (pattern) rule with no dependents and no commands may
be used to terminate the search.