[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
12.4 Staged installs
Automake generates support for the DESTDIR
variable in all
install rules. DESTDIR
is used during the ‘make install’
step to relocate install objects into a staging area. Each object and
path is prefixed with the value of DESTDIR
before being copied
into the install area. Here is an example of typical DESTDIR usage:
mkdir /tmp/staging && make DESTDIR=/tmp/staging install |
The mkdir
command avoids a security problem if the attacker
creates a symbolic link from ‘/tmp/staging’ to a victim area;
then make
places install objects in a directory tree built under
‘/tmp/staging’. If ‘/gnu/bin/foo’ and
‘/gnu/share/aclocal/foo.m4’ are to be installed, the above command
would install ‘/tmp/staging/gnu/bin/foo’ and
‘/tmp/staging/gnu/share/aclocal/foo.m4’.
This feature is commonly used to build install images and packages (see section Building Binary Packages Using DESTDIR).
Support for DESTDIR
is implemented by coding it directly into
the install rules. If your ‘Makefile.am’ uses a local install
rule (e.g., install-exec-local
) or an install hook, then you
must write that code to respect DESTDIR
.
See (standards)Makefile Conventions section `Makefile Conventions' in The GNU Coding Standards, for another usage example.