<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >Distribution.Simple.InstallDirs</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_Distribution-Simple-InstallDirs.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >Cabal-1.6.0.3: A framework for packaging Haskell software</TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >Distribution.Simple.InstallDirs</FONT ></TD ><TD ALIGN="right" ><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="infohead" >Portability</TD ><TD CLASS="infoval" >portable</TD ></TR ><TR ><TD CLASS="infohead" >Maintainer</TD ><TD CLASS="infoval" >cabal-devel@haskell.org</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" >This manages everything to do with where files get installed (though does not get involved with actually doing any installation). It provides an <TT ><A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A ></TT > 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 <TT >$prefix</TT > and by changing the prefix all other dirs still end up changed appropriately. So it provides a <TT ><A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A ></TT > type and functions for substituting for these templates. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AInstallDirs" >InstallDirs</A > dir = <A HREF="#v%3AInstallDirs" >InstallDirs</A > {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="recfield" ><A HREF="#v%3Aprefix" >prefix</A > :: dir</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Abindir" >bindir</A > :: dir</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Alibdir" >libdir</A > :: dir</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Alibsubdir" >libsubdir</A > :: dir</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Adynlibdir" >dynlibdir</A > :: dir</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Alibexecdir" >libexecdir</A > :: dir</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Aprogdir" >progdir</A > :: dir</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Aincludedir" >includedir</A > :: dir</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Adatadir" >datadir</A > :: dir</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Adatasubdir" >datasubdir</A > :: dir</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Adocdir" >docdir</A > :: dir</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Amandir" >mandir</A > :: dir</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Ahtmldir" >htmldir</A > :: dir</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Ahaddockdir" >haddockdir</A > :: dir</TD ></TR ></TABLE >}</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AInstallDirTemplates" >InstallDirTemplates</A > = <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A > <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdefaultInstallDirs" >defaultInstallDirs</A > :: <A HREF="Distribution-Compiler.html#t%3ACompilerFlavor" >CompilerFlavor</A > -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirTemplates" >InstallDirTemplates</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcombineInstallDirs" >combineInstallDirs</A > :: (a -> b -> c) -> <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A > a -> <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A > b -> <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A > c</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AabsoluteInstallDirs" >absoluteInstallDirs</A > :: <A HREF="Distribution-Package.html#t%3APackageIdentifier" >PackageIdentifier</A > -> <A HREF="Distribution-Compiler.html#t%3ACompilerId" >CompilerId</A > -> <A HREF="Distribution-Simple-InstallDirs.html#t%3ACopyDest" >CopyDest</A > -> <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirTemplates" >InstallDirTemplates</A > -> <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ACopyDest" >CopyDest</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ANoCopyDest" >NoCopyDest</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACopyTo" >CopyTo</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACopyPrefix" >CopyPrefix</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AprefixRelativeInstallDirs" >prefixRelativeInstallDirs</A > :: <A HREF="Distribution-Package.html#t%3APackageIdentifier" >PackageIdentifier</A > -> <A HREF="Distribution-Compiler.html#t%3ACompilerId" >CompilerId</A > -> <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirTemplates" >InstallDirTemplates</A > -> <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A > (<A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3APathTemplate" >PathTemplate</A > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3APathTemplateVariable" >PathTemplateVariable</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3APrefixVar" >PrefixVar</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ABindirVar" >BindirVar</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ALibdirVar" >LibdirVar</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ALibsubdirVar" >LibsubdirVar</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ADatadirVar" >DatadirVar</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ADatasubdirVar" >DatasubdirVar</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ADocdirVar" >DocdirVar</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AHtmldirVar" >HtmldirVar</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3APkgNameVar" >PkgNameVar</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3APkgVerVar" >PkgVerVar</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3APkgIdVar" >PkgIdVar</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACompilerVar" >CompilerVar</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AOSVar" >OSVar</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AArchVar" >ArchVar</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AExecutableNameVar" >ExecutableNameVar</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AtoPathTemplate" >toPathTemplate</A > :: <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A > -> <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfromPathTemplate" >fromPathTemplate</A > :: <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A > -> <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsubstPathTemplate" >substPathTemplate</A > :: [(<A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplateVariable" >PathTemplateVariable</A >, <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A >)] -> <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A > -> <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AinitialPathTemplateEnv" >initialPathTemplateEnv</A > :: <A HREF="Distribution-Package.html#t%3APackageIdentifier" >PackageIdentifier</A > -> <A HREF="Distribution-Compiler.html#t%3ACompilerId" >CompilerId</A > -> [(<A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplateVariable" >PathTemplateVariable</A >, <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A >)]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfullPathTemplateEnv" >fullPathTemplateEnv</A > :: <A HREF="Distribution-Package.html#t%3APackageIdentifier" >PackageIdentifier</A > -> <A HREF="Distribution-Compiler.html#t%3ACompilerId" >CompilerId</A > -> <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A > -> [(<A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplateVariable" >PathTemplateVariable</A >, <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A >)]</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Documentation</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:InstallDirs" ><A NAME="t%3AInstallDirs" ></A ></A ><B >InstallDirs</B > dir </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" ><P >The directories where we will install files for packages. </P ><P >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. </P ></TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:InstallDirs" ><A NAME="v%3AInstallDirs" ></A ></A ><B >InstallDirs</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="body" COLSPAN="2" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:prefix" ><A NAME="v%3Aprefix" ></A ></A ><B >prefix</B > :: dir</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:bindir" ><A NAME="v%3Abindir" ></A ></A ><B >bindir</B > :: dir</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:libdir" ><A NAME="v%3Alibdir" ></A ></A ><B >libdir</B > :: dir</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:libsubdir" ><A NAME="v%3Alibsubdir" ></A ></A ><B >libsubdir</B > :: dir</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:dynlibdir" ><A NAME="v%3Adynlibdir" ></A ></A ><B >dynlibdir</B > :: dir</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:libexecdir" ><A NAME="v%3Alibexecdir" ></A ></A ><B >libexecdir</B > :: dir</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:progdir" ><A NAME="v%3Aprogdir" ></A ></A ><B >progdir</B > :: dir</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:includedir" ><A NAME="v%3Aincludedir" ></A ></A ><B >includedir</B > :: dir</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:datadir" ><A NAME="v%3Adatadir" ></A ></A ><B >datadir</B > :: dir</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:datasubdir" ><A NAME="v%3Adatasubdir" ></A ></A ><B >datasubdir</B > :: dir</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:docdir" ><A NAME="v%3Adocdir" ></A ></A ><B >docdir</B > :: dir</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:mandir" ><A NAME="v%3Amandir" ></A ></A ><B >mandir</B > :: dir</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:htmldir" ><A NAME="v%3Ahtmldir" ></A ></A ><B >htmldir</B > :: dir</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:haddockdir" ><A NAME="v%3Ahaddockdir" ></A ></A ><B >haddockdir</B > :: dir</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:InstallDirs')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:InstallDirs" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base/Control-Monad.html#t%3AFunctor" >Functor</A > <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Text-Read.html#t%3ARead" >Read</A > dir => <A HREF="../base/Text-Read.html#t%3ARead" >Read</A > (<A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A > dir)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Text-Show.html#t%3AShow" >Show</A > dir => <A HREF="../base/Text-Show.html#t%3AShow" >Show</A > (<A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A > dir)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Monoid.html#t%3AMonoid" >Monoid</A > dir => <A HREF="../base/Data-Monoid.html#t%3AMonoid" >Monoid</A > (<A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A > dir)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:InstallDirTemplates" ><A NAME="t%3AInstallDirTemplates" ></A ></A ><B >InstallDirTemplates</B > = <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A > <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A ></TD ></TR ><TR ><TD CLASS="doc" ><P >The installation directories in terms of <TT ><A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A ></TT >s that contain variables. </P ><P >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 <TT ><A HREF="Distribution-Simple-InstallDirs.html#v%3AsubstPathTemplate" >substPathTemplate</A ></TT >). </P ><P >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 <TT >/</TT >. The reason for this is compatibility with other unix build systems which also support <TT >--libdir</TT > and <TT >--datadir</TT >. We would like users to be able to configure <TT >--libdir=/usr/lib64</TT > 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: <TT >/usr/lib64/$pkgid/$compiler</TT >. </P ><P >An additional complication is the need to support relocatable packages on systems which support such things, like Windows. </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:defaultInstallDirs" ><A NAME="v%3AdefaultInstallDirs" ></A ></A ><B >defaultInstallDirs</B > :: <A HREF="Distribution-Compiler.html#t%3ACompilerFlavor" >CompilerFlavor</A > -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirTemplates" >InstallDirTemplates</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:combineInstallDirs" ><A NAME="v%3AcombineInstallDirs" ></A ></A ><B >combineInstallDirs</B > :: (a -> b -> c) -> <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A > a -> <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A > b -> <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A > c</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:absoluteInstallDirs" ><A NAME="v%3AabsoluteInstallDirs" ></A ></A ><B >absoluteInstallDirs</B > :: <A HREF="Distribution-Package.html#t%3APackageIdentifier" >PackageIdentifier</A > -> <A HREF="Distribution-Compiler.html#t%3ACompilerId" >CompilerId</A > -> <A HREF="Distribution-Simple-InstallDirs.html#t%3ACopyDest" >CopyDest</A > -> <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirTemplates" >InstallDirTemplates</A > -> <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ></TR ><TR ><TD CLASS="doc" >Convert from abstract install directories to actual absolute ones by substituting for all the variables in the abstract paths, to get real absolute path. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:CopyDest" ><A NAME="t%3ACopyDest" ></A ></A ><B >CopyDest</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >The location prefix for the <EM >copy</EM > command. </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:NoCopyDest" ><A NAME="v%3ANoCopyDest" ></A ></A ><B >NoCopyDest</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CopyTo" ><A NAME="v%3ACopyTo" ></A ></A ><B >CopyTo</B > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CopyPrefix" ><A NAME="v%3ACopyPrefix" ></A ></A ><B >CopyPrefix</B > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:CopyDest')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:CopyDest" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Eq.html#t%3AEq" >Eq</A > <A HREF="Distribution-Simple-InstallDirs.html#t%3ACopyDest" >CopyDest</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Text-Show.html#t%3AShow" >Show</A > <A HREF="Distribution-Simple-InstallDirs.html#t%3ACopyDest" >CopyDest</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:prefixRelativeInstallDirs" ><A NAME="v%3AprefixRelativeInstallDirs" ></A ></A ><B >prefixRelativeInstallDirs</B > :: <A HREF="Distribution-Package.html#t%3APackageIdentifier" >PackageIdentifier</A > -> <A HREF="Distribution-Compiler.html#t%3ACompilerId" >CompilerId</A > -> <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirTemplates" >InstallDirTemplates</A > -> <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A > (<A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A >)</TD ></TR ><TR ><TD CLASS="doc" ><P >Check which of the paths are relative to the installation $prefix. </P ><P >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). </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:PathTemplate" ><A NAME="t%3APathTemplate" ></A ></A ><B >PathTemplate</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >An abstract path, posibly containing variables that need to be substituted for to get a real <TT ><A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TT >. </TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:PathTemplate')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:PathTemplate" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base/Text-Read.html#t%3ARead" >Read</A > <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Text-Show.html#t%3AShow" >Show</A > <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:PathTemplateVariable" ><A NAME="t%3APathTemplateVariable" ></A ></A ><B >PathTemplateVariable</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:PrefixVar" ><A NAME="v%3APrefixVar" ></A ></A ><B >PrefixVar</B ></TD ><TD CLASS="rdoc" >The <TT >$prefix</TT > path variable </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:BindirVar" ><A NAME="v%3ABindirVar" ></A ></A ><B >BindirVar</B ></TD ><TD CLASS="rdoc" >The <TT >$bindir</TT > path variable </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:LibdirVar" ><A NAME="v%3ALibdirVar" ></A ></A ><B >LibdirVar</B ></TD ><TD CLASS="rdoc" >The <TT >$libdir</TT > path variable </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:LibsubdirVar" ><A NAME="v%3ALibsubdirVar" ></A ></A ><B >LibsubdirVar</B ></TD ><TD CLASS="rdoc" >The <TT >$libsubdir</TT > path variable </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:DatadirVar" ><A NAME="v%3ADatadirVar" ></A ></A ><B >DatadirVar</B ></TD ><TD CLASS="rdoc" >The <TT >$datadir</TT > path variable </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:DatasubdirVar" ><A NAME="v%3ADatasubdirVar" ></A ></A ><B >DatasubdirVar</B ></TD ><TD CLASS="rdoc" >The <TT >$datasubdir</TT > path variable </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:DocdirVar" ><A NAME="v%3ADocdirVar" ></A ></A ><B >DocdirVar</B ></TD ><TD CLASS="rdoc" >The <TT >$docdir</TT > path variable </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:HtmldirVar" ><A NAME="v%3AHtmldirVar" ></A ></A ><B >HtmldirVar</B ></TD ><TD CLASS="rdoc" >The <TT >$htmldir</TT > path variable </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:PkgNameVar" ><A NAME="v%3APkgNameVar" ></A ></A ><B >PkgNameVar</B ></TD ><TD CLASS="rdoc" >The <TT >$pkg</TT > package name path variable </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:PkgVerVar" ><A NAME="v%3APkgVerVar" ></A ></A ><B >PkgVerVar</B ></TD ><TD CLASS="rdoc" >The <TT >$version</TT > package version path variable </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:PkgIdVar" ><A NAME="v%3APkgIdVar" ></A ></A ><B >PkgIdVar</B ></TD ><TD CLASS="rdoc" >The <TT >$pkgid</TT > package Id path variable, eg <TT >foo-1.0</TT > </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CompilerVar" ><A NAME="v%3ACompilerVar" ></A ></A ><B >CompilerVar</B ></TD ><TD CLASS="rdoc" >The compiler name and version, eg <TT >ghc-6.6.1</TT > </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:OSVar" ><A NAME="v%3AOSVar" ></A ></A ><B >OSVar</B ></TD ><TD CLASS="rdoc" >The operating system name, eg <TT >windows</TT > or <TT >linux</TT > </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:ArchVar" ><A NAME="v%3AArchVar" ></A ></A ><B >ArchVar</B ></TD ><TD CLASS="rdoc" >The cpu architecture name, eg <TT >i386</TT > or <TT >x86_64</TT > </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:ExecutableNameVar" ><A NAME="v%3AExecutableNameVar" ></A ></A ><B >ExecutableNameVar</B ></TD ><TD CLASS="rdoc" >The executable name; used in shell wrappers </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:PathTemplateVariable')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:PathTemplateVariable" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Eq.html#t%3AEq" >Eq</A > <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplateVariable" >PathTemplateVariable</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Text-Read.html#t%3ARead" >Read</A > <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplateVariable" >PathTemplateVariable</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base/Text-Show.html#t%3AShow" >Show</A > <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplateVariable" >PathTemplateVariable</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:toPathTemplate" ><A NAME="v%3AtoPathTemplate" ></A ></A ><B >toPathTemplate</B > :: <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A > -> <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A ></TD ></TR ><TR ><TD CLASS="doc" >Convert a <TT ><A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TT > to a <TT ><A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A ></TT > including any template vars. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:fromPathTemplate" ><A NAME="v%3AfromPathTemplate" ></A ></A ><B >fromPathTemplate</B > :: <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A > -> <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ></TR ><TR ><TD CLASS="doc" >Convert back to a path, any remaining vars are included </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:substPathTemplate" ><A NAME="v%3AsubstPathTemplate" ></A ></A ><B >substPathTemplate</B > :: [(<A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplateVariable" >PathTemplateVariable</A >, <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A >)] -> <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A > -> <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:initialPathTemplateEnv" ><A NAME="v%3AinitialPathTemplateEnv" ></A ></A ><B >initialPathTemplateEnv</B > :: <A HREF="Distribution-Package.html#t%3APackageIdentifier" >PackageIdentifier</A > -> <A HREF="Distribution-Compiler.html#t%3ACompilerId" >CompilerId</A > -> [(<A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplateVariable" >PathTemplateVariable</A >, <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A >)]</TD ></TR ><TR ><TD CLASS="doc" >The initial environment has all the static stuff but no paths </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:fullPathTemplateEnv" ><A NAME="v%3AfullPathTemplateEnv" ></A ></A ><B >fullPathTemplateEnv</B > :: <A HREF="Distribution-Package.html#t%3APackageIdentifier" >PackageIdentifier</A > -> <A HREF="Distribution-Compiler.html#t%3ACompilerId" >CompilerId</A > -> <A HREF="Distribution-Simple-InstallDirs.html#t%3AInstallDirs" >InstallDirs</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A > -> [(<A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplateVariable" >PathTemplateVariable</A >, <A HREF="Distribution-Simple-InstallDirs.html#t%3APathTemplate" >PathTemplate</A >)]</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.4.2</TD ></TR ></TABLE ></BODY ></HTML >