Node:Limitations of Make, Previous:Limitations of Usual Tools, Up:Portable Shell

Limitations of Make

Make itself suffers a great number of limitations, only a few of which being listed here. First of all, remember that since commands are executed by the shell, all its weaknesses are inherited...

POSIX says that the $< construct in makefiles can be used only in inference rules and in the .DEFAULT rule; its meaning in ordinary rules is unspecified. Solaris 8's make for instance will replace it with the argument.
Leading underscore in macro names
Some Make don't support leading underscores in macro names, such as on NEWS-OS 4.2R.
$ cat Makefile
_am_include = #
_am_quote =
all:; @echo this is test
$ make
Make: Must be a separator on rules line 2.  Stop.
$ cat Makefile2
am_include = #
am_quote =
all:; @echo this is test
$ make -f Makefile2
this is test

Don't use it! For instance any assignment to VPATH causes Sun make to only execute the first set of double-colon rules.