|
Distribution.Simple.InstallDirs | Portability | portable | Maintainer | cabal-devel@haskell.org |
|
|
|
Description |
This manages everything to do with where files get installed (though does
not get involved with actually doing any installation). It provides an
InstallDirs type which is a set of directories for where to install
things. It also handles the fact that we use templates in these install
dirs. For example most install dirs are relative to some $prefix and by
changing the prefix all other dirs still end up changed appropriately. So it
provides a PathTemplate type and functions for substituting for these
templates.
|
|
Synopsis |
|
|
|
Documentation |
|
|
The directories where we will install files for packages.
We have several different directories for different types of files since
many systems have conventions whereby different types of files in a package
are installed in different direcotries. This is particularly the case on
unix style systems.
| Constructors | InstallDirs | | prefix :: dir | | bindir :: dir | | libdir :: dir | | libsubdir :: dir | | dynlibdir :: dir | | libexecdir :: dir | | progdir :: dir | | includedir :: dir | | datadir :: dir | | datasubdir :: dir | | docdir :: dir | | mandir :: dir | | htmldir :: dir | | haddockdir :: dir | |
|
| Instances | |
|
|
|
The installation directories in terms of PathTemplates that contain
variables.
The defaults for most of the directories are relative to each other, in
particular they are all relative to a single prefix. This makes it
convenient for the user to override the default installation directory
by only having to specify --prefix=... rather than overriding each
individually. This is done by allowing $-style variables in the dirs.
These are expanded by textual substituion (see substPathTemplate).
A few of these installation directories are split into two components, the
dir and subdir. The full installation path is formed by combining the two
together with /. The reason for this is compatibility with other unix
build systems which also support --libdir and --datadir. We would like
users to be able to configure --libdir=/usr/lib64 for example but
because by default we want to support installing multiple versions of
packages and building the same package for multiple compilers we append the
libsubdir to get: /usr/lib64/$pkgid/$compiler.
An additional complication is the need to support relocatable packages on
systems which support such things, like Windows.
|
|
|
|
|
|
|
Convert from abstract install directories to actual absolute ones by
substituting for all the variables in the abstract paths, to get real
absolute path.
|
|
|
The location prefix for the copy command.
| Constructors | | Instances | |
|
|
|
Check which of the paths are relative to the installation $prefix.
If any of the paths are not relative, ie they are absolute paths, then it
prevents us from making a relocatable package (also known as a "prefix
independent" package).
|
|
|
An abstract path, posibly containing variables that need to be
substituted for to get a real FilePath.
| Instances | |
|
|
data PathTemplateVariable | Source |
|
Constructors | PrefixVar | The $prefix path variable
| BindirVar | The $bindir path variable
| LibdirVar | The $libdir path variable
| LibsubdirVar | The $libsubdir path variable
| DatadirVar | The $datadir path variable
| DatasubdirVar | The $datasubdir path variable
| DocdirVar | The $docdir path variable
| HtmldirVar | The $htmldir path variable
| PkgNameVar | The $pkg package name path variable
| PkgVerVar | The $version package version path variable
| PkgIdVar | The $pkgid package Id path variable, eg foo-1.0
| CompilerVar | The compiler name and version, eg ghc-6.6.1
| OSVar | The operating system name, eg windows or linux
| ArchVar | The cpu architecture name, eg i386 or x86_64
| ExecutableNameVar | The executable name; used in shell wrappers
|
| Instances | |
|
|
|
Convert a FilePath to a PathTemplate including any template vars.
|
|
|
Convert back to a path, any remaining vars are included
|
|
|
|
|
The initial environment has all the static stuff but no paths
|
|
|
|
Produced by Haddock version 2.4.2 |