The GNU Coding Standards also specify a hierarchy of variables to denote installation directories. Some of these are:
Directory variable | Default value
|
---|---|
prefix | /usr/local
|
exec_prefix | ${prefix}
|
bindir | ${exec_prefix}/bin
|
libdir | ${exec_prefix}/lib
|
...
| |
includedir | ${prefix}/include
|
datarootdir | ${prefix}/share
|
datadir | ${datarootdir}
|
mandir | ${datarootdir}/man
|
infodir | ${datarootdir}/info
|
docdir | ${datarootdir}/doc/${PACKAGE}
|
...
|
Each of these directories has a role which is often obvious from its
name. In a package, any installable file will be installed in one of
these directories. For instance in amhello-1.0
, the program
hello is to be installed in bindir, the directory for
binaries. The default value for this directory is
/usr/local/bin, but the user can supply a different value when
calling configure. Also the file README will be
installed into docdir, which defaults to
/usr/local/share/doc/amhello.
As a user, if you wish to install a package on your own account, you could proceed as follows:
~/amhello-1.0 % ./configure --prefix ~/usr ... ~/amhello-1.0 % make ... ~/amhello-1.0 % make install ...
This would install ~/usr/bin/hello and ~/usr/share/doc/amhello/README.
The list of all such directory options is shown by
./configure --help
.