[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
2.2.7 Two-Part Installation
In our last example (see section Parallel Build Trees (a.k.a. VPATH Builds)), a source tree was shared by two hosts, but compilation and installation were done separately on each host.
The GNU Build System also supports networked setups where part of the installed files should be shared amongst multiple hosts. It does so by distinguishing architecture-dependent files from architecture-independent files, and providing two ‘Makefile’ targets to install each of these classes of files.
These targets are install-exec
for architecture-dependent files
and install-data
for architecture-independent files.
The command we used up to now, make install
, can be thought of
as a shorthand for make install-exec install-data
.
From the GNU Build System point of view, the distinction between
architecture-dependent files and architecture-independent files is
based exclusively on the directory variable used to specify their
installation destination. In the list of directory variables we
provided earlier (see section Standard Directory Variables), all the
variables based on exec-prefix designate architecture-dependent
directories whose files will be installed by make install-exec
.
The others designate architecture-independent directories and will
serve files installed by make install-data
. See section The Two Parts of Install, for more details.
Here is how we could revisit our two-host installation example, assuming that (1) we want to install the package directly in ‘/usr’, and (2) the directory ‘/usr/share’ is shared by the two hosts.
On the first host we would run
[HOST1] ~ % mkdir /tmp/amh && cd /tmp/amh [HOST1] /tmp/amh % /nfs/src/amhello-1.0/configure --prefix /usr ... [HOST1] /tmp/amh % make && sudo make install ...
On the second host, however, we need only install the architecture-specific files.
[HOST2] ~ % mkdir /tmp/amh && cd /tmp/amh [HOST2] /tmp/amh % /nfs/src/amhello-1.0/configure --prefix /usr ... [HOST2] /tmp/amh % make && sudo make install-exec ...
In packages that have installation checks, it would make sense to run
make installcheck
(see section Basic Installation) to verify that
the package works correctly despite the apparent partial installation.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on January 25, 2014 using texi2html 5.0.