What is the ".MAKE" target in gnu make?
makefile
Solution
This target doesn't do anything by itself. It has no special meaning to a `make` I know.
However, it is automatically generated when a project uses GNU Automake. Automake creates the `Makefile.in` files, which `./configure` will use to generate `Makefile`s.
It isn't listed among the targets in the documentation: only developers will need it, as its definition in a generated `Makefile.in` shows:
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check-am \
ctags-recursive install-am install-strip tags-recursive
The two variables are defined elsewhere in `Makefile.in`, and it appears that this target will attempt to do a full runthrough of everything that can be done at all: cleaning up the source tree, compiling the software, running automatic tests, installing it, uninstalling it, and a few steps that are only useful for developers. So this is basically a one-shot test run that might for instance be used during continuous build tests.
This is a clear example of why `automake` was created: a much-desired feature is missing from `make` (namely the ability to tell it to "do everything"), so `automake` provides it.
Problem
".MAKE" appears in gnu Makefile for a number of packages which use AutoMake, but appears to be undocumented as a "special" target in the online manual. Anyone know what it does?