[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

23. 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 package with subdirectories. 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 targets.

The targets that support a local version are all, info, dvi, check, install-data, install-exec, uninstall, installdirs, installcheck 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-local:
        $(INSTALL_DATA) $(srcdir)/afile $(DESTDIR)/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, uninstall, dist, and distcheck.

For instance, here is how to create a hard link to an installed program:

 
install-exec-hook:
        ln $(DESTDIR)$(bindir)/program $(DESTDIR)$(bindir)/proglink


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated on May 3, 2002 using texi2html