(automake-1.16.info)Two-Part Install


Next: Cross-Compilation Prev: VPATH Builds Up: Use Cases
Enter node , (file) or (file)node

2.2.7 Two-Part Installation
---------------------------

In our last example (Note: 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
(Note: 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’.  Note: 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’ (Note: Basic Installation) to verify that the
package works correctly despite the apparent partial installation.


automatically generated by info2www version 1.2.2.9