automake-1.16: Staged Installs
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
(⇒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’.
⇒(standards)Makefile Conventions, for another usage example.