Next: , Up: Automake variable definitions   [Contents][Index]

5.1.1.1 Variables based on primaries

Many Automake variables follow a naming scheme that determines how programs and other derived objects are built and installed. Such a variable name consists of several pieces which are concatenated together: optional special prefixes, followed by a directory prefix, followed by a primary.

We refer to the piece that tells automake the type of object being listed as the primary. For instance, a variable based on the primary PROGRAMS holds a list of programs that are to be compiled and linked. The current primary names are ‘PROGRAMS’, ‘LIBRARIES’, ‘LTLIBRARIES’, ‘LISP’, ‘PYTHON’, ‘JAVA’, ‘SCRIPTS’, ‘DATA’, ‘HEADERS’, ‘MANS’, and ‘TEXINFOS’.

The writer of Makefile.am uses the directory prefix to declare which directory the built objects should be installed in. The standard directory names are given in the GNU standards (see Directory Variables in The GNU Coding Standards). Automake extends this list with pkgdatadir, pkgincludedir, pkglibdir, and pkglibexecdir; these are the same as the non-‘pkg’ versions, but with ‘$(PACKAGE)’ appended. For instance, pkglibdir is defined as ‘$(libdir)/$(PACKAGE)’. See Standard installation directories for a full list. The ‘dir’ suffix is removed when constructing the variable names: thus the variable for listing programs to be installed in bindir is ‘bin_PROGRAMS’.

The prefix ‘noinst_’ indicates that the objects in question should be built but not installed at all. This is usually used for objects required to build the rest of your package, for instance static libraries (see Libraries), or helper scripts.

Automake will not permit some combinations of primary and directory prefix where it would not normally make sense to install objects of that type in the directory specified, and will give an error if this is attempted. (However if you really need to, see Adding installation directories for how to override this check.)

Automake will also diagnose obvious misspellings in directory names.

Some primaries also allow additional prefixes. At most one of ‘nobase_’, and ‘notrans_’ may be used, followed by at most one of ‘dist_’ and ‘nodist_’. dist_ and nodist_ are also meaningful for some variables that are not based on primaries; see the next section. These prefixes are explained later (see Program and Library Variables) (see Man Pages).

The special prefix ‘check_’ indicates that the objects in question should not be built until the ‘make check’ command is run. Those objects are not installed either.

Next: , Up: Automake variable definitions   [Contents][Index]