21 When Automake Isn't Enough
Automake's implicit copying semantics means that many problems can be
worked around by simply adding some `make' targets and rules to
`Makefile.in'. Automake will ignore these additions.
There are some caveats to doing this. Although you can overload a
target already used by Automake, it is often inadvisable, particularly
in the topmost directory of a non-flat package. However, various useful
targets have a `-local' version you can specify in your `Makefile.in'.
Automake will supplement the standard target with these user-supplied
The targets that support a local version are `all', `info', `dvi',
`check', `install-data', `install-exec', `uninstall', and the various
`clean' targets (`mostlyclean', `clean', `distclean', and
`maintainer-clean'). Note that there are no `uninstall-exec-local' or
`uninstall-data-local' targets; just use `uninstall-local'. It doesn't
make sense to uninstall just data or just executables.
For instance, here is one way to install a file in `/etc':
$(INSTALL_DATA) $(srcdir)/afile /etc/afile
Some targets also have a way to run another target, called a "hook",
after their work is done. The hook is named after the principal target,
with `-hook' appended. The targets allowing hooks are `install-data',
`install-exec', `dist', and `distcheck'.
For instance, here is how to create a hard link to an installed
ln $(bindir)/program $(bindir)/proglink
automatically generated byinfo2html