cdocutils.nodes document q)q}q(U nametypesq}q(Xcmdoption-setup-configure--cidqX1cmdoption-setup-configure--disable-response-filesqX4cmdoption-setup-configure--disable-executable-staticqX2cmdoption-setup-configure--enable-library-for-ghciq Xsetup-unregisterq Xcmdoption-setup-configure--ghcq Xsandboxes: advanced usageq NXcmdoption-setup-test--human-logq X setup-cleanqX setup-haddockqX%cmdoption-setup-configure--libexecdirqX"cmdoption-setup-build--prog-optionqX!cmdoption-setup-test--test-optionqX!cmdoption-setup-configure--globalqXcmdoption-setup-hscolour--cssqXbackpackqXsecure local repositoriesqNX2cmdoption-setup-configure--disable-library-vanillaqX building and installing packagesqNX cmdoption-setup-unregister--userqXcreating a binary packageqNX3cmdoption-setup-configure--enable-library-profilingqXsandboxes: basic usageqNX3cmdoption-setup-configure--disable-library-for-ghciqXmiscellaneous optionsqNX"cmdoption-setup-test--test-optionsqX%cmdoption-setup-configure--constraintq X,cmdoption-setup-configure--enable-split-objsq!Xcmdoption-setup-clean-sq"X setup-buildq#Xbuilding test suitesq$NXsetup registerq%NX+cmdoption-setup-configure--enable-profilingq&X(cmdoption-setup-configure--with-compilerq'X&building and installing a user packageq(NX&cmdoption-setup-configure--with-hc-pkgq)X*cmdoption-setup-configure--extra-lib-dirs[q*Xcmdoption-setup-sdist--snapshotq+X!cmdoption-setup-test--machine-logq,X.cmdoption-setup-configure--default-user-configq-X!cmdoption-setup-configure--libdirq.X&cmdoption-setup-configure--dependency[q/X(cmdoption-setup-configure--libexecsubdirq0Xlegacy repositoriesq1NX!cmdoption-setup-haddock--internalq2X!cmdoption-setup-configure--bindirq3X$cmdoption-setup-configure--dynlibdirq4X"cmdoption-setup-configure--htmldirq5X"cmdoption-setup-configure--datadirq6X)cmdoption-setup-configure--program-prefixq7X)path variables in the simple build systemq8NXcmdoption-setup-haddock--hoogleq9X'cmdoption-setup-configure--allow-newer[q:X4cmdoption-setup-configure--disable-library-profilingq;Xrepository specificationqX setup-installq?Xcmdoption-setup-hq@Xprograms used for buildingqANX&cmdoption-setup-unregister--gen-scriptqBX setup-sdistqCXcmdoption-setup-configure--uhcqDX paths in the simple build systemqENX setup installqFNX/cmdoption-setup-configure--disable-optimizationqGX)cmdoption-setup-configure--disable-sharedqHXcmdoption-setup-haddock--cssqIXcmdoption-setup-copy--destdirqJX%cmdoption-setup-configure--preferenceqKXcmdoption-setup-test--builddirqLX4cmdoption-setup-configure--library-profiling-detail[qMXpvpqNX"cmdoption-setup-test--show-detailsqOXalexqPXcmdoption-setup-configure--userqQX configurationqRNX6cmdoption-setup-configure--enable-executable-strippingqSXcpphsqTX.cmdoption-setup-configure--extra-include-dirs[qUX%cmdoption-setup-haddock--hscolour-cssqVX5cmdoption-setup-configure--disable-executable-dynamicqWX setup testqXNX*cmdoption-setup-configure--enable-coverageqYX)cmdoption-setup-register--gen-pkg-config[qZX"cmdoption-setup-unregister--globalq[Xoverviewq\NX,cmdoption-setup-configure--disable-profilingq]Xsetup-registerq^Xinstallation pathsq_NXcmdoption-setup-install--globalq`XhaskellqaX%cmdoption-setup-configure--datasubdirqbXhoogleqcXcmdoption-setup-configure--ipidqdX%cmdoption-setup-configure--package-dbqeX setup cleanqfNX+cmdoption-setup-configure--configure-optionqgX3cmdoption-setup-configure--enable-executable-staticqhXabnfqiX1cmdoption-setup-configure--enable-library-vanillaqjX,cmdoption-setup-configure--profiling-detail[qkXusing secure repositoriesqlNX%cmdoption-setup-clean--save-configureqmX&cmdoption-setup-configure--prog-optionqnXcmdoption-setup-install--userqoXdeveloping with sandboxesqpNXhappyqqX)cmdoption-setup-configure--disable-staticqrX/cmdoption-setup-configure--enable-optimization[qsX(building and installing a system packageqtNXcmdoption-setup-register--userquX cmdoption-setup-configure--flagsqvX#cmdoption-setup-build--prog-optionsqwX!cmdoption-setup-register--inplaceqxX%cmdoption-setup-hscolour--executablesqyXsetup-configureqzX'cmdoption-setup-configure--prog-optionsq{Xcmdoption-setup-configure--lhcq|X%cmdoption-setup-configure--sysconfdirq}X+cmdoption-setup-configure--disable-coverageq~X$cmdoption-setup-configure--libsubdirqXhaddockqX&cmdoption-setup-haddock--html-locationqX4cmdoption-setup-configure--enable-executable-dynamicqXsetup hscolourqNX installing packages from hackageqNX'cmdoption-setup-configure--allow-older[qXcmdoption-setup-configure--jhcqX)cmdoption-setup-haddock--hyperlink-sourceqXsetup configureqNX$cmdoption-setup-register--gen-scriptqXpackage versioning policyqX cmdoption-setup-register--globalqX(cmdoption-setup-configure--enable-sharedqX setup copyqNXsetup unregisterqNX!cmdoption-setup-configure--docdirqX)cmdoption-setup-configure--program-suffixqX.cmdoption-setup-configure--exact-configurationqX$cmdoption-setup-configure--with-progqXcmdoption-setup--helpqX setup haddockqNX7cmdoption-setup-configure--disable-executable-strippingqX(cmdoption-setup-configure--enable-staticqXsetup-hscolourqX!cmdoption-setup-configure--prefixqXinstalling-packagesqXbgnu autoconf places restrictions on paths, including the directory that the package is built from.qX"cmdoption-setup-test--test-wrapperqX$cmdoption-setup-haddock--executablesqXcontrolling flag assignmentsqNX'cmdoption-setup-configure--enable-testsqX(cmdoption-setup-configure--disable-testsqX setup buildqNX-cmdoption-setup-configure--disable-split-objsqXcmdoption-setup-test-arg-GiveqX0cmdoption-setup-configure--extra-framework-dirs[qX setup sdistqNX setup-copyqXcmdoption-setup--verboseqXcmdoption-setup-configure-fqXhackagequUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUcmdoption-setup-configure-cidqhU0cmdoption-setup-configure-disable-response-filesqhU3cmdoption-setup-configure-disable-executable-staticqh U1cmdoption-setup-configure-enable-library-for-ghciqh Usetup-unregisterqh Ucmdoption-setup-configure-ghcqh Usandboxes-advanced-usageqh Ucmdoption-setup-test-human-logqhU setup-cleanqhU setup-haddockqhU$cmdoption-setup-configure-libexecdirqhU"cmdoption-setup-build-prog-optionsqhU cmdoption-setup-test-test-optionqhU cmdoption-setup-configure-globalqhUcmdoption-setup-hscolour-cssqhUbackpackqhUsecure-local-repositoriesqhU1cmdoption-setup-configure-disable-library-vanillaqhU building-and-installing-packagesqhUcmdoption-setup-unregister-userqhUcreating-a-binary-packageqhU2cmdoption-setup-configure-enable-library-profilingqhUsandboxes-basic-usageqhU2cmdoption-setup-configure-disable-library-for-ghciqhUmiscellaneous-optionsqhU!cmdoption-setup-test-test-optionsqh U$cmdoption-setup-configure-constraintqh!U+cmdoption-setup-configure-enable-split-objsqh"U$cmdoption-setup-clean-save-configureqh#U setup-buildqh$Ubuilding-test-suitesqh%Uid7qh&U*cmdoption-setup-configure-enable-profilingqh'U'cmdoption-setup-configure-with-compilerqh(U&building-and-installing-a-user-packageqh)U%cmdoption-setup-configure-with-hc-pkgqh*U(cmdoption-setup-configure-extra-lib-dirsqh+Ucmdoption-setup-sdist-snapshotqh,U cmdoption-setup-test-machine-logqh-U-cmdoption-setup-configure-default-user-configqh.U cmdoption-setup-configure-libdirqh/U$cmdoption-setup-configure-dependencyqh0U'cmdoption-setup-configure-libexecsubdirqh1Ulegacy-repositoriesqh2U cmdoption-setup-haddock-internalqh3U cmdoption-setup-configure-bindirqh4U#cmdoption-setup-configure-dynlibdirqh5U!cmdoption-setup-configure-htmldirqh6U!cmdoption-setup-configure-datadirqh7U(cmdoption-setup-configure-program-prefixqh8U)path-variables-in-the-simple-build-systemqh9Ucmdoption-setup-haddock-hoogleqh:U%cmdoption-setup-configure-allow-newerqh;U3cmdoption-setup-configure-disable-library-profilingqhUhscolourqh?U setup-installqh@Ucmdoption-setup-helpqhAUprograms-used-for-buildingqhBU%cmdoption-setup-unregister-gen-scriptqhCU setup-sdistqhDhhEU paths-in-the-simple-build-systemqhFUid5qhGU.cmdoption-setup-configure-disable-optimizationqhHU(cmdoption-setup-configure-disable-sharedqhIUcmdoption-setup-haddock-cssqhJUcmdoption-setup-copy-destdirqhKU$cmdoption-setup-configure-preferenceqhLUcmdoption-setup-test-builddirqhMU2cmdoption-setup-configure-library-profiling-detailqhNUpvpqhOU!cmdoption-setup-test-show-detailsqhPUalexqhQUcmdoption-setup-configure-userqhRU configurationqhSU5cmdoption-setup-configure-enable-executable-strippingqhTUcpphsqhUU,cmdoption-setup-configure-extra-include-dirsrhVU$cmdoption-setup-haddock-hscolour-cssrhWU4cmdoption-setup-configure-disable-executable-dynamicrhXU setup-testrhYU)cmdoption-setup-configure-enable-coveragerhZU'cmdoption-setup-register-gen-pkg-configrh[U!cmdoption-setup-unregister-globalrh\Uoverviewrh]U+cmdoption-setup-configure-disable-profilingrh^Usetup-registerr h_Uinstallation-pathsr h`Ucmdoption-setup-install-globalr haUhaskellr hbU$cmdoption-setup-configure-datasubdirr hcUhooglerhdUcmdoption-setup-configure-ipidrheU$cmdoption-setup-configure-package-dbrhfUid9rhgU*cmdoption-setup-configure-configure-optionrhhU2cmdoption-setup-configure-enable-executable-staticrhiUabnfrhjU0cmdoption-setup-configure-enable-library-vanillarhkU*cmdoption-setup-configure-profiling-detailrhlUusing-secure-repositoriesrhmhhnU%cmdoption-setup-configure-prog-optionrhoUcmdoption-setup-install-userrhpUdeveloping-with-sandboxesrhqUhappyrhrU(cmdoption-setup-configure-disable-staticrhsU-cmdoption-setup-configure-enable-optimizationrhtU(building-and-installing-a-system-packagerhuUcmdoption-setup-register-userrhvUcmdoption-setup-configure-flagsr hwhhxU cmdoption-setup-register-inplacer!hyU$cmdoption-setup-hscolour-executablesr"hzUsetup-configurer#h{U&cmdoption-setup-configure-prog-optionsr$h|hh}U$cmdoption-setup-configure-sysconfdirr%h~U*cmdoption-setup-configure-disable-coverager&hU#cmdoption-setup-configure-libsubdirr'hUhaddockr(hU%cmdoption-setup-haddock-html-locationr)hU3cmdoption-setup-configure-enable-executable-dynamicr*hUid4r+hU installing-packages-from-hackager,hhhhhU(cmdoption-setup-haddock-hyperlink-sourcer-hUid1r.hU#cmdoption-setup-register-gen-scriptr/hUpackage-versioning-policyr0hUcmdoption-setup-register-globalr1hU'cmdoption-setup-configure-enable-sharedr2hUid6r3hUid8r4hU cmdoption-setup-configure-docdirr5hU(cmdoption-setup-configure-program-suffixr6hU-cmdoption-setup-configure-exact-configurationr7hU#cmdoption-setup-configure-with-progr8hhhUid3r9hU6cmdoption-setup-configure-disable-executable-strippingr:hU'cmdoption-setup-configure-enable-staticr;hUsetup-hscolourr<hU cmdoption-setup-configure-prefixr=hUinstalling-packagesr>hU`gnu-autoconf-places-restrictions-on-paths-including-the-directory-that-the-package-is-built-fromr?hU!cmdoption-setup-test-test-wrapperr@hU#cmdoption-setup-haddock-executablesrAhUcontrolling-flag-assignmentsrBhU&cmdoption-setup-configure-enable-testsrChU'cmdoption-setup-configure-disable-testsrDhUid2rEhU,cmdoption-setup-configure-disable-split-objsrFhUcmdoption-setup-test-arg-giverGhU.cmdoption-setup-configure-extra-framework-dirsrHhUid10rIhU setup-copyrJhUcmdoption-setup-verboserKhUcmdoption-setup-configure-frLhUhackagerMuUchildrenrN]rO(cdocutils.nodes section rP)rQ}rR(U rawsourcerSUUparentrThUsourcerUXE/home/refold/code/haskell/cabal-3.0/Cabal/doc/installing-packages.rstrVUtagnamerWUsectionrXU attributesrY}rZ(Udupnamesr[]Uclassesr\]Ubackrefsr]]Uidsr^]r_haUnamesr`]rahRauUlinerbKUdocumentrchjN]rd(cdocutils.nodes title re)rf}rg(jSX ConfigurationrhjTjQjUjVjWUtitlerijY}rj(j[]j\]j]]j^]j`]ujbKjchjN]rkcdocutils.nodes Text rlX Configurationrmrn}ro(jSjhjUNjbNjchjTjfubaubcsphinx.addnodes highlightlang rp)rq}rr(jSUjTjQjUjVjWU highlightlangrsjY}rt(UlangXcabalUlinenothresholdI9223372036854775807 j^]j]]j[]j\]j`]ujbKjchjN]ubjP)ru}rv(jSUjTjQjUjVjWjXjY}rw(j[]j\]j]]j^]rxjaj`]ryh\aujbKjchjN]rz(je)r{}r|(jSXOverviewr}jTjujUjVjWjijY}r~(j[]j\]j]]j^]j`]ujbKjchjN]rjlXOverviewrr}r(jSj}jUNjbNjchjTj{ubaubcdocutils.nodes paragraph r)r}r(jSXThe global configuration file for ``cabal-install`` is ``~/.cabal/config``. If you do not have this file, ``cabal`` will create it for you on the first call to ``cabal update``. Alternatively, you can explicitly ask ``cabal`` to create it for you usingjTjujUjVjWU paragraphrjY}r(j[]j\]j]]j^]j`]ujbK jchjN]r(jlX"The global configuration file for rr}r(jSX"The global configuration file for jUNjbNjchjTjubcdocutils.nodes literal r)r}r(jSX``cabal-install``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX cabal-installrr}r(jSX cabal-installjTjubajWUliteralrubjlX is rr}r(jSX is jUNjbNjchjTjubj)r}r(jSX``~/.cabal/config``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX~/.cabal/configrr}r(jSX~/.cabal/configjTjubajWjubjlX . If you do not have this file, rr}r(jSX . If you do not have this file, jUNjbNjchjTjubj)r}r(jSX ``cabal``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXcabalrr}r(jSXcabaljTjubajWjubjlX- will create it for you on the first call to rr}r(jSX- will create it for you on the first call to jUNjbNjchjTjubj)r}r(jSX``cabal update``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX cabal updaterr}r(jSX cabal updatejTjubajWjubjlX(. Alternatively, you can explicitly ask rr}r(jSX(. Alternatively, you can explicitly ask jUNjbNjchjTjubj)r}r(jSX ``cabal``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXcabalrr}r(jSXcabaljTjubajWjubjlX to create it for you usingrr}r(jSX to create it for you usingjUNjbNjchjTjubeubcdocutils.nodes literal_block r)r}r(jSX$ cabal user-config updatejTjujUjVjWU literal_blockrjY}r(UlinenosrUlanguagerXconsoleU xml:spacerUpreserverj^]j]]j[]Uhighlight_argsr}j\]j`]ujbKjchjN]rjlX$ cabal user-config updaterr}r(jSUjTjubaubj)r}r(jSXYou can change the location of the global configuration file by specifying either ``--config-file=FILE`` on the command line or by setting the ``CABAL_CONFIG`` environment variable.jTjujUjVjWjjY}r(j[]j\]j]]j^]j`]ujbKjchjN]r(jlXRYou can change the location of the global configuration file by specifying either rr}r(jSXRYou can change the location of the global configuration file by specifying either jUNjbNjchjTjubj)r}r(jSX``--config-file=FILE``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX--config-file=FILErr}r(jSX--config-file=FILEjTjubajWjubjlX' on the command line or by setting the rr}r(jSX' on the command line or by setting the jUNjbNjchjTjubj)r}r(jSX``CABAL_CONFIG``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX CABAL_CONFIGrr}r(jSX CABAL_CONFIGjTjubajWjubjlX environment variable.rr}r(jSX environment variable.jUNjbNjchjTjubeubj)r}r(jSXDMost of the options in this configuration file are also available as command line arguments, and the corresponding documentation can be used to lookup their meaning. The created configuration file only specifies values for a handful of options. Most options are left at their default value, which it documents; for instance,rjTjujUjVjWjjY}r(j[]j\]j]]j^]j`]ujbKjchjN]rjlXDMost of the options in this configuration file are also available as command line arguments, and the corresponding documentation can be used to lookup their meaning. The created configuration file only specifies values for a handful of options. Most options are left at their default value, which it documents; for instance,rr}r(jSjjUNjbNjchjTjubaubj)r}r(jSX-- executable-stripping: TruejTjujUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbKjchjN]rjlX-- executable-stripping: Truerr}r(jSUjTjubaubj)r}r(jSXmeans that the configuration file currently does not specify a value for the ``executable-stripping`` option (the line is commented out), and that the default is ``True``; if you wanted to disable stripping of executables by default, you would change this line tojTjujUjVjWjjY}r(j[]j\]j]]j^]j`]ujbK jchjN]r(jlXMmeans that the configuration file currently does not specify a value for the rr}r(jSXMmeans that the configuration file currently does not specify a value for the jUNjbNjchjTjubj)r}r(jSX``executable-stripping``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXexecutable-strippingrr}r(jSXexecutable-strippingjTjubajWjubjlX= option (the line is commented out), and that the default is rr}r(jSX= option (the line is commented out), and that the default is jUNjbNjchjTjubj)r }r (jSX``True``jY}r (j[]j\]j]]j^]j`]ujTjjN]r jlXTruer r}r(jSXTruejTj ubajWjubjlX]; if you wanted to disable stripping of executables by default, you would change this line torr}r(jSX]; if you wanted to disable stripping of executables by default, you would change this line tojUNjbNjchjTjubeubj)r}r(jSXexecutable-stripping: FalsejTjujUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbK'jchjN]rjlXexecutable-stripping: Falserr}r(jSUjTjubaubj)r}r(jSXtYou can also use ``cabal user-config update`` to migrate configuration files created by older versions of ``cabal``.jTjujUjVjWjjY}r(j[]j\]j]]j^]j`]ujbK)jchjN]r(jlXYou can also use rr}r (jSXYou can also use jUNjbNjchjTjubj)r!}r"(jSX``cabal user-config update``jY}r#(j[]j\]j]]j^]j`]ujTjjN]r$jlXcabal user-config updater%r&}r'(jSXcabal user-config updatejTj!ubajWjubjlX= to migrate configuration files created by older versions of r(r)}r*(jSX= to migrate configuration files created by older versions of jUNjbNjchjTjubj)r+}r,(jSX ``cabal``jY}r-(j[]j\]j]]j^]j`]ujTjjN]r.jlXcabalr/r0}r1(jSXcabaljTj+ubajWjubjlX.r2}r3(jSX.jUNjbNjchjTjubeubeubjP)r4}r5(jSUjTjQjUjVjWjXjY}r6(j[]j\]j]]j^]r7haj`]r8hjlXRepository specificationr?r@}rA(jSj<jUNjbNjchjTj:ubaubj)rB}rC(jSXAn important part of the configuration is the specification of the repository. When ``cabal`` creates a default config file, it configures the repository to be the central Hackage server:jTj4jUjVjWjjY}rD(j[]j\]j]]j^]j`]ujbK/jchjN]rE(jlXTAn important part of the configuration is the specification of the repository. When rFrG}rH(jSXTAn important part of the configuration is the specification of the repository. When jUNjbNjchjTjBubj)rI}rJ(jSX ``cabal``jY}rK(j[]j\]j]]j^]j`]ujTjBjN]rLjlXcabalrMrN}rO(jSXcabaljTjIubajWjubjlX^ creates a default config file, it configures the repository to be the central Hackage server:rPrQ}rR(jSX^ creates a default config file, it configures the repository to be the central Hackage server:jUNjbNjchjTjBubeubj)rS}rT(jSXArepository hackage.haskell.org url: http://hackage.haskell.org/jTj4jUjVjWjjY}rU(jjj^]j]]j[]j\]j`]ujbK5jchjN]rVjlXArepository hackage.haskell.org url: http://hackage.haskell.org/rWrX}rY(jSUjTjSubaubj)rZ}r[(jSXThe name of the repository is given on the first line, and can be anything; packages downloaded from this repository will be cached under ``~/.cabal/packages/hackage.haskell.org`` (or whatever name you specify; you can change the prefix by changing the value of ``remote-repo-cache``). If you want, you can configure multiple repositories, and ``cabal`` will combine them and be able to download packages from any of them.jTj4jUjVjWjjY}r\(j[]j\]j]]j^]j`]ujbK8jchjN]r](jlXThe name of the repository is given on the first line, and can be anything; packages downloaded from this repository will be cached under r^r_}r`(jSXThe name of the repository is given on the first line, and can be anything; packages downloaded from this repository will be cached under jUNjbNjchjTjZubj)ra}rb(jSX)``~/.cabal/packages/hackage.haskell.org``jY}rc(j[]j\]j]]j^]j`]ujTjZjN]rdjlX%~/.cabal/packages/hackage.haskell.orgrerf}rg(jSX%~/.cabal/packages/hackage.haskell.orgjTjaubajWjubjlXS (or whatever name you specify; you can change the prefix by changing the value of rhri}rj(jSXS (or whatever name you specify; you can change the prefix by changing the value of jUNjbNjchjTjZubj)rk}rl(jSX``remote-repo-cache``jY}rm(j[]j\]j]]j^]j`]ujTjZjN]rnjlXremote-repo-cacherorp}rq(jSXremote-repo-cachejTjkubajWjubjlX=). If you want, you can configure multiple repositories, and rrrs}rt(jSX=). If you want, you can configure multiple repositories, and jUNjbNjchjTjZubj)ru}rv(jSX ``cabal``jY}rw(j[]j\]j]]j^]j`]ujTjZjN]rxjlXcabalryrz}r{(jSXcabaljTjuubajWjubjlXE will combine them and be able to download packages from any of them.r|r}}r~(jSXE will combine them and be able to download packages from any of them.jUNjbNjchjTjZubeubjP)r}r(jSUjTj4jUjVjWjXjY}r(j[]j\]j]]j^]rjaj`]rhlaujbKAjchjN]r(je)r}r(jSXUsing secure repositoriesrjTjjUjVjWjijY}r(j[]j\]j]]j^]j`]ujbKAjchjN]rjlXUsing secure repositoriesrr}r(jSjjUNjbNjchjTjubaubj)r}r(jSXFor repositories that support the TUF security infrastructure (this includes Hackage), you can enable secure access to the repository by specifying:rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbKCjchjN]rjlXFor repositories that support the TUF security infrastructure (this includes Hackage), you can enable secure access to the repository by specifying:rr}r(jSjjUNjbNjchjTjubaubj)r}r(jSXrepository hackage.haskell.org url: http://hackage.haskell.org/ secure: True root-keys: key-threshold: jTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbKIjchjN]rjlXrepository hackage.haskell.org url: http://hackage.haskell.org/ secure: True root-keys: key-threshold: rr}r(jSUjTjubaubj)r}r(jSXEThe ```` and ```` values are used for bootstrapping. As part of the TUF infrastructure the repository will contain a file ``root.json`` (for instance, http://hackage.haskell.org/root.json) which the client needs to do verification. However, how can ``cabal`` verify the ``root.json`` file *itself*? This is known as bootstrapping: if you specify a list of root key IDs and a corresponding threshold, ``cabal`` will verify that the downloaded ``root.json`` file has been signed with at least ```` keys from your set of ````.jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbKOjchjN]r(jlXThe rr}r(jSXThe jUNjbNjchjTjubj)r}r(jSX````jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXrr}r(jSXjTjubajWjubjlX and rr}r(jSX and jUNjbNjchjTjubj)r}r(jSX````jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXrr}r(jSXjTjubajWjubjlXi values are used for bootstrapping. As part of the TUF infrastructure the repository will contain a file rr}r(jSXi values are used for bootstrapping. As part of the TUF infrastructure the repository will contain a file jUNjbNjchjTjubj)r}r(jSX ``root.json``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX root.jsonrr}r(jSX root.jsonjTjubajWjubjlX (for instance, rr}r(jSX (for instance, jUNjbNjchjTjubcdocutils.nodes reference r)r}r(jSX$http://hackage.haskell.org/root.jsonrjY}r(Urefurijj^]j]]j[]j\]j`]ujTjjN]rjlX$http://hackage.haskell.org/root.jsonrr}r(jSjjTjubajWU referencerubjlX>) which the client needs to do verification. However, how can rr}r(jSX>) which the client needs to do verification. However, how can jUNjbNjchjTjubj)r}r(jSX ``cabal``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXcabalrr}r(jSXcabaljTjubajWjubjlX verify the rr}r(jSX verify the jUNjbNjchjTjubj)r}r(jSX ``root.json``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX root.jsonrr}r(jSX root.jsonjTjubajWjubjlX file rr}r(jSX file jUNjbNjchjTjubcdocutils.nodes emphasis r)r}r(jSX*itself*jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXitselfrr}r(jSXitselfjTjubajWUemphasisrubjlXg? This is known as bootstrapping: if you specify a list of root key IDs and a corresponding threshold, rr}r(jSXg? This is known as bootstrapping: if you specify a list of root key IDs and a corresponding threshold, jUNjbNjchjTjubj)r}r(jSX ``cabal``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXcabalrr}r(jSXcabaljTjubajWjubjlX! will verify that the downloaded rr}r(jSX! will verify that the downloaded jUNjbNjchjTjubj)r}r(jSX ``root.json``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX root.jsonrr}r(jSX root.jsonjTjubajWjubjlX$ file has been signed with at least rr}r(jSX$ file has been signed with at least jUNjbNjchjTjubj)r}r(jSX````jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXrr}r(jSXjTjubajWjubjlX keys from your set of r r }r (jSX keys from your set of jUNjbNjchjTjubj)r }r (jSX````jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXrr}r(jSXjTj ubajWjubjlX.r}r(jSX.jUNjbNjchjTjubeubj)r}r(jSX>You can, but are not recommended to, omit these two fields. In that case ``cabal`` will download the ``root.json`` field and use it without verification. Although this bootstrapping step is then unsafe, all subsequent access is secure (provided that the downloaded ``root.json`` was not tempered with). Of course, adding ``root-keys`` and ``key-threshold`` to your repository specification only shifts the problem, because now you somehow need to make sure that the key IDs you received were the right ones. How that is done is however outside the scope of ``cabal`` proper.jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbKYjchjN]r(jlXIYou can, but are not recommended to, omit these two fields. In that case rr}r(jSXIYou can, but are not recommended to, omit these two fields. In that case jUNjbNjchjTjubj)r}r(jSX ``cabal``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXcabalr r!}r"(jSXcabaljTjubajWjubjlX will download the r#r$}r%(jSX will download the jUNjbNjchjTjubj)r&}r'(jSX ``root.json``jY}r((j[]j\]j]]j^]j`]ujTjjN]r)jlX root.jsonr*r+}r,(jSX root.jsonjTj&ubajWjubjlX field and use it without verification. Although this bootstrapping step is then unsafe, all subsequent access is secure (provided that the downloaded r-r.}r/(jSX field and use it without verification. Although this bootstrapping step is then unsafe, all subsequent access is secure (provided that the downloaded jUNjbNjchjTjubj)r0}r1(jSX ``root.json``jY}r2(j[]j\]j]]j^]j`]ujTjjN]r3jlX root.jsonr4r5}r6(jSX root.jsonjTj0ubajWjubjlX+ was not tempered with). Of course, adding r7r8}r9(jSX+ was not tempered with). Of course, adding jUNjbNjchjTjubj)r:}r;(jSX ``root-keys``jY}r<(j[]j\]j]]j^]j`]ujTjjN]r=jlX root-keysr>r?}r@(jSX root-keysjTj:ubajWjubjlX and rArB}rC(jSX and jUNjbNjchjTjubj)rD}rE(jSX``key-threshold``jY}rF(j[]j\]j]]j^]j`]ujTjjN]rGjlX key-thresholdrHrI}rJ(jSX key-thresholdjTjDubajWjubjlX to your repository specification only shifts the problem, because now you somehow need to make sure that the key IDs you received were the right ones. How that is done is however outside the scope of rKrL}rM(jSX to your repository specification only shifts the problem, because now you somehow need to make sure that the key IDs you received were the right ones. How that is done is however outside the scope of jUNjbNjchjTjubj)rN}rO(jSX ``cabal``jY}rP(j[]j\]j]]j^]j`]ujTjjN]rQjlXcabalrRrS}rT(jSXcabaljTjNubajWjubjlX proper.rUrV}rW(jSX proper.jUNjbNjchjTjubeubj)rX}rY(jSXrMore information about the security infrastructure can be found at https://github.com/well-typed/hackage-security.jTjjUjVjWjjY}rZ(j[]j\]j]]j^]j`]ujbKcjchjN]r[(jlXCMore information about the security infrastructure can be found at r\r]}r^(jSXCMore information about the security infrastructure can be found at jUNjbNjchjTjXubj)r_}r`(jSX.https://github.com/well-typed/hackage-securityrajY}rb(Urefurijaj^]j]]j[]j\]j`]ujTjXjN]rcjlX.https://github.com/well-typed/hackage-securityrdre}rf(jSjajTj_ubajWjubjlX.rg}rh(jSX.jUNjbNjchjTjXubeubeubjP)ri}rj(jSUjTj4jUjVjWjXjY}rk(j[]j\]j]]j^]rlhaj`]rmh1aujbKgjchjN]rn(je)ro}rp(jSXLegacy repositoriesrqjTjijUjVjWjijY}rr(j[]j\]j]]j^]j`]ujbKgjchjN]rsjlXLegacy repositoriesrtru}rv(jSjqjUNjbNjchjTjoubaubj)rw}rx(jSXaCurrently ``cabal`` supports two kinds of “legacy” repositories. The first is specified usingjTjijUjVjWjjY}ry(j[]j\]j]]j^]j`]ujbKijchjN]rz(jlX Currently r{r|}r}(jSX Currently jUNjbNjchjTjwubj)r~}r(jSX ``cabal``jY}r(j[]j\]j]]j^]j`]ujTjwjN]rjlXcabalrr}r(jSXcabaljTj~ubajWjubjlXN supports two kinds of “legacy” repositories. The first is specified usingrr}r(jSXN supports two kinds of “legacy” repositories. The first is specified usingjUNjbNjchjTjwubeubj)r}r(jSXLremote-repo: hackage.haskell.org:http://hackage.haskell.org/packages/archivejTjijUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbKnjchjN]rjlXLremote-repo: hackage.haskell.org:http://hackage.haskell.org/packages/archiverr}r(jSUjTjubaubj)r}r(jSX This is just syntactic sugar forrjTjijUjVjWjjY}r(j[]j\]j]]j^]j`]ujbKpjchjN]rjlX This is just syntactic sugar forrr}r(jSjjUNjbNjchjTjubaubj)r}r(jSXerepository hackage.haskell.org url: hackage.haskell.org:http://hackage.haskell.org/packages/archivejTjijUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbKtjchjN]rjlXerepository hackage.haskell.org url: hackage.haskell.org:http://hackage.haskell.org/packages/archiverr}r(jSUjTjubaubj)r}r(jSXalthough, in (and only in) the specific case of Hackage, the URL ``http://hackage.haskell.org/packages/archive`` will be silently translated to ``http://hackage.haskell.org/``.jTjijUjVjWjjY}r(j[]j\]j]]j^]j`]ujbKwjchjN]r(jlXAalthough, in (and only in) the specific case of Hackage, the URL rr}r(jSXAalthough, in (and only in) the specific case of Hackage, the URL jUNjbNjchjTjubj)r}r(jSX/``http://hackage.haskell.org/packages/archive``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX+http://hackage.haskell.org/packages/archiverr}r(jSX+http://hackage.haskell.org/packages/archivejTjubajWjubjlX will be silently translated to rr}r(jSX will be silently translated to jUNjbNjchjTjubj)r}r(jSX``http://hackage.haskell.org/``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXhttp://hackage.haskell.org/rr}r(jSXhttp://hackage.haskell.org/jTjubajWjubjlX.r}r(jSX.jUNjbNjchjTjubeubj)r}r(jSXNThe second kind of legacy repositories are so-called “local” repositories:rjTjijUjVjWjjY}r(j[]j\]j]]j^]j`]ujbK{jchjN]rjlXNThe second kind of legacy repositories are so-called “local” repositories:rr}r(jSjjUNjbNjchjTjubaubj)r}r(jSX-local-repo: my-local-repo:/path/to/local/repojTjijUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbKjchjN]rjlX-local-repo: my-local-repo:/path/to/local/reporr}r(jSUjTjubaubj)r}r(jSXThis can be used to access repositories on the local file system. However, the layout of these local repositories is different from the layout of remote repositories, and usage of these local repositories is deprecated.rjTjijUjVjWjjY}r(j[]j\]j]]j^]j`]ujbKjchjN]rjlXThis can be used to access repositories on the local file system. However, the layout of these local repositories is different from the layout of remote repositories, and usage of these local repositories is deprecated.rr}r(jSjjUNjbNjchjTjubaubeubjP)r}r(jSUjTj4jUjVjWjXjY}r(j[]j\]j]]j^]rhaj`]rhaujbKjchjN]r(je)r}r(jSXSecure local repositoriesrjTjjUjVjWjijY}r(j[]j\]j]]j^]j`]ujbKjchjN]rjlXSecure local repositoriesrr}r(jSjjUNjbNjchjTjubaubj)r}r(jSXxIf you want to use repositories on your local file system, it is recommended instead to use a *secure* local repository:jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbKjchjN]r(jlX^If you want to use repositories on your local file system, it is recommended instead to use a rr}r(jSX^If you want to use repositories on your local file system, it is recommended instead to use a jUNjbNjchjTjubj)r}r(jSX*secure*jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXsecurerr}r(jSXsecurejTjubajWjubjlX local repository:rr}r(jSX local repository:jUNjbNjchjTjubeubj)r}r(jSXrepository my-local-repo url: file:/path/to/local/repo secure: True root-keys: key-threshold: jTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbKjchjN]rjlXrepository my-local-repo url: file:/path/to/local/repo secure: True root-keys: key-threshold: rr}r(jSUjTjubaubj)r}r(jSXThe layout of these secure local repos matches the layout of remote repositories exactly; the :hackage-pkg:`hackage-repo-tool` can be used to create and manage such repositories.jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbKjchjN]r(jlX^The layout of these secure local repos matches the layout of remote repositories exactly; the rr}r(jSX^The layout of these secure local repos matches the layout of remote repositories exactly; the jUNjbNjchjTjubj)r}r(jSXhackage-repo-toolrjY}r(UrefuriX4http://hackage.haskell.org/package/hackage-repo-toolj^]j]]j[]j\]j`]UinternalujTjjN]rjlXhackage-repo-toolrr}r(jSjjTjubajWjubjlX4 can be used to create and manage such repositories.rr}r(jSX4 can be used to create and manage such repositories.jUNjbNjchjTjubeubcdocutils.nodes target r)r}r (jSX.. _installing-packages:jTjjUjVjWUtargetr jY}r (j^]j]]j[]j\]j`]Urefidr j>ujbKjchjN]ubeubeubeubjP)r }r(jSUjThjUjVUexpect_referenced_by_namer}rhjsjWjXjY}r(j[]j\]j]]j^]r(hj>ej`]r(hheujbKjchUexpect_referenced_by_idr}rj>jsjN]r(je)r}r(jSX Building and installing packagesrjTj jUjVjWjijY}r(j[]j\]j]]j^]j`]ujbKjchjN]rjlX Building and installing packagesrr}r(jSjjUNjbNjchjTjubaubjp)r}r (jSUjTj jUjVjWjsjY}r!(UlangXconsoleUlinenothresholdI9223372036854775807 j^]j]]j[]j\]j`]ujbKjchjN]ubj)r"}r#(jSXAfter you've unpacked a Cabal package, you can build it by moving into the root directory of the package and running the ``cabal`` tool there:jTj jUjVjWjjY}r$(j[]j\]j]]j^]j`]ujbKjchjN]r%(jlX{After you’ve unpacked a Cabal package, you can build it by moving into the root directory of the package and running the r&r'}r((jSXyAfter you've unpacked a Cabal package, you can build it by moving into the root directory of the package and running the jUNjbNjchjTj"ubj)r)}r*(jSX ``cabal``jY}r+(j[]j\]j]]j^]j`]ujTj"jN]r,jlXcabalr-r.}r/(jSXcabaljTj)ubajWjubjlX tool there:r0r1}r2(jSX tool there:jUNjbNjchjTj"ubeubj)r3}r4(jSX$ cabal [command] [option...]jTj jUjVjWjjY}r5(jjj^]j]]j[]j\]j`]ujbKjchjN]r6jlX$ cabal [command] [option...]r7r8}r9(jSUjTj3ubaubj)r:}r;(jSXNThe *command* argument selects a particular step in the build/install process.jTj jUjVjWjjY}r<(j[]j\]j]]j^]j`]ujbKjchjN]r=(jlXThe r>r?}r@(jSXThe jUNjbNjchjTj:ubj)rA}rB(jSX *command*jY}rC(j[]j\]j]]j^]j`]ujTj:jN]rDjlXcommandrErF}rG(jSXcommandjTjAubajWjubjlXA argument selects a particular step in the build/install process.rHrI}rJ(jSXA argument selects a particular step in the build/install process.jUNjbNjchjTj:ubeubj)rK}rL(jSX5You can also get a summary of the command syntax withrMjTj jUjVjWjjY}rN(j[]j\]j]]j^]j`]ujbKjchjN]rOjlX5You can also get a summary of the command syntax withrPrQ}rR(jSjMjUNjbNjchjTjKubaubj)rS}rT(jSX $ cabal helpjTj jUjVjWjjY}rU(jjj^]j]]j[]j\]j`]ujbKjchjN]rVjlX $ cabal helprWrX}rY(jSUjTjSubaubj)rZ}r[(jSXIAlternatively, you can also use the ``Setup.hs`` or ``Setup.lhs`` script:jTj jUjVjWjjY}r\(j[]j\]j]]j^]j`]ujbKjchjN]r](jlX$Alternatively, you can also use the r^r_}r`(jSX$Alternatively, you can also use the jUNjbNjchjTjZubj)ra}rb(jSX ``Setup.hs``jY}rc(j[]j\]j]]j^]j`]ujTjZjN]rdjlXSetup.hsrerf}rg(jSXSetup.hsjTjaubajWjubjlX or rhri}rj(jSX or jUNjbNjchjTjZubj)rk}rl(jSX ``Setup.lhs``jY}rm(j[]j\]j]]j^]j`]ujTjZjN]rnjlX Setup.lhsrorp}rq(jSX Setup.lhsjTjkubajWjubjlX script:rrrs}rt(jSX script:jUNjbNjchjTjZubeubj)ru}rv(jSX+$ runhaskell Setup.hs [command] [option...]jTj jUjVjWjjY}rw(jjj^]j]]j[]j\]j`]ujbKjchjN]rxjlX+$ runhaskell Setup.hs [command] [option...]ryrz}r{(jSUjTjuubaubj)r|}r}(jSX+For the summary of the command syntax, run:r~jTj jUjVjWjjY}r(j[]j\]j]]j^]j`]ujbKjchjN]rjlX+For the summary of the command syntax, run:rr}r(jSj~jUNjbNjchjTj|ubaubj)r}r(jSX $ cabal helpjTj jUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbKjchjN]rjlX $ cabal helprr}r(jSUjTjubaubj)r}r(jSXorrjTj jUjVjWjjY}r(j[]j\]j]]j^]j`]ujbKjchjN]rjlXorrr}r(jSjjUNjbNjchjTjubaubj)r}r(jSX$ runhaskell Setup.hs --helpjTj jUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbKjchjN]rjlX$ runhaskell Setup.hs --helprr}r(jSUjTjubaubjP)r}r(jSUjTj jUjVjWjXjY}r(j[]j\]j]]j^]rjaj`]rhtaujbKjchjN]r(je)r}r(jSX(Building and installing a system packagerjTjjUjVjWjijY}r(j[]j\]j]]j^]j`]ujbKjchjN]rjlX(Building and installing a system packagerr}r(jSjjUNjbNjchjTjubaubj)r}r(jSX_$ runhaskell Setup.hs configure --ghc $ runhaskell Setup.hs build $ runhaskell Setup.hs installjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbKjchjN]rjlX_$ runhaskell Setup.hs configure --ghc $ runhaskell Setup.hs build $ runhaskell Setup.hs installrr}r(jSUjTjubaubj)r}r(jSX The first line readies the system to build the tool using GHC; for example, it checks that GHC exists on the system. The second line performs the actual building, while the last both copies the build results to some permanent place and registers the package with GHC.rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbKjchjN]rjlX The first line readies the system to build the tool using GHC; for example, it checks that GHC exists on the system. The second line performs the actual building, while the last both copies the build results to some permanent place and registers the package with GHC.rr}r(jSjjUNjbNjchjTjubaubeubjP)r}r(jSUjTj jUjVjWjXjY}r(j[]j\]j]]j^]rhaj`]rh(aujbKjchjN]r(je)r}r(jSX&Building and installing a user packagerjTjjUjVjWjijY}r(j[]j\]j]]j^]j`]ujbKjchjN]rjlX&Building and installing a user packagerr}r(jSjjUNjbNjchjTjubaubj)r}r(jSX`$ runhaskell Setup.hs configure --user $ runhaskell Setup.hs build $ runhaskell Setup.hs installjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbKjchjN]rjlX`$ runhaskell Setup.hs configure --user $ runhaskell Setup.hs build $ runhaskell Setup.hs installrr}r(jSUjTjubaubj)r}r(jSXThe package is installed under the user's home directory and is registered in the user's package database (:option:`setup configure --user`).jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbKjchjN]r(jlXoThe package is installed under the user’s home directory and is registered in the user’s package database (rr}r(jSXkThe package is installed under the user's home directory and is registered in the user's package database (jUNjbNjchjTjubcsphinx.addnodes pending_xref r)r}r(jSX :option:`setup configure --user`jTjjUjVjWU pending_xrefrjY}r(UreftypeXoptionUrefwarnrU reftargetrXsetup configure --userrU refdomainXstdrj^]j]]U refexplicitj[]j\]j`]UrefdocrXinstalling-packagesrU std:programrNujbKjN]rj)r}r(jSjjY}r(j[]j\]r(UxrefrjX std-optionrej]]j^]j`]ujTjjN]rjlXsetup configure --userrr}r(jSUjTjubajWjubaubjlX).rr}r(jSX).jUNjbNjchjTjubeubeubjP)r}r(jSUjTj jUjVjWjXjY}r(j[]j\]j]]j^]rj,aj`]rhaujbKjchjN]r(je)r}r(jSX Installing packages from HackagerjTjjUjVjWjijY}r(j[]j\]j]]j^]j`]ujbKjchjN]rjlX Installing packages from Hackagerr}r(jSjjUNjbNjchjTjubaubj)r}r(jSXThe ``cabal`` tool also can download, configure, build and install a Hackage_ package and all of its dependencies in a single step. To do this, run:jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbKjchjN]r(jlXThe rr}r(jSXThe jUNjbNjchjTjubj)r}r(jSX ``cabal``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXcabalrr}r(jSXcabaljTjubajWjubjlX8 tool also can download, configure, build and install a r r }r (jSX8 tool also can download, configure, build and install a jUNjbNjchjTjubj)r }r (jSXHackage_UresolvedrKjTjjWjjY}r(UnameXHackagerUrefurirXhttp://hackage.haskell.org/rj^]j]]j[]j\]j`]ujN]rjlXHackagerr}r(jSjjTj ubaubjlXG package and all of its dependencies in a single step. To do this, run:rr}r(jSXG package and all of its dependencies in a single step. To do this, run:jUNjbNjchjTjubeubj)r}r(jSX$ cabal install [PACKAGE...]jTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbKjchjN]rjlX$ cabal install [PACKAGE...]rr}r (jSUjTjubaubj)r!}r"(jSXFTo browse the list of available packages, visit the Hackage_ web site.jTjjUjVjWjjY}r#(j[]j\]j]]j^]j`]ujbKjchjN]r$(jlX4To browse the list of available packages, visit the r%r&}r'(jSX4To browse the list of available packages, visit the jUNjbNjchjTj!ubj)r(}r)(jSXHackage_jKjTj!jWjjY}r*(UnameXHackager+jjj^]j]]j[]j\]j`]ujN]r,jlXHackager-r.}r/(jSj+jTj(ubaubjlX web site.r0r1}r2(jSX web site.jUNjbNjchjTj!ubeubeubjP)r3}r4(jSUjTj jUjVjWjXjY}r5(j[]j\]j]]j^]r6jaj`]r7hpaujbKjchjN]r8(je)r9}r:(jSXDeveloping with sandboxesr;jTj3jUjVjWjijY}r<(j[]j\]j]]j^]j`]ujbKjchjN]r=jlXDeveloping with sandboxesr>r?}r@(jSj;jUNjbNjchjTj9ubaubj)rA}rB(jSXBy default, any dependencies of the package are installed into the global or user package databases (e.g. using ``cabal install --only-dependencies``). If you're building several different packages that have incompatible dependencies, this can cause the build to fail. One way to avoid this problem is to build each package in an isolated environment ("sandbox"), with a sandbox-local package database. Because sandboxes are per-project, inconsistent dependencies can be simply disallowed.jTj3jUjVjWjjY}rC(j[]j\]j]]j^]j`]ujbKjchjN]rD(jlXpBy default, any dependencies of the package are installed into the global or user package databases (e.g. using rErF}rG(jSXpBy default, any dependencies of the package are installed into the global or user package databases (e.g. using jUNjbNjchjTjAubj)rH}rI(jSX%``cabal install --only-dependencies``jY}rJ(j[]j\]j]]j^]j`]ujTjAjN]rKjlX!cabal install --only-dependenciesrLrM}rN(jSX!cabal install --only-dependenciesjTjHubajWjubjlXZ). If you’re building several different packages that have incompatible dependencies, this can cause the build to fail. One way to avoid this problem is to build each package in an isolated environment (“sandbox”), with a sandbox-local package database. Because sandboxes are per-project, inconsistent dependencies can be simply disallowed.rOrP}rQ(jSXT). If you're building several different packages that have incompatible dependencies, this can cause the build to fail. One way to avoid this problem is to build each package in an isolated environment ("sandbox"), with a sandbox-local package database. Because sandboxes are per-project, inconsistent dependencies can be simply disallowed.jUNjbNjchjTjAubeubj)rR}rS(jSXiFor more on sandboxes, see also `this article `__.jTj3jUjVjWjjY}rT(j[]j\]j]]j^]j`]ujbKjchjN]rU(jlX For more on sandboxes, see also rVrW}rX(jSX For more on sandboxes, see also jUNjbNjchjTjRubj)rY}rZ(jSXH`this article `__jY}r[(UnameX this articlejX5http://coldwa.st/e/blog/2013-08-20-Cabal-sandbox.htmlj^]j]]j[]j\]j`]ujTjRjN]r\jlX this articler]r^}r_(jSX this articlejTjYubajWjubjlX.r`}ra(jSX.jUNjbNjchjTjRubeubjP)rb}rc(jSUjTj3jUjVjWjXjY}rd(j[]j\]j]]j^]rehaj`]rfhaujbKjchjN]rg(je)rh}ri(jSXSandboxes: basic usagerjjTjbjUjVjWjijY}rk(j[]j\]j]]j^]j`]ujbKjchjN]rljlXSandboxes: basic usagermrn}ro(jSjjjUNjbNjchjTjhubaubj)rp}rq(jSXTo initialise a fresh sandbox in the current directory, run ``cabal sandbox init``. All subsequent commands (such as ``build`` and ``install``) from this point will use the sandbox.jTjbjUjVjWjjY}rr(j[]j\]j]]j^]j`]ujbKjchjN]rs(jlX<To initialise a fresh sandbox in the current directory, run rtru}rv(jSX<To initialise a fresh sandbox in the current directory, run jUNjbNjchjTjpubj)rw}rx(jSX``cabal sandbox init``jY}ry(j[]j\]j]]j^]j`]ujTjpjN]rzjlXcabal sandbox initr{r|}r}(jSXcabal sandbox initjTjwubajWjubjlX#. All subsequent commands (such as r~r}r(jSX#. All subsequent commands (such as jUNjbNjchjTjpubj)r}r(jSX ``build``jY}r(j[]j\]j]]j^]j`]ujTjpjN]rjlXbuildrr}r(jSXbuildjTjubajWjubjlX and rr}r(jSX and jUNjbNjchjTjpubj)r}r(jSX ``install``jY}r(j[]j\]j]]j^]j`]ujTjpjN]rjlXinstallrr}r(jSXinstalljTjubajWjubjlX') from this point will use the sandbox.rr}r(jSX') from this point will use the sandbox.jUNjbNjchjTjpubeubj)r}r(jSX$ cd /path/to/my/haskell/library $ cabal sandbox init # Initialise the sandbox $ cabal install --only-dependencies # Install dependencies into the sandbox $ cabal build # Build your package inside the sandboxjTjbjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX$ cd /path/to/my/haskell/library $ cabal sandbox init # Initialise the sandbox $ cabal install --only-dependencies # Install dependencies into the sandbox $ cabal build # Build your package inside the sandboxrr}r(jSUjTjubaubj)r}r(jSX`It can be useful to make a source package available for installation in the sandbox - for example, if your package depends on a patched or an unreleased version of a library. This can be done with the ``cabal sandbox add-source`` command - think of it as "local Hackage_". If an add-source dependency is later modified, it is reinstalled automatically.jTjbjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(jlXIt can be useful to make a source package available for installation in the sandbox - for example, if your package depends on a patched or an unreleased version of a library. This can be done with the rr}r(jSXIt can be useful to make a source package available for installation in the sandbox - for example, if your package depends on a patched or an unreleased version of a library. This can be done with the jUNjbNjchjTjubj)r}r(jSX``cabal sandbox add-source``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXcabal sandbox add-sourcerr}r(jSXcabal sandbox add-sourcejTjubajWjubjlX# command - think of it as “local rr}r(jSX! command - think of it as "local jUNjbNjchjTjubj)r}r(jSXHackage_jKjTjjWjjY}r(UnameXHackagerjjj^]j]]j[]j\]j`]ujN]rjlXHackagerr}r(jSjjTjubaubjlXT”. If an add-source dependency is later modified, it is reinstalled automatically.rr}r(jSXR". If an add-source dependency is later modified, it is reinstalled automatically.jUNjbNjchjTjubeubj)r}r(jSX$ cabal sandbox add-source /my/patched/library # Add a new add-source dependency $ cabal install --dependencies-only # Install it into the sandbox $ cabal build # Build the local package $ $EDITOR /my/patched/library/Source.hs # Modify the add-source dependency $ cabal build # Modified dependency is automatically reinstalledjTjbjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX$ cabal sandbox add-source /my/patched/library # Add a new add-source dependency $ cabal install --dependencies-only # Install it into the sandbox $ cabal build # Build the local package $ $EDITOR /my/patched/library/Source.hs # Modify the add-source dependency $ cabal build # Modified dependency is automatically reinstalledrr}r(jSUjTjubaubj)r}r(jSXNormally, the sandbox settings (such as optimisation level) are inherited from the main Cabal config file (``$HOME/cabal/config``). Sometimes, though, you need to change some settings specifically for a single sandbox. You can do this by creating a ``cabal.config`` file in the same directory with your ``cabal.sandbox.config`` (which was created by ``sandbox init``). This file has the same syntax as the main Cabal config file.jTjbjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(jlXkNormally, the sandbox settings (such as optimisation level) are inherited from the main Cabal config file (rr}r(jSXkNormally, the sandbox settings (such as optimisation level) are inherited from the main Cabal config file (jUNjbNjchjTjubj)r}r(jSX``$HOME/cabal/config``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$HOME/cabal/configrr}r(jSX$HOME/cabal/configjTjubajWjubjlXx). Sometimes, though, you need to change some settings specifically for a single sandbox. You can do this by creating a rr}r(jSXx). Sometimes, though, you need to change some settings specifically for a single sandbox. You can do this by creating a jUNjbNjchjTjubj)r}r(jSX``cabal.config``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX cabal.configrr}r(jSX cabal.configjTjubajWjubjlX& file in the same directory with your rr}r(jSX& file in the same directory with your jUNjbNjchjTjubj)r}r(jSX``cabal.sandbox.config``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXcabal.sandbox.configrr}r(jSXcabal.sandbox.configjTjubajWjubjlX (which was created by rr}r(jSX (which was created by jUNjbNjchjTjubj)r}r(jSX``sandbox init``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX sandbox initrr}r(jSX sandbox initjTjubajWjubjlX?). This file has the same syntax as the main Cabal config file.rr}r(jSX?). This file has the same syntax as the main Cabal config file.jUNjbNjchjTjubeubj)r}r(jSX$ cat cabal.config documentation: True constraints: foo == 1.0, bar >= 2.0, baz $ cabal build # Uses settings from the cabal.config filejTjbjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbM jchjN]rjlX$ cat cabal.config documentation: True constraints: foo == 1.0, bar >= 2.0, baz $ cabal build # Uses settings from the cabal.config filerr}r(jSUjTjubaubj)r}r(jSXeWhen you have decided that you no longer want to build your package inside a sandbox, just delete it:rjTjbjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM%jchjN]rjlXeWhen you have decided that you no longer want to build your package inside a sandbox, just delete it:rr}r(jSjjUNjbNjchjTjubaubj)r}r(jSX$ cabal sandbox delete # Built-in command $ rm -rf .cabal-sandbox cabal.sandbox.config # Alternative manual methodjTjbjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbM*jchjN]rjlX$ cabal sandbox delete # Built-in command $ rm -rf .cabal-sandbox cabal.sandbox.config # Alternative manual methodrr}r(jSUjTjubaubeubjP)r}r(jSUjTj3jUjVjWjXjY}r(j[]j\]j]]j^]rhaj`]rh aujbM.jchjN]r (je)r }r (jSXSandboxes: advanced usager jTjjUjVjWjijY}r (j[]j\]j]]j^]j`]ujbM.jchjN]rjlXSandboxes: advanced usagerr}r(jSj jUNjbNjchjTj ubaubj)r}r(jSXThe default behaviour of the ``add-source`` command is to track modifications done to the added dependency and reinstall the sandbox copy of the package when needed. Sometimes this is not desirable: in these cases you can use ``add-source --snapshot``, which disables the change tracking. In addition to ``add-source``, there are also ``list-sources`` and ``delete-source`` commands.jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM0jchjN]r(jlXThe default behaviour of the rr}r(jSXThe default behaviour of the jUNjbNjchjTjubj)r}r(jSX``add-source``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX add-sourcerr}r(jSX add-sourcejTjubajWjubjlX command is to track modifications done to the added dependency and reinstall the sandbox copy of the package when needed. Sometimes this is not desirable: in these cases you can use r r!}r"(jSX command is to track modifications done to the added dependency and reinstall the sandbox copy of the package when needed. Sometimes this is not desirable: in these cases you can use jUNjbNjchjTjubj)r#}r$(jSX``add-source --snapshot``jY}r%(j[]j\]j]]j^]j`]ujTjjN]r&jlXadd-source --snapshotr'r(}r)(jSXadd-source --snapshotjTj#ubajWjubjlX5, which disables the change tracking. In addition to r*r+}r,(jSX5, which disables the change tracking. In addition to jUNjbNjchjTjubj)r-}r.(jSX``add-source``jY}r/(j[]j\]j]]j^]j`]ujTjjN]r0jlX add-sourcer1r2}r3(jSX add-sourcejTj-ubajWjubjlX, there are also r4r5}r6(jSX, there are also jUNjbNjchjTjubj)r7}r8(jSX``list-sources``jY}r9(j[]j\]j]]j^]j`]ujTjjN]r:jlX list-sourcesr;r<}r=(jSX list-sourcesjTj7ubajWjubjlX and r>r?}r@(jSX and jUNjbNjchjTjubj)rA}rB(jSX``delete-source``jY}rC(j[]j\]j]]j^]j`]ujTjjN]rDjlX delete-sourcerErF}rG(jSX delete-sourcejTjAubajWjubjlX commands.rHrI}rJ(jSX commands.jUNjbNjchjTjubeubj)rK}rL(jSXSometimes one wants to share a single sandbox between multiple packages. This can be easily done with the ``--sandbox`` option:jTjjUjVjWjjY}rM(j[]j\]j]]j^]j`]ujbM7jchjN]rN(jlXjSometimes one wants to share a single sandbox between multiple packages. This can be easily done with the rOrP}rQ(jSXjSometimes one wants to share a single sandbox between multiple packages. This can be easily done with the jUNjbNjchjTjKubj)rR}rS(jSX ``--sandbox``jY}rT(j[]j\]j]]j^]j`]ujTjKjN]rUjlX --sandboxrVrW}rX(jSX --sandboxjTjRubajWjubjlX option:rYrZ}r[(jSX option:jUNjbNjchjTjKubeubj)r\}r](jSX$ mkdir -p /path/to/shared-sandbox $ cd /path/to/shared-sandbox $ cabal sandbox init --sandbox . $ cd /path/to/package-a $ cabal sandbox init --sandbox /path/to/shared-sandbox $ cd /path/to/package-b $ cabal sandbox init --sandbox /path/to/shared-sandboxjTjjUjVjWjjY}r^(jjj^]j]]j[]j\]j`]ujbM<jchjN]r_jlX$ mkdir -p /path/to/shared-sandbox $ cd /path/to/shared-sandbox $ cabal sandbox init --sandbox . $ cd /path/to/package-a $ cabal sandbox init --sandbox /path/to/shared-sandbox $ cd /path/to/package-b $ cabal sandbox init --sandbox /path/to/shared-sandboxr`ra}rb(jSUjTj\ubaubj)rc}rd(jSXNote that ``cabal sandbox init --sandbox .`` puts all sandbox files into the current directory. By default, ``cabal sandbox init`` initialises a new sandbox in a newly-created subdirectory of the current working directory (``./.cabal-sandbox``).jTjjUjVjWjjY}re(j[]j\]j]]j^]j`]ujbMDjchjN]rf(jlX Note that rgrh}ri(jSX Note that jUNjbNjchjTjcubj)rj}rk(jSX"``cabal sandbox init --sandbox .``jY}rl(j[]j\]j]]j^]j`]ujTjcjN]rmjlXcabal sandbox init --sandbox .rnro}rp(jSXcabal sandbox init --sandbox .jTjjubajWjubjlX@ puts all sandbox files into the current directory. By default, rqrr}rs(jSX@ puts all sandbox files into the current directory. By default, jUNjbNjchjTjcubj)rt}ru(jSX``cabal sandbox init``jY}rv(j[]j\]j]]j^]j`]ujTjcjN]rwjlXcabal sandbox initrxry}rz(jSXcabal sandbox initjTjtubajWjubjlX] initialises a new sandbox in a newly-created subdirectory of the current working directory (r{r|}r}(jSX] initialises a new sandbox in a newly-created subdirectory of the current working directory (jUNjbNjchjTjcubj)r~}r(jSX``./.cabal-sandbox``jY}r(j[]j\]j]]j^]j`]ujTjcjN]rjlX./.cabal-sandboxrr}r(jSX./.cabal-sandboxjTj~ubajWjubjlX).rr}r(jSX).jUNjbNjchjTjcubeubj)r}r(jSXcUsing multiple different compiler versions simultaneously is also supported, via the ``-w`` option:jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMIjchjN]r(jlXUUsing multiple different compiler versions simultaneously is also supported, via the rr}r(jSXUUsing multiple different compiler versions simultaneously is also supported, via the jUNjbNjchjTjubj)r}r(jSX``-w``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX-wrr}r(jSX-wjTjubajWjubjlX option:rr}r(jSX option:jUNjbNjchjTjubeubj)r}r(jSXs$ cabal sandbox init $ cabal install --only-dependencies -w /path/to/ghc-1 # Install dependencies for both compilers $ cabal install --only-dependencies -w /path/to/ghc-2 $ cabal configure -w /path/to/ghc-1 # Build with the first compiler $ cabal build $ cabal configure -w /path/to/ghc-2 # Build with the second compiler $ cabal buildjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMNjchjN]rjlXs$ cabal sandbox init $ cabal install --only-dependencies -w /path/to/ghc-1 # Install dependencies for both compilers $ cabal install --only-dependencies -w /path/to/ghc-2 $ cabal configure -w /path/to/ghc-1 # Build with the first compiler $ cabal build $ cabal configure -w /path/to/ghc-2 # Build with the second compiler $ cabal buildrr}r(jSUjTjubaubj)r}r(jSXIIt can be occasionally useful to run the compiler-specific package manager tool (e.g. ``ghc-pkg``) tool on the sandbox package DB directly (for example, you may need to unregister some packages). The ``cabal sandbox hc-pkg`` command is a convenient wrapper that runs the compiler-specific package manager tool with the arguments:jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMVjchjN]r(jlXVIt can be occasionally useful to run the compiler-specific package manager tool (e.g. rr}r(jSXVIt can be occasionally useful to run the compiler-specific package manager tool (e.g. jUNjbNjchjTjubj)r}r(jSX ``ghc-pkg``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXghc-pkgrr}r(jSXghc-pkgjTjubajWjubjlXg) tool on the sandbox package DB directly (for example, you may need to unregister some packages). The rr}r(jSXg) tool on the sandbox package DB directly (for example, you may need to unregister some packages). The jUNjbNjchjTjubj)r}r(jSX``cabal sandbox hc-pkg``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXcabal sandbox hc-pkgrr}r(jSXcabal sandbox hc-pkgjTjubajWjubjlXi command is a convenient wrapper that runs the compiler-specific package manager tool with the arguments:rr}r(jSXi command is a convenient wrapper that runs the compiler-specific package manager tool with the arguments:jUNjbNjchjTjubeubj)r}r(jSX$ cabal -v sandbox hc-pkg list Using a sandbox located at /path/to/.cabal-sandbox 'ghc-pkg' '--global' '--no-user-package-conf' '--package-conf=/path/to/.cabal-sandbox/i386-linux-ghc-7.4.2-packages.conf.d' 'list' [...]jTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbM^jchjN]rjlX$ cabal -v sandbox hc-pkg list Using a sandbox located at /path/to/.cabal-sandbox 'ghc-pkg' '--global' '--no-user-package-conf' '--package-conf=/path/to/.cabal-sandbox/i386-linux-ghc-7.4.2-packages.conf.d' 'list' [...]rr}r(jSUjTjubaubj)r}r(jSXThe ``--require-sandbox`` option makes all sandbox-aware commands (``install``/``build``/etc.) exit with error if there is no sandbox present. This makes it harder to accidentally modify the user package database. The option can be also turned on via the per-user configuration file (``~/.cabal/config``) or the per-project one (``$PROJECT_DIR/cabal.config``). The error can be squelched with ``--no-require-sandbox``.jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMejchjN]r(jlXThe rr}r(jSXThe jUNjbNjchjTjubj)r}r(jSX``--require-sandbox``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX--require-sandboxrr}r(jSX--require-sandboxjTjubajWjubjlX* option makes all sandbox-aware commands (rr}r(jSX* option makes all sandbox-aware commands (jUNjbNjchjTjubj)r}r(jSX ``install``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXinstallrr}r(jSXinstalljTjubajWjubjlX/r}r(jSX/jUNjbNjchjTjubj)r}r(jSX ``build``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXbuildrr}r(jSXbuildjTjubajWjubjlX/etc.) exit with error if there is no sandbox present. This makes it harder to accidentally modify the user package database. The option can be also turned on via the per-user configuration file (rr}r(jSX/etc.) exit with error if there is no sandbox present. This makes it harder to accidentally modify the user package database. The option can be also turned on via the per-user configuration file (jUNjbNjchjTjubj)r}r(jSX``~/.cabal/config``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX~/.cabal/configrr}r(jSX~/.cabal/configjTjubajWjubjlX) or the per-project one (rr}r(jSX) or the per-project one (jUNjbNjchjTjubj)r}r(jSX``$PROJECT_DIR/cabal.config``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$PROJECT_DIR/cabal.configrr}r(jSX$PROJECT_DIR/cabal.configjTjubajWjubjlX#). The error can be squelched with rr}r(jSX#). The error can be squelched with jUNjbNjchjTjubj)r}r(jSX``--no-require-sandbox``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX--no-require-sandboxrr}r(jSX--no-require-sandboxjTjubajWjubjlX.r}r(jSX.jUNjbNjchjTjubeubj)r}r(jSXThe option ``--sandbox-config-file`` allows to specify the location of the ``cabal.sandbox.config`` file (by default, ``cabal`` searches for it in the current directory). This provides the same functionality as shared sandboxes, but sometimes can be more convenient. Example:jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMmjchjN]r(jlX The option rr}r (jSX The option jUNjbNjchjTjubj)r }r (jSX``--sandbox-config-file``jY}r (j[]j\]j]]j^]j`]ujTjjN]r jlX--sandbox-config-filerr}r(jSX--sandbox-config-filejTj ubajWjubjlX' allows to specify the location of the rr}r(jSX' allows to specify the location of the jUNjbNjchjTjubj)r}r(jSX``cabal.sandbox.config``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXcabal.sandbox.configrr}r(jSXcabal.sandbox.configjTjubajWjubjlX file (by default, rr}r(jSX file (by default, jUNjbNjchjTjubj)r}r(jSX ``cabal``jY}r (j[]j\]j]]j^]j`]ujTjjN]r!jlXcabalr"r#}r$(jSXcabaljTjubajWjubjlX searches for it in the current directory). This provides the same functionality as shared sandboxes, but sometimes can be more convenient. Example:r%r&}r'(jSX searches for it in the current directory). This provides the same functionality as shared sandboxes, but sometimes can be more convenient. Example:jUNjbNjchjTjubeubj)r(}r)(jSXT$ mkdir my/sandbox $ cd my/sandbox $ cabal sandbox init $ cd /path/to/my/project $ cabal --sandbox-config-file=/path/to/my/sandbox/cabal.sandbox.config install # Uses the sandbox located at /path/to/my/sandbox/.cabal-sandbox $ cd ~ $ cabal --sandbox-config-file=/path/to/my/sandbox/cabal.sandbox.config install # Still uses the same sandboxjTjjUjVjWjjY}r*(jjj^]j]]j[]j\]j`]ujbMtjchjN]r+jlXT$ mkdir my/sandbox $ cd my/sandbox $ cabal sandbox init $ cd /path/to/my/project $ cabal --sandbox-config-file=/path/to/my/sandbox/cabal.sandbox.config install # Uses the sandbox located at /path/to/my/sandbox/.cabal-sandbox $ cd ~ $ cabal --sandbox-config-file=/path/to/my/sandbox/cabal.sandbox.config install # Still uses the same sandboxr,r-}r.(jSUjTj(ubaubj)r/}r0(jSXdThe sandbox config file can be also specified via the ``CABAL_SANDBOX_CONFIG`` environment variable.jTjjUjVjWjjY}r1(j[]j\]j]]j^]j`]ujbM~jchjN]r2(jlX6The sandbox config file can be also specified via the r3r4}r5(jSX6The sandbox config file can be also specified via the jUNjbNjchjTj/ubj)r6}r7(jSX``CABAL_SANDBOX_CONFIG``jY}r8(j[]j\]j]]j^]j`]ujTj/jN]r9jlXCABAL_SANDBOX_CONFIGr:r;}r<(jSXCABAL_SANDBOX_CONFIGjTj6ubajWjubjlX environment variable.r=r>}r?(jSX environment variable.jUNjbNjchjTj/ubeubj)r@}rA(jSXWFinally, the flag ``--ignore-sandbox`` lets you temporarily ignore an existing sandbox:jTjjUjVjWjjY}rB(j[]j\]j]]j^]j`]ujbMjchjN]rC(jlXFinally, the flag rDrE}rF(jSXFinally, the flag jUNjbNjchjTj@ubj)rG}rH(jSX``--ignore-sandbox``jY}rI(j[]j\]j]]j^]j`]ujTj@jN]rJjlX--ignore-sandboxrKrL}rM(jSX--ignore-sandboxjTjGubajWjubjlX1 lets you temporarily ignore an existing sandbox:rNrO}rP(jSX1 lets you temporarily ignore an existing sandbox:jUNjbNjchjTj@ubeubj)rQ}rR(jSX$ mkdir my/sandbox $ cd my/sandbox $ cabal sandbox init $ cabal --ignore-sandbox install text # Installs 'text' in the user package database ('~/.cabal').jTjjUjVjWjjY}rS(jjj^]j]]j[]j\]j`]ujbMjchjN]rTjlX$ mkdir my/sandbox $ cd my/sandbox $ cabal sandbox init $ cabal --ignore-sandbox install text # Installs 'text' in the user package database ('~/.cabal').rUrV}rW(jSUjTjQubaubeubeubjP)rX}rY(jSUjTj jUjVjWjXjY}rZ(j[]j\]j]]j^]r[haj`]r\haujbMjchjN]r](je)r^}r_(jSXCreating a binary packager`jTjXjUjVjWjijY}ra(j[]j\]j]]j^]j`]ujbMjchjN]rbjlXCreating a binary packagercrd}re(jSj`jUNjbNjchjTj^ubaubj)rf}rg(jSXWhen creating binary packages (e.g. for Red Hat or Debian) one needs to create a tarball that can be sent to another system for unpacking in the root directory:rhjTjXjUjVjWjjY}ri(j[]j\]j]]j^]j`]ujbMjchjN]rjjlXWhen creating binary packages (e.g. for Red Hat or Debian) one needs to create a tarball that can be sent to another system for unpacking in the root directory:rkrl}rm(jSjhjUNjbNjchjTjfubaubj)rn}ro(jSX$ runhaskell Setup.hs configure --prefix=/usr $ runhaskell Setup.hs build $ runhaskell Setup.hs copy --destdir=/tmp/mypkg $ tar -czf mypkg.tar.gz /tmp/mypkg/jTjXjUjVjWjjY}rp(jjj^]j]]j[]j\]j`]ujbMjchjN]rqjlX$ runhaskell Setup.hs configure --prefix=/usr $ runhaskell Setup.hs build $ runhaskell Setup.hs copy --destdir=/tmp/mypkg $ tar -czf mypkg.tar.gz /tmp/mypkg/rrrs}rt(jSUjTjnubaubj)ru}rv(jSXAIf the package contains a library, you need two additional steps:rwjTjXjUjVjWjjY}rx(j[]j\]j]]j^]j`]ujbMjchjN]ryjlXAIf the package contains a library, you need two additional steps:rzr{}r|(jSjwjUNjbNjchjTjuubaubj)r}}r~(jSXY$ runhaskell Setup.hs register --gen-script $ runhaskell Setup.hs unregister --gen-scriptjTjXjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlXY$ runhaskell Setup.hs register --gen-script $ runhaskell Setup.hs unregister --gen-scriptrr}r(jSUjTj}ubaubj)r}r(jSXfThis creates shell scripts ``register.sh`` and ``unregister.sh``, which must also be sent to the target system. After unpacking there, the package must be registered by running the ``register.sh`` script. The ``unregister.sh`` script would be used in the uninstall procedure of the package. Similar steps may be used for creating binary packages for Windows.jTjXjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(jlXThis creates shell scripts rr}r(jSXThis creates shell scripts jUNjbNjchjTjubj)r}r(jSX``register.sh``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX register.shrr}r(jSX register.shjTjubajWjubjlX and rr}r(jSX and jUNjbNjchjTjubj)r}r(jSX``unregister.sh``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX unregister.shrr}r(jSX unregister.shjTjubajWjubjlXu, which must also be sent to the target system. After unpacking there, the package must be registered by running the rr}r(jSXu, which must also be sent to the target system. After unpacking there, the package must be registered by running the jUNjbNjchjTjubj)r}r(jSX``register.sh``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX register.shrr}r(jSX register.shjTjubajWjubjlX script. The rr}r(jSX script. The jUNjbNjchjTjubj)r}r(jSX``unregister.sh``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX unregister.shrr}r(jSX unregister.shjTjubajWjubjlX script would be used in the uninstall procedure of the package. Similar steps may be used for creating binary packages for Windows.rr}r(jSX script would be used in the uninstall procedure of the package. Similar steps may be used for creating binary packages for Windows.jUNjbNjchjTjubeubj)r}r(jSX5The following options are understood by all commands:rjTjXjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]rjlX5The following options are understood by all commands:rr}r(jSjjUNjbNjchjTjubaubcsphinx.addnodes index r)r}r(jSUjTjXjUjVjWUindexrjY}r(j^]j]]j[]j\]j`]Uentries]r(UpairrX+setup command line option; --help, -h or -?hUNtraujbNjchjN]ubcsphinx.addnodes desc r)r}r(jSUjTjXjUjVjWUdescrjY}r(UnoindexrUdomainrXstdj^]j]]j[]j\]j`]UobjtyperXoptionrUdesctyperjujbNjchjN]r(csphinx.addnodes desc_signature r)r}r(jSX--help, -h or -?jTjjUjVjWUdesc_signaturerjY}r(Uallnamesr]r(X--helprX-hrej^]rhaj]]j[]j\]j`]r(hh@eUfirstrujbMjchjN]r(csphinx.addnodes desc_name r)r}r(jSjjTjjUjVjWU desc_namerjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX--helprr}r(jSUjUNjbNjchjTjubaubcsphinx.addnodes desc_addname r)r}r(jSUjTjjUjVjWU desc_addnamerjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]ubj)r}r(jSU, rjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX, rr}r(jSUjUNjbNjchjTjubaubj)r}r(jSjjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX-hrr}r(jSUjUNjbNjchjTjubaubj)r}r(jSX or -?jTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX or -?rr}r(jSUjUNjbNjchjTjubaubeubcsphinx.addnodes desc_content r)r}r(jSUjTjjUjVjWU desc_contentrjY}r(j[]j\]j]]j^]j`]ujbMjchjN]rj)r}r(jSX+List the available options for the command.rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r jlX+List the available options for the command.r r }r (jSjjUNjbNjchjTjubaubaubeubj)r }r(jSUjTjXjUjVjWjjY}r(j^]j]]j[]j\]j`]Uentries]r(jX.setup command line option; --verbose=n or -v njKUNtraujbNjchjN]ubj)r}r(jSUjTjXjUjVjWjjY}r(jjXstdj^]j]]j[]j\]j`]jXoptionrjjujbNjchjN]r(j)r}r(jSX--verbose=n or -v njTjjUjVjWjjY}r(j]rX --verboseraj^]rjKaj]]j[]j\]j`]rhajujbMjchjN]r(j)r}r (jSjjTjjUjVjWjjY}r!(jjj^]j]]j[]j\]j`]ujbMjchjN]r"jlX --verboser#r$}r%(jSUjUNjbNjchjTjubaubj)r&}r'(jSX =n or -v njTjjUjVjWjjY}r((jjj^]j]]j[]j\]j`]ujbMjchjN]r)jlX =n or -v nr*r+}r,(jSUjUNjbNjchjTj&ubaubeubj)r-}r.(jSUjTjjUjVjWjjY}r/(j[]j\]j]]j^]j`]ujbMjchjN]r0(j)r1}r2(jSXRSet the verbosity level (0-3). The normal level is 1; a missing *n* defaults to 2.jTj-jUjVjWjjY}r3(j[]j\]j]]j^]j`]ujbMjchjN]r4(jlX@Set the verbosity level (0-3). The normal level is 1; a missing r5r6}r7(jSX@Set the verbosity level (0-3). The normal level is 1; a missing jUNjbNjchjTj1ubj)r8}r9(jSX*n*jY}r:(j[]j\]j]]j^]j`]ujTj1jN]r;jlXnr<}r=(jSXnjTj8ubajWjubjlX defaults to 2.r>r?}r@(jSX defaults to 2.jUNjbNjchjTj1ubeubj)rA}rB(jSXThere is also an extended version of this command which can be used to fine-tune the verbosity of output. It takes the form ``[silent|normal|verbose|debug]``\ *flags*, where *flags* is a list of ``+`` flags which toggle various aspects of output. At the moment, only ``+callsite`` and ``+callstack`` are supported, which respectively toggle call site and call stack printing (these are only supported if Cabal is built with a sufficiently recent GHC.)jTj-jUjVjWjjY}rC(j[]j\]j]]j^]j`]ujbMjchjN]rD(jlX}There is also an extended version of this command which can be used to fine-tune the verbosity of output. It takes the form rErF}rG(jSX}There is also an extended version of this command which can be used to fine-tune the verbosity of output. It takes the form jUNjbNjchjTjAubj)rH}rI(jSX!``[silent|normal|verbose|debug]``jY}rJ(j[]j\]j]]j^]j`]ujTjAjN]rKjlX[silent|normal|verbose|debug]rLrM}rN(jSX[silent|normal|verbose|debug]jTjHubajWjubjlXrO}rP(jSX\ jUNjbNjchjTjAubj)rQ}rR(jSX*flags*jY}rS(j[]j\]j]]j^]j`]ujTjAjN]rTjlXflagsrUrV}rW(jSXflagsjTjQubajWjubjlX, where rXrY}rZ(jSX, where jUNjbNjchjTjAubj)r[}r\(jSX*flags*jY}r](j[]j\]j]]j^]j`]ujTjAjN]r^jlXflagsr_r`}ra(jSXflagsjTj[ubajWjubjlX is a list of rbrc}rd(jSX is a list of jUNjbNjchjTjAubj)re}rf(jSX``+``jY}rg(j[]j\]j]]j^]j`]ujTjAjN]rhjlX+ri}rj(jSX+jTjeubajWjubjlXD flags which toggle various aspects of output. At the moment, only rkrl}rm(jSXD flags which toggle various aspects of output. At the moment, only jUNjbNjchjTjAubj)rn}ro(jSX ``+callsite``jY}rp(j[]j\]j]]j^]j`]ujTjAjN]rqjlX +callsiterrrs}rt(jSX +callsitejTjnubajWjubjlX and rurv}rw(jSX and jUNjbNjchjTjAubj)rx}ry(jSX``+callstack``jY}rz(j[]j\]j]]j^]j`]ujTjAjN]r{jlX +callstackr|r}}r~(jSX +callstackjTjxubajWjubjlX are supported, which respectively toggle call site and call stack printing (these are only supported if Cabal is built with a sufficiently recent GHC.)rr}r(jSX are supported, which respectively toggle call site and call stack printing (these are only supported if Cabal is built with a sufficiently recent GHC.)jUNjbNjchjTjAubeubeubeubj)r}r(jSXThe various commands and the additional options they support are described below. In the simple build infrastructure, any other options will be reported as errors.rjTjXjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]rjlXThe various commands and the additional options they support are described below. In the simple build infrastructure, any other options will be reported as errors.rr}r(jSjjUNjbNjchjTjubaubj)r}r(jSX.. _setup-configure:jTjXjUjVjWj jY}r(j^]j]]j[]j\]j`]j j#ujbMjchjN]ubeubjP)r}r(jSUU referencedrKjTj jUjVj}rhzjsjWjXjY}r(j[]j\]j]]j^]r(j#j.ej`]r(hhzeujbMjchj}rj#jsjN]r(je)r}r(jSXsetup configurerjTjjUjVjWjijY}r(j[]j\]j]]j^]j`]ujbMjchjN]rjlXsetup configurerr}r(jSjjUNjbNjchjTjubaubj)r}r(jSXPrepare to build the package. Typically, this step checks that the target platform is capable of building the package, and discovers platform-specific features that are needed during the build.rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]rjlXPrepare to build the package. Typically, this step checks that the target platform is capable of building the package, and discovers platform-specific features that are needed during the build.rr}r(jSjjUNjbNjchjTjubaubj)r}r(jSXThe user may also adjust the behaviour of later stages using the options listed in the following subsections. In the simple build infrastructure, the values supplied via these options are recorded in a private file read by later stages.rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]rjlXThe user may also adjust the behaviour of later stages using the options listed in the following subsections. In the simple build infrastructure, the values supplied via these options are recorded in a private file read by later stages.rr}r(jSjjUNjbNjchjTjubaubj)r}r(jSXkIf a user-supplied ``configure`` script is run (see the section on `system-dependent parameters `__ or on `complex packages `__), it is passed the :option:`--with-hc-pkg`, :option:`--prefix`, :option:`--bindir`, :option:`--libdir`, :option:`--dynlibdir`, :option:`--datadir`, :option:`--libexecdir` and :option:`--sysconfdir` options. In addition the value of the :option:`--with-compiler` option is passed in a :option:`--with-hc-pkg` option and all options specified with :option:`--configure-option` are passed on.jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(jlXIf a user-supplied rr}r(jSXIf a user-supplied jUNjbNjchjTjubj)r}r(jSX ``configure``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX configurerr}r(jSX configurejTjubajWjubjlX# script is run (see the section on rr}r(jSX# script is run (see the section on jUNjbNjchjTjubj)r}r(jSXV`system-dependent parameters `__jY}r(UnameXsystem-dependent parametersjX4developing-packages.html#system-dependent-parametersj^]j]]j[]j\]j`]ujTjjN]rjlXsystem-dependent parametersrr}r(jSXsystem-dependent parametersjTjubajWjubjlX or on rr}r(jSX or on jUNjbNjchjTjubj)r}r(jSXE`complex packages `__jY}r(UnameXcomplex packagesjX.developing-packages.html#more-complex-packagesj^]j]]j[]j\]j`]ujTjjN]rjlXcomplex packagesrr}r(jSXcomplex packagesjTjubajWjubjlX), it is passed the rr}r(jSX), it is passed the jUNjbNjchjTjubj)r}r(jSX:option:`--with-hc-pkg`jTjjUjVjWjjY}r(UreftypeXoptionjjX --with-hc-pkgrU refdomainXstdrj^]j]]U refexplicitj[]j\]j`]jjjXsetup-configurerujbMjN]rj)r}r(jSjjY}r(j[]j\]r(jjX std-optionrej]]j^]j`]ujTjjN]rjlX --with-hc-pkgrr}r(jSUjTjubajWjubaubjlX, rr}r(jSX, rjUNjbNjchjTjubj)r}r(jSX:option:`--prefix`jTjjUjVjWjjY}r(UreftypeXoptionjjX--prefixrU refdomainXstdrj^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rj)r}r(jSjjY}r(j[]j\]r(jjX std-optionrej]]j^]j`]ujTjjN]rjlX--prefixrr}r(jSUjTjubajWjubaubjlX, rr}r(jSX, jTjubj)r}r(jSX:option:`--bindir`jTjjUjVjWjjY}r(UreftypeXoptionjjX--bindirrU refdomainXstdrj^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rj)r}r (jSjjY}r (j[]j\]r (jjX std-optionr ej]]j^]j`]ujTjjN]r jlX--bindirr r }r (jSUjTjubajWjubaubjlX, r r }r (jSX, jUNjbNjchjTjubj)r }r (jSX:option:`--libdir`jTjjUjVjWjjY}r (UreftypeXoptionjjX--libdirr U refdomainXstdr j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r j)r }r (jSj jY}r (j[]j\]r (jj X std-optionr ej]]j^]j`]ujTj jN]r jlX--libdirr r }r (jSUjTj ubajWjubaubjlX, r r }r (jSX, jTjubj)r }r (jSX:option:`--dynlibdir`jTjjUjVjWjjY}r (UreftypeXoptionjjX --dynlibdirr U refdomainXstdr! j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r" j)r# }r$ (jSj jY}r% (j[]j\]r& (jj! X std-optionr' ej]]j^]j`]ujTj jN]r( jlX --dynlibdirr) r* }r+ (jSUjTj# ubajWjubaubjlX, r, r- }r. (jSX, jTjubj)r/ }r0 (jSX:option:`--datadir`jTjjUjVjWjjY}r1 (UreftypeXoptionjjX --datadirr2 U refdomainXstdr3 j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r4 j)r5 }r6 (jSj2 jY}r7 (j[]j\]r8 (jj3 X std-optionr9 ej]]j^]j`]ujTj/ jN]r: jlX --datadirr; r< }r= (jSUjTj5 ubajWjubaubjlX, r> r? }r@ (jSjjTjubj)rA }rB (jSX:option:`--libexecdir`jTjjUjVjWjjY}rC (UreftypeXoptionjjX --libexecdirrD U refdomainXstdrE j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rF j)rG }rH (jSjD jY}rI (j[]j\]rJ (jjE X std-optionrK ej]]j^]j`]ujTjA jN]rL jlX --libexecdirrM rN }rO (jSUjTjG ubajWjubaubjlX and rP rQ }rR (jSX and jUNjbNjchjTjubj)rS }rT (jSX:option:`--sysconfdir`jTjjUjVjWjjY}rU (UreftypeXoptionjjX --sysconfdirrV U refdomainXstdrW j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rX j)rY }rZ (jSjV jY}r[ (j[]j\]r\ (jjW X std-optionr] ej]]j^]j`]ujTjS jN]r^ jlX --sysconfdirr_ r` }ra (jSUjTjY ubajWjubaubjlX' options. In addition the value of the rb rc }rd (jSX' options. In addition the value of the jUNjbNjchjTjubj)re }rf (jSX:option:`--with-compiler`jTjjUjVjWjjY}rg (UreftypeXoptionjjX--with-compilerrh U refdomainXstdri j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rj j)rk }rl (jSjh jY}rm (j[]j\]rn (jji X std-optionro ej]]j^]j`]ujTje jN]rp jlX--with-compilerrq rr }rs (jSUjTjk ubajWjubaubjlX option is passed in a rt ru }rv (jSX option is passed in a jUNjbNjchjTjubj)rw }rx (jSX:option:`--with-hc-pkg`jTjjUjVjWjjY}ry (UreftypeXoptionjjX --with-hc-pkgrz U refdomainXstdr{ j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r| j)r} }r~ (jSjz jY}r (j[]j\]r (jj{ X std-optionr ej]]j^]j`]ujTjw jN]r jlX --with-hc-pkgr r }r (jSUjTj} ubajWjubaubjlX' option and all options specified with r r }r (jSX' option and all options specified with jUNjbNjchjTjubj)r }r (jSX:option:`--configure-option`jTjjUjVjWjjY}r (UreftypeXoptionjjX--configure-optionr U refdomainXstdr j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r j)r }r (jSj jY}r (j[]j\]r (jj X std-optionr ej]]j^]j`]ujTj jN]r jlX--configure-optionr r }r (jSUjTj ubajWjubaubjlX are passed on.r r }r (jSX are passed on.jUNjbNjchjTjubeubcdocutils.nodes note r )r }r (jSX<`GNU autoconf places restrictions on paths, including the directory that the package is built from. `_ The errors produced when this happens can be obscure; Cabal attempts to detect and warn in this situation, but it is not perfect.jTjjUjVjWUnoter jY}r (j[]j\]j]]j^]j`]ujbNjchjN]r j)r }r (jSX<`GNU autoconf places restrictions on paths, including the directory that the package is built from. `_ The errors produced when this happens can be obscure; Cabal attempts to detect and warn in this situation, but it is not perfect.jTj jUjVjWjjY}r (j[]j\]j]]j^]j`]ujbMjN]r (j)r }r (jSX`GNU autoconf places restrictions on paths, including the directory that the package is built from. `_jY}r (UnameXbGNU autoconf places restrictions on paths, including the directory that the package is built from.jXRhttps://www.gnu.org/software/autoconf/manual/autoconf.html#File-System-Conventionsr j^]j]]j[]j\]j`]ujTj jN]r jlXbGNU autoconf places restrictions on paths, including the directory that the package is built from.r r }r (jSXbGNU autoconf places restrictions on paths, including the directory that the package is built from.jTj ubajWjubj)r }r (jSXU jKjTj jWj jY}r (Urefurij j^]r j?aj]]j[]j\]j`]r haujN]ubjlX The errors produced when this happens can be obscure; Cabal attempts to detect and warn in this situation, but it is not perfect.r r }r (jSX The errors produced when this happens can be obscure; Cabal attempts to detect and warn in this situation, but it is not perfect.jTj ubeubaubj)r }r (jSX{In Cabal 2.0, support for a single positional argument was added to ``setup configure`` This makes Cabal configure the specific component to be configured. Specified names can be qualified with ``lib:`` or ``exe:`` in case just a name is ambiguous (as would be the case for a package named ``p`` which has a library and an executable named ``p``.) This has the following effects:jTjjUjVjWjjY}r (j[]j\]j]]j^]j`]ujbMjchjN]r (jlXDIn Cabal 2.0, support for a single positional argument was added to r r }r (jSXDIn Cabal 2.0, support for a single positional argument was added to jUNjbNjchjTj ubj)r }r (jSX``setup configure``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlXsetup configurer r }r (jSXsetup configurejTj ubajWjubjlXk This makes Cabal configure the specific component to be configured. Specified names can be qualified with r r }r (jSXk This makes Cabal configure the specific component to be configured. Specified names can be qualified with jUNjbNjchjTj ubj)r }r (jSX``lib:``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlXlib:r r }r (jSXlib:jTj ubajWjubjlX or r r }r (jSX or jUNjbNjchjTj ubj)r }r (jSX``exe:``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlXexe:r r }r (jSXexe:jTj ubajWjubjlXL in case just a name is ambiguous (as would be the case for a package named r r }r (jSXL in case just a name is ambiguous (as would be the case for a package named jUNjbNjchjTj ubj)r }r (jSX``p``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlXpr }r (jSXpjTj ubajWjubjlX- which has a library and an executable named r r }r (jSX- which has a library and an executable named jUNjbNjchjTj ubj)r }r (jSX``p``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlXpr }r (jSXpjTj ubajWjubjlX".) This has the following effects:r r }r (jSX".) This has the following effects:jUNjbNjchjTj ubeubcdocutils.nodes bullet_list r )r }r (jSUjTjjUjVjWU bullet_listr jY}r (Ubulletr X-j^]j]]j[]j\]j`]ujbMjchjN]r (cdocutils.nodes list_item r )r }r (jSXhSubsequent invocations of ``cabal build``, ``register``, etc. operate only on the configured component. jTj jUjVjWU list_itemr jY}r (j[]j\]j]]j^]j`]ujbNjchjN]r j)r }r (jSXgSubsequent invocations of ``cabal build``, ``register``, etc. operate only on the configured component.jTj jUjVjWjjY}r (j[]j\]j]]j^]j`]ujbMjN]r (jlXSubsequent invocations of r r }r (jSXSubsequent invocations of jTj ubj)r }r (jSX``cabal build``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlX cabal buildr r }r (jSX cabal buildjTj ubajWjubjlX, r r }r (jSX, jTj ubj)r }r (jSX ``register``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlXregisterr r }r (jSXregisterjTj ubajWjubjlX0, etc. operate only on the configured component.r r }r (jSX0, etc. operate only on the configured component.jTj ubeubaubj )r }r (jSXCabal requires all "internal" dependencies (e.g., an executable depending on a library defined in the same package) must be found in the set of databases via :option:`--package-db` (and related flags): these dependencies are assumed to be up-to-date. A dependency can be explicitly specified using :option:`--dependency` simply by giving the name of the internal library; e.g., the dependency for an internal library named ``foo`` is given as ``--dependency=pkg-internal=pkg-1.0-internal-abcd``. jTj jUjVjWj jY}r (j[]j\]j]]j^]j`]ujbNjchjN]r j)r }r (jSXCabal requires all "internal" dependencies (e.g., an executable depending on a library defined in the same package) must be found in the set of databases via :option:`--package-db` (and related flags): these dependencies are assumed to be up-to-date. A dependency can be explicitly specified using :option:`--dependency` simply by giving the name of the internal library; e.g., the dependency for an internal library named ``foo`` is given as ``--dependency=pkg-internal=pkg-1.0-internal-abcd``.jTj jUjVjWjjY}r (j[]j\]j]]j^]j`]ujbMjN]r (jlXCabal requires all “internal” dependencies (e.g., an executable depending on a library defined in the same package) must be found in the set of databases via r r }r (jSXCabal requires all "internal" dependencies (e.g., an executable depending on a library defined in the same package) must be found in the set of databases via jTj ubj)r }r (jSX:option:`--package-db`jTj jUjVjWjjY}r! (UreftypeXoptionjjX --package-dbr" U refdomainXstdr# j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r$ j)r% }r& (jSj" jY}r' (j[]j\]r( (jj# X std-optionr) ej]]j^]j`]ujTj jN]r* jlX --package-dbr+ r, }r- (jSUjTj% ubajWjubaubjlXv (and related flags): these dependencies are assumed to be up-to-date. A dependency can be explicitly specified using r. r/ }r0 (jSXv (and related flags): these dependencies are assumed to be up-to-date. A dependency can be explicitly specified using jTj ubj)r1 }r2 (jSX:option:`--dependency`jTj jUjVjWjjY}r3 (UreftypeXoptionjjX --dependencyr4 U refdomainXstdr5 j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r6 j)r7 }r8 (jSj4 jY}r9 (j[]j\]r: (jj5 X std-optionr; ej]]j^]j`]ujTj1 jN]r< jlX --dependencyr= r> }r? (jSUjTj7 ubajWjubaubjlXg simply by giving the name of the internal library; e.g., the dependency for an internal library named r@ rA }rB (jSXg simply by giving the name of the internal library; e.g., the dependency for an internal library named jTj ubj)rC }rD (jSX``foo``jY}rE (j[]j\]j]]j^]j`]ujTj jN]rF jlXfoorG rH }rI (jSXfoojTjC ubajWjubjlX is given as rJ rK }rL (jSX is given as jTj ubj)rM }rN (jSX3``--dependency=pkg-internal=pkg-1.0-internal-abcd``jY}rO (j[]j\]j]]j^]j`]ujTj jN]rP jlX/--dependency=pkg-internal=pkg-1.0-internal-abcdrQ rR }rS (jSX/--dependency=pkg-internal=pkg-1.0-internal-abcdjTjM ubajWjubjlX.rT }rU (jSX.jTj ubeubaubj )rV }rW (jSXOnly the dependencies needed for the requested component are required. Similarly, when :option:`--exact-configuration` is specified, it's only necessary to specify :option:`--dependency` for the component. (As mentioned previously, you *must* specify internal dependencies as well.) jTj jUjVjWj jY}rX (j[]j\]j]]j^]j`]ujbNjchjN]rY j)rZ }r[ (jSXOnly the dependencies needed for the requested component are required. Similarly, when :option:`--exact-configuration` is specified, it's only necessary to specify :option:`--dependency` for the component. (As mentioned previously, you *must* specify internal dependencies as well.)jTjV jUjVjWjjY}r\ (j[]j\]j]]j^]j`]ujbMjN]r] (jlXWOnly the dependencies needed for the requested component are required. Similarly, when r^ r_ }r` (jSXWOnly the dependencies needed for the requested component are required. Similarly, when jTjZ ubj)ra }rb (jSX:option:`--exact-configuration`jTjZ jUjVjWjjY}rc (UreftypeXoptionjjX--exact-configurationrd U refdomainXstdre j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rf j)rg }rh (jSjd jY}ri (j[]j\]rj (jje X std-optionrk ej]]j^]j`]ujTja jN]rl jlX--exact-configurationrm rn }ro (jSUjTjg ubajWjubaubjlX0 is specified, it’s only necessary to specify rp rq }rr (jSX. is specified, it's only necessary to specify jTjZ ubj)rs }rt (jSX:option:`--dependency`jTjZ jUjVjWjjY}ru (UreftypeXoptionjjX --dependencyrv U refdomainXstdrw j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rx j)ry }rz (jSjv jY}r{ (j[]j\]r| (jjw X std-optionr} ej]]j^]j`]ujTjs jN]r~ jlX --dependencyr r }r (jSUjTjy ubajWjubaubjlX2 for the component. (As mentioned previously, you r r }r (jSX2 for the component. (As mentioned previously, you jTjZ ubj)r }r (jSX*must*jY}r (j[]j\]j]]j^]j`]ujTjZ jN]r jlXmustr r }r (jSXmustjTj ubajWjubjlX( specify internal dependencies as well.)r r }r (jSX( specify internal dependencies as well.)jTjZ ubeubaubj )r }r (jSXInternal ``build-tool-depends`` and ``build-tools`` dependencies are expected to be in the ``PATH`` upon subsequent invocations of ``setup``. jTj jUjVjWj jY}r (j[]j\]j]]j^]j`]ujbNjchjN]r j)r }r (jSXInternal ``build-tool-depends`` and ``build-tools`` dependencies are expected to be in the ``PATH`` upon subsequent invocations of ``setup``.jTj jUjVjWjjY}r (j[]j\]j]]j^]j`]ujbMjN]r (jlX Internal r r }r (jSX Internal jTj ubj)r }r (jSX``build-tool-depends``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlXbuild-tool-dependsr r }r (jSXbuild-tool-dependsjTj ubajWjubjlX and r r }r (jSX and jTj ubj)r }r (jSX``build-tools``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlX build-toolsr r }r (jSX build-toolsjTj ubajWjubjlX( dependencies are expected to be in the r r }r (jSX( dependencies are expected to be in the jTj ubj)r }r (jSX``PATH``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlXPATHr r }r (jSXPATHjTj ubajWjubjlX upon subsequent invocations of r r }r (jSX upon subsequent invocations of jTj ubj)r }r (jSX ``setup``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlXsetupr r }r (jSXsetupjTj ubajWjubjlX.r }r (jSX.jTj ubeubaubeubj)r }r (jSXFull details can be found in the `Componentized Cabal proposal `__.jTjjUjVjWjjY}r (j[]j\]j]]j^]j`]ujbMjchjN]r (jlX!Full details can be found in the r r }r (jSX!Full details can be found in the jUNjbNjchjTj ubj)r }r (jSX}`Componentized Cabal proposal `__jY}r (UnameXComponentized Cabal proposaljXZhttps://github.com/ezyang/ghc-proposals/blob/master/proposals/0000-componentized-cabal.rstj^]j]]j[]j\]j`]ujTj jN]r jlXComponentized Cabal proposalr r }r (jSXComponentized Cabal proposaljTj ubajWjubjlX.r }r (jSX.jUNjbNjchjTj ubeubjP)r }r (jSUjTjjUjVjWjXjY}r (j[]j\]j]]j^]r haj`]r hAaujbMjchjN]r (je)r }r (jSXPrograms used for buildingr jTj jUjVjWjijY}r (j[]j\]j]]j^]j`]ujbMjchjN]r jlXPrograms used for buildingr r }r (jSj jUNjbNjchjTj ubaubj)r }r (jSXXThe following options govern the programs used to process the source files of a package:r jTj jUjVjWjjY}r (j[]j\]j]]j^]j`]ujbMjchjN]r jlXXThe following options govern the programs used to process the source files of a package:r r }r (jSj jUNjbNjchjTj ubaubj)r }r (jSUjTj jUjVjWjjY}r (j^]j]]j[]j\]j`]Uentries]r (jXEsetup-configure command line option; --ghc or -g, --jhc, --lhc, --uhchUNtr aujbNjchjN]ubj)r }r (jSUjTj jUjVjWjjY}r (jjXstdj^]j]]j[]j\]j`]jXoptionr jj ujbNjchjN]r (j)r }r (jSX --ghc or -g, --jhc, --lhc, --uhcjTj jUjVjWjjY}r (j]r (X--ghcr X--jhcr X--lhcr X--uhcr ej^]r haj]]j[]j\]j`]r (h hh|hDejujbMjchjN]r (j)r }r (jSj jTj jUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbMjchjN]r jlX--ghcr r }r (jSUjUNjbNjchjTj ubaubj)r }r (jSX or -gjTj jUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbMjchjN]r jlX or -gr r }r (jSUjUNjbNjchjTj ubaubj)r }r (jSjjTj jUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbMjchjN]r jlX, r r }r (jSUjUNjbNjchjTj ubaubj)r }r (jSj jTj jUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbMjchjN]r jlX--jhcr r }r (jSUjUNjbNjchjTj ubaubj)r }r (jSUjTj jUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbMjchjN]ubj)r }r (jSjjTj jUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbMjchjN]r jlX, r r }r! (jSUjUNjbNjchjTj ubaubj)r" }r# (jSj jTj jUjVjWjjY}r$ (jjj^]j]]j[]j\]j`]ujbMjchjN]r% jlX--lhcr& r' }r( (jSUjUNjbNjchjTj" ubaubj)r) }r* (jSUjTj jUjVjWjjY}r+ (jjj^]j]]j[]j\]j`]ujbMjchjN]ubj)r, }r- (jSjjTj jUjVjWjjY}r. (jjj^]j]]j[]j\]j`]ujbMjchjN]r/ jlX, r0 r1 }r2 (jSUjUNjbNjchjTj, ubaubj)r3 }r4 (jSj jTj jUjVjWjjY}r5 (jjj^]j]]j[]j\]j`]ujbMjchjN]r6 jlX--uhcr7 r8 }r9 (jSUjUNjbNjchjTj3 ubaubj)r: }r; (jSUjTj jUjVjWjjY}r< (jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r= }r> (jSUjTj jUjVjWjjY}r? (j[]j\]j]]j^]j`]ujbMjchjN]r@ j)rA }rB (jSXSpecify which Haskell implementation to use to build the package. At most one of these flags may be given. If none is given, the implementation under which the setup script was compiled or interpreted is used.rC jTj= jUjVjWjjY}rD (j[]j\]j]]j^]j`]ujbM jchjN]rE jlXSpecify which Haskell implementation to use to build the package. At most one of these flags may be given. If none is given, the implementation under which the setup script was compiled or interpreted is used.rF rG }rH (jSjC jUNjbNjchjTjA ubaubaubeubj)rI }rJ (jSUjTj jUjVjWjjY}rK (j^]j]]j[]j\]j`]Uentries]rL (jXFsetup-configure command line option; --with-compiler=path or -w *path*hUNtrM aujbNjchjN]ubj)rN }rO (jSUjTj jUjVjWjjY}rP (jjXstdj^]j]]j[]j\]j`]jXoptionrQ jjQ ujbNjchjN]rR (j)rS }rT (jSX!--with-compiler=path or -w *path*jTjN jUjVjWjjY}rU (j]rV X--with-compilerrW aj^]rX haj]]j[]j\]j`]rY h'ajujbMjchjN]rZ (j)r[ }r\ (jSjW jTjS jUjVjWjjY}r] (jjj^]j]]j[]j\]j`]ujbMjchjN]r^ jlX--with-compilerr_ r` }ra (jSUjUNjbNjchjTj[ ubaubj)rb }rc (jSX=path or -w *path*jTjS jUjVjWjjY}rd (jjj^]j]]j[]j\]j`]ujbMjchjN]re jlX=path or -w *path*rf rg }rh (jSUjUNjbNjchjTjb ubaubeubj)ri }rj (jSUjTjN jUjVjWjjY}rk (j[]j\]j]]j^]j`]ujbMjchjN]rl (j)rm }rn (jSXSpecify the path to a particular compiler. If given, this must match the implementation selected above. The default is to search for the usual name of the selected implementation.ro jTji jUjVjWjjY}rp (j[]j\]j]]j^]j`]ujbMjchjN]rq jlXSpecify the path to a particular compiler. If given, this must match the implementation selected above. The default is to search for the usual name of the selected implementation.rr rs }rt (jSjo jUNjbNjchjTjm ubaubj)ru }rv (jSXThis flag also sets the default value of the :option:`--with-hc-pkg` option to the package tool for this compiler. Check the output of ``setup configure -v`` to ensure that it finds the right package tool (or use :option:`--with-hc-pkg` explicitly).jTji jUjVjWjjY}rw (j[]j\]j]]j^]j`]ujbMjchjN]rx (jlX-This flag also sets the default value of the ry rz }r{ (jSX-This flag also sets the default value of the jUNjbNjchjTju ubj)r| }r} (jSX:option:`--with-hc-pkg`jTju jUjVjWjjY}r~ (UreftypeXoptionjjX --with-hc-pkgr U refdomainXstdr j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r j)r }r (jSj jY}r (j[]j\]r (jj X std-optionr ej]]j^]j`]ujTj| jN]r jlX --with-hc-pkgr r }r (jSUjTj ubajWjubaubjlXC option to the package tool for this compiler. Check the output of r r }r (jSXC option to the package tool for this compiler. Check the output of jUNjbNjchjTju ubj)r }r (jSX``setup configure -v``jY}r (j[]j\]j]]j^]j`]ujTju jN]r jlXsetup configure -vr r }r (jSXsetup configure -vjTj ubajWjubjlX8 to ensure that it finds the right package tool (or use r r }r (jSX8 to ensure that it finds the right package tool (or use jUNjbNjchjTju ubj)r }r (jSX:option:`--with-hc-pkg`jTju jUjVjWjjY}r (UreftypeXoptionjjX --with-hc-pkgr U refdomainXstdr j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r j)r }r (jSj jY}r (j[]j\]r (jj X std-optionr ej]]j^]j`]ujTj jN]r jlX --with-hc-pkgr r }r (jSUjTj ubajWjubaubjlX explicitly).r r }r (jSX explicitly).jUNjbNjchjTju ubeubeubeubj)r }r (jSUjTj jUjVjWjjY}r (j^]j]]j[]j\]j`]Uentries]r (jX7setup-configure command line option; --with-hc-pkg=pathhUNtr aujbNjchjN]ubj)r }r (jSUjTj jUjVjWjjY}r (jjXstdj^]j]]j[]j\]j`]jXoptionr jj ujbNjchjN]r (j)r }r (jSX--with-hc-pkg=pathjTj jUjVjWjjY}r (j]r X --with-hc-pkgr aj^]r haj]]j[]j\]j`]r h)ajujbM!jchjN]r (j)r }r (jSj jTj jUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbM!jchjN]r jlX --with-hc-pkgr r }r (jSUjUNjbNjchjTj ubaubj)r }r (jSX=pathjTj jUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbM!jchjN]r jlX=pathr r }r (jSUjUNjbNjchjTj ubaubeubj)r }r (jSUjTj jUjVjWjjY}r (j[]j\]j]]j^]j`]ujbM!jchjN]r j)r }r (jSXSpecify the path to the package tool, e.g. ``ghc-pkg``. The package tool must be compatible with the compiler specified by :option:`--with-compiler`. If this option is omitted, the default value is determined from the compiler selected.jTj jUjVjWjjY}r (j[]j\]j]]j^]j`]ujbMjchjN]r (jlX+Specify the path to the package tool, e.g. r r }r (jSX+Specify the path to the package tool, e.g. jUNjbNjchjTj ubj)r }r (jSX ``ghc-pkg``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlXghc-pkgr r }r (jSXghc-pkgjTj ubajWjubjlXE. The package tool must be compatible with the compiler specified by r r }r (jSXE. The package tool must be compatible with the compiler specified by jUNjbNjchjTj ubj)r }r (jSX:option:`--with-compiler`jTj jUjVjWjjY}r (UreftypeXoptionjjX--with-compilerr U refdomainXstdr j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r j)r }r (jSj jY}r (j[]j\]r (jj X std-optionr ej]]j^]j`]ujTj jN]r jlX--with-compilerr r }r (jSUjTj ubajWjubaubjlXX. If this option is omitted, the default value is determined from the compiler selected.r r }r (jSXX. If this option is omitted, the default value is determined from the compiler selected.jUNjbNjchjTj ubeubaubeubj)r }r (jSUjTj jUjVjWjjY}r (j^]j]]j[]j\]j`]Uentries]r (jX5setup-configure command line option; --with-prog=pathj8UNtr aujbNjchjN]ubj)r }r (jSUjTj jUjVjWjjY}r (jjXstdj^]j]]j[]j\]j`]jXoptionr jj ujbNjchjN]r (j)r }r (jSX--with-prog=pathjTj jUjVjWjjY}r (j]r X --with-progr aj^]r j8aj]]j[]j\]j`]r hajujbM+jchjN]r (j)r }r (jSj jTj jUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbM+jchjN]r jlX --with-progr r }r (jSUjUNjbNjchjTj ubaubj)r }r (jSX=pathjTj jUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbM+jchjN]r jlX=pathr r }r (jSUjUNjbNjchjTj ubaubeubj)r }r (jSUjTj jUjVjWjjY}r (j[]j\]j]]j^]j`]ujbM+jchjN]r j)r }r (jSXSpecify the path to the program *prog*. Any program known to Cabal can be used in place of *prog*. It can either be a fully path or the name of a program that can be found on the program search path. For example: ``--with-ghc=ghc-6.6.1`` or ``--with-cpphs=/usr/local/bin/cpphs``. The full list of accepted programs is not enumerated in this user guide. Rather, run ``cabal install --help`` to view the list.jTj jUjVjWjjY}r (j[]j\]j]]j^]j`]ujbM$jchjN]r (jlX Specify the path to the program r r }r (jSX Specify the path to the program jUNjbNjchjTj ubj)r }r (jSX*prog*jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlXprogr r! }r" (jSXprogjTj ubajWjubjlX5. Any program known to Cabal can be used in place of r# r$ }r% (jSX5. Any program known to Cabal can be used in place of jUNjbNjchjTj ubj)r& }r' (jSX*prog*jY}r( (j[]j\]j]]j^]j`]ujTj jN]r) jlXprogr* r+ }r, (jSXprogjTj& ubajWjubjlXt. It can either be a fully path or the name of a program that can be found on the program search path. For example: r- r. }r/ (jSXt. It can either be a fully path or the name of a program that can be found on the program search path. For example: jUNjbNjchjTj ubj)r0 }r1 (jSX``--with-ghc=ghc-6.6.1``jY}r2 (j[]j\]j]]j^]j`]ujTj jN]r3 jlX--with-ghc=ghc-6.6.1r4 r5 }r6 (jSX--with-ghc=ghc-6.6.1jTj0 ubajWjubjlX or r7 r8 }r9 (jSX or jUNjbNjchjTj ubj)r: }r; (jSX%``--with-cpphs=/usr/local/bin/cpphs``jY}r< (j[]j\]j]]j^]j`]ujTj jN]r= jlX!--with-cpphs=/usr/local/bin/cpphsr> r? }r@ (jSX!--with-cpphs=/usr/local/bin/cpphsjTj: ubajWjubjlXW. The full list of accepted programs is not enumerated in this user guide. Rather, run rA rB }rC (jSXW. The full list of accepted programs is not enumerated in this user guide. Rather, run jUNjbNjchjTj ubj)rD }rE (jSX``cabal install --help``jY}rF (j[]j\]j]]j^]j`]ujTj jN]rG jlXcabal install --helprH rI }rJ (jSXcabal install --helpjTjD ubajWjubjlX to view the list.rK rL }rM (jSX to view the list.jUNjbNjchjTj ubeubaubeubj)rN }rO (jSUjTj jUjVjWjjY}rP (j^]j]]j[]j\]j`]Uentries]rQ (jX;setup-configure command line option; --prog-options=optionsj$UNtrR aujbNjchjN]ubj)rS }rT (jSUjTj jUjVjWjjY}rU (jjXstdj^]j]]j[]j\]j`]jXoptionrV jjV ujbNjchjN]rW (j)rX }rY (jSX--prog-options=optionsjTjS jUjVjWjjY}rZ (j]r[ X--prog-optionsr\ aj^]r] j$aj]]j[]j\]j`]r^ h{ajujbM6jchjN]r_ (j)r` }ra (jSj\ jTjX jUjVjWjjY}rb (jjj^]j]]j[]j\]j`]ujbM6jchjN]rc jlX--prog-optionsrd re }rf (jSUjUNjbNjchjTj` ubaubj)rg }rh (jSX=optionsjTjX jUjVjWjjY}ri (jjj^]j]]j[]j\]j`]ujbM6jchjN]rj jlX=optionsrk rl }rm (jSUjUNjbNjchjTjg ubaubeubj)rn }ro (jSUjTjS jUjVjWjjY}rp (j[]j\]j]]j^]j`]ujbM6jchjN]rq j)rr }rs (jSXSpecify additional options to the program *prog*. Any program known to Cabal can be used in place of *prog*. For example: ``--alex-options="--template=mytemplatedir/"``. The *options* is split into program options based on spaces. Any options containing embedded spaced need to be quoted, for example ``--foo-options='--bar="C:\Program File\Bar"'``. As an alternative that takes only one option at a time but avoids the need to quote, use :option:`--prog-option` instead.jTjn jUjVjWjjY}rt (j[]j\]j]]j^]j`]ujbM.jchjN]ru (jlX*Specify additional options to the program rv rw }rx (jSX*Specify additional options to the program jUNjbNjchjTjr ubj)ry }rz (jSX*prog*jY}r{ (j[]j\]j]]j^]j`]ujTjr jN]r| jlXprogr} r~ }r (jSXprogjTjy ubajWjubjlX5. Any program known to Cabal can be used in place of r r }r (jSX5. Any program known to Cabal can be used in place of jUNjbNjchjTjr ubj)r }r (jSX*prog*jY}r (j[]j\]j]]j^]j`]ujTjr jN]r jlXprogr r }r (jSXprogjTj ubajWjubjlX. For example: r r }r (jSX. For example: jUNjbNjchjTjr ubj)r }r (jSX.``--alex-options="--template=mytemplatedir/"``jY}r (j[]j\]j]]j^]j`]ujTjr jN]r jlX*--alex-options="--template=mytemplatedir/"r r }r (jSX*--alex-options="--template=mytemplatedir/"jTj ubajWjubjlX. The r r }r (jSX. The jUNjbNjchjTjr ubj)r }r (jSX *options*jY}r (j[]j\]j]]j^]j`]ujTjr jN]r jlXoptionsr r }r (jSXoptionsjTj ubajWjubjlXv is split into program options based on spaces. Any options containing embedded spaced need to be quoted, for example r r }r (jSXv is split into program options based on spaces. Any options containing embedded spaced need to be quoted, for example jUNjbNjchjTjr ubj)r }r (jSX/``--foo-options='--bar="C:\Program File\Bar"'``jY}r (j[]j\]j]]j^]j`]ujTjr jN]r jlX+--foo-options='--bar="C:\Program File\Bar"'r r }r (jSX+--foo-options='--bar="C:\Program File\Bar"'jTj ubajWjubjlX[. As an alternative that takes only one option at a time but avoids the need to quote, use r r }r (jSX[. As an alternative that takes only one option at a time but avoids the need to quote, use jUNjbNjchjTjr ubj)r }r (jSX:option:`--prog-option`jTjr jUjVjWjjY}r (UreftypeXoptionjjX --prog-optionr U refdomainXstdr j^]j]]U refexplicitj[]j\]j`]jjjjujbM.jN]r j)r }r (jSj jY}r (j[]j\]r (jj X std-optionr ej]]j^]j`]ujTj jN]r jlX --prog-optionr r }r (jSUjTj ubajWjubaubjlX instead.r r }r (jSX instead.jUNjbNjchjTjr ubeubaubeubj)r }r (jSUjTj jUjVjWjjY}r (j^]j]]j[]j\]j`]Uentries]r (jX9setup-configure command line option; --prog-option=optionjUNtr aujbNjchjN]ubj)r }r (jSUjTj jUjVjWjjY}r (jjXstdj^]j]]j[]j\]j`]jXoptionr jj ujbNjchjN]r (j)r }r (jSX--prog-option=optionjTj jUjVjWjjY}r (j]r X --prog-optionr aj^]r jaj]]j[]j\]j`]r hnajujbM?jchjN]r (j)r }r (jSj jTj jUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbM?jchjN]r jlX --prog-optionr r }r (jSUjUNjbNjchjTj ubaubj)r }r (jSX=optionjTj jUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbM?jchjN]r jlX=optionr r }r (jSUjUNjbNjchjTj ubaubeubj)r }r (jSUjTj jUjVjWjjY}r (j[]j\]j]]j^]j`]ujbM?jchjN]r j)r }r (jSXSpecify a single additional option to the program *prog*. For passing an option that contain embedded spaces, such as a file name with embedded spaces, using this rather than :option:`--prog-options` means you do not need an additional level of quoting. Of course if you are using a command shell you may still need to quote, for example ``--foo-options="--bar=C:\Program File\Bar"``.jTj jUjVjWjjY}r (j[]j\]j]]j^]j`]ujbM9jchjN]r (jlX2Specify a single additional option to the program r r }r (jSX2Specify a single additional option to the program jUNjbNjchjTj ubj)r }r (jSX*prog*jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlXprogr r }r (jSXprogjTj ubajWjubjlXw. For passing an option that contain embedded spaces, such as a file name with embedded spaces, using this rather than r r }r (jSXw. For passing an option that contain embedded spaces, such as a file name with embedded spaces, using this rather than jUNjbNjchjTj ubj)r }r (jSX:option:`--prog-options`jTj jUjVjWjjY}r (UreftypeXoptionjjX--prog-optionsr U refdomainXstdr j^]j]]U refexplicitj[]j\]j`]jjjjujbM9jN]r j)r }r (jSj jY}r (j[]j\]r (jj X std-optionr ej]]j^]j`]ujTj jN]r jlX--prog-optionsr r }r (jSUjTj ubajWjubaubjlX means you do not need an additional level of quoting. Of course if you are using a command shell you may still need to quote, for example r r }r (jSX means you do not need an additional level of quoting. Of course if you are using a command shell you may still need to quote, for example jUNjbNjchjTj ubj)r }r (jSX-``--foo-options="--bar=C:\Program File\Bar"``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlX)--foo-options="--bar=C:\Program File\Bar"r r }r (jSX)--foo-options="--bar=C:\Program File\Bar"jTj ubajWjubjlX.r }r (jSX.jUNjbNjchjTj ubeubaubeubj)r }r (jSXAll of the options passed with either :option:`--prog-options` or :option:`--prog-option` are passed in the order they were specified on the configure command line.jTj jUjVjWjjY}r (j[]j\]j]]j^]j`]ujbM@jchjN]r (jlX&All of the options passed with either r r }r (jSX&All of the options passed with either jUNjbNjchjTj ubj)r }r (jSX:option:`--prog-options`jTj jUjVjWjjY}r (UreftypeXoptionjjX--prog-optionsr U refdomainXstdr j^]j]]U refexplicitj[]j\]j`]jjjjujbM@jN]r j)r }r (jSj jY}r (j[]j\]r (jj X std-optionr ej]]j^]j`]ujTj jN]r jlX--prog-optionsr r! }r" (jSUjTj ubajWjubaubjlX or r# r$ }r% (jSX or jUNjbNjchjTj ubj)r& }r' (jSX:option:`--prog-option`jTj jUjVjWjjY}r( (UreftypeXoptionjjX --prog-optionr) U refdomainXstdr* j^]j]]U refexplicitj[]j\]j`]jjjjujbM@jN]r+ j)r, }r- (jSj) jY}r. (j[]j\]r/ (jj* X std-optionr0 ej]]j^]j`]ujTj& jN]r1 jlX --prog-optionr2 r3 }r4 (jSUjTj, ubajWjubaubjlXK are passed in the order they were specified on the configure command line.r5 r6 }r7 (jSXK are passed in the order they were specified on the configure command line.jUNjbNjchjTj ubeubeubjP)r8 }r9 (jSUjTjjUjVjWjXjY}r: (j[]j\]j]]j^]r; j aj`]r< h_aujbMEjchjN]r= (je)r> }r? (jSXInstallation pathsr@ jTj8 jUjVjWjijY}rA (j[]j\]j]]j^]j`]ujbMEjchjN]rB jlXInstallation pathsrC rD }rE (jSj@ jUNjbNjchjTj> ubaubj)rF }rG (jSXLThe following options govern the location of installed files from a package:rH jTj8 jUjVjWjjY}rI (j[]j\]j]]j^]j`]ujbMGjchjN]rJ jlXLThe following options govern the location of installed files from a package:rK rL }rM (jSjH jUNjbNjchjTjF ubaubj)rN }rO (jSUjTj8 jUjVjWjjY}rP (j^]j]]j[]j\]j`]Uentries]rQ (jX1setup-configure command line option; --prefix=dirj=UNtrR aujbNjchjN]ubj)rS }rT (jSUjTj8 jUjVjWjjY}rU (jjXstdj^]j]]j[]j\]j`]jXoptionrV jjV ujbNjchjN]rW (j)rX }rY (jSX --prefix=dirjTjS jUjVjWjjY}rZ (j]r[ X--prefixr\ aj^]r] j=aj]]j[]j\]j`]r^ hajujbMTjchjN]r_ (j)r` }ra (jSj\ jTjX jUjVjWjjY}rb (jjj^]j]]j[]j\]j`]ujbMTjchjN]rc jlX--prefixrd re }rf (jSUjUNjbNjchjTj` ubaubj)rg }rh (jSX=dirjTjX jUjVjWjjY}ri (jjj^]j]]j[]j\]j`]ujbMTjchjN]rj jlX=dirrk rl }rm (jSUjUNjbNjchjTjg ubaubeubj)rn }ro (jSUjTjS jUjVjWjjY}rp (j[]j\]j]]j^]j`]ujbMTjchjN]rq (j)rr }rs (jSXThe root of the installation. For example for a global install you might use ``/usr/local`` on a Unix system, or ``C:\Program Files`` on a Windows system. The other installation paths are usually subdirectories of *prefix*, but they don't have to be.jTjn jUjVjWjjY}rt (j[]j\]j]]j^]j`]ujbMLjchjN]ru (jlXMThe root of the installation. For example for a global install you might use rv rw }rx (jSXMThe root of the installation. For example for a global install you might use jUNjbNjchjTjr ubj)ry }rz (jSX``/usr/local``jY}r{ (j[]j\]j]]j^]j`]ujTjr jN]r| jlX /usr/localr} r~ }r (jSX /usr/localjTjy ubajWjubjlX on a Unix system, or r r }r (jSX on a Unix system, or jUNjbNjchjTjr ubj)r }r (jSX``C:\Program Files``jY}r (j[]j\]j]]j^]j`]ujTjr jN]r jlXC:\Program Filesr r }r (jSXC:\Program FilesjTj ubajWjubjlXQ on a Windows system. The other installation paths are usually subdirectories of r r }r (jSXQ on a Windows system. The other installation paths are usually subdirectories of jUNjbNjchjTjr ubj)r }r (jSX*prefix*jY}r (j[]j\]j]]j^]j`]ujTjr jN]r jlXprefixr r }r (jSXprefixjTj ubajWjubjlX, but they don’t have to be.r r }r (jSX, but they don't have to be.jUNjbNjchjTjr ubeubj)r }r (jSXIn the simple build system, *dir* may contain the following path variables: ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``jTjn jUjVjWjjY}r (j[]j\]j]]j^]j`]ujbMQjchjN]r (jlXIn the simple build system, r r }r (jSXIn the simple build system, jUNjbNjchjTj ubj)r }r (jSX*dir*jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlXdirr r }r (jSXdirjTj ubajWjubjlX+ may contain the following path variables: r r }r (jSX+ may contain the following path variables: jUNjbNjchjTj ubj)r }r (jSX ``$pkgid``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlX$pkgidr r }r (jSX$pkgidjTj ubajWjubjlX, r r }r (jSX, r jUNjbNjchjTj ubj)r }r (jSX``$pkg``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlX$pkgr r }r (jSX$pkgjTj ubajWjubjlX, r r }r (jSX, jTj ubj)r }r (jSX ``$version``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlX$versionr r }r (jSX$versionjTj ubajWjubjlX, r r }r (jSX, jTj ubj)r }r (jSX ``$compiler``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlX $compilerr r }r (jSX $compilerjTj ubajWjubjlX, r r }r (jSX, jUNjbNjchjTj ubj)r }r (jSX``$os``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlX$osr r }r (jSX$osjTj ubajWjubjlX, r r }r (jSX, jTj ubj)r }r (jSX ``$arch``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlX$archr r }r (jSX$archjTj ubajWjubjlX, r r }r (jSX, jTj ubj)r }r (jSX``$abi``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlX$abir r }r (jSX$abijTj ubajWjubjlX, r r }r (jSj jTj ubj)r }r (jSX ``$abitag``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlX$abitagr r }r (jSX$abitagjTj ubajWjubeubeubeubj)r }r (jSUjTj8 jUjVjWjjY}r (j^]j]]j[]j\]j`]Uentries]r (jX1setup-configure command line option; --bindir=dirhUNtr aujbNjchjN]ubj)r }r (jSUjTj8 jUjVjWjjY}r (jjXstdj^]j]]j[]j\]j`]jXoptionr jj ujbNjchjN]r (j)r}r(jSX --bindir=dirjTj jUjVjWjjY}r(j]rX--bindirraj^]rhaj]]j[]j\]j`]rh3ajujbM\jchjN]r(j)r}r (jSjjTjjUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbM\jchjN]r jlX--bindirr r }r(jSUjUNjbNjchjTjubaubj)r}r(jSX=dirjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbM\jchjN]rjlX=dirrr}r(jSUjUNjbNjchjTjubaubeubj)r}r(jSUjTj jUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM\jchjN]r(j)r}r(jSX:Executables that the user might invoke are installed here.rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMWjchjN]rjlX:Executables that the user might invoke are installed here.rr }r!(jSjjUNjbNjchjTjubaubj)r"}r#(jSXIn the simple build system, *dir* may contain the following path variables: ``$prefix``, ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``jTjjUjVjWjjY}r$(j[]j\]j]]j^]j`]ujbMYjchjN]r%(jlXIn the simple build system, r&r'}r((jSXIn the simple build system, jUNjbNjchjTj"ubj)r)}r*(jSX*dir*jY}r+(j[]j\]j]]j^]j`]ujTj"jN]r,jlXdirr-r.}r/(jSXdirjTj)ubajWjubjlX+ may contain the following path variables: r0r1}r2(jSX+ may contain the following path variables: jUNjbNjchjTj"ubj)r3}r4(jSX ``$prefix``jY}r5(j[]j\]j]]j^]j`]ujTj"jN]r6jlX$prefixr7r8}r9(jSX$prefixjTj3ubajWjubjlX, r:r;}r<(jSX, r=jUNjbNjchjTj"ubj)r>}r?(jSX ``$pkgid``jY}r@(j[]j\]j]]j^]j`]ujTj"jN]rAjlX$pkgidrBrC}rD(jSX$pkgidjTj>ubajWjubjlX, rErF}rG(jSX, jTj"ubj)rH}rI(jSX``$pkg``jY}rJ(j[]j\]j]]j^]j`]ujTj"jN]rKjlX$pkgrLrM}rN(jSX$pkgjTjHubajWjubjlX, rOrP}rQ(jSX, jTj"ubj)rR}rS(jSX ``$version``jY}rT(j[]j\]j]]j^]j`]ujTj"jN]rUjlX$versionrVrW}rX(jSX$versionjTjRubajWjubjlX, rYrZ}r[(jSX, jUNjbNjchjTj"ubj)r\}r](jSX ``$compiler``jY}r^(j[]j\]j]]j^]j`]ujTj"jN]r_jlX $compilerr`ra}rb(jSX $compilerjTj\ubajWjubjlX, rcrd}re(jSX, jTj"ubj)rf}rg(jSX``$os``jY}rh(j[]j\]j]]j^]j`]ujTj"jN]rijlX$osrjrk}rl(jSX$osjTjfubajWjubjlX, rmrn}ro(jSX, jTj"ubj)rp}rq(jSX ``$arch``jY}rr(j[]j\]j]]j^]j`]ujTj"jN]rsjlX$archrtru}rv(jSX$archjTjpubajWjubjlX, rwrx}ry(jSX, jTj"ubj)rz}r{(jSX``$abi``jY}r|(j[]j\]j]]j^]j`]ujTj"jN]r}jlX$abir~r}r(jSX$abijTjzubajWjubjlX, rr}r(jSj=jTj"ubj)r}r(jSX ``$abitag``jY}r(j[]j\]j]]j^]j`]ujTj"jN]rjlX$abitagrr}r(jSX$abitagjTjubajWjubeubeubeubj)r}r(jSUjTj8 jUjVjWjjY}r(j^]j]]j[]j\]j`]Uentries]r(jX1setup-configure command line option; --libdir=dirhUNtraujbNjchjN]ubj)r}r(jSUjTj8 jUjVjWjjY}r(jjXstdj^]j]]j[]j\]j`]jXoptionrjjujbNjchjN]r(j)r}r(jSX --libdir=dirjTjjUjVjWjjY}r(j]rX--libdirraj^]rhaj]]j[]j\]j`]rh.ajujbMejchjN]r(j)r}r(jSjjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMejchjN]rjlX--libdirrr}r(jSUjUNjbNjchjTjubaubj)r}r(jSX=dirjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMejchjN]rjlX=dirrr}r(jSUjUNjbNjchjTjubaubeubj)r}r(jSUjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMejchjN]r(j)r}r(jSX)Object-code libraries are installed here.rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM_jchjN]rjlX)Object-code libraries are installed here.rr}r(jSjjUNjbNjchjTjubaubj)r}r(jSXIn the simple build system, *dir* may contain the following path variables: ``$prefix``, ``$bindir``, ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMajchjN]r(jlXIn the simple build system, rr}r(jSXIn the simple build system, jUNjbNjchjTjubj)r}r(jSX*dir*jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXdirrr}r(jSXdirjTjubajWjubjlX+ may contain the following path variables: rr}r(jSX+ may contain the following path variables: jUNjbNjchjTjubj)r}r(jSX ``$prefix``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$prefixrr}r(jSX$prefixjTjubajWjubjlX, rr}r(jSX, rjUNjbNjchjTjubj)r}r(jSX ``$bindir``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$bindirrr}r(jSX$bindirjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX ``$pkgid``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$pkgidrr}r(jSX$pkgidjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX``$pkg``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$pkgrr}r(jSX$pkgjTjubajWjubjlX, rr}r(jSX, rjUNjbNjchjTjubj)r}r(jSX ``$version``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$versionrr}r(jSX$versionjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX ``$compiler``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX $compilerrr}r(jSX $compilerjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX``$os``jY}r(j[]j\]j]]j^]j`]ujTjjN]r jlX$osr r }r (jSX$osjTjubajWjubjlX, r r}r(jSX, jTjubj)r}r(jSX ``$arch``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$archrr}r(jSX$archjTjubajWjubjlX, rr}r(jSjjTjubj)r}r(jSX``$abi``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$abirr}r (jSX$abijTjubajWjubjlX, r!r"}r#(jSjjTjubj)r$}r%(jSX ``$abitag``jY}r&(j[]j\]j]]j^]j`]ujTjjN]r'jlX$abitagr(r)}r*(jSX$abitagjTj$ubajWjubeubeubeubj)r+}r,(jSUjTj8 jUjVjWjjY}r-(j^]j]]j[]j\]j`]Uentries]r.(jX4setup-configure command line option; --dynlibdir=dirhUNtr/aujbNjchjN]ubj)r0}r1(jSUjTj8 jUjVjWjjY}r2(jjXstdj^]j]]j[]j\]j`]jXoptionr3jj3ujbNjchjN]r4(j)r5}r6(jSX--dynlibdir=dirjTj0jUjVjWjjY}r7(j]r8X --dynlibdirr9aj^]r:haj]]j[]j\]j`]r;h4ajujbMqjchjN]r<(j)r=}r>(jSj9jTj5jUjVjWjjY}r?(jjj^]j]]j[]j\]j`]ujbMqjchjN]r@jlX --dynlibdirrArB}rC(jSUjUNjbNjchjTj=ubaubj)rD}rE(jSX=dirjTj5jUjVjWjjY}rF(jjj^]j]]j[]j\]j`]ujbMqjchjN]rGjlX=dirrHrI}rJ(jSUjUNjbNjchjTjDubaubeubj)rK}rL(jSUjTj0jUjVjWjjY}rM(j[]j\]j]]j^]j`]ujbMqjchjN]rN(j)rO}rP(jSX%Dynamic libraries are installed here.rQjTjKjUjVjWjjY}rR(j[]j\]j]]j^]j`]ujbMhjchjN]rSjlX%Dynamic libraries are installed here.rTrU}rV(jSjQjUNjbNjchjTjOubaubj)rW}rX(jSX^By default, this is set to `$libdir/$abi`, which is usually not equal to `$libdir/$libsubdir`.jTjKjUjVjWjjY}rY(j[]j\]j]]j^]j`]ujbMjjchjN]rZ(jlXBy default, this is set to r[r\}r](jSXBy default, this is set to jUNjbNjchjTjWubcdocutils.nodes title_reference r^)r_}r`(jSX`$libdir/$abi`jY}ra(j[]j\]j]]j^]j`]ujTjWjN]rbjlX $libdir/$abircrd}re(jSX $libdir/$abijTj_ubajWUtitle_referencerfubjlX , which is usually not equal to rgrh}ri(jSX , which is usually not equal to jUNjbNjchjTjWubj^)rj}rk(jSX`$libdir/$libsubdir`jY}rl(j[]j\]j]]j^]j`]ujTjWjN]rmjlX$libdir/$libsubdirrnro}rp(jSX$libdir/$libsubdirjTjjubajWjfubjlX.rq}rr(jSX.jUNjbNjchjTjWubeubj)rs}rt(jSXIn the simple build system, *dir* may contain the following path variables: ``$prefix``, ``$bindir``, ``$libdir``, ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``jTjKjUjVjWjjY}ru(j[]j\]j]]j^]j`]ujbMmjchjN]rv(jlXIn the simple build system, rwrx}ry(jSXIn the simple build system, jUNjbNjchjTjsubj)rz}r{(jSX*dir*jY}r|(j[]j\]j]]j^]j`]ujTjsjN]r}jlXdirr~r}r(jSXdirjTjzubajWjubjlX+ may contain the following path variables: rr}r(jSX+ may contain the following path variables: jUNjbNjchjTjsubj)r}r(jSX ``$prefix``jY}r(j[]j\]j]]j^]j`]ujTjsjN]rjlX$prefixrr}r(jSX$prefixjTjubajWjubjlX, rr}r(jSX, rjUNjbNjchjTjsubj)r}r(jSX ``$bindir``jY}r(j[]j\]j]]j^]j`]ujTjsjN]rjlX$bindirrr}r(jSX$bindirjTjubajWjubjlX, rr}r(jSX, jTjsubj)r}r(jSX ``$libdir``jY}r(j[]j\]j]]j^]j`]ujTjsjN]rjlX$libdirrr}r(jSX$libdirjTjubajWjubjlX, rr}r(jSX, jTjsubj)r}r(jSX ``$pkgid``jY}r(j[]j\]j]]j^]j`]ujTjsjN]rjlX$pkgidrr}r(jSX$pkgidjTjubajWjubjlX, rr}r(jSX, jTjsubj)r}r(jSX``$pkg``jY}r(j[]j\]j]]j^]j`]ujTjsjN]rjlX$pkgrr}r(jSX$pkgjTjubajWjubjlX, rr}r(jSX, rjUNjbNjchjTjsubj)r}r(jSX ``$version``jY}r(j[]j\]j]]j^]j`]ujTjsjN]rjlX$versionrr}r(jSX$versionjTjubajWjubjlX, rr}r(jSX, jTjsubj)r}r(jSX ``$compiler``jY}r(j[]j\]j]]j^]j`]ujTjsjN]rjlX $compilerrr}r(jSX $compilerjTjubajWjubjlX, rr}r(jSX, jTjsubj)r}r(jSX``$os``jY}r(j[]j\]j]]j^]j`]ujTjsjN]rjlX$osrr}r(jSX$osjTjubajWjubjlX, rr}r(jSX, jTjsubj)r}r(jSX ``$arch``jY}r(j[]j\]j]]j^]j`]ujTjsjN]rjlX$archrr}r(jSX$archjTjubajWjubjlX, rr}r(jSjjTjsubj)r}r(jSX``$abi``jY}r(j[]j\]j]]j^]j`]ujTjsjN]rjlX$abirr}r(jSX$abijTjubajWjubjlX, rr}r(jSjjTjsubj)r}r(jSX ``$abitag``jY}r(j[]j\]j]]j^]j`]ujTjsjN]rjlX$abitagrr}r(jSX$abitagjTjubajWjubeubeubeubj)r}r(jSUjTj8 jUjVjWjjY}r(j^]j]]j[]j\]j`]Uentries]r(jX5setup-configure command line option; --libexecdir=dirhUNtraujbNjchjN]ubj)r}r(jSUjTj8 jUjVjWjjY}r(jjXstdj^]j]]j[]j\]j`]jXoptionrjjujbNjchjN]r(j)r}r(jSX--libexecdir=dirjTjjUjVjWjjY}r(j]rX --libexecdirraj^]rhaj]]j[]j\]j`]rhajujbM{jchjN]r(j)r}r(jSjjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbM{jchjN]rjlX --libexecdirrr}r (jSUjUNjbNjchjTjubaubj)r }r (jSX=dirjTjjUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbM{jchjN]r jlX=dirrr}r(jSUjUNjbNjchjTj ubaubeubj)r}r(jSUjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM{jchjN]r(j)r}r(jSXXExecutables that are not expected to be invoked directly by the user are installed here.rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMtjchjN]rjlXXExecutables that are not expected to be invoked directly by the user are installed here.rr}r(jSjjUNjbNjchjTjubaubj)r}r(jSXIn the simple build system, *dir* may contain the following path variables: ``$prefix``, ``$bindir``, ``$libdir``, ``$libsubdir``, ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMwjchjN]r (jlXIn the simple build system, r!r"}r#(jSXIn the simple build system, jUNjbNjchjTjubj)r$}r%(jSX*dir*jY}r&(j[]j\]j]]j^]j`]ujTjjN]r'jlXdirr(r)}r*(jSXdirjTj$ubajWjubjlX+ may contain the following path variables: r+r,}r-(jSX+ may contain the following path variables: jUNjbNjchjTjubj)r.}r/(jSX ``$prefix``jY}r0(j[]j\]j]]j^]j`]ujTjjN]r1jlX$prefixr2r3}r4(jSX$prefixjTj.ubajWjubjlX, r5r6}r7(jSX, r8jUNjbNjchjTjubj)r9}r:(jSX ``$bindir``jY}r;(j[]j\]j]]j^]j`]ujTjjN]r<jlX$bindirr=r>}r?(jSX$bindirjTj9ubajWjubjlX, r@rA}rB(jSX, jTjubj)rC}rD(jSX ``$libdir``jY}rE(j[]j\]j]]j^]j`]ujTjjN]rFjlX$libdirrGrH}rI(jSX$libdirjTjCubajWjubjlX, rJrK}rL(jSX, jTjubj)rM}rN(jSX``$libsubdir``jY}rO(j[]j\]j]]j^]j`]ujTjjN]rPjlX $libsubdirrQrR}rS(jSX $libsubdirjTjMubajWjubjlX, rTrU}rV(jSX, rWjUNjbNjchjTjubj)rX}rY(jSX ``$pkgid``jY}rZ(j[]j\]j]]j^]j`]ujTjjN]r[jlX$pkgidr\r]}r^(jSX$pkgidjTjXubajWjubjlX, r_r`}ra(jSX, jTjubj)rb}rc(jSX``$pkg``jY}rd(j[]j\]j]]j^]j`]ujTjjN]rejlX$pkgrfrg}rh(jSX$pkgjTjbubajWjubjlX, rirj}rk(jSX, jTjubj)rl}rm(jSX ``$version``jY}rn(j[]j\]j]]j^]j`]ujTjjN]rojlX$versionrprq}rr(jSX$versionjTjlubajWjubjlX, rsrt}ru(jSX, jTjubj)rv}rw(jSX ``$compiler``jY}rx(j[]j\]j]]j^]j`]ujTjjN]ryjlX $compilerrzr{}r|(jSX $compilerjTjvubajWjubjlX, r}r~}r(jSX, jTjubj)r}r(jSX``$os``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$osrr}r(jSX$osjTjubajWjubjlX, rr}r(jSjWjTjubj)r}r(jSX ``$arch``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$archrr}r(jSX$archjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX``$abi``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$abirr}r(jSX$abijTjubajWjubjlX, rr}r(jSj8jTjubj)r}r(jSX ``$abitag``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$abitagrr}r(jSX$abitagjTjubajWjubeubeubeubj)r}r(jSUjTj8 jUjVjWjjY}r(j^]j]]j[]j\]j`]Uentries]r(jX2setup-configure command line option; --datadir=dirhUNtraujbNjchjN]ubj)r}r(jSUjTj8 jUjVjWjjY}r(jjXstdj^]j]]j[]j\]j`]jXoptionrjjujbNjchjN]r(j)r}r(jSX --datadir=dirjTjjUjVjWjjY}r(j]rX --datadirraj^]rhaj]]j[]j\]j`]rh6ajujbMjchjN]r(j)r}r(jSjjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX --datadirrr}r(jSUjUNjbNjchjTjubaubj)r}r(jSX=dirjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX=dirrr}r(jSUjUNjbNjchjTjubaubeubj)r}r(jSUjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(j)r}r(jSX7Architecture-independent data files are installed here.rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM~jchjN]rjlX7Architecture-independent data files are installed here.rr}r(jSjjUNjbNjchjTjubaubj)r}r(jSXIn the simple build system, *dir* may contain the following path variables: ``$prefix``, ``$bindir``, ``$libdir``, ``$libsubdir``, ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(jlXIn the simple build system, rr}r(jSXIn the simple build system, jUNjbNjchjTjubj)r}r(jSX*dir*jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXdirrr}r(jSXdirjTjubajWjubjlX+ may contain the following path variables: rr}r(jSX+ may contain the following path variables: jUNjbNjchjTjubj)r}r(jSX ``$prefix``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$prefixrr}r(jSX$prefixjTjubajWjubjlX, rr}r(jSX, rjUNjbNjchjTjubj)r}r(jSX ``$bindir``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$bindirrr}r(jSX$bindirjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX ``$libdir``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$libdirrr}r(jSX$libdirjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX``$libsubdir``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX $libsubdirrr}r(jSX $libsubdirjTjubajWjubjlX, rr }r (jSX, r jUNjbNjchjTjubj)r }r (jSX ``$pkgid``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$pkgidrr}r(jSX$pkgidjTj ubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX``$pkg``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$pkgrr}r(jSX$pkgjTjubajWjubjlX, rr}r(jSX, jTjubj)r }r!(jSX ``$version``jY}r"(j[]j\]j]]j^]j`]ujTjjN]r#jlX$versionr$r%}r&(jSX$versionjTj ubajWjubjlX, r'r(}r)(jSX, jTjubj)r*}r+(jSX ``$compiler``jY}r,(j[]j\]j]]j^]j`]ujTjjN]r-jlX $compilerr.r/}r0(jSX $compilerjTj*ubajWjubjlX, r1r2}r3(jSX, jTjubj)r4}r5(jSX``$os``jY}r6(j[]j\]j]]j^]j`]ujTjjN]r7jlX$osr8r9}r:(jSX$osjTj4ubajWjubjlX, r;r<}r=(jSj jTjubj)r>}r?(jSX ``$arch``jY}r@(j[]j\]j]]j^]j`]ujTjjN]rAjlX$archrBrC}rD(jSX$archjTj>ubajWjubjlX, rErF}rG(jSX, jTjubj)rH}rI(jSX``$abi``jY}rJ(j[]j\]j]]j^]j`]ujTjjN]rKjlX$abirLrM}rN(jSX$abijTjHubajWjubjlX, rOrP}rQ(jSjjTjubj)rR}rS(jSX ``$abitag``jY}rT(j[]j\]j]]j^]j`]ujTjjN]rUjlX$abitagrVrW}rX(jSX$abitagjTjRubajWjubeubeubeubj)rY}rZ(jSUjTj8 jUjVjWjjY}r[(j^]j]]j[]j\]j`]Uentries]r\(jX5setup-configure command line option; --sysconfdir=dirj%UNtr]aujbNjchjN]ubj)r^}r_(jSUjTj8 jUjVjWjjY}r`(jjXstdj^]j]]j[]j\]j`]jXoptionrajjaujbNjchjN]rb(j)rc}rd(jSX--sysconfdir=dirjTj^jUjVjWjjY}re(j]rfX --sysconfdirrgaj^]rhj%aj]]j[]j\]j`]rih}ajujbMjchjN]rj(j)rk}rl(jSjgjTjcjUjVjWjjY}rm(jjj^]j]]j[]j\]j`]ujbMjchjN]rnjlX --sysconfdirrorp}rq(jSUjUNjbNjchjTjkubaubj)rr}rs(jSX=dirjTjcjUjVjWjjY}rt(jjj^]j]]j[]j\]j`]ujbMjchjN]rujlX=dirrvrw}rx(jSUjUNjbNjchjTjrubaubeubj)ry}rz(jSUjTj^jUjVjWjjY}r{(j[]j\]j]]j^]j`]ujbMjchjN]r|(j)r}}r~(jSX3Installation directory for the configuration files.rjTjyjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]rjlX3Installation directory for the configuration files.rr}r(jSjjUNjbNjchjTj}ubaubj)r}r(jSXIn the simple build system, *dir* may contain the following path variables: ``$prefix``, ``$bindir``, ``$libdir``, ``$libsubdir``, ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``jTjyjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(jlXIn the simple build system, rr}r(jSXIn the simple build system, jUNjbNjchjTjubj)r}r(jSX*dir*jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXdirrr}r(jSXdirjTjubajWjubjlX+ may contain the following path variables: rr}r(jSX+ may contain the following path variables: jUNjbNjchjTjubj)r}r(jSX ``$prefix``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$prefixrr}r(jSX$prefixjTjubajWjubjlX, rr}r(jSX, rjUNjbNjchjTjubj)r}r(jSX ``$bindir``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$bindirrr}r(jSX$bindirjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX ``$libdir``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$libdirrr}r(jSX$libdirjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX``$libsubdir``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX $libsubdirrr}r(jSX $libsubdirjTjubajWjubjlX, rr}r(jSX, rjUNjbNjchjTjubj)r}r(jSX ``$pkgid``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$pkgidrr}r(jSX$pkgidjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX``$pkg``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$pkgrr}r(jSX$pkgjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX ``$version``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$versionrr}r(jSX$versionjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX ``$compiler``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX $compilerrr}r(jSX $compilerjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX``$os``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$osrr}r(jSX$osjTjubajWjubjlX, rr}r(jSjjTjubj)r}r(jSX ``$arch``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$archrr}r(jSX$archjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX``$abi``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$abirr}r(jSX$abijTjubajWjubjlX, rr}r(jSjjTjubj)r}r(jSX ``$abitag``jY}r(j[]j\]j]]j^]j`]ujTjjN]r jlX$abitagr r }r (jSX$abitagjTjubajWjubeubeubeubj)r }r(jSXUIn addition the simple build system supports the following installation path options:rjTj8 jUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]rjlXUIn addition the simple build system supports the following installation path options:rr}r(jSjjUNjbNjchjTj ubaubj)r}r(jSUjTj8 jUjVjWjjY}r(j^]j]]j[]j\]j`]Uentries]r(jX4setup-configure command line option; --libsubdir=dirj'UNtraujbNjchjN]ubj)r}r(jSUjTj8 jUjVjWjjY}r(jjXstdj^]j]]j[]j\]j`]jXoptionrjjujbNjchjN]r(j)r}r (jSX--libsubdir=dirjTjjUjVjWjjY}r!(j]r"X --libsubdirr#aj^]r$j'aj]]j[]j\]j`]r%hajujbMjchjN]r&(j)r'}r((jSj#jTjjUjVjWjjY}r)(jjj^]j]]j[]j\]j`]ujbMjchjN]r*jlX --libsubdirr+r,}r-(jSUjUNjbNjchjTj'ubaubj)r.}r/(jSX=dirjTjjUjVjWjjY}r0(jjj^]j]]j[]j\]j`]ujbMjchjN]r1jlX=dirr2r3}r4(jSUjUNjbNjchjTj.ubaubeubj)r5}r6(jSUjTjjUjVjWjjY}r7(j[]j\]j]]j^]j`]ujbMjchjN]r8(j)r9}r:(jSXA subdirectory of *libdir* in which libraries are actually installed. For example, in the simple build system on Unix, the default *libdir* is ``/usr/local/lib``, and *libsubdir* contains the compiler ABI and package identifier, e.g. ``x86_64-linux-ghc-8.0.2/mypkg-0.1.0-IxQNmCA7qrSEQNkoHSF7A``, so libraries would be installed in ``/usr/local/lib/x86_64-linux-ghc-8.0.2/mypkg-0.1.0-IxQNmCA7qrSEQNkoHSF7A/``.jTj5jUjVjWjjY}r;(j[]j\]j]]j^]j`]ujbMjchjN]r<(jlXA subdirectory of r=r>}r?(jSXA subdirectory of jUNjbNjchjTj9ubj)r@}rA(jSX*libdir*jY}rB(j[]j\]j]]j^]j`]ujTj9jN]rCjlXlibdirrDrE}rF(jSXlibdirjTj@ubajWjubjlXi in which libraries are actually installed. For example, in the simple build system on Unix, the default rGrH}rI(jSXi in which libraries are actually installed. For example, in the simple build system on Unix, the default jUNjbNjchjTj9ubj)rJ}rK(jSX*libdir*jY}rL(j[]j\]j]]j^]j`]ujTj9jN]rMjlXlibdirrNrO}rP(jSXlibdirjTjJubajWjubjlX is rQrR}rS(jSX is jUNjbNjchjTj9ubj)rT}rU(jSX``/usr/local/lib``jY}rV(j[]j\]j]]j^]j`]ujTj9jN]rWjlX/usr/local/librXrY}rZ(jSX/usr/local/libjTjTubajWjubjlX, and r[r\}r](jSX, and jUNjbNjchjTj9ubj)r^}r_(jSX *libsubdir*jY}r`(j[]j\]j]]j^]j`]ujTj9jN]rajlX libsubdirrbrc}rd(jSX libsubdirjTj^ubajWjubjlX8 contains the compiler ABI and package identifier, e.g. rerf}rg(jSX8 contains the compiler ABI and package identifier, e.g. jUNjbNjchjTj9ubj)rh}ri(jSX<``x86_64-linux-ghc-8.0.2/mypkg-0.1.0-IxQNmCA7qrSEQNkoHSF7A``jY}rj(j[]j\]j]]j^]j`]ujTj9jN]rkjlX8x86_64-linux-ghc-8.0.2/mypkg-0.1.0-IxQNmCA7qrSEQNkoHSF7Arlrm}rn(jSX8x86_64-linux-ghc-8.0.2/mypkg-0.1.0-IxQNmCA7qrSEQNkoHSF7AjTjhubajWjubjlX%, so libraries would be installed in rorp}rq(jSX%, so libraries would be installed in jUNjbNjchjTj9ubj)rr}rs(jSXL``/usr/local/lib/x86_64-linux-ghc-8.0.2/mypkg-0.1.0-IxQNmCA7qrSEQNkoHSF7A/``jY}rt(j[]j\]j]]j^]j`]ujTj9jN]rujlXH/usr/local/lib/x86_64-linux-ghc-8.0.2/mypkg-0.1.0-IxQNmCA7qrSEQNkoHSF7A/rvrw}rx(jSXH/usr/local/lib/x86_64-linux-ghc-8.0.2/mypkg-0.1.0-IxQNmCA7qrSEQNkoHSF7A/jTjrubajWjubjlX.ry}rz(jSX.jUNjbNjchjTj9ubeubj)r{}r|(jSX*dir* may contain the following path variables: ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``jTj5jUjVjWjjY}r}(j[]j\]j]]j^]j`]ujbMjchjN]r~(j)r}r(jSX*dir*jY}r(j[]j\]j]]j^]j`]ujTj{jN]rjlXdirrr}r(jSXdirjTjubajWjubjlX+ may contain the following path variables: rr}r(jSX+ may contain the following path variables: jUNjbNjchjTj{ubj)r}r(jSX ``$pkgid``jY}r(j[]j\]j]]j^]j`]ujTj{jN]rjlX$pkgidrr}r(jSX$pkgidjTjubajWjubjlX, rr}r(jSX, rjUNjbNjchjTj{ubj)r}r(jSX``$pkg``jY}r(j[]j\]j]]j^]j`]ujTj{jN]rjlX$pkgrr}r(jSX$pkgjTjubajWjubjlX, rr}r(jSX, rjUNjbNjchjTj{ubj)r}r(jSX ``$version``jY}r(j[]j\]j]]j^]j`]ujTj{jN]rjlX$versionrr}r(jSX$versionjTjubajWjubjlX, rr}r(jSX, jTj{ubj)r}r(jSX ``$compiler``jY}r(j[]j\]j]]j^]j`]ujTj{jN]rjlX $compilerrr}r(jSX $compilerjTjubajWjubjlX, rr}r(jSX, jTj{ubj)r}r(jSX``$os``jY}r(j[]j\]j]]j^]j`]ujTj{jN]rjlX$osrr}r(jSX$osjTjubajWjubjlX, rr}r(jSX, jTj{ubj)r}r(jSX ``$arch``jY}r(j[]j\]j]]j^]j`]ujTj{jN]rjlX$archrr}r(jSX$archjTjubajWjubjlX, rr}r(jSjjTj{ubj)r}r(jSX``$abi``jY}r(j[]j\]j]]j^]j`]ujTj{jN]rjlX$abirr}r(jSX$abijTjubajWjubjlX, rr}r(jSjjTj{ubj)r}r(jSX ``$abitag``jY}r(j[]j\]j]]j^]j`]ujTj{jN]rjlX$abitagrr}r(jSX$abitagjTjubajWjubeubeubeubj)r}r(jSUjTj8 jUjVjWjjY}r(j^]j]]j[]j\]j`]Uentries]r(jX8setup-configure command line option; --libexecsubdir=dirhUNtraujbNjchjN]ubj)r}r(jSUjTj8 jUjVjWjjY}r(jjXstdj^]j]]j[]j\]j`]jXoptionrjjujbNjchjN]r(j)r}r(jSX--libexecsubdir=dirjTjjUjVjWjjY}r(j]rX--libexecsubdirraj^]rhaj]]j[]j\]j`]rh0ajujbMjchjN]r(j)r}r(jSjjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX--libexecsubdirrr}r(jSUjUNjbNjchjTjubaubj)r}r(jSX=dirjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX=dirrr}r(jSUjUNjbNjchjTjubaubeubj)r}r(jSUjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(j)r}r(jSXRA subdirectory of *libexecdir* in which private executables are installed. For example, in the simple build system on Unix, the default *libexecdir* is ``/usr/local/libexec``, and *libsubdir* is ``x86_64-linux-ghc-8.0.2/mypkg-0.1.0``, so private executables would be installed in ``/usr/local/libexec/x86_64-linux-ghc-8.0.2/mypkg-0.1.0/``jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(jlXA subdirectory of rr}r(jSXA subdirectory of jUNjbNjchjTjubj)r}r(jSX *libexecdir*jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX libexecdirrr}r (jSX libexecdirjTjubajWjubjlXj in which private executables are installed. For example, in the simple build system on Unix, the default r r }r (jSXj in which private executables are installed. For example, in the simple build system on Unix, the default jUNjbNjchjTjubj)r }r(jSX *libexecdir*jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX libexecdirrr}r(jSX libexecdirjTj ubajWjubjlX is rr}r(jSX is jUNjbNjchjTjubj)r}r(jSX``/usr/local/libexec``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX/usr/local/libexecrr}r(jSX/usr/local/libexecjTjubajWjubjlX, and rr}r (jSX, and jUNjbNjchjTjubj)r!}r"(jSX *libsubdir*jY}r#(j[]j\]j]]j^]j`]ujTjjN]r$jlX libsubdirr%r&}r'(jSX libsubdirjTj!ubajWjubjlX is r(r)}r*(jSX is jUNjbNjchjTjubj)r+}r,(jSX&``x86_64-linux-ghc-8.0.2/mypkg-0.1.0``jY}r-(j[]j\]j]]j^]j`]ujTjjN]r.jlX"x86_64-linux-ghc-8.0.2/mypkg-0.1.0r/r0}r1(jSX"x86_64-linux-ghc-8.0.2/mypkg-0.1.0jTj+ubajWjubjlX/, so private executables would be installed in r2r3}r4(jSX/, so private executables would be installed in jUNjbNjchjTjubj)r5}r6(jSX:``/usr/local/libexec/x86_64-linux-ghc-8.0.2/mypkg-0.1.0/``jY}r7(j[]j\]j]]j^]j`]ujTjjN]r8jlX6/usr/local/libexec/x86_64-linux-ghc-8.0.2/mypkg-0.1.0/r9r:}r;(jSX6/usr/local/libexec/x86_64-linux-ghc-8.0.2/mypkg-0.1.0/jTj5ubajWjubeubj)r<}r=(jSX*dir* may contain the following path variables: ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``jTjjUjVjWjjY}r>(j[]j\]j]]j^]j`]ujbMjchjN]r?(j)r@}rA(jSX*dir*jY}rB(j[]j\]j]]j^]j`]ujTj<jN]rCjlXdirrDrE}rF(jSXdirjTj@ubajWjubjlX+ may contain the following path variables: rGrH}rI(jSX+ may contain the following path variables: jUNjbNjchjTj<ubj)rJ}rK(jSX ``$pkgid``jY}rL(j[]j\]j]]j^]j`]ujTj<jN]rMjlX$pkgidrNrO}rP(jSX$pkgidjTjJubajWjubjlX, rQrR}rS(jSX, rTjUNjbNjchjTj<ubj)rU}rV(jSX``$pkg``jY}rW(j[]j\]j]]j^]j`]ujTj<jN]rXjlX$pkgrYrZ}r[(jSX$pkgjTjUubajWjubjlX, r\r]}r^(jSX, r_jUNjbNjchjTj<ubj)r`}ra(jSX ``$version``jY}rb(j[]j\]j]]j^]j`]ujTj<jN]rcjlX$versionrdre}rf(jSX$versionjTj`ubajWjubjlX, rgrh}ri(jSX, jTj<ubj)rj}rk(jSX ``$compiler``jY}rl(j[]j\]j]]j^]j`]ujTj<jN]rmjlX $compilerrnro}rp(jSX $compilerjTjjubajWjubjlX, rqrr}rs(jSX, jTj<ubj)rt}ru(jSX``$os``jY}rv(j[]j\]j]]j^]j`]ujTj<jN]rwjlX$osrxry}rz(jSX$osjTjtubajWjubjlX, r{r|}r}(jSX, jTj<ubj)r~}r(jSX ``$arch``jY}r(j[]j\]j]]j^]j`]ujTj<jN]rjlX$archrr}r(jSX$archjTj~ubajWjubjlX, rr}r(jSj_jTj<ubj)r}r(jSX``$abi``jY}r(j[]j\]j]]j^]j`]ujTj<jN]rjlX$abirr}r(jSX$abijTjubajWjubjlX, rr}r(jSjTjTj<ubj)r}r(jSX ``$abitag``jY}r(j[]j\]j]]j^]j`]ujTj<jN]rjlX$abitagrr}r(jSX$abitagjTjubajWjubeubeubeubj)r}r(jSUjTj8 jUjVjWjjY}r(j^]j]]j[]j\]j`]Uentries]r(jX5setup-configure command line option; --datasubdir=dirj UNtraujbNjchjN]ubj)r}r(jSUjTj8 jUjVjWjjY}r(jjXstdj^]j]]j[]j\]j`]jXoptionrjjujbNjchjN]r(j)r}r(jSX--datasubdir=dirjTjjUjVjWjjY}r(j]rX --datasubdirraj^]rj aj]]j[]j\]j`]rhbajujbMjchjN]r(j)r}r(jSjjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX --datasubdirrr}r(jSUjUNjbNjchjTjubaubj)r}r(jSX=dirjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX=dirrr}r(jSUjUNjbNjchjTjubaubeubj)r}r(jSUjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(j)r}r(jSXGA subdirectory of *datadir* in which data files are actually installed.jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(jlXA subdirectory of rr}r(jSXA subdirectory of jUNjbNjchjTjubj)r}r(jSX *datadir*jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXdatadirrr}r(jSXdatadirjTjubajWjubjlX, in which data files are actually installed.rr}r(jSX, in which data files are actually installed.jUNjbNjchjTjubeubj)r}r(jSX*dir* may contain the following path variables: ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(j)r}r(jSX*dir*jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXdirrr}r(jSXdirjTjubajWjubjlX+ may contain the following path variables: rr}r(jSX+ may contain the following path variables: jUNjbNjchjTjubj)r}r(jSX ``$pkgid``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$pkgidrr}r(jSX$pkgidjTjubajWjubjlX, rr}r(jSX, rjUNjbNjchjTjubj)r}r(jSX``$pkg``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$pkgrr}r(jSX$pkgjTjubajWjubjlX, rr}r(jSX, rjUNjbNjchjTjubj)r}r(jSX ``$version``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$versionrr}r(jSX$versionjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX ``$compiler``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX $compilerrr}r(jSX $compilerjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX``$os``jY}r(j[]j\]j]]j^]j`]ujTjjN]r jlX$osr r }r (jSX$osjTjubajWjubjlX, r r}r(jSX, jTjubj)r}r(jSX ``$arch``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$archrr}r(jSX$archjTjubajWjubjlX, rr}r(jSjjTjubj)r}r(jSX``$abi``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$abirr}r (jSX$abijTjubajWjubjlX, r!r"}r#(jSjjTjubj)r$}r%(jSX ``$abitag``jY}r&(j[]j\]j]]j^]j`]ujTjjN]r'jlX$abitagr(r)}r*(jSX$abitagjTj$ubajWjubeubeubeubj)r+}r,(jSUjTj8 jUjVjWjjY}r-(j^]j]]j[]j\]j`]Uentries]r.(jX1setup-configure command line option; --docdir=dirj5UNtr/aujbNjchjN]ubj)r0}r1(jSUjTj8 jUjVjWjjY}r2(jjXstdj^]j]]j[]j\]j`]jXoptionr3jj3ujbNjchjN]r4(j)r5}r6(jSX --docdir=dirjTj0jUjVjWjjY}r7(j]r8X--docdirr9aj^]r:j5aj]]j[]j\]j`]r;hajujbMjchjN]r<(j)r=}r>(jSj9jTj5jUjVjWjjY}r?(jjj^]j]]j[]j\]j`]ujbMjchjN]r@jlX--docdirrArB}rC(jSUjUNjbNjchjTj=ubaubj)rD}rE(jSX=dirjTj5jUjVjWjjY}rF(jjj^]j]]j[]j\]j`]ujbMjchjN]rGjlX=dirrHrI}rJ(jSUjUNjbNjchjTjDubaubeubj)rK}rL(jSUjTj0jUjVjWjjY}rM(j[]j\]j]]j^]j`]ujbMjchjN]rN(j)rO}rP(jSX=Documentation files are installed relative to this directory.rQjTjKjUjVjWjjY}rR(j[]j\]j]]j^]j`]ujbMjchjN]rSjlX=Documentation files are installed relative to this directory.rTrU}rV(jSjQjUNjbNjchjTjOubaubj)rW}rX(jSX*dir* may contain the following path variables: ``$prefix``, ``$bindir``, ``$libdir``, ``$libsubdir``, ``$datadir``, ``$datasubdir``, ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``jTjKjUjVjWjjY}rY(j[]j\]j]]j^]j`]ujbMjchjN]rZ(j)r[}r\(jSX*dir*jY}r](j[]j\]j]]j^]j`]ujTjWjN]r^jlXdirr_r`}ra(jSXdirjTj[ubajWjubjlX+ may contain the following path variables: rbrc}rd(jSX+ may contain the following path variables: jUNjbNjchjTjWubj)re}rf(jSX ``$prefix``jY}rg(j[]j\]j]]j^]j`]ujTjWjN]rhjlX$prefixrirj}rk(jSX$prefixjTjeubajWjubjlX, rlrm}rn(jSX, rojUNjbNjchjTjWubj)rp}rq(jSX ``$bindir``jY}rr(j[]j\]j]]j^]j`]ujTjWjN]rsjlX$bindirrtru}rv(jSX$bindirjTjpubajWjubjlX, rwrx}ry(jSX, rzjUNjbNjchjTjWubj)r{}r|(jSX ``$libdir``jY}r}(j[]j\]j]]j^]j`]ujTjWjN]r~jlX$libdirrr}r(jSX$libdirjTj{ubajWjubjlX, rr}r(jSX, jTjWubj)r}r(jSX``$libsubdir``jY}r(j[]j\]j]]j^]j`]ujTjWjN]rjlX $libsubdirrr}r(jSX $libsubdirjTjubajWjubjlX, rr}r(jSX, jTjWubj)r}r(jSX ``$datadir``jY}r(j[]j\]j]]j^]j`]ujTjWjN]rjlX$datadirrr}r(jSX$datadirjTjubajWjubjlX, rr}r(jSX, jTjWubj)r}r(jSX``$datasubdir``jY}r(j[]j\]j]]j^]j`]ujTjWjN]rjlX $datasubdirrr}r(jSX $datasubdirjTjubajWjubjlX, rr}r(jSX, jTjWubj)r}r(jSX ``$pkgid``jY}r(j[]j\]j]]j^]j`]ujTjWjN]rjlX$pkgidrr}r(jSX$pkgidjTjubajWjubjlX, rr}r(jSX, jTjWubj)r}r(jSX``$pkg``jY}r(j[]j\]j]]j^]j`]ujTjWjN]rjlX$pkgrr}r(jSX$pkgjTjubajWjubjlX, rr}r(jSX, jTjWubj)r}r(jSX ``$version``jY}r(j[]j\]j]]j^]j`]ujTjWjN]rjlX$versionrr}r(jSX$versionjTjubajWjubjlX, rr}r(jSX, jTjWubj)r}r(jSX ``$compiler``jY}r(j[]j\]j]]j^]j`]ujTjWjN]rjlX $compilerrr}r(jSX $compilerjTjubajWjubjlX, rr}r(jSjojTjWubj)r}r(jSX``$os``jY}r(j[]j\]j]]j^]j`]ujTjWjN]rjlX$osrr}r(jSX$osjTjubajWjubjlX, rr}r(jSX, jTjWubj)r}r(jSX ``$arch``jY}r(j[]j\]j]]j^]j`]ujTjWjN]rjlX$archrr}r(jSX$archjTjubajWjubjlX, rr}r(jSX, jTjWubj)r}r(jSX``$abi``jY}r(j[]j\]j]]j^]j`]ujTjWjN]rjlX$abirr}r(jSX$abijTjubajWjubjlX, rr}r(jSjzjTjWubj)r}r(jSX ``$abitag``jY}r(j[]j\]j]]j^]j`]ujTjWjN]rjlX$abitagrr}r(jSX$abitagjTjubajWjubeubeubeubj)r}r(jSUjTj8 jUjVjWjjY}r(j^]j]]j[]j\]j`]Uentries]r(jX2setup-configure command line option; --htmldir=dirhUNtraujbNjchjN]ubj)r}r(jSUjTj8 jUjVjWjjY}r(jjXstdj^]j]]j[]j\]j`]jXoptionrjjujbNjchjN]r(j)r}r(jSX --htmldir=dirjTjjUjVjWjjY}r(j]rX --htmldirraj^]rhaj]]j[]j\]j`]rh5ajujbMjchjN]r(j)r}r(jSjjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX --htmldirrr}r(jSUjUNjbNjchjTjubaubj)r }r (jSX=dirjTjjUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbMjchjN]r jlX=dirr r}r(jSUjUNjbNjchjTj ubaubeubj)r}r(jSUjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(j)r}r(jSXBHTML documentation files are installed relative to this directory.rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]rjlXBHTML documentation files are installed relative to this directory.rr}r(jSjjUNjbNjchjTjubaubj)r}r(jSX*dir* may contain the following path variables: ``$prefix``, ``$bindir``, ``$libdir``, ``$libsubdir``, ``$datadir``, ``$datasubdir``, ``$docdir``, ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(j)r }r!(jSX*dir*jY}r"(j[]j\]j]]j^]j`]ujTjjN]r#jlXdirr$r%}r&(jSXdirjTj ubajWjubjlX+ may contain the following path variables: r'r(}r)(jSX+ may contain the following path variables: jUNjbNjchjTjubj)r*}r+(jSX ``$prefix``jY}r,(j[]j\]j]]j^]j`]ujTjjN]r-jlX$prefixr.r/}r0(jSX$prefixjTj*ubajWjubjlX, r1r2}r3(jSX, r4jUNjbNjchjTjubj)r5}r6(jSX ``$bindir``jY}r7(j[]j\]j]]j^]j`]ujTjjN]r8jlX$bindirr9r:}r;(jSX$bindirjTj5ubajWjubjlX, r<r=}r>(jSX, r?jUNjbNjchjTjubj)r@}rA(jSX ``$libdir``jY}rB(j[]j\]j]]j^]j`]ujTjjN]rCjlX$libdirrDrE}rF(jSX$libdirjTj@ubajWjubjlX, rGrH}rI(jSX, jTjubj)rJ}rK(jSX``$libsubdir``jY}rL(j[]j\]j]]j^]j`]ujTjjN]rMjlX $libsubdirrNrO}rP(jSX $libsubdirjTjJubajWjubjlX, rQrR}rS(jSX, jTjubj)rT}rU(jSX ``$datadir``jY}rV(j[]j\]j]]j^]j`]ujTjjN]rWjlX$datadirrXrY}rZ(jSX$datadirjTjTubajWjubjlX, r[r\}r](jSX, jTjubj)r^}r_(jSX``$datasubdir``jY}r`(j[]j\]j]]j^]j`]ujTjjN]rajlX $datasubdirrbrc}rd(jSX $datasubdirjTj^ubajWjubjlX, rerf}rg(jSX, jTjubj)rh}ri(jSX ``$docdir``jY}rj(j[]j\]j]]j^]j`]ujTjjN]rkjlX$docdirrlrm}rn(jSX$docdirjTjhubajWjubjlX, rorp}rq(jSX, jTjubj)rr}rs(jSX ``$pkgid``jY}rt(j[]j\]j]]j^]j`]ujTjjN]rujlX$pkgidrvrw}rx(jSX$pkgidjTjrubajWjubjlX, ryrz}r{(jSX, jTjubj)r|}r}(jSX``$pkg``jY}r~(j[]j\]j]]j^]j`]ujTjjN]rjlX$pkgrr}r(jSX$pkgjTj|ubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX ``$version``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$versionrr}r(jSX$versionjTjubajWjubjlX, rr}r(jSj4jTjubj)r}r(jSX ``$compiler``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX $compilerrr}r(jSX $compilerjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX``$os``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$osrr}r(jSX$osjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX ``$arch``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$archrr}r(jSX$archjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX``$abi``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$abirr}r(jSX$abijTjubajWjubjlX, rr}r(jSj?jTjubj)r}r(jSX ``$abitag``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$abitagrr}r(jSX$abitagjTjubajWjubeubeubeubj)r}r(jSUjTj8 jUjVjWjjY}r(j^]j]]j[]j\]j`]Uentries]r(jX<setup-configure command line option; --program-prefix=prefixhUNtraujbNjchjN]ubj)r}r(jSUjTj8 jUjVjWjjY}r(jjXstdj^]j]]j[]j\]j`]jXoptionrjjujbNjchjN]r(j)r}r(jSX--program-prefix=prefixjTjjUjVjWjjY}r(j]rX--program-prefixraj^]rhaj]]j[]j\]j`]rh7ajujbMjchjN]r(j)r}r(jSjjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX--program-prefixrr}r(jSUjUNjbNjchjTjubaubj)r}r(jSX=prefixjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX=prefixrr}r(jSUjUNjbNjchjTjubaubeubj)r}r(jSUjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(j)r}r(jSX,Prepend *prefix* to installed program names.jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(jlXPrepend rr}r(jSXPrepend jUNjbNjchjTjubj)r}r(jSX*prefix*jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXprefixrr}r(jSXprefixjTjubajWjubjlX to installed program names.rr}r(jSX to installed program names.jUNjbNjchjTjubeubj)r}r(jSX*prefix* may contain the following path variables: ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(j)r}r(jSX*prefix*jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXprefixrr}r(jSXprefixjTjubajWjubjlX+ may contain the following path variables: rr}r(jSX+ may contain the following path variables: jUNjbNjchjTjubj)r}r(jSX ``$pkgid``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$pkgidrr}r(jSX$pkgidjTjubajWjubjlX, r r }r (jSX, r jUNjbNjchjTjubj)r }r(jSX``$pkg``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$pkgrr}r(jSX$pkgjTj ubajWjubjlX, rr}r(jSX, rjUNjbNjchjTjubj)r}r(jSX ``$version``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$versionrr}r(jSX$versionjTjubajWjubjlX, rr }r!(jSX, jTjubj)r"}r#(jSX ``$compiler``jY}r$(j[]j\]j]]j^]j`]ujTjjN]r%jlX $compilerr&r'}r((jSX $compilerjTj"ubajWjubjlX, r)r*}r+(jSX, jTjubj)r,}r-(jSX``$os``jY}r.(j[]j\]j]]j^]j`]ujTjjN]r/jlX$osr0r1}r2(jSX$osjTj,ubajWjubjlX, r3r4}r5(jSX, jTjubj)r6}r7(jSX ``$arch``jY}r8(j[]j\]j]]j^]j`]ujTjjN]r9jlX$archr:r;}r<(jSX$archjTj6ubajWjubjlX, r=r>}r?(jSjjTjubj)r@}rA(jSX``$abi``jY}rB(j[]j\]j]]j^]j`]ujTjjN]rCjlX$abirDrE}rF(jSX$abijTj@ubajWjubjlX, rGrH}rI(jSj jTjubj)rJ}rK(jSX ``$abitag``jY}rL(j[]j\]j]]j^]j`]ujTjjN]rMjlX$abitagrNrO}rP(jSX$abitagjTjJubajWjubeubeubeubj)rQ}rR(jSUjTj8 jUjVjWjjY}rS(j^]j]]j[]j\]j`]Uentries]rT(jX<setup-configure command line option; --program-suffix=suffixj6UNtrUaujbNjchjN]ubj)rV}rW(jSUjTj8 jUjVjWjjY}rX(jjXstdj^]j]]j[]j\]j`]jXoptionrYjjYujbNjchjN]rZ(j)r[}r\(jSX--program-suffix=suffixjTjVjUjVjWjjY}r](j]r^X--program-suffixr_aj^]r`j6aj]]j[]j\]j`]rahajujbMjchjN]rb(j)rc}rd(jSj_jTj[jUjVjWjjY}re(jjj^]j]]j[]j\]j`]ujbMjchjN]rfjlX--program-suffixrgrh}ri(jSUjUNjbNjchjTjcubaubj)rj}rk(jSX=suffixjTj[jUjVjWjjY}rl(jjj^]j]]j[]j\]j`]ujbMjchjN]rmjlX=suffixrnro}rp(jSUjUNjbNjchjTjjubaubeubj)rq}rr(jSUjTjVjUjVjWjjY}rs(j[]j\]j]]j^]j`]ujbMjchjN]rt(j)ru}rv(jSXAppend *suffix* to installed program names. The most obvious use for this is to append the program's version number to make it possible to install several versions of a program at once: ``--program-suffix='$version'``.jTjqjUjVjWjjY}rw(j[]j\]j]]j^]j`]ujbMjchjN]rx(jlXAppend ryrz}r{(jSXAppend jUNjbNjchjTjuubj)r|}r}(jSX*suffix*jY}r~(j[]j\]j]]j^]j`]ujTjujN]rjlXsuffixrr}r(jSXsuffixjTj|ubajWjubjlX to installed program names. The most obvious use for this is to append the program’s version number to make it possible to install several versions of a program at once: rr}r(jSX to installed program names. The most obvious use for this is to append the program's version number to make it possible to install several versions of a program at once: jUNjbNjchjTjuubj)r}r(jSX``--program-suffix='$version'``jY}r(j[]j\]j]]j^]j`]ujTjujN]rjlX--program-suffix='$version'rr}r(jSX--program-suffix='$version'jTjubajWjubjlX.r}r(jSX.jUNjbNjchjTjuubeubj)r}r(jSX*suffix* may contain the following path variables: ``$pkgid``, ``$pkg``, ``$version``, ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``jTjqjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(j)r}r(jSX*suffix*jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXsuffixrr}r(jSXsuffixjTjubajWjubjlX+ may contain the following path variables: rr}r(jSX+ may contain the following path variables: jUNjbNjchjTjubj)r}r(jSX ``$pkgid``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$pkgidrr}r(jSX$pkgidjTjubajWjubjlX, rr}r(jSX, rjUNjbNjchjTjubj)r}r(jSX``$pkg``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$pkgrr}r(jSX$pkgjTjubajWjubjlX, rr}r(jSX, rjUNjbNjchjTjubj)r}r(jSX ``$version``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$versionrr}r(jSX$versionjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX ``$compiler``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX $compilerrr}r(jSX $compilerjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX``$os``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$osrr}r(jSX$osjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX ``$arch``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$archrr}r(jSX$archjTjubajWjubjlX, rr}r(jSjjTjubj)r}r(jSX``$abi``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$abirr}r(jSX$abijTjubajWjubjlX, rr}r(jSjjTjubj)r}r(jSX ``$abitag``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$abitagrr}r(jSX$abitagjTjubajWjubeubeubeubjP)r}r(jSUjTj8 jUjVjWjXjY}r(j[]j\]j]]j^]rhaj`]rh8aujbMjchjN]r(je)r}r(jSX)Path variables in the simple build systemrjTjjUjVjWjijY}r(j[]j\]j]]j^]j`]ujbMjchjN]rjlX)Path variables in the simple build systemrr}r(jSjjUNjbNjchjTjubaubj)r}r(jSXFor the simple build system, there are a number of variables that can be used when specifying installation paths. The defaults are also specified in terms of these variables. A number of the variables are actually for other paths, like ``$prefix``. This allows paths to be specified relative to each other rather than as absolute paths, which is important for building relocatable packages (see `prefix independence <#prefix-independence>`__).jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(jlXFor the simple build system, there are a number of variables that can be used when specifying installation paths. The defaults are also specified in terms of these variables. A number of the variables are actually for other paths, like rr}r(jSXFor the simple build system, there are a number of variables that can be used when specifying installation paths. The defaults are also specified in terms of these variables. A number of the variables are actually for other paths, like jUNjbNjchjTjubj)r}r(jSX ``$prefix``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$prefixrr}r(jSX$prefixjTjubajWjubjlX. This allows paths to be specified relative to each other rather than as absolute paths, which is important for building relocatable packages (see rr }r (jSX. This allows paths to be specified relative to each other rather than as absolute paths, which is important for building relocatable packages (see jUNjbNjchjTjubj)r }r (jSX.`prefix independence <#prefix-independence>`__jY}r (UnameXprefix independencejX#prefix-independencej^]j]]j[]j\]j`]ujTjjN]rjlXprefix independencerr}r(jSXprefix independencejTj ubajWjubjlX).rr}r(jSX).jUNjbNjchjTjubeubcdocutils.nodes definition_list r)r}r(jSUjTjjUjVjWUdefinition_listrjY}r(j[]j\]j]]j^]j`]ujbNjchjN]r(cdocutils.nodes definition_list_item r)r}r(jSX$prefix The path variable that stands for the root of the installation. For an installation to be relocatable, all other installation paths must be relative to the ``$prefix`` variable.jTjjUjVjWUdefinition_list_itemrjY}r(j[]j\]j]]j^]j`]ujbMjN]r (cdocutils.nodes term r!)r"}r#(jSX$prefixr$jTjjUjVjWUtermr%jY}r&(j[]j\]j]]j^]j`]ujbMjN]r'jlX$prefixr(r)}r*(jSj$jTj"ubaubcdocutils.nodes definition r+)r,}r-(jSUjY}r.(j[]j\]j]]j^]j`]ujTjjN]r/j)r0}r1(jSXThe path variable that stands for the root of the installation. For an installation to be relocatable, all other installation paths must be relative to the ``$prefix`` variable.jTj,jUjVjWjjY}r2(j[]j\]j]]j^]j`]ujbMjN]r3(jlXThe path variable that stands for the root of the installation. For an installation to be relocatable, all other installation paths must be relative to the r4r5}r6(jSXThe path variable that stands for the root of the installation. For an installation to be relocatable, all other installation paths must be relative to the jTj0ubj)r7}r8(jSX ``$prefix``jY}r9(j[]j\]j]]j^]j`]ujTj0jN]r:jlX$prefixr;r<}r=(jSX$prefixjTj7ubajWjubjlX variable.r>r?}r@(jSX variable.jTj0ubeubajWU definitionrAubeubj)rB}rC(jSXu$bindir The path variable that expands to the path given by the :option:`--bindir` configure option (or the default).jTjjUjVjWjjY}rD(j[]j\]j]]j^]j`]ujbMjchjN]rE(j!)rF}rG(jSX$bindirrHjTjBjUjVjWj%jY}rI(j[]j\]j]]j^]j`]ujbMjN]rJjlX$bindirrKrL}rM(jSjHjTjFubaubj+)rN}rO(jSUjY}rP(j[]j\]j]]j^]j`]ujTjBjN]rQj)rR}rS(jSXmThe path variable that expands to the path given by the :option:`--bindir` configure option (or the default).jTjNjUjVjWjjY}rT(j[]j\]j]]j^]j`]ujbMjN]rU(jlX8The path variable that expands to the path given by the rVrW}rX(jSX8The path variable that expands to the path given by the jTjRubj)rY}rZ(jSX:option:`--bindir`jTjRjUjVjWjjY}r[(UreftypeXoptionjjX--bindirr\U refdomainXstdr]j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r^j)r_}r`(jSj\jY}ra(j[]j\]rb(jj]X std-optionrcej]]j^]j`]ujTjYjN]rdjlX--bindirrerf}rg(jSUjTj_ubajWjubaubjlX# configure option (or the default).rhri}rj(jSX# configure option (or the default).jTjRubeubajWjAubeubj)rk}rl(jSX+$libdir As above but for :option:`--libdir`jTjjUjVjWjjY}rm(j[]j\]j]]j^]j`]ujbMjchjN]rn(j!)ro}rp(jSX$libdirrqjTjkjUjVjWj%jY}rr(j[]j\]j]]j^]j`]ujbMjN]rsjlX$libdirrtru}rv(jSjqjTjoubaubj+)rw}rx(jSUjY}ry(j[]j\]j]]j^]j`]ujTjkjN]rzj)r{}r|(jSX#As above but for :option:`--libdir`jTjwjUjVjWjjY}r}(j[]j\]j]]j^]j`]ujbMjN]r~(jlXAs above but for rr}r(jSXAs above but for jTj{ubj)r}r(jSX:option:`--libdir`jTj{jUjVjWjjY}r(UreftypeXoptionjjX--libdirrU refdomainXstdrj^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rj)r}r(jSjjY}r(j[]j\]r(jjX std-optionrej]]j^]j`]ujTjjN]rjlX--libdirrr}r(jSUjTjubajWjubaubeubajWjAubeubj)r}r(jSX1$libsubdir As above but for :option:`--libsubdir`jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(j!)r}r(jSX $libsubdirrjTjjUjVjWj%jY}r(j[]j\]j]]j^]j`]ujbMjN]rjlX $libsubdirrr}r(jSjjTjubaubj+)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX&As above but for :option:`--libsubdir`jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjN]r(jlXAs above but for rr}r(jSXAs above but for jTjubj)r}r(jSX:option:`--libsubdir`jTjjUjVjWjjY}r(UreftypeXoptionjjX --libsubdirrU refdomainXstdrj^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rj)r}r(jSjjY}r(j[]j\]r(jjX std-optionrej]]j^]j`]ujTjjN]rjlX --libsubdirrr}r(jSUjTjubajWjubaubeubajWjAubeubj)r}r(jSX1$dynlibdir As above but for :option:`--dynlibdir`jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(j!)r}r(jSX $dynlibdirrjTjjUjVjWj%jY}r(j[]j\]j]]j^]j`]ujbMjN]rjlX $dynlibdirrr}r(jSjjTjubaubj+)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX&As above but for :option:`--dynlibdir`jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjN]r(jlXAs above but for rr}r(jSXAs above but for jTjubj)r}r(jSX:option:`--dynlibdir`jTjjUjVjWjjY}r(UreftypeXoptionjjX --dynlibdirrU refdomainXstdrj^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rj)r}r(jSjjY}r(j[]j\]r(jjX std-optionrej]]j^]j`]ujTjjN]rjlX --dynlibdirrr}r(jSUjTjubajWjubaubeubajWjAubeubj)r}r(jSX-$datadir As above but for :option:`--datadir`jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(j!)r}r(jSX$datadirrjTjjUjVjWj%jY}r(j[]j\]j]]j^]j`]ujbMjN]rjlX$datadirrr}r(jSjjTjubaubj+)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX$As above but for :option:`--datadir`jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjN]r(jlXAs above but for rr}r(jSXAs above but for jTjubj)r}r(jSX:option:`--datadir`jTjjUjVjWjjY}r(UreftypeXoptionjjX --datadirrU refdomainXstdrj^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rj)r}r(jSjjY}r(j[]j\]r(jjX std-optionrej]]j^]j`]ujTjjN]rjlX --datadirrr}r(jSUjTjubajWjubaubeubajWjAubeubj)r}r(jSX3$datasubdir As above but for :option:`--datasubdir`jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(j!)r}r(jSX $datasubdirr jTjjUjVjWj%jY}r (j[]j\]j]]j^]j`]ujbMjN]r jlX $datasubdirr r }r(jSj jTjubaubj+)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX'As above but for :option:`--datasubdir`jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjN]r(jlXAs above but for rr}r(jSXAs above but for jTjubj)r}r(jSX:option:`--datasubdir`jTjjUjVjWjjY}r(UreftypeXoptionjjX --datasubdirrU refdomainXstdrj^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rj)r }r!(jSjjY}r"(j[]j\]r#(jjX std-optionr$ej]]j^]j`]ujTjjN]r%jlX --datasubdirr&r'}r((jSUjTj ubajWjubaubeubajWjAubeubj)r)}r*(jSX+$docdir As above but for :option:`--docdir`jTjjUjVjWjjY}r+(j[]j\]j]]j^]j`]ujbMjchjN]r,(j!)r-}r.(jSX$docdirr/jTj)jUjVjWj%jY}r0(j[]j\]j]]j^]j`]ujbMjN]r1jlX$docdirr2r3}r4(jSj/jTj-ubaubj+)r5}r6(jSUjY}r7(j[]j\]j]]j^]j`]ujTj)jN]r8j)r9}r:(jSX#As above but for :option:`--docdir`jTj5jUjVjWjjY}r;(j[]j\]j]]j^]j`]ujbMjN]r<(jlXAs above but for r=r>}r?(jSXAs above but for jTj9ubj)r@}rA(jSX:option:`--docdir`jTj9jUjVjWjjY}rB(UreftypeXoptionjjX--docdirrCU refdomainXstdrDj^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rEj)rF}rG(jSjCjY}rH(j[]j\]rI(jjDX std-optionrJej]]j^]j`]ujTj@jN]rKjlX--docdirrLrM}rN(jSUjTjFubajWjubaubeubajWjAubeubj)rO}rP(jSX>$pkgid The name and version of the package, e.g. ``mypkg-0.2``jTjjUjVjWjjY}rQ(j[]j\]j]]j^]j`]ujbMjchjN]rR(j!)rS}rT(jSX$pkgidrUjTjOjUjVjWj%jY}rV(j[]j\]j]]j^]j`]ujbMjN]rWjlX$pkgidrXrY}rZ(jSjUjTjSubaubj+)r[}r\(jSUjY}r](j[]j\]j]]j^]j`]ujTjOjN]r^j)r_}r`(jSX7The name and version of the package, e.g. ``mypkg-0.2``jTj[jUjVjWjjY}ra(j[]j\]j]]j^]j`]ujbMjN]rb(jlX*The name and version of the package, e.g. rcrd}re(jSX*The name and version of the package, e.g. jTj_ubj)rf}rg(jSX ``mypkg-0.2``jY}rh(j[]j\]j]]j^]j`]ujTj_jN]rijlX mypkg-0.2rjrk}rl(jSX mypkg-0.2jTjfubajWjubeubajWjAubeubj)rm}rn(jSX,$pkg The name of the package, e.g. ``mypkg``jTjjUjVjWjjY}ro(j[]j\]j]]j^]j`]ujbMjchjN]rp(j!)rq}rr(jSX$pkgrsjTjmjUjVjWj%jY}rt(j[]j\]j]]j^]j`]ujbMjN]rujlX$pkgrvrw}rx(jSjsjTjqubaubj+)ry}rz(jSUjY}r{(j[]j\]j]]j^]j`]ujTjmjN]r|j)r}}r~(jSX'The name of the package, e.g. ``mypkg``jTjyjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjN]r(jlXThe name of the package, e.g. rr}r(jSXThe name of the package, e.g. jTj}ubj)r}r(jSX ``mypkg``jY}r(j[]j\]j]]j^]j`]ujTj}jN]rjlXmypkgrr}r(jSXmypkgjTjubajWjubeubajWjAubeubj)r}r(jSX1$version The version of the package, e.g. ``0.2``jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(j!)r}r(jSX$versionrjTjjUjVjWj%jY}r(j[]j\]j]]j^]j`]ujbMjN]rjlX$versionrr}r(jSjjTjubaubj+)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX(The version of the package, e.g. ``0.2``jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjN]r(jlX!The version of the package, e.g. rr}r(jSX!The version of the package, e.g. jTjubj)r}r(jSX``0.2``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX0.2rr}r(jSX0.2jTjubajWjubeubajWjAubeubj)r}r(jSXJ$compiler The compiler being used to build the package, e.g. ``ghc-6.6.1``jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(j!)r}r(jSX $compilerrjTjjUjVjWj%jY}r(j[]j\]j]]j^]j`]ujbMjN]rjlX $compilerrr}r(jSjjTjubaubj+)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX@The compiler being used to build the package, e.g. ``ghc-6.6.1``jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjN]r(jlX3The compiler being used to build the package, e.g. rr}r(jSX3The compiler being used to build the package, e.g. jTjubj)r}r(jSX ``ghc-6.6.1``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX ghc-6.6.1rr}r(jSX ghc-6.6.1jTjubajWjubeubajWjAubeubj)r}r(jSX$os The operating system of the computer being used to build the package, e.g. ``linux``, ``windows``, ``osx``, ``freebsd`` or ``solaris``jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(j!)r}r(jSX$osrjTjjUjVjWj%jY}r(j[]j\]j]]j^]j`]ujbMjN]rjlX$osrr}r(jSjjTjubaubj+)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSXThe operating system of the computer being used to build the package, e.g. ``linux``, ``windows``, ``osx``, ``freebsd`` or ``solaris``jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjN]r(jlXKThe operating system of the computer being used to build the package, e.g. rr}r(jSXKThe operating system of the computer being used to build the package, e.g. jTjubj)r}r(jSX ``linux``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXlinuxrr}r(jSXlinuxjTjubajWjubjlX, rr}r(jSX, rjTjubj)r}r(jSX ``windows``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXwindowsrr}r(jSXwindowsjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX``osx``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXosxrr}r(jSXosxjTjubajWjubjlX, rr}r(jSjjTjubj)r}r(jSX ``freebsd``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXfreebsdrr}r(jSXfreebsdjTjubajWjubjlX or rr}r(jSX or jTjubj)r}r(jSX ``solaris``jY}r (j[]j\]j]]j^]j`]ujTjjN]r jlXsolarisr r }r (jSXsolarisjTjubajWjubeubajWjAubeubj)r}r(jSXw$arch The architecture of the computer being used to build the package, e.g. ``i386``, ``x86_64``, ``ppc`` or ``sparc``jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(j!)r}r(jSX$archrjTjjUjVjWj%jY}r(j[]j\]j]]j^]j`]ujbMjN]rjlX$archrr}r(jSjjTjubaubj+)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSXqThe architecture of the computer being used to build the package, e.g. ``i386``, ``x86_64``, ``ppc`` or ``sparc``jTjjUjVjWjjY}r (j[]j\]j]]j^]j`]ujbMjN]r!(jlXGThe architecture of the computer being used to build the package, e.g. r"r#}r$(jSXGThe architecture of the computer being used to build the package, e.g. jTjubj)r%}r&(jSX``i386``jY}r'(j[]j\]j]]j^]j`]ujTjjN]r(jlXi386r)r*}r+(jSXi386jTj%ubajWjubjlX, r,r-}r.(jSX, r/jTjubj)r0}r1(jSX ``x86_64``jY}r2(j[]j\]j]]j^]j`]ujTjjN]r3jlXx86_64r4r5}r6(jSXx86_64jTj0ubajWjubjlX, r7r8}r9(jSj/jTjubj)r:}r;(jSX``ppc``jY}r<(j[]j\]j]]j^]j`]ujTjjN]r=jlXppcr>r?}r@(jSXppcjTj:ubajWjubjlX or rArB}rC(jSX or jTjubj)rD}rE(jSX ``sparc``jY}rF(j[]j\]j]]j^]j`]ujTjjN]rGjlXsparcrHrI}rJ(jSXsparcjTjDubajWjubeubajWjAubeubj)rK}rL(jSX$abitag An optional tag that a compiler can use for telling incompatible ABI's on the same architecture apart. GHCJS encodes the underlying GHC version in the ABI tag.jTjjUjVjWjjY}rM(j[]j\]j]]j^]j`]ujbMjchjN]rN(j!)rO}rP(jSX$abitagrQjTjKjUjVjWj%jY}rR(j[]j\]j]]j^]j`]ujbMjN]rSjlX$abitagrTrU}rV(jSjQjTjOubaubj+)rW}rX(jSUjY}rY(j[]j\]j]]j^]j`]ujTjKjN]rZj)r[}r\(jSXAn optional tag that a compiler can use for telling incompatible ABI's on the same architecture apart. GHCJS encodes the underlying GHC version in the ABI tag.r]jTjWjUjVjWjjY}r^(j[]j\]j]]j^]j`]ujbMjN]r_jlXAn optional tag that a compiler can use for telling incompatible ABI’s on the same architecture apart. GHCJS encodes the underlying GHC version in the ABI tag.r`ra}rb(jSj]jTj[ubaubajWjAubeubj)rc}rd(jSX$abi A shortcut for getting a path that completely identifies the platform in terms of binary compatibility. Expands to the same value as ``$arch-$os-compiler-$abitag`` if the compiler uses an abi tag, ``$arch-$os-$compiler`` if it doesn't. jTjjUjVjWjjY}re(j[]j\]j]]j^]j`]ujbMjchjN]rf(j!)rg}rh(jSX$abirijTjcjUjVjWj%jY}rj(j[]j\]j]]j^]j`]ujbMjN]rkjlX$abirlrm}rn(jSjijTjgubaubj+)ro}rp(jSUjY}rq(j[]j\]j]]j^]j`]ujTjcjN]rrj)rs}rt(jSXA shortcut for getting a path that completely identifies the platform in terms of binary compatibility. Expands to the same value as ``$arch-$os-compiler-$abitag`` if the compiler uses an abi tag, ``$arch-$os-$compiler`` if it doesn't.jTjojUjVjWjjY}ru(j[]j\]j]]j^]j`]ujbM jN]rv(jlXA shortcut for getting a path that completely identifies the platform in terms of binary compatibility. Expands to the same value as rwrx}ry(jSXA shortcut for getting a path that completely identifies the platform in terms of binary compatibility. Expands to the same value as jTjsubj)rz}r{(jSX``$arch-$os-compiler-$abitag``jY}r|(j[]j\]j]]j^]j`]ujTjsjN]r}jlX$arch-$os-compiler-$abitagr~r}r(jSX$arch-$os-compiler-$abitagjTjzubajWjubjlX" if the compiler uses an abi tag, rr}r(jSX" if the compiler uses an abi tag, jTjsubj)r}r(jSX``$arch-$os-$compiler``jY}r(j[]j\]j]]j^]j`]ujTjsjN]rjlX$arch-$os-$compilerrr}r(jSX$arch-$os-$compilerjTjubajWjubjlX if it doesn’t.rr}r(jSX if it doesn't.jTjsubeubajWjAubeubeubeubjP)r}r(jSUjTj8 jUjVjWjXjY}r(j[]j\]j]]j^]rhaj`]rhEaujbMjchjN]r(je)r}r(jSX Paths in the simple build systemrjTjjUjVjWjijY}r(j[]j\]j]]j^]j`]ujbMjchjN]rjlX Paths in the simple build systemrr}r(jSjjUNjbNjchjTjubaubj)r}r(jSX:For the simple build system, the following defaults apply:rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]rjlX:For the simple build system, the following defaults apply:rr}r(jSjjUNjbNjchjTjubaubcdocutils.nodes table r)r}r(jSUjTjjUNjWUtablerjY}r(j[]j\]j]]j^]rUid11raj`]ujbNjchjN]r(je)r}r(jSXDefault installation pathsrjTjjUjVjWjijY}r(j[]j\]j]]j^]j`]ujbMjN]rjlXDefault installation pathsrr}r(jSjjTjubaubcdocutils.nodes tgroup r)r}r(jSUjY}r(j^]j]]j[]j\]j`]UcolsKujTjjN]r(cdocutils.nodes colspec r)r}r(jSUjY}r(j^]j]]j[]j\]j`]UcolwidthrK!ujTjjN]jWUcolspecrubj)r}r(jSUjY}r(j^]j]]j[]j\]j`]jK!ujTjjN]jWjubj)r}r(jSUjY}r(j^]j]]j[]j\]j`]jK!ujTjjN]jWjubcdocutils.nodes tbody r)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]r(cdocutils.nodes row r)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]r(cdocutils.nodes entry r)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSXOptionrjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjN]rjlXOptionrr}r(jSjjTjubaubajWUentryrubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX Unix DefaultrjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjN]rjlX Unix Defaultrr}r(jSjjTjubaubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSXWindows DefaultrjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjN]rjlXWindows Defaultrr}r(jSjjTjubaubajWjubejWUrowrubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]r(j)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX:option:`--prefix` (global)rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjN]r(j)r}r(jSX:option:`--prefix`jTjjUjVjWjjY}r(UreftypeXoptionjjX--prefixrU refdomainXstdrj^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rj)r }r (jSjjY}r (j[]j\]r (jjX std-optionr ej]]j^]j`]ujTjjN]rjlX--prefixrr}r(jSUjTj ubajWjubaubjlX (global)rr}r(jSX (global)jTjubeubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX``/usr/local``rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjN]rj)r}r(jSjjY}r (j[]j\]j]]j^]j`]ujTjjN]r!jlX /usr/localr"r#}r$(jSX /usr/localjTjubajWjubaubajWjubj)r%}r&(jSUjY}r'(j[]j\]j]]j^]j`]ujTjjN]r(j)r)}r*(jSX``%PROGRAMFILES%\Haskell``r+jTj%jUjVjWjjY}r,(j[]j\]j]]j^]j`]ujbMjN]r-j)r.}r/(jSX``%PROGRAMFILES%\Haskell``jY}r0(j[]j\]j]]j^]j`]ujTj)jN]r1jlX%PROGRAMFILES%\Haskellr2r3}r4(jSX%PROGRAMFILES%\HaskelljTj.ubajWjubaubajWjubejWjubj)r5}r6(jSUjY}r7(j[]j\]j]]j^]j`]ujTjjN]r8(j)r9}r:(jSUjY}r;(j[]j\]j]]j^]j`]ujTj5jN]r<j)r=}r>(jSX:option:`--prefix` (per-user)r?jTj9jUjVjWjjY}r@(j[]j\]j]]j^]j`]ujbMjN]rA(j)rB}rC(jSX:option:`--prefix`jTj=jUjVjWjjY}rD(UreftypeXoptionjjX--prefixrEU refdomainXstdrFj^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rGj)rH}rI(jSjEjY}rJ(j[]j\]rK(jjFX std-optionrLej]]j^]j`]ujTjBjN]rMjlX--prefixrNrO}rP(jSUjTjHubajWjubaubjlX (per-user)rQrR}rS(jSX (per-user)jTj=ubeubajWjubj)rT}rU(jSUjY}rV(j[]j\]j]]j^]j`]ujTj5jN]rWj)rX}rY(jSX``$HOME/.cabal``rZjTjTjUjVjWjjY}r[(j[]j\]j]]j^]j`]ujbMjN]r\j)r]}r^(jSjZjY}r_(j[]j\]j]]j^]j`]ujTjXjN]r`jlX $HOME/.cabalrarb}rc(jSX $HOME/.cabaljTj]ubajWjubaubajWjubj)rd}re(jSUjY}rf(j[]j\]j]]j^]j`]ujTj5jN]rgj)rh}ri(jSX``%APPDATA%\cabal``rjjTjdjUjVjWjjY}rk(j[]j\]j]]j^]j`]ujbMjN]rlj)rm}rn(jSX``%APPDATA%\cabal``jY}ro(j[]j\]j]]j^]j`]ujTjhjN]rpjlX%APPDATA%\cabalrqrr}rs(jSX%APPDATA%\cabaljTjmubajWjubaubajWjubejWjubj)rt}ru(jSUjY}rv(j[]j\]j]]j^]j`]ujTjjN]rw(j)rx}ry(jSUjY}rz(j[]j\]j]]j^]j`]ujTjtjN]r{j)r|}r}(jSX:option:`--bindir`r~jTjxjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM jN]rj)r}r(jSj~jTj|jUjVjWjjY}r(UreftypeXoptionjjX--bindirrU refdomainXstdrj^]j]]U refexplicitj[]j\]j`]jjjjujbM jN]rj)r}r(jSjjY}r(j[]j\]r(jjX std-optionrej]]j^]j`]ujTjjN]rjlX--bindirrr}r(jSUjTjubajWjubaubaubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjtjN]rj)r}r(jSX``$prefix/bin``rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM!jN]rj)r}r(jSjjY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX $prefix/binrr}r(jSX $prefix/binjTjubajWjubaubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjtjN]rj)r}r(jSX``$prefix\bin``rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM"jN]rj)r}r(jSX``$prefix\bin``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX $prefix\binrr}r(jSX $prefix\binjTjubajWjubaubajWjubejWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]r(j)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX:option:`--libdir`rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM#jN]rj)r}r(jSjjTjjUjVjWjjY}r(UreftypeXoptionjjX--libdirrU refdomainXstdrj^]j]]U refexplicitj[]j\]j`]jjjjujbM#jN]rj)r}r(jSjjY}r(j[]j\]r(jjX std-optionrej]]j^]j`]ujTjjN]rjlX--libdirrr}r(jSUjTjubajWjubaubaubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX``$prefix/lib``rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM$jN]rj)r}r(jSjjY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX $prefix/librr}r(jSX $prefix/libjTjubajWjubaubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX ``$prefix``rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM%jN]rj)r}r(jSjjY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$prefixrr}r(jSX$prefixjTjubajWjubaubajWjubejWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]r(j)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX:option:`--libsubdir` (others)rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM&jN]r(j)r}r(jSX:option:`--libsubdir`jTjjUjVjWjjY}r(UreftypeXoptionjjX --libsubdirrU refdomainXstdrj^]j]]U refexplicitj[]j\]j`]jjjjujbM&jN]rj)r}r(jSjjY}r(j[]j\]r(jjX std-optionrej]]j^]j`]ujTjjN]rjlX --libsubdirrr}r(jSUjTjubajWjubaubjlX (others)rr }r (jSX (others)jTjubeubajWjubj)r }r (jSUjY}r (j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX``$pkgid/$compiler``rjTj jUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM'jN]rj)r}r(jSjjY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$pkgid/$compilerrr}r(jSX$pkgid/$compilerjTjubajWjubaubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r (jSX``$pkgid\$compiler``r!jTjjUjVjWjjY}r"(j[]j\]j]]j^]j`]ujbM(jN]r#j)r$}r%(jSX``$pkgid\$compiler``jY}r&(j[]j\]j]]j^]j`]ujTjjN]r'jlX$pkgid\$compilerr(r)}r*(jSX$pkgid\$compilerjTj$ubajWjubaubajWjubejWjubj)r+}r,(jSUjY}r-(j[]j\]j]]j^]j`]ujTjjN]r.(j)r/}r0(jSUjY}r1(j[]j\]j]]j^]j`]ujTj+jN]r2j)r3}r4(jSX:option:`--dynlibdir`r5jTj/jUjVjWjjY}r6(j[]j\]j]]j^]j`]ujbM)jN]r7j)r8}r9(jSj5jTj3jUjVjWjjY}r:(UreftypeXoptionjjX --dynlibdirr;U refdomainXstdr<j^]j]]U refexplicitj[]j\]j`]jjjjujbM)jN]r=j)r>}r?(jSj;jY}r@(j[]j\]rA(jj<X std-optionrBej]]j^]j`]ujTj8jN]rCjlX --dynlibdirrDrE}rF(jSUjTj>ubajWjubaubaubajWjubj)rG}rH(jSUjY}rI(j[]j\]j]]j^]j`]ujTj+jN]rJj)rK}rL(jSX``$libdir/$abi``rMjTjGjUjVjWjjY}rN(j[]j\]j]]j^]j`]ujbM*jN]rOj)rP}rQ(jSjMjY}rR(j[]j\]j]]j^]j`]ujTjKjN]rSjlX $libdir/$abirTrU}rV(jSX $libdir/$abijTjPubajWjubaubajWjubj)rW}rX(jSUjY}rY(j[]j\]j]]j^]j`]ujTj+jN]rZj)r[}r\(jSX``$libdir\$abi``r]jTjWjUjVjWjjY}r^(j[]j\]j]]j^]j`]ujbM+jN]r_j)r`}ra(jSX``$libdir\$abi``jY}rb(j[]j\]j]]j^]j`]ujTj[jN]rcjlX $libdir\$abirdre}rf(jSX $libdir\$abijTj`ubajWjubaubajWjubejWjubj)rg}rh(jSUjY}ri(j[]j\]j]]j^]j`]ujTjjN]rj(j)rk}rl(jSUjY}rm(j[]j\]j]]j^]j`]ujTjgjN]rnj)ro}rp(jSX:option:`--libexecdir`rqjTjkjUjVjWjjY}rr(j[]j\]j]]j^]j`]ujbM,jN]rsj)rt}ru(jSjqjTjojUjVjWjjY}rv(UreftypeXoptionjjX --libexecdirrwU refdomainXstdrxj^]j]]U refexplicitj[]j\]j`]jjjjujbM,jN]ryj)rz}r{(jSjwjY}r|(j[]j\]r}(jjxX std-optionr~ej]]j^]j`]ujTjtjN]rjlX --libexecdirrr}r(jSUjTjzubajWjubaubaubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjgjN]rj)r}r(jSX``$prefix/libexec``rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM-jN]rj)r}r(jSjjY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$prefix/libexecrr}r(jSX$prefix/libexecjTjubajWjubaubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjgjN]rj)r}r(jSX``$prefix\$pkgid``rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM.jN]rj)r}r(jSX``$prefix\$pkgid``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$prefix\$pkgidrr}r(jSX$prefix\$pkgidjTjubajWjubaubajWjubejWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]r(j)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX :option:`--datadir` (executable)rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM/jN]r(j)r}r(jSX:option:`--datadir`jTjjUjVjWjjY}r(UreftypeXoptionjjX --datadirrU refdomainXstdrj^]j]]U refexplicitj[]j\]j`]jjjjujbM/jN]rj)r}r(jSjjY}r(j[]j\]r(jjX std-optionrej]]j^]j`]ujTjjN]rjlX --datadirrr}r(jSUjTjubajWjubaubjlX (executable)rr}r(jSX (executable)jTjubeubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX``$prefix/share``rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM0jN]rj)r}r(jSjjY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX $prefix/sharerr}r(jSX $prefix/sharejTjubajWjubaubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX ``$prefix``rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM1jN]rj)r}r(jSjjY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$prefixrr}r(jSX$prefixjTjubajWjubaubajWjubejWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]r(j)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX:option:`--datadir` (library)rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM2jN]r(j)r}r(jSX:option:`--datadir`jTjjUjVjWjjY}r(UreftypeXoptionjjX --datadirrU refdomainXstdrj^]j]]U refexplicitj[]j\]j`]jjjjujbM2jN]rj)r}r(jSjjY}r(j[]j\]r(jjX std-optionrej]]j^]j`]ujTjjN]rjlX --datadirrr}r(jSUjTjubajWjubaubjlX (library)rr}r(jSX (library)jTjubeubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX``$prefix/share``rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM3jN]r j)r }r (jSjjY}r (j[]j\]j]]j^]j`]ujTjjN]r jlX $prefix/sharerr}r(jSX $prefix/sharejTj ubajWjubaubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX``%PROGRAMFILES%\Haskell``rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM4jN]rj)r}r(jSX``%PROGRAMFILES%\Haskell``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX%PROGRAMFILES%\Haskellrr}r (jSX%PROGRAMFILES%\HaskelljTjubajWjubaubajWjubejWjubj)r!}r"(jSUjY}r#(j[]j\]j]]j^]j`]ujTjjN]r$(j)r%}r&(jSUjY}r'(j[]j\]j]]j^]j`]ujTj!jN]r(j)r)}r*(jSX:option:`--datasubdir`r+jTj%jUjVjWjjY}r,(j[]j\]j]]j^]j`]ujbM5jN]r-j)r.}r/(jSj+jTj)jUjVjWjjY}r0(UreftypeXoptionjjX --datasubdirr1U refdomainXstdr2j^]j]]U refexplicitj[]j\]j`]jjjjujbM5jN]r3j)r4}r5(jSj1jY}r6(j[]j\]r7(jj2X std-optionr8ej]]j^]j`]ujTj.jN]r9jlX --datasubdirr:r;}r<(jSUjTj4ubajWjubaubaubajWjubj)r=}r>(jSUjY}r?(j[]j\]j]]j^]j`]ujTj!jN]r@j)rA}rB(jSX ``$pkgid``rCjTj=jUjVjWjjY}rD(j[]j\]j]]j^]j`]ujbM6jN]rEj)rF}rG(jSjCjY}rH(j[]j\]j]]j^]j`]ujTjAjN]rIjlX$pkgidrJrK}rL(jSX$pkgidjTjFubajWjubaubajWjubj)rM}rN(jSUjY}rO(j[]j\]j]]j^]j`]ujTj!jN]rPj)rQ}rR(jSX ``$pkgid``rSjTjMjUjVjWjjY}rT(j[]j\]j]]j^]j`]ujbM7jN]rUj)rV}rW(jSjSjY}rX(j[]j\]j]]j^]j`]ujTjQjN]rYjlX$pkgidrZr[}r\(jSX$pkgidjTjVubajWjubaubajWjubejWjubj)r]}r^(jSUjY}r_(j[]j\]j]]j^]j`]ujTjjN]r`(j)ra}rb(jSUjY}rc(j[]j\]j]]j^]j`]ujTj]jN]rdj)re}rf(jSX:option:`--docdir`rgjTjajUjVjWjjY}rh(j[]j\]j]]j^]j`]ujbM8jN]rij)rj}rk(jSjgjTjejUjVjWjjY}rl(UreftypeXoptionjjX--docdirrmU refdomainXstdrnj^]j]]U refexplicitj[]j\]j`]jjjjujbM8jN]roj)rp}rq(jSjmjY}rr(j[]j\]rs(jjnX std-optionrtej]]j^]j`]ujTjjjN]rujlX--docdirrvrw}rx(jSUjTjpubajWjubaubaubajWjubj)ry}rz(jSUjY}r{(j[]j\]j]]j^]j`]ujTj]jN]r|j)r}}r~(jSX``$datadir/doc/$pkgid``rjTjyjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM9jN]rj)r}r(jSjjY}r(j[]j\]j]]j^]j`]ujTj}jN]rjlX$datadir/doc/$pkgidrr}r(jSX$datadir/doc/$pkgidjTjubajWjubaubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTj]jN]rj)r}r(jSX``$prefix\doc\$pkgid``rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM:jN]rj)r}r(jSX``$prefix\doc\$pkgid``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$prefix\doc\$pkgidrr}r(jSX$prefix\doc\$pkgidjTjubajWjubaubajWjubejWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]r(j)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX:option:`--sysconfdir`rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM;jN]rj)r}r(jSjjTjjUjVjWjjY}r(UreftypeXoptionjjX --sysconfdirrU refdomainXstdrj^]j]]U refexplicitj[]j\]j`]jjjjujbM;jN]rj)r}r(jSjjY}r(j[]j\]r(jjX std-optionrej]]j^]j`]ujTjjN]rjlX --sysconfdirrr}r(jSUjTjubajWjubaubaubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX``$prefix/etc``rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM<jN]rj)r}r(jSjjY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX $prefix/etcrr}r(jSX $prefix/etcjTjubajWjubaubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX``$prefix\etc``rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM=jN]rj)r}r(jSX``$prefix\etc``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX $prefix\etcrr}r(jSX $prefix\etcjTjubajWjubaubajWjubejWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]r(j)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX:option:`--htmldir`rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM>jN]rj)r}r(jSjjTjjUjVjWjjY}r(UreftypeXoptionjjX --htmldirrU refdomainXstdrj^]j]]U refexplicitj[]j\]j`]jjjjujbM>jN]rj)r}r(jSjjY}r(j[]j\]r(jjX std-optionrej]]j^]j`]ujTjjN]rjlX --htmldirrr}r(jSUjTjubajWjubaubaubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX``$docdir/html``rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM?jN]rj)r}r(jSjjY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX $docdir/htmlrr}r(jSX $docdir/htmljTjubajWjubaubajWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX``$docdir\html``rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM@jN]r j)r }r (jSX``$docdir\html``jY}r (j[]j\]j]]j^]j`]ujTjjN]r jlX $docdir\htmlrr}r(jSX $docdir\htmljTj ubajWjubaubajWjubejWjubj)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]r(j)r}r(jSUjY}r(j[]j\]j]]j^]j`]ujTjjN]rj)r}r(jSX:option:`--program-prefix`rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMAjN]rj)r}r(jSjjTjjUjVjWjjY}r (UreftypeXoptionjjX--program-prefixr!U refdomainXstdr"j^]j]]U refexplicitj[]j\]j`]jjjjujbMAjN]r#j)r$}r%(jSj!jY}r&(j[]j\]r'(jj"X std-optionr(ej]]j^]j`]ujTjjN]r)jlX--program-prefixr*r+}r,(jSUjTj$ubajWjubaubaubajWjubj)r-}r.(jSUjY}r/(j[]j\]j]]j^]j`]ujTjjN]r0j)r1}r2(jSX(empty)r3jTj-jUjVjWjjY}r4(j[]j\]j]]j^]j`]ujbMBjN]r5jlX(empty)r6r7}r8(jSj3jTj1ubaubajWjubj)r9}r:(jSUjY}r;(j[]j\]j]]j^]j`]ujTjjN]r<j)r=}r>(jSX(empty)r?jTj9jUjVjWjjY}r@(j[]j\]j]]j^]j`]ujbMCjN]rAjlX(empty)rBrC}rD(jSj?jTj=ubaubajWjubejWjubj)rE}rF(jSUjY}rG(j[]j\]j]]j^]j`]ujTjjN]rH(j)rI}rJ(jSUjY}rK(j[]j\]j]]j^]j`]ujTjEjN]rLj)rM}rN(jSX:option:`--program-suffix`rOjTjIjUjVjWjjY}rP(j[]j\]j]]j^]j`]ujbMDjN]rQj)rR}rS(jSjOjTjMjUjVjWjjY}rT(UreftypeXoptionjjX--program-suffixrUU refdomainXstdrVj^]j]]U refexplicitj[]j\]j`]jjjjujbMDjN]rWj)rX}rY(jSjUjY}rZ(j[]j\]r[(jjVX std-optionr\ej]]j^]j`]ujTjRjN]r]jlX--program-suffixr^r_}r`(jSUjTjXubajWjubaubaubajWjubj)ra}rb(jSUjY}rc(j[]j\]j]]j^]j`]ujTjEjN]rdj)re}rf(jSX(empty)rgjTjajUjVjWjjY}rh(j[]j\]j]]j^]j`]ujbMEjN]rijlX(empty)rjrk}rl(jSjgjTjeubaubajWjubj)rm}rn(jSUjY}ro(j[]j\]j]]j^]j`]ujTjEjN]rpj)rq}rr(jSX(empty)rsjTjmjUjVjWjjY}rt(j[]j\]j]]j^]j`]ujbMFjN]rujlX(empty)rvrw}rx(jSjsjTjqubaubajWjubejWjubejWUtbodyryubejWUtgrouprzubeubeubjP)r{}r|(jSUjTj8 jUjVjWjXjY}r}(j[]j\]j]]j^]r~haj`]rh=aujbMIjchjN]r(je)r}r(jSXPrefix-independencerjTj{jUjVjWjijY}r(j[]j\]j]]j^]j`]ujbMIjchjN]rjlXPrefix-independencerr}r(jSjjUNjbNjchjTjubaubj)r}r(jSXOn Windows it is possible to obtain the pathname of the running program. This means that we can construct an installable executable package that is independent of its absolute install location. The executable can find its auxiliary files by finding its own path and knowing the location of the other files relative to ``$bindir``. Prefix-independence is particularly useful: it means the user can choose the install location (i.e. the value of ``$prefix``) at install-time, rather than having to bake the path into the binary when it is built.jTj{jUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMKjchjN]r(jlX>On Windows it is possible to obtain the pathname of the running program. This means that we can construct an installable executable package that is independent of its absolute install location. The executable can find its auxiliary files by finding its own path and knowing the location of the other files relative to rr}r(jSX>On Windows it is possible to obtain the pathname of the running program. This means that we can construct an installable executable package that is independent of its absolute install location. The executable can find its auxiliary files by finding its own path and knowing the location of the other files relative to jUNjbNjchjTjubj)r}r(jSX ``$bindir``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$bindirrr}r(jSX$bindirjTjubajWjubjlXs. Prefix-independence is particularly useful: it means the user can choose the install location (i.e. the value of rr}r(jSXs. Prefix-independence is particularly useful: it means the user can choose the install location (i.e. the value of jUNjbNjchjTjubj)r}r(jSX ``$prefix``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$prefixrr}r(jSX$prefixjTjubajWjubjlXX) at install-time, rather than having to bake the path into the binary when it is built.rr}r(jSXX) at install-time, rather than having to bake the path into the binary when it is built.jUNjbNjchjTjubeubj)r}r(jSX In order to achieve this, we require that for an executable on Windows, all of ``$bindir``, ``$libdir``, ``$dynlibdir``, ``$datadir`` and ``$libexecdir`` begin with ``$prefix``. If this is not the case then the compiled executable will have baked-in all absolute paths.jTj{jUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMTjchjN]r(jlXOIn order to achieve this, we require that for an executable on Windows, all of rr}r(jSXOIn order to achieve this, we require that for an executable on Windows, all of jUNjbNjchjTjubj)r}r(jSX ``$bindir``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$bindirrr}r(jSX$bindirjTjubajWjubjlX, rr}r(jSX, rjUNjbNjchjTjubj)r}r(jSX ``$libdir``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$libdirrr}r(jSX$libdirjTjubajWjubjlX, rr}r(jSX, jTjubj)r}r(jSX``$dynlibdir``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX $dynlibdirrr}r(jSX $dynlibdirjTjubajWjubjlX, rr}r(jSjjTjubj)r}r(jSX ``$datadir``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$datadirrr}r(jSX$datadirjTjubajWjubjlX and rr}r(jSX and jUNjbNjchjTjubj)r}r(jSX``$libexecdir``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX $libexecdirrr}r(jSX $libexecdirjTjubajWjubjlX begin with rr}r(jSX begin with jUNjbNjchjTjubj)r}r(jSX ``$prefix``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX$prefixrr}r(jSX$prefixjTjubajWjubjlX]. If this is not the case then the compiled executable will have baked-in all absolute paths.rr}r(jSX]. If this is not the case then the compiled executable will have baked-in all absolute paths.jUNjbNjchjTjubeubj)r}r(jSX>The application need do nothing special to achieve prefix-independence. If it finds any files using ``getDataFileName`` and the `other functions provided for the purpose `__, the files will be accessed relative to the location of the current executable.jTj{jUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMYjchjN]r(jlXdThe application need do nothing special to achieve prefix-independence. If it finds any files using rr}r(jSXdThe application need do nothing special to achieve prefix-independence. If it finds any files using jUNjbNjchjTjubj)r}r(jSX``getDataFileName``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXgetDataFileNamerr}r(jSXgetDataFileNamejTjubajWjubjlX and the rr}r(jSX and the jUNjbNjchjTjubj)r}r(jSXn`other functions provided for the purpose `__jY}r(UnameX(other functions provided for the purposejX?developing-packages.html#accessing-data-files-from-package-codej^]j]]j[]j\]j`]ujTjjN]rjlX(other functions provided for the purposerr}r(jSX(other functions provided for the purposejTjubajWjubjlXP, the files will be accessed relative to the location of the current executable.rr}r(jSXP, the files will be accessed relative to the location of the current executable.jUNjbNjchjTjubeubj)r}r(jSXA library cannot (currently) be prefix-independent, because it will be linked into an executable whose file system location bears no relation to the library package.rjTj{jUjVjWjjY}r(j[]j\]j]]j^]j`]ujbM`jchjN]rjlXA library cannot (currently) be prefix-independent, because it will be linked into an executable whose file system location bears no relation to the library package.rr }r (jSjjUNjbNjchjTjubaubeubeubjP)r }r (jSUjTjjUjVjWjXjY}r (j[]j\]j]]j^]rjBaj`]rhaujbMejchjN]r(je)r}r(jSXControlling Flag AssignmentsrjTj jUjVjWjijY}r(j[]j\]j]]j^]j`]ujbMejchjN]rjlXControlling Flag Assignmentsrr}r(jSjjUNjbNjchjTjubaubj)r}r(jSXFlag assignments (see the `resolution of conditions and flags `__) can be controlled with the following command line options.jTj jUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMgjchjN]r(jlXFlag assignments (see the rr}r(jSXFlag assignments (see the jUNjbNjchjTjubj)r }r!(jSXd`resolution of conditions and flags `__jY}r"(UnameX"resolution of conditions and flagsjX;developing-packages.html#resolution-of-conditions-and-flagsj^]j]]j[]j\]j`]ujTjjN]r#jlX"resolution of conditions and flagsr$r%}r&(jSX"resolution of conditions and flagsjTj ubajWjubjlX<) can be controlled with the following command line options.r'r(}r)(jSX<) can be controlled with the following command line options.jUNjbNjchjTjubeubj)r*}r+(jSUjTj jUjVjWjjY}r,(j^]j]]j[]j\]j`]Uentries]r-(jX@setup-configure command line option; -f flagname or -f -flagnamejLUNtr.aujbNjchjN]ubj)r/}r0(jSUjTj jUjVjWjjY}r1(jjXstdj^]j]]j[]j\]j`]jXoptionr2jj2ujbNjchjN]r3(j)r4}r5(jSX-f flagname or -f -flagnamejTj/jUjVjWjjY}r6(j]r7X-fr8aj^]r9jLaj]]j[]j\]j`]r:hajujbMqjchjN]r;(j)r<}r=(jSj8jTj4jUjVjWjjY}r>(jjj^]j]]j[]j\]j`]ujbMqjchjN]r?jlX-fr@rA}rB(jSUjUNjbNjchjTj<ubaubj)rC}rD(jSX flagname or -f -flagnamejTj4jUjVjWjjY}rE(jjj^]j]]j[]j\]j`]ujbMqjchjN]rFjlX flagname or -f -flagnamerGrH}rI(jSUjUNjbNjchjTjCubaubeubj)rJ}rK(jSUjTj/jUjVjWjjY}rL(j[]j\]j]]j^]j`]ujbMqjchjN]rMj)rN}rO(jSXForce the specified flag to ``true`` or ``false`` (if preceded with a ``-``). Later specifications for the same flags will override earlier, i.e., specifying ``-fdebug -f-debug`` is equivalent to ``-f-debug``jTjJjUjVjWjjY}rP(j[]j\]j]]j^]j`]ujbMmjchjN]rQ(jlXForce the specified flag to rRrS}rT(jSXForce the specified flag to jUNjbNjchjTjNubj)rU}rV(jSX``true``jY}rW(j[]j\]j]]j^]j`]ujTjNjN]rXjlXtruerYrZ}r[(jSXtruejTjUubajWjubjlX or r\r]}r^(jSX or jUNjbNjchjTjNubj)r_}r`(jSX ``false``jY}ra(j[]j\]j]]j^]j`]ujTjNjN]rbjlXfalsercrd}re(jSXfalsejTj_ubajWjubjlX (if preceded with a rfrg}rh(jSX (if preceded with a jUNjbNjchjTjNubj)ri}rj(jSX``-``jY}rk(j[]j\]j]]j^]j`]ujTjNjN]rljlX-rm}rn(jSX-jTjiubajWjubjlXS). Later specifications for the same flags will override earlier, i.e., specifying rorp}rq(jSXS). Later specifications for the same flags will override earlier, i.e., specifying jUNjbNjchjTjNubj)rr}rs(jSX``-fdebug -f-debug``jY}rt(j[]j\]j]]j^]j`]ujTjNjN]rujlX-fdebug -f-debugrvrw}rx(jSX-fdebug -f-debugjTjrubajWjubjlX is equivalent to ryrz}r{(jSX is equivalent to jUNjbNjchjTjNubj)r|}r}(jSX ``-f-debug``jY}r~(j[]j\]j]]j^]j`]ujTjNjN]rjlX-f-debugrr}r(jSX-f-debugjTj|ubajWjubeubaubeubj)r}r(jSUjTj jUjVjWjjY}r(j^]j]]j[]j\]j`]Uentries]r(jX6setup-configure command line option; --flags=flagspecsj UNtraujbNjchjN]ubj)r}r(jSUjTj jUjVjWjjY}r(jjXstdj^]j]]j[]j\]j`]jXoptionrjjujbNjchjN]r(j)r}r(jSX--flags=flagspecsjTjjUjVjWjjY}r(j]rX--flagsraj^]rj aj]]j[]j\]j`]rhvajujbMzjchjN]r(j)r}r(jSjjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMzjchjN]rjlX--flagsrr}r(jSUjUNjbNjchjTjubaubj)r}r(jSX =flagspecsjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMzjchjN]rjlX =flagspecsrr}r(jSUjUNjbNjchjTjubaubeubj)r}r(jSUjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMzjchjN]rj)r}r(jSXESame as ``-f``, but allows specifying multiple flag assignments at once. The parameter is a space-separated list of flag names (to force a flag to ``true``), optionally preceded by a ``-`` (to force a flag to ``false``). For example, ``--flags="debug -feature1 feature2"`` is equivalent to ``-fdebug -f-feature1 -ffeature2``.jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMtjchjN]r(jlXSame as rr}r(jSXSame as jUNjbNjchjTjubj)r}r(jSX``-f``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX-frr}r(jSX-fjTjubajWjubjlX, but allows specifying multiple flag assignments at once. The parameter is a space-separated list of flag names (to force a flag to rr}r(jSX, but allows specifying multiple flag assignments at once. The parameter is a space-separated list of flag names (to force a flag to jUNjbNjchjTjubj)r}r(jSX``true``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXtruerr}r(jSXtruejTjubajWjubjlX), optionally preceded by a rr}r(jSX), optionally preceded by a jUNjbNjchjTjubj)r}r(jSX``-``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX-r}r(jSX-jTjubajWjubjlX (to force a flag to rr}r(jSX (to force a flag to jUNjbNjchjTjubj)r}r(jSX ``false``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlXfalserr}r(jSXfalsejTjubajWjubjlX). For example, rr}r(jSX). For example, jUNjbNjchjTjubj)r}r(jSX&``--flags="debug -feature1 feature2"``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX"--flags="debug -feature1 feature2"rr}r(jSX"--flags="debug -feature1 feature2"jTjubajWjubjlX is equivalent to rr}r(jSX is equivalent to jUNjbNjchjTjubj)r}r(jSX"``-fdebug -f-feature1 -ffeature2``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX-fdebug -f-feature1 -ffeature2rr}r(jSX-fdebug -f-feature1 -ffeature2jTjubajWjubjlX.r}r(jSX.jUNjbNjchjTjubeubaubeubeubjP)r}r(jSUjTjjUjVjWjXjY}r(j[]j\]j]]j^]rhaj`]rh$aujbM|jchjN]r(je)r}r(jSXBuilding Test SuitesrjTjjUjVjWjijY}r(j[]j\]j]]j^]j`]ujbM|jchjN]rjlXBuilding Test Suitesrr}r(jSjjUNjbNjchjTjubaubj)r}r(jSUjTjjUjVjWjjY}r(j^]j]]j[]j\]j`]Uentries]r(jX3setup-configure command line option; --enable-testsjCUNtraujbNjchjN]ubj)r}r(jSUjTjjUjVjWjjY}r(jjXstdj^]j]]j[]j\]j`]jXoptionrjjujbNjchjN]r(j)r}r(jSX--enable-testsrjTjjUjVjWjjY}r(j]rjaj^]rjCaj]]j[]j\]j`]rhajujbMjchjN]r(j)r}r (jSjjTjjUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbMjchjN]r jlX--enable-testsr r }r(jSUjUNjbNjchjTjubaubj)r}r(jSUjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r}r(jSUjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]rj)r}r(jSXBuild the test suites defined in the package description file during the ``build`` stage. Check for dependencies required by the test suites. If the package is configured with this option, it will be possible to run the test suites with the ``test`` command after the package is built.jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(jlXIBuild the test suites defined in the package description file during the rr}r(jSXIBuild the test suites defined in the package description file during the jUNjbNjchjTjubj)r}r(jSX ``build``jY}r(j[]j\]j]]j^]j`]ujTjjN]r jlXbuildr!r"}r#(jSXbuildjTjubajWjubjlX stage. Check for dependencies required by the test suites. If the package is configured with this option, it will be possible to run the test suites with the r$r%}r&(jSX stage. Check for dependencies required by the test suites. If the package is configured with this option, it will be possible to run the test suites with the jUNjbNjchjTjubj)r'}r((jSX``test``jY}r)(j[]j\]j]]j^]j`]ujTjjN]r*jlXtestr+r,}r-(jSXtestjTj'ubajWjubjlX$ command after the package is built.r.r/}r0(jSX$ command after the package is built.jUNjbNjchjTjubeubaubeubj)r1}r2(jSUjTjjUjVjWjjY}r3(j^]j]]j[]j\]j`]Uentries]r4(jX4setup-configure command line option; --disable-testsjDUNtr5aujbNjchjN]ubj)r6}r7(jSUjTjjUjVjWjjY}r8(jjXstdj^]j]]j[]j\]j`]jXoptionr9jj9ujbNjchjN]r:(j)r;}r<(jSX--disable-testsr=jTj6jUjVjWjjY}r>(j]r?j=aj^]r@jDaj]]j[]j\]j`]rAhajujbMjchjN]rB(j)rC}rD(jSj=jTj;jUjVjWjjY}rE(jjj^]j]]j[]j\]j`]ujbMjchjN]rFjlX--disable-testsrGrH}rI(jSUjUNjbNjchjTjCubaubj)rJ}rK(jSUjTj;jUjVjWjjY}rL(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)rM}rN(jSUjTj6jUjVjWjjY}rO(j[]j\]j]]j^]j`]ujbMjchjN]rPj)rQ}rR(jSX(default) Do not build any test suites during the ``build`` stage. Do not check for dependencies required only by the test suites. It will not be possible to invoke the ``test`` command without reconfiguring the package.jTjMjUjVjWjjY}rS(j[]j\]j]]j^]j`]ujbMjchjN]rT(jlX2(default) Do not build any test suites during the rUrV}rW(jSX2(default) Do not build any test suites during the jUNjbNjchjTjQubj)rX}rY(jSX ``build``jY}rZ(j[]j\]j]]j^]j`]ujTjQjN]r[jlXbuildr\r]}r^(jSXbuildjTjXubajWjubjlXn stage. Do not check for dependencies required only by the test suites. It will not be possible to invoke the r_r`}ra(jSXn stage. Do not check for dependencies required only by the test suites. It will not be possible to invoke the jUNjbNjchjTjQubj)rb}rc(jSX``test``jY}rd(j[]j\]j]]j^]j`]ujTjQjN]rejlXtestrfrg}rh(jSXtestjTjbubajWjubjlX+ command without reconfiguring the package.rirj}rk(jSX+ command without reconfiguring the package.jUNjbNjchjTjQubeubaubeubj)rl}rm(jSUjTjjUjVjWjjY}rn(j^]j]]j[]j\]j`]Uentries]ro(jX6setup-configure command line option; --enable-coveragejUNtrpaujbNjchjN]ubj)rq}rr(jSUjTjjUjVjWjjY}rs(jjXstdj^]j]]j[]j\]j`]jXoptionrtjjtujbNjchjN]ru(j)rv}rw(jSX--enable-coveragerxjTjqjUjVjWjjY}ry(j]rzjxaj^]r{jaj]]j[]j\]j`]r|hYajujbMjchjN]r}(j)r~}r(jSjxjTjvjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX--enable-coveragerr}r(jSUjUNjbNjchjTj~ubaubj)r}r(jSUjTjvjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r}r(jSUjTjqjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]rj)r}r(jSXBuild libraries and executables (including test suites) with Haskell Program Coverage enabled. Running the test suites will automatically generate coverage reports with HPC.rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]rjlXBuild libraries and executables (including test suites) with Haskell Program Coverage enabled. Running the test suites will automatically generate coverage reports with HPC.rr}r(jSjjUNjbNjchjTjubaubaubeubj)r}r(jSUjTjjUjVjWjjY}r(j^]j]]j[]j\]j`]Uentries]r(jX7setup-configure command line option; --disable-coveragej&UNtraujbNjchjN]ubj)r}r(jSUjTjjUjVjWjjY}r(jjXstdj^]j]]j[]j\]j`]jXoptionrjjujbNjchjN]r(j)r}r(jSX--disable-coveragerjTjjUjVjWjjY}r(j]rjaj^]rj&aj]]j[]j\]j`]rh~ajujbMjchjN]r(j)r}r(jSjjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX--disable-coveragerr}r(jSUjUNjbNjchjTjubaubj)r}r(jSUjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r}r(jSUjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]rj)r}r(jSX1(default) Do not enable Haskell Program Coverage.rjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]rjlX1(default) Do not enable Haskell Program Coverage.rr}r(jSjjUNjbNjchjTjubaubaubeubeubjP)r}r(jSUjTjjUjVjWjXjY}r(j[]j\]j]]j^]rhaj`]rhaujbMjchjN]r(je)r}r(jSXMiscellaneous optionsrjTjjUjVjWjijY}r(j[]j\]j]]j^]j`]ujbMjchjN]rjlXMiscellaneous optionsrr}r(jSjjUNjbNjchjTjubaubj)r}r(jSUjTjjUjVjWjjY}r(j^]j]]j[]j\]j`]Uentries]r(jX+setup-configure command line option; --userhUNtraujbNjchjN]ubj)r}r(jSUjTjjUjVjWjjY}r(jjXstdj^]j]]j[]j\]j`]jXoptionrjjujbNjchjN]r(j)r}r(jSX--userrjTjjUjVjWjjY}r(j]rjaj^]rhaj]]j[]j\]j`]rhQajujbMjchjN]r(j)r}r(jSjjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]rjlX--userrr}r(jSUjUNjbNjchjTjubaubj)r}r(jSUjTjjUjVjWjjY}r(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r}r(jSUjTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]rj)r}r(jSXDoes a per-user installation. This changes the `default installation prefix <#paths-in-the-simple-build-system>`__. It also allow dependencies to be satisfied by the user's package database, in addition to the global database. This also implies a default of ``--user`` for any subsequent ``install`` command, as packages registered in the global database should not depend on packages registered in a user's database.jTjjUjVjWjjY}r(j[]j\]j]]j^]j`]ujbMjchjN]r(jlX/Does a per-user installation. This changes the rr}r(jSX/Does a per-user installation. This changes the jUNjbNjchjTjubj)r}r(jSXC`default installation prefix <#paths-in-the-simple-build-system>`__jY}r(UnameXdefault installation prefixjX!#paths-in-the-simple-build-systemj^]j]]j[]j\]j`]ujTjjN]rjlXdefault installation prefixrr}r(jSXdefault installation prefixjTjubajWjubjlX. It also allow dependencies to be satisfied by the user’s package database, in addition to the global database. This also implies a default of rr}r(jSX. It also allow dependencies to be satisfied by the user's package database, in addition to the global database. This also implies a default of jUNjbNjchjTjubj)r}r(jSX ``--user``jY}r(j[]j\]j]]j^]j`]ujTjjN]rjlX--userrr }r (jSX--userjTjubajWjubjlX for any subsequent r r }r (jSX for any subsequent jUNjbNjchjTjubj)r }r (jSX ``install``jY}r (j[]j\]j]]j^]j`]ujTjjN]r jlXinstallr r }r (jSXinstalljTj ubajWjubjlXx command, as packages registered in the global database should not depend on packages registered in a user’s database.r r }r (jSXv command, as packages registered in the global database should not depend on packages registered in a user's database.jUNjbNjchjTjubeubaubeubj)r }r (jSUjTjjUjVjWjjY}r (j^]j]]j[]j\]j`]Uentries]r (jX-setup-configure command line option; --globalhUNtr aujbNjchjN]ubj)r }r (jSUjTjjUjVjWjjY}r (jjXstdj^]j]]j[]j\]j`]jXoptionr jj ujbNjchjN]r (j)r }r (jSX--globalr jTj jUjVjWjjY}r (j]r j aj^]r haj]]j[]j\]j`]r hajujbMjchjN]r (j)r! }r" (jSj jTj jUjVjWjjY}r# (jjj^]j]]j[]j\]j`]ujbMjchjN]r$ jlX--globalr% r& }r' (jSUjUNjbNjchjTj! ubaubj)r( }r) (jSUjTj jUjVjWjjY}r* (jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r+ }r, (jSUjTj jUjVjWjjY}r- (j[]j\]j]]j^]j`]ujbMjchjN]r. j)r/ }r0 (jSX(default) Does a global installation. In this case package dependencies must be satisfied by the global package database. All packages in the user's package database will be ignored. Typically the final installation step will require administrative privileges.r1 jTj+ jUjVjWjjY}r2 (j[]j\]j]]j^]j`]ujbMjchjN]r3 jlX(default) Does a global installation. In this case package dependencies must be satisfied by the global package database. All packages in the user’s package database will be ignored. Typically the final installation step will require administrative privileges.r4 r5 }r6 (jSj1 jUNjbNjchjTj/ ubaubaubeubj)r7 }r8 (jSUjTjjUjVjWjjY}r9 (j^]j]]j[]j\]j`]Uentries]r: (jX4setup-configure command line option; --package-db=dbjUNtr; aujbNjchjN]ubj)r< }r= (jSUjTjjUjVjWjjY}r> (jjXstdj^]j]]j[]j\]j`]jXoptionr? jj? ujbNjchjN]r@ (j)rA }rB (jSX--package-db=dbjTj< jUjVjWjjY}rC (j]rD X --package-dbrE aj^]rF jaj]]j[]j\]j`]rG heajujbMjchjN]rH (j)rI }rJ (jSjE jTjA jUjVjWjjY}rK (jjj^]j]]j[]j\]j`]ujbMjchjN]rL jlX --package-dbrM rN }rO (jSUjUNjbNjchjTjI ubaubj)rP }rQ (jSX=dbjTjA jUjVjWjjY}rR (jjj^]j]]j[]j\]j`]ujbMjchjN]rS jlX=dbrT rU }rV (jSUjUNjbNjchjTjP ubaubeubj)rW }rX (jSUjTj< jUjVjWjjY}rY (j[]j\]j]]j^]j`]ujbMjchjN]rZ (j)r[ }r\ (jSX]Allows package dependencies to be satisfied from this additional package database *db* in addition to the global package database. All packages in the user's package database will be ignored. The interpretation of *db* is implementation-specific. Typically it will be a file or directory. Not all implementations support arbitrary package databases.jTjW jUjVjWjjY}r] (j[]j\]j]]j^]j`]ujbMjchjN]r^ (jlXRAllows package dependencies to be satisfied from this additional package database r_ r` }ra (jSXRAllows package dependencies to be satisfied from this additional package database jUNjbNjchjTj[ ubj)rb }rc (jSX*db*jY}rd (j[]j\]j]]j^]j`]ujTj[ jN]re jlXdbrf rg }rh (jSXdbjTjb ubajWjubjlX in addition to the global package database. All packages in the user’s package database will be ignored. The interpretation of ri rj }rk (jSX in addition to the global package database. All packages in the user's package database will be ignored. The interpretation of jUNjbNjchjTj[ ubj)rl }rm (jSX*db*jY}rn (j[]j\]j]]j^]j`]ujTj[ jN]ro jlXdbrp rq }rr (jSXdbjTjl ubajWjubjlX is implementation-specific. Typically it will be a file or directory. Not all implementations support arbitrary package databases.rs rt }ru (jSX is implementation-specific. Typically it will be a file or directory. Not all implementations support arbitrary package databases.jUNjbNjchjTj[ ubeubj)rv }rw (jSXbThis pushes an extra db onto the db stack. The :option:`--global` and :option:`--user` mode switches add the respective [Global] and [Global, User] dbs to the initial stack. There is a compiler-implementation constraint that the global db must appear first in the stack, and if the user one appears at all, it must appear immediately after the global db.jTjW jUjVjWjjY}rx (j[]j\]j]]j^]j`]ujbMjchjN]ry (jlX/This pushes an extra db onto the db stack. The rz r{ }r| (jSX/This pushes an extra db onto the db stack. The jUNjbNjchjTjv ubj)r} }r~ (jSX:option:`--global`jTjv jUjVjWjjY}r (UreftypeXoptionjjX--globalr U refdomainXstdr j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r j)r }r (jSj jY}r (j[]j\]r (jj X std-optionr ej]]j^]j`]ujTj} jN]r jlX--globalr r }r (jSUjTj ubajWjubaubjlX and r r }r (jSX and jUNjbNjchjTjv ubj)r }r (jSX:option:`--user`jTjv jUjVjWjjY}r (UreftypeXoptionjjX--userr U refdomainXstdr j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r j)r }r (jSj jY}r (j[]j\]r (jj X std-optionr ej]]j^]j`]ujTj jN]r jlX--userr r }r (jSUjTj ubajWjubaubjlX  mode switches add the respective [Global] and [Global, User] dbs to the initial stack. There is a compiler-implementation constraint that the global db must appear first in the stack, and if the user one appears at all, it must appear immediately after the global db.r r }r (jSX  mode switches add the respective [Global] and [Global, User] dbs to the initial stack. There is a compiler-implementation constraint that the global db must appear first in the stack, and if the user one appears at all, it must appear immediately after the global db.jUNjbNjchjTjv ubeubj)r }r (jSX/To reset the stack, use ``--package-db=clear``.jTjW jUjVjWjjY}r (j[]j\]j]]j^]j`]ujbMjchjN]r (jlXTo reset the stack, use r r }r (jSXTo reset the stack, use jUNjbNjchjTj ubj)r }r (jSX``--package-db=clear``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlX--package-db=clearr r }r (jSX--package-db=clearjTj ubajWjubjlX.r }r (jSX.jUNjbNjchjTj ubeubeubeubj)r }r (jSUjTjjUjVjWjjY}r (j^]j]]j[]j\]j`]Uentries]r (jX0setup-configure command line option; --ipid=ipidjUNtr aujbNjchjN]ubj)r }r (jSUjTjjUjVjWjjY}r (jjXstdj^]j]]j[]j\]j`]jXoptionr jj ujbNjchjN]r (j)r }r (jSX --ipid=ipidjTj jUjVjWjjY}r (j]r X--ipidr aj^]r jaj]]j[]j\]j`]r hdajujbMjchjN]r (j)r }r (jSj jTj jUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbMjchjN]r jlX--ipidr r }r (jSUjUNjbNjchjTj ubaubj)r }r (jSX=ipidjTj jUjVjWjjY}r (jjj^]j]]j[]j\]j`]ujbMjchjN]r jlX=ipidr r }r (jSUjUNjbNjchjTj ubaubeubj)r }r (jSUjTj jUjVjWjjY}r (j[]j\]j]]j^]j`]ujbMjchjN]r j)r }r (jSXSpecifies the *installed package identifier* of the package to be built; this identifier is passed on to GHC and serves as the basis for linker symbols and the ``id`` field in a ``ghc-pkg`` registration. When a package has multiple components, the actual component identifiers are derived off of this identifier (e.g., an internal library ``foo`` from package ``p-0.1-abcd`` will get the identifier ``p-0.1-abcd-foo``.jTj jUjVjWjjY}r (j[]j\]j]]j^]j`]ujbMjchjN]r (jlXSpecifies the r r }r (jSXSpecifies the jUNjbNjchjTj ubj)r }r (jSX*installed package identifier*jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlXinstalled package identifierr r }r (jSXinstalled package identifierjTj ubajWjubjlXt of the package to be built; this identifier is passed on to GHC and serves as the basis for linker symbols and the r r }r (jSXt of the package to be built; this identifier is passed on to GHC and serves as the basis for linker symbols and the jUNjbNjchjTj ubj)r }r (jSX``id``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlXidr r }r (jSXidjTj ubajWjubjlX field in a r r }r (jSX field in a jUNjbNjchjTj ubj)r }r (jSX ``ghc-pkg``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlXghc-pkgr r }r (jSXghc-pkgjTj ubajWjubjlX registration. When a package has multiple components, the actual component identifiers are derived off of this identifier (e.g., an internal library r r }r (jSX registration. When a package has multiple components, the actual component identifiers are derived off of this identifier (e.g., an internal library jUNjbNjchjTj ubj)r }r (jSX``foo``jY}r (j[]j\]j]]j^]j`]ujTj jN]r jlXfoor r }r!(jSXfoojTj ubajWjubjlX from package r!r!}r!(jSX from package jUNjbNjchjTj ubj)r!}r!(jSX``p-0.1-abcd``jY}r!(j[]j\]j]]j^]j`]ujTj jN]r!jlX p-0.1-abcdr!r !}r !(jSX p-0.1-abcdjTj!ubajWjubjlX will get the identifier r !r !}r !(jSX will get the identifier jUNjbNjchjTj ubj)r!}r!(jSX``p-0.1-abcd-foo``jY}r!(j[]j\]j]]j^]j`]ujTj jN]r!jlXp-0.1-abcd-foor!r!}r!(jSXp-0.1-abcd-foojTj!ubajWjubjlX.r!}r!(jSX.jUNjbNjchjTj ubeubaubeubj)r!}r!(jSUjTjjUjVjWjjY}r!(j^]j]]j[]j\]j`]Uentries]r!(jX.setup-configure command line option; --cid=cidhUNtr!aujbNjchjN]ubj)r!}r!(jSUjTjjUjVjWjjY}r!(jjXstdj^]j]]j[]j\]j`]jXoptionr!jj!ujbNjchjN]r !(j)r!!}r"!(jSX --cid=cidjTj!jUjVjWjjY}r#!(j]r$!X--cidr%!aj^]r&!haj]]j[]j\]j`]r'!hajujbMjchjN]r(!(j)r)!}r*!(jSj%!jTj!!jUjVjWjjY}r+!(jjj^]j]]j[]j\]j`]ujbMjchjN]r,!jlX--cidr-!r.!}r/!(jSUjUNjbNjchjTj)!ubaubj)r0!}r1!(jSX=cidjTj!!jUjVjWjjY}r2!(jjj^]j]]j[]j\]j`]ujbMjchjN]r3!jlX=cidr4!r5!}r6!(jSUjUNjbNjchjTj0!ubaubeubj)r7!}r8!(jSUjTj!jUjVjWjjY}r9!(j[]j\]j]]j^]j`]ujbMjchjN]r:!j)r;!}r!(jlXSpecifies the r?!r@!}rA!(jSXSpecifies the jUNjbNjchjTj;!ubj)rB!}rC!(jSX*component identifier*jY}rD!(j[]j\]j]]j^]j`]ujTj;!jN]rE!jlXcomponent identifierrF!rG!}rH!(jSXcomponent identifierjTjB!ubajWjubjlX\ of the component being built; this is only valid if you are configuring a single component.rI!rJ!}rK!(jSX\ of the component being built; this is only valid if you are configuring a single component.jUNjbNjchjTj;!ubeubaubeubj)rL!}rM!(jSUjTjjUjVjWjjY}rN!(j^]j]]j[]j\]j`]Uentries]rO!(jX?setup-configure command line option; --default-user-config=filehUNtrP!aujbNjchjN]ubj)rQ!}rR!(jSUjTjjUjVjWjjY}rS!(jjXstdj^]j]]j[]j\]j`]jXoptionrT!jjT!ujbNjchjN]rU!(j)rV!}rW!(jSX--default-user-config=filejTjQ!jUjVjWjjY}rX!(j]rY!X--default-user-configrZ!aj^]r[!haj]]j[]j\]j`]r\!h-ajujbMjchjN]r]!(j)r^!}r_!(jSjZ!jTjV!jUjVjWjjY}r`!(jjj^]j]]j[]j\]j`]ujbMjchjN]ra!jlX--default-user-configrb!rc!}rd!(jSUjUNjbNjchjTj^!ubaubj)re!}rf!(jSX=filejTjV!jUjVjWjjY}rg!(jjj^]j]]j[]j\]j`]ujbMjchjN]rh!jlX=fileri!rj!}rk!(jSUjUNjbNjchjTje!ubaubeubj)rl!}rm!(jSUjTjQ!jUjVjWjjY}rn!(j[]j\]j]]j^]j`]ujbMjchjN]ro!j)rp!}rq!(jSXwAllows a "default" ``cabal.config`` freeze file to be passed in manually. This file will only be used if one does not exist in the project directory already. Typically, this can be set from the global cabal ``config`` file so as to provide a default set of partial constraints to be used by projects, providing a way for users to peg themselves to stable package collections.jTjl!jUjVjWjjY}rr!(j[]j\]j]]j^]j`]ujbMjchjN]rs!(jlXAllows a “default” rt!ru!}rv!(jSXAllows a "default" jUNjbNjchjTjp!ubj)rw!}rx!(jSX``cabal.config``jY}ry!(j[]j\]j]]j^]j`]ujTjp!jN]rz!jlX cabal.configr{!r|!}r}!(jSX cabal.configjTjw!ubajWjubjlX freeze file to be passed in manually. This file will only be used if one does not exist in the project directory already. Typically, this can be set from the global cabal r~!r!}r!(jSX freeze file to be passed in manually. This file will only be used if one does not exist in the project directory already. Typically, this can be set from the global cabal jUNjbNjchjTjp!ubj)r!}r!(jSX ``config``jY}r!(j[]j\]j]]j^]j`]ujTjp!jN]r!jlXconfigr!r!}r!(jSXconfigjTj!ubajWjubjlX file so as to provide a default set of partial constraints to be used by projects, providing a way for users to peg themselves to stable package collections.r!r!}r!(jSX file so as to provide a default set of partial constraints to be used by projects, providing a way for users to peg themselves to stable package collections.jUNjbNjchjTjp!ubeubaubeubj)r!}r!(jSUjTjjUjVjWjjY}r!(j^]j]]j[]j\]j`]Uentries]r!(jXHsetup-configure command line option; --enable-optimization[=n] or -O [n]jUNtr!aujbNjchjN]ubj)r!}r!(jSUjTjjUjVjWjjY}r!(jjXstdj^]j]]j[]j\]j`]jXoptionr!jj!ujbNjchjN]r!(j)r!}r!(jSX#--enable-optimization[=n] or -O [n]jTj!jUjVjWjjY}r!(j]r!X--enable-optimization[r!aj^]r!jaj]]j[]j\]j`]r!hsajujbMjchjN]r!(j)r!}r!(jSj!jTj!jUjVjWjjY}r!(jjj^]j]]j[]j\]j`]ujbMjchjN]r!jlX--enable-optimization[r!r!}r!(jSUjUNjbNjchjTj!ubaubj)r!}r!(jSX =n] or -O [n]jTj!jUjVjWjjY}r!(jjj^]j]]j[]j\]j`]ujbMjchjN]r!jlX =n] or -O [n]r!r!}r!(jSUjUNjbNjchjTj!ubaubeubj)r!}r!(jSUjTj!jUjVjWjjY}r!(j[]j\]j]]j^]j`]ujbMjchjN]r!(j)r!}r!(jSX(default) Build with optimization flags (if available). This is appropriate for production use, taking more time to build faster libraries and programs.r!jTj!jUjVjWjjY}r!(j[]j\]j]]j^]j`]ujbMjchjN]r!jlX(default) Build with optimization flags (if available). This is appropriate for production use, taking more time to build faster libraries and programs.r!r!}r!(jSj!jUNjbNjchjTj!ubaubj)r!}r!(jSXtThe optional *n* value is the optimisation level. Some compilers support multiple optimisation levels. The range is 0 to 2. Level 0 is equivalent to :option:`--disable-optimization`, level 1 is the default if no *n* parameter is given. Level 2 is higher optimisation if the compiler supports it. Level 2 is likely to lead to longer compile times and bigger generated code.jTj!jUjVjWjjY}r!(j[]j\]j]]j^]j`]ujbMjchjN]r!(jlX The optional r!r!}r!(jSX The optional jUNjbNjchjTj!ubj)r!}r!(jSX*n*jY}r!(j[]j\]j]]j^]j`]ujTj!jN]r!jlXnr!}r!(jSXnjTj!ubajWjubjlX value is the optimisation level. Some compilers support multiple optimisation levels. The range is 0 to 2. Level 0 is equivalent to r!r!}r!(jSX value is the optimisation level. Some compilers support multiple optimisation levels. The range is 0 to 2. Level 0 is equivalent to jUNjbNjchjTj!ubj)r!}r!(jSX :option:`--disable-optimization`jTj!jUjVjWjjY}r!(UreftypeXoptionjjX--disable-optimizationr!U refdomainXstdr!j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r!j)r!}r!(jSj!jY}r!(j[]j\]r!(jj!X std-optionr!ej]]j^]j`]ujTj!jN]r!jlX--disable-optimizationr!r!}r!(jSUjTj!ubajWjubaubjlX, level 1 is the default if no r!r!}r!(jSX, level 1 is the default if no jUNjbNjchjTj!ubj)r!}r!(jSX*n*jY}r!(j[]j\]j]]j^]j`]ujTj!jN]r!jlXnr!}r!(jSXnjTj!ubajWjubjlX parameter is given. Level 2 is higher optimisation if the compiler supports it. Level 2 is likely to lead to longer compile times and bigger generated code.r!r!}r!(jSX parameter is given. Level 2 is higher optimisation if the compiler supports it. Level 2 is likely to lead to longer compile times and bigger generated code.jUNjbNjchjTj!ubeubj)r!}r!(jSXGWhen optimizations are enabled, Cabal passes ``-O2`` to the C compiler.jTj!jUjVjWjjY}r!(j[]j\]j]]j^]j`]ujbMjchjN]r!(jlX-When optimizations are enabled, Cabal passes r!r!}r!(jSX-When optimizations are enabled, Cabal passes jUNjbNjchjTj!ubj)r!}r!(jSX``-O2``jY}r!(j[]j\]j]]j^]j`]ujTj!jN]r!jlX-O2r!r!}r!(jSX-O2jTj!ubajWjubjlX to the C compiler.r!r!}r!(jSX to the C compiler.jUNjbNjchjTj!ubeubeubeubj)r!}r!(jSUjTjjUjVjWjjY}r!(j^]j]]j[]j\]j`]Uentries]r!(jX;setup-configure command line option; --disable-optimizationhUNtr!aujbNjchjN]ubj)r!}r!(jSUjTjjUjVjWjjY}r!(jjXstdj^]j]]j[]j\]j`]jXoptionr!jj!ujbNjchjN]r!(j)r!}r!(jSX--disable-optimizationr!jTj!jUjVjWjjY}r"(j]r"j!aj^]r"haj]]j[]j\]j`]r"hGajujbMjchjN]r"(j)r"}r"(jSj!jTj!jUjVjWjjY}r"(jjj^]j]]j[]j\]j`]ujbMjchjN]r"jlX--disable-optimizationr "r "}r "(jSUjUNjbNjchjTj"ubaubj)r "}r "(jSUjTj!jUjVjWjjY}r"(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r"}r"(jSUjTj!jUjVjWjjY}r"(j[]j\]j]]j^]j`]ujbMjchjN]r"j)r"}r"(jSXBuild without optimization. This is suited for development: building will be quicker, but the resulting library or programs will be slower.r"jTj"jUjVjWjjY}r"(j[]j\]j]]j^]j`]ujbMjchjN]r"jlXBuild without optimization. This is suited for development: building will be quicker, but the resulting library or programs will be slower.r"r"}r"(jSj"jUNjbNjchjTj"ubaubaubeubj)r"}r"(jSUjTjjUjVjWjjY}r"(j^]j]]j[]j\]j`]Uentries]r"(jX7setup-configure command line option; --enable-profilinghUNtr"aujbNjchjN]ubj)r "}r!"(jSUjTjjUjVjWjjY}r""(jjXstdj^]j]]j[]j\]j`]jXoptionr#"jj#"ujbNjchjN]r$"(j)r%"}r&"(jSX--enable-profilingr'"jTj "jUjVjWjjY}r("(j]r)"j'"aj^]r*"haj]]j[]j\]j`]r+"h&ajujbMjchjN]r,"(j)r-"}r."(jSj'"jTj%"jUjVjWjjY}r/"(jjj^]j]]j[]j\]j`]ujbMjchjN]r0"jlX--enable-profilingr1"r2"}r3"(jSUjUNjbNjchjTj-"ubaubj)r4"}r5"(jSUjTj%"jUjVjWjjY}r6"(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r7"}r8"(jSUjTj "jUjVjWjjY}r9"(j[]j\]j]]j^]j`]ujbMjchjN]r:"(j)r;"}r<"(jSXBuild libraries and executables with profiling enabled (for compilers that support profiling as a separate mode). For this to work, all libraries used by this package must also have been built with profiling support. For libraries this involves building an additional instance of the library in addition to the normal non-profiling instance. For executables it changes the single executable to be built in profiling mode.r="jTj7"jUjVjWjjY}r>"(j[]j\]j]]j^]j`]ujbMjchjN]r?"jlXBuild libraries and executables with profiling enabled (for compilers that support profiling as a separate mode). For this to work, all libraries used by this package must also have been built with profiling support. For libraries this involves building an additional instance of the library in addition to the normal non-profiling instance. For executables it changes the single executable to be built in profiling mode.r@"rA"}rB"(jSj="jUNjbNjchjTj;"ubaubj)rC"}rD"(jSXxThis flag covers both libraries and executables, but can be overridden by the :option:`--enable-library-profiling` flag.jTj7"jUjVjWjjY}rE"(j[]j\]j]]j^]j`]ujbMjchjN]rF"(jlXNThis flag covers both libraries and executables, but can be overridden by the rG"rH"}rI"(jSXNThis flag covers both libraries and executables, but can be overridden by the jUNjbNjchjTjC"ubj)rJ"}rK"(jSX$:option:`--enable-library-profiling`jTjC"jUjVjWjjY}rL"(UreftypeXoptionjjX--enable-library-profilingrM"U refdomainXstdrN"j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rO"j)rP"}rQ"(jSjM"jY}rR"(j[]j\]rS"(jjN"X std-optionrT"ej]]j^]j`]ujTjJ"jN]rU"jlX--enable-library-profilingrV"rW"}rX"(jSUjTjP"ubajWjubaubjlX flag.rY"rZ"}r["(jSX flag.jUNjbNjchjTjC"ubeubj)r\"}r]"(jSX5See also the :option:`--profiling-detail` flag below.jTj7"jUjVjWjjY}r^"(j[]j\]j]]j^]j`]ujbMjchjN]r_"(jlX See also the r`"ra"}rb"(jSX See also the jUNjbNjchjTj\"ubj)rc"}rd"(jSX:option:`--profiling-detail`jTj\"jUjVjWjjY}re"(UreftypeXoptionjjX--profiling-detailrf"U refdomainXstdrg"j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rh"j)ri"}rj"(jSjf"jY}rk"(j[]j\]rl"(jjg"X std-optionrm"ej]]j^]j`]ujTjc"jN]rn"jlX--profiling-detailro"rp"}rq"(jSUjTji"ubajWjubaubjlX flag below.rr"rs"}rt"(jSX flag below.jUNjbNjchjTj\"ubeubeubeubj)ru"}rv"(jSUjTjjUjVjWjjY}rw"(j^]j]]j[]j\]j`]Uentries]rx"(jX8setup-configure command line option; --disable-profilingjUNtry"aujbNjchjN]ubj)rz"}r{"(jSUjTjjUjVjWjjY}r|"(jjXstdj^]j]]j[]j\]j`]jXoptionr}"jj}"ujbNjchjN]r~"(j)r"}r"(jSX--disable-profilingr"jTjz"jUjVjWjjY}r"(j]r"j"aj^]r"jaj]]j[]j\]j`]r"h]ajujbMjchjN]r"(j)r"}r"(jSj"jTj"jUjVjWjjY}r"(jjj^]j]]j[]j\]j`]ujbMjchjN]r"jlX--disable-profilingr"r"}r"(jSUjUNjbNjchjTj"ubaubj)r"}r"(jSUjTj"jUjVjWjjY}r"(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r"}r"(jSUjTjz"jUjVjWjjY}r"(j[]j\]j]]j^]j`]ujbMjchjN]r"j)r"}r"(jSXI(default) Do not enable profiling in generated libraries and executables.r"jTj"jUjVjWjjY}r"(j[]j\]j]]j^]j`]ujbMjchjN]r"jlXI(default) Do not enable profiling in generated libraries and executables.r"r"}r"(jSj"jUNjbNjchjTj"ubaubaubeubj)r"}r"(jSUjTjjUjVjWjjY}r"(j^]j]]j[]j\]j`]Uentries]r"(jXEsetup-configure command line option; --enable-library-profiling or -phUNtr"aujbNjchjN]ubj)r"}r"(jSUjTjjUjVjWjjY}r"(jjXstdj^]j]]j[]j\]j`]jXoptionr"jj"ujbNjchjN]r"(j)r"}r"(jSX --enable-library-profiling or -pjTj"jUjVjWjjY}r"(j]r"X--enable-library-profilingr"aj^]r"haj]]j[]j\]j`]r"hajujbMjchjN]r"(j)r"}r"(jSj"jTj"jUjVjWjjY}r"(jjj^]j]]j[]j\]j`]ujbMjchjN]r"jlX--enable-library-profilingr"r"}r"(jSUjUNjbNjchjTj"ubaubj)r"}r"(jSX or -pjTj"jUjVjWjjY}r"(jjj^]j]]j[]j\]j`]ujbMjchjN]r"jlX or -pr"r"}r"(jSUjUNjbNjchjTj"ubaubeubj)r"}r"(jSUjTj"jUjVjWjjY}r"(j[]j\]j]]j^]j`]ujbMjchjN]r"(j)r"}r"(jSXAs with :option:`--enable-profiling` above, but it applies only for libraries. So this generates an additional profiling instance of the library in addition to the normal non-profiling instance.jTj"jUjVjWjjY}r"(j[]j\]j]]j^]j`]ujbMjchjN]r"(jlXAs with r"r"}r"(jSXAs with jUNjbNjchjTj"ubj)r"}r"(jSX:option:`--enable-profiling`jTj"jUjVjWjjY}r"(UreftypeXoptionjjX--enable-profilingr"U refdomainXstdr"j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r"j)r"}r"(jSj"jY}r"(j[]j\]r"(jj"X std-optionr"ej]]j^]j`]ujTj"jN]r"jlX--enable-profilingr"r"}r"(jSUjTj"ubajWjubaubjlX above, but it applies only for libraries. So this generates an additional profiling instance of the library in addition to the normal non-profiling instance.r"r"}r"(jSX above, but it applies only for libraries. So this generates an additional profiling instance of the library in addition to the normal non-profiling instance.jUNjbNjchjTj"ubeubj)r"}r"(jSXThe :option:`--enable-profiling` flag controls the profiling mode for both libraries and executables, but if different modes are desired for libraries versus executables then use :option:`--enable-library-profiling` as well.jTj"jUjVjWjjY}r"(j[]j\]j]]j^]j`]ujbMjchjN]r"(jlXThe r"r"}r"(jSXThe jUNjbNjchjTj"ubj)r"}r"(jSX:option:`--enable-profiling`jTj"jUjVjWjjY}r"(UreftypeXoptionjjX--enable-profilingr"U refdomainXstdr"j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r"j)r"}r"(jSj"jY}r"(j[]j\]r"(jj"X std-optionr"ej]]j^]j`]ujTj"jN]r"jlX--enable-profilingr"r"}r"(jSUjTj"ubajWjubaubjlX flag controls the profiling mode for both libraries and executables, but if different modes are desired for libraries versus executables then use r"r"}r"(jSX flag controls the profiling mode for both libraries and executables, but if different modes are desired for libraries versus executables then use jUNjbNjchjTj"ubj)r"}r"(jSX$:option:`--enable-library-profiling`jTj"jUjVjWjjY}r"(UreftypeXoptionjjX--enable-library-profilingr"U refdomainXstdr"j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r"j)r"}r"(jSj"jY}r"(j[]j\]r"(jj"X std-optionr"ej]]j^]j`]ujTj"jN]r"jlX--enable-library-profilingr"r#}r#(jSUjTj"ubajWjubaubjlX as well.r#r#}r#(jSX as well.jUNjbNjchjTj"ubeubeubeubj)r#}r#(jSUjTjjUjVjWjjY}r#(j^]j]]j[]j\]j`]Uentries]r#(jX@setup-configure command line option; --disable-library-profilinghUNtr #aujbNjchjN]ubj)r #}r #(jSUjTjjUjVjWjjY}r #(jjXstdj^]j]]j[]j\]j`]jXoptionr #jj #ujbNjchjN]r#(j)r#}r#(jSX--disable-library-profilingr#jTj #jUjVjWjjY}r#(j]r#j#aj^]r#haj]]j[]j\]j`]r#h;ajujbM jchjN]r#(j)r#}r#(jSj#jTj#jUjVjWjjY}r#(jjj^]j]]j[]j\]j`]ujbM jchjN]r#jlX--disable-library-profilingr#r#}r#(jSUjUNjbNjchjTj#ubaubj)r#}r#(jSUjTj#jUjVjWjjY}r #(jjj^]j]]j[]j\]j`]ujbM jchjN]ubeubj)r!#}r"#(jSUjTj #jUjVjWjjY}r##(j[]j\]j]]j^]j`]ujbM jchjN]r$#j)r%#}r&#(jSXI(default) Do not generate an additional profiling version of the library.r'#jTj!#jUjVjWjjY}r(#(j[]j\]j]]j^]j`]ujbM jchjN]r)#jlXI(default) Do not generate an additional profiling version of the library.r*#r+#}r,#(jSj'#jUNjbNjchjTj%#ubaubaubeubj)r-#}r.#(jSUjTjjUjVjWjjY}r/#(j^]j]]j[]j\]j`]Uentries]r0#(jX?setup-configure command line option; --profiling-detail[=level]jUNtr1#aujbNjchjN]ubj)r2#}r3#(jSUjTjjUjVjWjjY}r4#(jjXstdj^]j]]j[]j\]j`]jXoptionr5#jj5#ujbNjchjN]r6#(j)r7#}r8#(jSX--profiling-detail[=level]r9#jTj2#jUjVjWjjY}r:#(j]r;#X--profiling-detail[r<#aj^]r=#jaj]]j[]j\]j`]r>#hkajujbM1jchjN]r?#(j)r@#}rA#(jSj<#jTj7#jUjVjWjjY}rB#(jjj^]j]]j[]j\]j`]ujbM1jchjN]rC#jlX--profiling-detail[rD#rE#}rF#(jSUjUNjbNjchjTj@#ubaubj)rG#}rH#(jSX=level]jTj7#jUjVjWjjY}rI#(jjj^]j]]j[]j\]j`]ujbM1jchjN]rJ#jlX=level]rK#rL#}rM#(jSUjUNjbNjchjTjG#ubaubeubj)rN#}rO#(jSUjTj2#jUjVjWjjY}rP#(j[]j\]j]]j^]j`]ujbM1jchjN]rQ#(j)rR#}rS#(jSXGSome compilers that support profiling, notably GHC, can allocate costs to different parts of the program and there are different levels of granularity or detail with which this can be done. In particular for GHC this concept is called "cost centers", and GHC can automatically add cost centers, and can do so in different ways.rT#jTjN#jUjVjWjjY}rU#(j[]j\]j]]j^]j`]ujbMjchjN]rV#jlXKSome compilers that support profiling, notably GHC, can allocate costs to different parts of the program and there are different levels of granularity or detail with which this can be done. In particular for GHC this concept is called “cost centers”, and GHC can automatically add cost centers, and can do so in different ways.rW#rX#}rY#(jSjT#jUNjbNjchjTjR#ubaubj)rZ#}r[#(jSXxThis flag covers both libraries and executables, but can be overridden by the :option:`--library-profiling-detail` flag.jTjN#jUjVjWjjY}r\#(j[]j\]j]]j^]j`]ujbMjchjN]r]#(jlXNThis flag covers both libraries and executables, but can be overridden by the r^#r_#}r`#(jSXNThis flag covers both libraries and executables, but can be overridden by the jUNjbNjchjTjZ#ubj)ra#}rb#(jSX$:option:`--library-profiling-detail`jTjZ#jUjVjWjjY}rc#(UreftypeXoptionjjX--library-profiling-detailrd#U refdomainXstdre#j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rf#j)rg#}rh#(jSjd#jY}ri#(j[]j\]rj#(jje#X std-optionrk#ej]]j^]j`]ujTja#jN]rl#jlX--library-profiling-detailrm#rn#}ro#(jSUjTjg#ubajWjubaubjlX flag.rp#rq#}rr#(jSX flag.jUNjbNjchjTjZ#ubeubj)rs#}rt#(jSXmCurrently this setting is ignored for compilers other than GHC. The levels that cabal currently supports are:ru#jTjN#jUjVjWjjY}rv#(j[]j\]j]]j^]j`]ujbMjchjN]rw#jlXmCurrently this setting is ignored for compilers other than GHC. The levels that cabal currently supports are:rx#ry#}rz#(jSju#jUNjbNjchjTjs#ubaubj)r{#}r|#(jSUjTjN#jUjVjWjjY}r}#(j[]j\]j]]j^]j`]ujbNjchjN]r~#(j)r#}r#(jSXjdefault For GHC this uses ``exported-functions`` for libraries and ``toplevel-functions`` for executables.jTj{#jUjVjWjjY}r#(j[]j\]j]]j^]j`]ujbMjN]r#(j!)r#}r#(jSXdefaultr#jTj#jUjVjWj%jY}r#(j[]j\]j]]j^]j`]ujbMjN]r#jlXdefaultr#r#}r#(jSj#jTj#ubaubj+)r#}r#(jSUjY}r#(j[]j\]j]]j^]j`]ujTj#jN]r#j)r#}r#(jSXbFor GHC this uses ``exported-functions`` for libraries and ``toplevel-functions`` for executables.jTj#jUjVjWjjY}r#(j[]j\]j]]j^]j`]ujbMjN]r#(jlXFor GHC this uses r#r#}r#(jSXFor GHC this uses jTj#ubj)r#}r#(jSX``exported-functions``jY}r#(j[]j\]j]]j^]j`]ujTj#jN]r#jlXexported-functionsr#r#}r#(jSXexported-functionsjTj#ubajWjubjlX for libraries and r#r#}r#(jSX for libraries and jTj#ubj)r#}r#(jSX``toplevel-functions``jY}r#(j[]j\]j]]j^]j`]ujTj#jN]r#jlXtoplevel-functionsr#r#}r#(jSXtoplevel-functionsjTj#ubajWjubjlX for executables.r#r#}r#(jSX for executables.jTj#ubeubajWjAubeubj)r#}r#(jSXAnone No costs will be assigned to any code within this component.jTj{#jUjVjWjjY}r#(j[]j\]j]]j^]j`]ujbMjchjN]r#(j!)r#}r#(jSXnoner#jTj#jUjVjWj%jY}r#(j[]j\]j]]j^]j`]ujbMjN]r#jlXnoner#r#}r#(jSj#jTj#ubaubj+)r#}r#(jSUjY}r#(j[]j\]j]]j^]j`]ujTj#jN]r#j)r#}r#(jSX<No costs will be assigned to any code within this component.r#jTj#jUjVjWjjY}r#(j[]j\]j]]j^]j`]ujbMjN]r#jlX<No costs will be assigned to any code within this component.r#r#}r#(jSj#jTj#ubaubajWjAubeubj)r#}r#(jSXexported-functions Costs will be assigned at the granularity of all top level functions exported from each module. In GHC specifically, this is for non-inline functions.jTj{#jUjVjWjjY}r#(j[]j\]j]]j^]j`]ujbM"jchjN]r#(j!)r#}r#(jSXexported-functionsr#jTj#jUjVjWj%jY}r#(j[]j\]j]]j^]j`]ujbM"jN]r#jlXexported-functionsr#r#}r#(jSj#jTj#ubaubj+)r#}r#(jSUjY}r#(j[]j\]j]]j^]j`]ujTj#jN]r#j)r#}r#(jSXCosts will be assigned at the granularity of all top level functions exported from each module. In GHC specifically, this is for non-inline functions.r#jTj#jUjVjWjjY}r#(j[]j\]j]]j^]j`]ujbM!jN]r#jlXCosts will be assigned at the granularity of all top level functions exported from each module. In GHC specifically, this is for non-inline functions.r#r#}r#(jSj#jTj#ubaubajWjAubeubj)r#}r#(jSXtoplevel-functions Costs will be assigned at the granularity of all top level functions in each module, whether they are exported from the module or not. In GHC specifically, this is for non-inline functions.jTj{#jUjVjWjjY}r#(j[]j\]j]]j^]j`]ujbM'jchjN]r#(j!)r#}r#(jSXtoplevel-functionsr#jTj#jUjVjWj%jY}r#(j[]j\]j]]j^]j`]ujbM'jN]r#jlXtoplevel-functionsr#r#}r#(jSj#jTj#ubaubj+)r#}r#(jSUjY}r#(j[]j\]j]]j^]j`]ujTj#jN]r#j)r#}r#(jSXCosts will be assigned at the granularity of all top level functions in each module, whether they are exported from the module or not. In GHC specifically, this is for non-inline functions.r#jTj#jUjVjWjjY}r#(j[]j\]j]]j^]j`]ujbM%jN]r#jlXCosts will be assigned at the granularity of all top level functions in each module, whether they are exported from the module or not. In GHC specifically, this is for non-inline functions.r#r#}r#(jSj#jTj#ubaubajWjAubeubj)r#}r#(jSXall-functions Costs will be assigned at the granularity of all functions in each module, whether top level or local. In GHC specifically, this is for non-inline toplevel or where-bound functions or values. jTj{#jUjVjWjjY}r#(j[]j\]j]]j^]j`]ujbM-jchjN]r#(j!)r#}r#(jSX all-functionsr#jTj#jUjVjWj%jY}r#(j[]j\]j]]j^]j`]ujbM-jN]r#jlX all-functionsr#r#}r#(jSj#jTj#ubaubj+)r#}r#(jSUjY}r$(j[]j\]j]]j^]j`]ujTj#jN]r$j)r$}r$(jSXCosts will be assigned at the granularity of all functions in each module, whether top level or local. In GHC specifically, this is for non-inline toplevel or where-bound functions or values.r$jTj#jUjVjWjjY}r$(j[]j\]j]]j^]j`]ujbM*jN]r$jlXCosts will be assigned at the granularity of all functions in each module, whether top level or local. In GHC specifically, this is for non-inline toplevel or where-bound functions or values.r$r$}r $(jSj$jTj$ubaubajWjAubeubeubj)r $}r $(jSXUThis flag is new in Cabal-1.24. Prior versions used the equivalent of ``none`` above.jTjN#jUjVjWjjY}r $(j[]j\]j]]j^]j`]ujbM/jchjN]r $(jlXFThis flag is new in Cabal-1.24. Prior versions used the equivalent of r$r$}r$(jSXFThis flag is new in Cabal-1.24. Prior versions used the equivalent of jUNjbNjchjTj $ubj)r$}r$(jSX``none``jY}r$(j[]j\]j]]j^]j`]ujTj $jN]r$jlXnoner$r$}r$(jSXnonejTj$ubajWjubjlX above.r$r$}r$(jSX above.jUNjbNjchjTj $ubeubeubeubj)r$}r$(jSUjTjjUjVjWjjY}r$(j^]j]]j[]j\]j`]Uentries]r$(jXGsetup-configure command line option; --library-profiling-detail[=level]hUNtr$aujbNjchjN]ubj)r $}r!$(jSUjTjjUjVjWjjY}r"$(jjXstdj^]j]]j[]j\]j`]jXoptionr#$jj#$ujbNjchjN]r$$(j)r%$}r&$(jSX"--library-profiling-detail[=level]jTj $jUjVjWjjY}r'$(j]r($X--library-profiling-detail[r)$aj^]r*$haj]]j[]j\]j`]r+$hMajujbM;jchjN]r,$(j)r-$}r.$(jSj)$jTj%$jUjVjWjjY}r/$(jjj^]j]]j[]j\]j`]ujbM;jchjN]r0$jlX--library-profiling-detail[r1$r2$}r3$(jSUjUNjbNjchjTj-$ubaubj)r4$}r5$(jSX=level]jTj%$jUjVjWjjY}r6$(jjj^]j]]j[]j\]j`]ujbM;jchjN]r7$jlX=level]r8$r9$}r:$(jSUjUNjbNjchjTj4$ubaubeubj)r;$}r<$(jSUjTj $jUjVjWjjY}r=$(j[]j\]j]]j^]j`]ujbM;jchjN]r>$(j)r?$}r@$(jSXNAs with :option:`--profiling-detail` above, but it applies only for libraries.jTj;$jUjVjWjjY}rA$(j[]j\]j]]j^]j`]ujbM4jchjN]rB$(jlXAs with rC$rD$}rE$(jSXAs with jUNjbNjchjTj?$ubj)rF$}rG$(jSX:option:`--profiling-detail`jTj?$jUjVjWjjY}rH$(UreftypeXoptionjjX--profiling-detailrI$U refdomainXstdrJ$j^]j]]U refexplicitj[]j\]j`]jjjjujbM4jN]rK$j)rL$}rM$(jSjI$jY}rN$(j[]j\]rO$(jjJ$X std-optionrP$ej]]j^]j`]ujTjF$jN]rQ$jlX--profiling-detailrR$rS$}rT$(jSUjTjL$ubajWjubaubjlX* above, but it applies only for libraries.rU$rV$}rW$(jSX* above, but it applies only for libraries.jUNjbNjchjTj?$ubeubj)rX$}rY$(jSXThe level for both libraries and executables is set by the :option:`--profiling-detail` flag, but if different levels are desired for libraries versus executables then use :option:`--library-profiling-detail` as well.jTj;$jUjVjWjjY}rZ$(j[]j\]j]]j^]j`]ujbM7jchjN]r[$(jlX;The level for both libraries and executables is set by the r\$r]$}r^$(jSX;The level for both libraries and executables is set by the jUNjbNjchjTjX$ubj)r_$}r`$(jSX:option:`--profiling-detail`jTjX$jUjVjWjjY}ra$(UreftypeXoptionjjX--profiling-detailrb$U refdomainXstdrc$j^]j]]U refexplicitj[]j\]j`]jjjjujbM7jN]rd$j)re$}rf$(jSjb$jY}rg$(j[]j\]rh$(jjc$X std-optionri$ej]]j^]j`]ujTj_$jN]rj$jlX--profiling-detailrk$rl$}rm$(jSUjTje$ubajWjubaubjlXU flag, but if different levels are desired for libraries versus executables then use rn$ro$}rp$(jSXU flag, but if different levels are desired for libraries versus executables then use jUNjbNjchjTjX$ubj)rq$}rr$(jSX$:option:`--library-profiling-detail`jTjX$jUjVjWjjY}rs$(UreftypeXoptionjjX--library-profiling-detailrt$U refdomainXstdru$j^]j]]U refexplicitj[]j\]j`]jjjjujbM7jN]rv$j)rw$}rx$(jSjt$jY}ry$(j[]j\]rz$(jju$X std-optionr{$ej]]j^]j`]ujTjq$jN]r|$jlX--library-profiling-detailr}$r~$}r$(jSUjTjw$ubajWjubaubjlX as well.r$r$}r$(jSX as well.jUNjbNjchjTjX$ubeubeubeubj)r$}r$(jSUjTjjUjVjWjjY}r$(j^]j]]j[]j\]j`]Uentries]r$(jX=setup-configure command line option; --enable-library-vanillajUNtr$aujbNjchjN]ubj)r$}r$(jSUjTjjUjVjWjjY}r$(jjXstdj^]j]]j[]j\]j`]jXoptionr$jj$ujbNjchjN]r$(j)r$}r$(jSX--enable-library-vanillar$jTj$jUjVjWjjY}r$(j]r$j$aj^]r$jaj]]j[]j\]j`]r$hjajujbMBjchjN]r$(j)r$}r$(jSj$jTj$jUjVjWjjY}r$(jjj^]j]]j[]j\]j`]ujbMBjchjN]r$jlX--enable-library-vanillar$r$}r$(jSUjUNjbNjchjTj$ubaubj)r$}r$(jSUjTj$jUjVjWjjY}r$(jjj^]j]]j[]j\]j`]ujbMBjchjN]ubeubj)r$}r$(jSUjTj$jUjVjWjjY}r$(j[]j\]j]]j^]j`]ujbMBjchjN]r$j)r$}r$(jSX(default) Build ordinary libraries (as opposed to profiling libraries). This is independent of the :option:`--enable-library-profiling` option. If you enable both, you get both.jTj$jUjVjWjjY}r$(j[]j\]j]]j^]j`]ujbM>jchjN]r$(jlXc(default) Build ordinary libraries (as opposed to profiling libraries). This is independent of the r$r$}r$(jSXc(default) Build ordinary libraries (as opposed to profiling libraries). This is independent of the jUNjbNjchjTj$ubj)r$}r$(jSX$:option:`--enable-library-profiling`jTj$jUjVjWjjY}r$(UreftypeXoptionjjX--enable-library-profilingr$U refdomainXstdr$j^]j]]U refexplicitj[]j\]j`]jjjjujbM>jN]r$j)r$}r$(jSj$jY}r$(j[]j\]r$(jj$X std-optionr$ej]]j^]j`]ujTj$jN]r$jlX--enable-library-profilingr$r$}r$(jSUjTj$ubajWjubaubjlX* option. If you enable both, you get both.r$r$}r$(jSX* option. If you enable both, you get both.jUNjbNjchjTj$ubeubaubeubj)r$}r$(jSUjTjjUjVjWjjY}r$(j^]j]]j[]j\]j`]Uentries]r$(jX>setup-configure command line option; --disable-library-vanillahUNtr$aujbNjchjN]ubj)r$}r$(jSUjTjjUjVjWjjY}r$(jjXstdj^]j]]j[]j\]j`]jXoptionr$jj$ujbNjchjN]r$(j)r$}r$(jSX--disable-library-vanillar$jTj$jUjVjWjjY}r$(j]r$j$aj^]r$haj]]j[]j\]j`]r$hajujbMHjchjN]r$(j)r$}r$(jSj$jTj$jUjVjWjjY}r$(jjj^]j]]j[]j\]j`]ujbMHjchjN]r$jlX--disable-library-vanillar$r$}r$(jSUjUNjbNjchjTj$ubaubj)r$}r$(jSUjTj$jUjVjWjjY}r$(jjj^]j]]j[]j\]j`]ujbMHjchjN]ubeubj)r$}r$(jSUjTj$jUjVjWjjY}r$(j[]j\]j]]j^]j`]ujbMHjchjN]r$j)r$}r$(jSXDo not build ordinary libraries. This is useful in conjunction with :option:`--enable-library-profiling` to build only profiling libraries, rather than profiling and ordinary libraries.jTj$jUjVjWjjY}r$(j[]j\]j]]j^]j`]ujbMEjchjN]r$(jlXDDo not build ordinary libraries. This is useful in conjunction with r$r$}r$(jSXDDo not build ordinary libraries. This is useful in conjunction with jUNjbNjchjTj$ubj)r$}r$(jSX$:option:`--enable-library-profiling`jTj$jUjVjWjjY}r$(UreftypeXoptionjjX--enable-library-profilingr$U refdomainXstdr$j^]j]]U refexplicitj[]j\]j`]jjjjujbMEjN]r$j)r$}r$(jSj$jY}r$(j[]j\]r$(jj$X std-optionr$ej]]j^]j`]ujTj$jN]r$jlX--enable-library-profilingr$r$}r$(jSUjTj$ubajWjubaubjlXQ to build only profiling libraries, rather than profiling and ordinary libraries.r$r$}r$(jSXQ to build only profiling libraries, rather than profiling and ordinary libraries.jUNjbNjchjTj$ubeubaubeubj)r$}r$(jSUjTjjUjVjWjjY}r$(j^]j]]j[]j\]j`]Uentries]r$(jX>setup-configure command line option; --enable-library-for-ghcihUNtr$aujbNjchjN]ubj)r$}r$(jSUjTjjUjVjWjjY}r$(jjXstdj^]j]]j[]j\]j`]jXoptionr$jj$ujbNjchjN]r$(j)r$}r%(jSX--enable-library-for-ghcir%jTj$jUjVjWjjY}r%(j]r%j%aj^]r%haj]]j[]j\]j`]r%h ajujbMLjchjN]r%(j)r%}r%(jSj%jTj$jUjVjWjjY}r %(jjj^]j]]j[]j\]j`]ujbMLjchjN]r %jlX--enable-library-for-ghcir %r %}r %(jSUjUNjbNjchjTj%ubaubj)r%}r%(jSUjTj$jUjVjWjjY}r%(jjj^]j]]j[]j\]j`]ujbMLjchjN]ubeubj)r%}r%(jSUjTj$jUjVjWjjY}r%(j[]j\]j]]j^]j`]ujbMLjchjN]r%j)r%}r%(jSX5(default) Build libraries suitable for use with GHCi.r%jTj%jUjVjWjjY}r%(j[]j\]j]]j^]j`]ujbMKjchjN]r%jlX5(default) Build libraries suitable for use with GHCi.r%r%}r%(jSj%jUNjbNjchjTj%ubaubaubeubj)r%}r%(jSUjTjjUjVjWjjY}r%(j^]j]]j[]j\]j`]Uentries]r %(jX?setup-configure command line option; --disable-library-for-ghcihUNtr!%aujbNjchjN]ubj)r"%}r#%(jSUjTjjUjVjWjjY}r$%(jjXstdj^]j]]j[]j\]j`]jXoptionr%%jj%%ujbNjchjN]r&%(j)r'%}r(%(jSX--disable-library-for-ghcir)%jTj"%jUjVjWjjY}r*%(j]r+%j)%aj^]r,%haj]]j[]j\]j`]r-%hajujbMRjchjN]r.%(j)r/%}r0%(jSj)%jTj'%jUjVjWjjY}r1%(jjj^]j]]j[]j\]j`]ujbMRjchjN]r2%jlX--disable-library-for-ghcir3%r4%}r5%(jSUjUNjbNjchjTj/%ubaubj)r6%}r7%(jSUjTj'%jUjVjWjjY}r8%(jjj^]j]]j[]j\]j`]ujbMRjchjN]ubeubj)r9%}r:%(jSUjTj"%jUjVjWjjY}r;%(j[]j\]j]]j^]j`]ujbMRjchjN]r<%j)r=%}r>%(jSXNot all platforms support GHCi and indeed on some platforms, trying to build GHCi libs fails. In such cases this flag can be used as a workaround.r?%jTj9%jUjVjWjjY}r@%(j[]j\]j]]j^]j`]ujbMOjchjN]rA%jlXNot all platforms support GHCi and indeed on some platforms, trying to build GHCi libs fails. In such cases this flag can be used as a workaround.rB%rC%}rD%(jSj?%jUNjbNjchjTj=%ubaubaubeubj)rE%}rF%(jSUjTjjUjVjWjjY}rG%(j^]j]]j[]j\]j`]Uentries]rH%(jX8setup-configure command line option; --enable-split-objshUNtrI%aujbNjchjN]ubj)rJ%}rK%(jSUjTjjUjVjWjjY}rL%(jjXstdj^]j]]j[]j\]j`]jXoptionrM%jjM%ujbNjchjN]rN%(j)rO%}rP%(jSX--enable-split-objsrQ%jTjJ%jUjVjWjjY}rR%(j]rS%jQ%aj^]rT%haj]]j[]j\]j`]rU%h!ajujbMZjchjN]rV%(j)rW%}rX%(jSjQ%jTjO%jUjVjWjjY}rY%(jjj^]j]]j[]j\]j`]ujbMZjchjN]rZ%jlX--enable-split-objsr[%r\%}r]%(jSUjUNjbNjchjTjW%ubaubj)r^%}r_%(jSUjTjO%jUjVjWjjY}r`%(jjj^]j]]j[]j\]j`]ujbMZjchjN]ubeubj)ra%}rb%(jSUjTjJ%jUjVjWjjY}rc%(j[]j\]j]]j^]j`]ujbMZjchjN]rd%j)re%}rf%(jSX6Use the GHC ``-split-objs`` feature when building the library. This reduces the final size of the executables that use the library by allowing them to link with only the bits that they use rather than the entire library. The downside is that building the library takes longer and uses considerably more memory.jTja%jUjVjWjjY}rg%(j[]j\]j]]j^]j`]ujbMUjchjN]rh%(jlX Use the GHC ri%rj%}rk%(jSX Use the GHC jUNjbNjchjTje%ubj)rl%}rm%(jSX``-split-objs``jY}rn%(j[]j\]j]]j^]j`]ujTje%jN]ro%jlX -split-objsrp%rq%}rr%(jSX -split-objsjTjl%ubajWjubjlX feature when building the library. This reduces the final size of the executables that use the library by allowing them to link with only the bits that they use rather than the entire library. The downside is that building the library takes longer and uses considerably more memory.rs%rt%}ru%(jSX feature when building the library. This reduces the final size of the executables that use the library by allowing them to link with only the bits that they use rather than the entire library. The downside is that building the library takes longer and uses considerably more memory.jUNjbNjchjTje%ubeubaubeubj)rv%}rw%(jSUjTjjUjVjWjjY}rx%(j^]j]]j[]j\]j`]Uentries]ry%(jX9setup-configure command line option; --disable-split-objsjFUNtrz%aujbNjchjN]ubj)r{%}r|%(jSUjTjjUjVjWjjY}r}%(jjXstdj^]j]]j[]j\]j`]jXoptionr~%jj~%ujbNjchjN]r%(j)r%}r%(jSX--disable-split-objsr%jTj{%jUjVjWjjY}r%(j]r%j%aj^]r%jFaj]]j[]j\]j`]r%hajujbM`jchjN]r%(j)r%}r%(jSj%jTj%jUjVjWjjY}r%(jjj^]j]]j[]j\]j`]ujbM`jchjN]r%jlX--disable-split-objsr%r%}r%(jSUjUNjbNjchjTj%ubaubj)r%}r%(jSUjTj%jUjVjWjjY}r%(jjj^]j]]j[]j\]j`]ujbM`jchjN]ubeubj)r%}r%(jSUjTj{%jUjVjWjjY}r%(j[]j\]j]]j^]j`]ujbM`jchjN]r%j)r%}r%(jSX(default) Do not use the GHC ``-split-objs`` feature. This makes building the library quicker but the final executables that use the library will be larger.jTj%jUjVjWjjY}r%(j[]j\]j]]j^]j`]ujbM]jchjN]r%(jlX(default) Do not use the GHC r%r%}r%(jSX(default) Do not use the GHC jUNjbNjchjTj%ubj)r%}r%(jSX``-split-objs``jY}r%(j[]j\]j]]j^]j`]ujTj%jN]r%jlX -split-objsr%r%}r%(jSX -split-objsjTj%ubajWjubjlXp feature. This makes building the library quicker but the final executables that use the library will be larger.r%r%}r%(jSXp feature. This makes building the library quicker but the final executables that use the library will be larger.jUNjbNjchjTj%ubeubaubeubj)r%}r%(jSUjTjjUjVjWjjY}r%(j^]j]]j[]j\]j`]Uentries]r%(jXBsetup-configure command line option; --enable-executable-strippinghUNtr%aujbNjchjN]ubj)r%}r%(jSUjTjjUjVjWjjY}r%(jjXstdj^]j]]j[]j\]j`]jXoptionr%jj%ujbNjchjN]r%(j)r%}r%(jSX--enable-executable-strippingr%jTj%jUjVjWjjY}r%(j]r%j%aj^]r%haj]]j[]j\]j`]r%hSajujbMljchjN]r%(j)r%}r%(jSj%jTj%jUjVjWjjY}r%(jjj^]j]]j[]j\]j`]ujbMljchjN]r%jlX--enable-executable-strippingr%r%}r%(jSUjUNjbNjchjTj%ubaubj)r%}r%(jSUjTj%jUjVjWjjY}r%(jjj^]j]]j[]j\]j`]ujbMljchjN]ubeubj)r%}r%(jSUjTj%jUjVjWjjY}r%(j[]j\]j]]j^]j`]ujbMljchjN]r%(j)r%}r%(jSX(default) When installing binary executable programs, run the ``strip`` program on the binary. This can considerably reduce the size of the executable binary file. It does this by removing debugging information and symbols. While such extra information is useful for debugging C programs with traditional debuggers it is rarely helpful for debugging binaries produced by Haskell compilers.jTj%jUjVjWjjY}r%(j[]j\]j]]j^]j`]ujbMcjchjN]r%(jlX>(default) When installing binary executable programs, run the r%r%}r%(jSX>(default) When installing binary executable programs, run the jUNjbNjchjTj%ubj)r%}r%(jSX ``strip``jY}r%(j[]j\]j]]j^]j`]ujTj%jN]r%jlXstripr%r%}r%(jSXstripjTj%ubajWjubjlX> program on the binary. This can considerably reduce the size of the executable binary file. It does this by removing debugging information and symbols. While such extra information is useful for debugging C programs with traditional debuggers it is rarely helpful for debugging binaries produced by Haskell compilers.r%r%}r%(jSX> program on the binary. This can considerably reduce the size of the executable binary file. It does this by removing debugging information and symbols. While such extra information is useful for debugging C programs with traditional debuggers it is rarely helpful for debugging binaries produced by Haskell compilers.jUNjbNjchjTj%ubeubj)r%}r%(jSXmNot all Haskell implementations generate native binaries. For such implementations this option has no effect.r%jTj%jUjVjWjjY}r%(j[]j\]j]]j^]j`]ujbMjjchjN]r%jlXmNot all Haskell implementations generate native binaries. For such implementations this option has no effect.r%r%}r%(jSj%jUNjbNjchjTj%ubaubeubeubj)r%}r%(jSUjTjjUjVjWjjY}r%(j^]j]]j[]j\]j`]Uentries]r%(jXCsetup-configure command line option; --disable-executable-strippingj:UNtr%aujbNjchjN]ubj)r%}r%(jSUjTjjUjVjWjjY}r%(jjXstdj^]j]]j[]j\]j`]jXoptionr%jj%ujbNjchjN]r%(j)r%}r%(jSX--disable-executable-strippingr%jTj%jUjVjWjjY}r%(j]r%j%aj^]r%j:aj]]j[]j\]j`]r%hajujbMujchjN]r%(j)r%}r%(jSj%jTj%jUjVjWjjY}r%(jjj^]j]]j[]j\]j`]ujbMujchjN]r%jlX--disable-executable-strippingr%r%}r%(jSUjUNjbNjchjTj%ubaubj)r%}r%(jSUjTj%jUjVjWjjY}r%(jjj^]j]]j[]j\]j`]ujbMujchjN]ubeubj)r%}r%(jSUjTj%jUjVjWjjY}r%(j[]j\]j]]j^]j`]ujbMujchjN]r%j)r&}r&(jSXtDo not strip binary executables during installation. You might want to use this option if you need to debug a program using gdb, for example if you want to debug the C parts of a program containing both Haskell and C code. Another reason is if your are building a package for a system which has a policy of managing the stripping itself (such as some Linux distributions).r&jTj%jUjVjWjjY}r&(j[]j\]j]]j^]j`]ujbMojchjN]r&jlXtDo not strip binary executables during installation. You might want to use this option if you need to debug a program using gdb, for example if you want to debug the C parts of a program containing both Haskell and C code. Another reason is if your are building a package for a system which has a policy of managing the stripping itself (such as some Linux distributions).r&r&}r&(jSj&jUNjbNjchjTj&ubaubaubeubj)r&}r &(jSUjTjjUjVjWjjY}r &(j^]j]]j[]j\]j`]Uentries]r &(jX4setup-configure command line option; --enable-sharedj2UNtr &aujbNjchjN]ubj)r &}r&(jSUjTjjUjVjWjjY}r&(jjXstdj^]j]]j[]j\]j`]jXoptionr&jj&ujbNjchjN]r&(j)r&}r&(jSX--enable-sharedr&jTj &jUjVjWjjY}r&(j]r&j&aj^]r&j2aj]]j[]j\]j`]r&hajujbMzjchjN]r&(j)r&}r&(jSj&jTj&jUjVjWjjY}r&(jjj^]j]]j[]j\]j`]ujbMzjchjN]r&jlX--enable-sharedr&r&}r &(jSUjUNjbNjchjTj&ubaubj)r!&}r"&(jSUjTj&jUjVjWjjY}r#&(jjj^]j]]j[]j\]j`]ujbMzjchjN]ubeubj)r$&}r%&(jSUjTj &jUjVjWjjY}r&&(j[]j\]j]]j^]j`]ujbMzjchjN]r'&j)r(&}r)&(jSXBuild shared library. This implies a separate compiler run to generate position independent code as required on most platforms.r*&jTj$&jUjVjWjjY}r+&(j[]j\]j]]j^]j`]ujbMxjchjN]r,&jlXBuild shared library. This implies a separate compiler run to generate position independent code as required on most platforms.r-&r.&}r/&(jSj*&jUNjbNjchjTj(&ubaubaubeubj)r0&}r1&(jSUjTjjUjVjWjjY}r2&(j^]j]]j[]j\]j`]Uentries]r3&(jX5setup-configure command line option; --disable-sharedhUNtr4&aujbNjchjN]ubj)r5&}r6&(jSUjTjjUjVjWjjY}r7&(jjXstdj^]j]]j[]j\]j`]jXoptionr8&jj8&ujbNjchjN]r9&(j)r:&}r;&(jSX--disable-sharedr<&jTj5&jUjVjWjjY}r=&(j]r>&j<&aj^]r?&haj]]j[]j\]j`]r@&hHajujbM~jchjN]rA&(j)rB&}rC&(jSj<&jTj:&jUjVjWjjY}rD&(jjj^]j]]j[]j\]j`]ujbM~jchjN]rE&jlX--disable-sharedrF&rG&}rH&(jSUjUNjbNjchjTjB&ubaubj)rI&}rJ&(jSUjTj:&jUjVjWjjY}rK&(jjj^]j]]j[]j\]j`]ujbM~jchjN]ubeubj)rL&}rM&(jSUjTj5&jUjVjWjjY}rN&(j[]j\]j]]j^]j`]ujbM~jchjN]rO&j)rP&}rQ&(jSX&(default) Do not build shared library.rR&jTjL&jUjVjWjjY}rS&(j[]j\]j]]j^]j`]ujbM}jchjN]rT&jlX&(default) Do not build shared library.rU&rV&}rW&(jSjR&jUNjbNjchjTjP&ubaubaubeubj)rX&}rY&(jSUjTjjUjVjWjjY}rZ&(j^]j]]j[]j\]j`]Uentries]r[&(jX4setup-configure command line option; --enable-staticj;UNtr\&aujbNjchjN]ubj)r]&}r^&(jSUjTjjUjVjWjjY}r_&(jjXstdj^]j]]j[]j\]j`]jXoptionr`&jj`&ujbNjchjN]ra&(j)rb&}rc&(jSX--enable-staticrd&jTj]&jUjVjWjjY}re&(j]rf&jd&aj^]rg&j;aj]]j[]j\]j`]rh&hajujbMjchjN]ri&(j)rj&}rk&(jSjd&jTjb&jUjVjWjjY}rl&(jjj^]j]]j[]j\]j`]ujbMjchjN]rm&jlX--enable-staticrn&ro&}rp&(jSUjUNjbNjchjTjj&ubaubj)rq&}rr&(jSUjTjb&jUjVjWjjY}rs&(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)rt&}ru&(jSUjTj]&jUjVjWjjY}rv&(j[]j\]j]]j^]j`]ujbMjchjN]rw&j)rx&}ry&(jSXBuild a static library. This passes ``-staticlib`` to GHC (available for iOS, and with 8.4 more platforms). The result is an archive ``.a`` containing all dependent haskell libararies combined.jTjt&jUjVjWjjY}rz&(j[]j\]j]]j^]j`]ujbMjchjN]r{&(jlX$Build a static library. This passes r|&r}&}r~&(jSX$Build a static library. This passes jUNjbNjchjTjx&ubj)r&}r&(jSX``-staticlib``jY}r&(j[]j\]j]]j^]j`]ujTjx&jN]r&jlX -staticlibr&r&}r&(jSX -staticlibjTj&ubajWjubjlXT to GHC (available for iOS, and with 8.4 more platforms). The result is an archive r&r&}r&(jSXT to GHC (available for iOS, and with 8.4 more platforms). The result is an archive jUNjbNjchjTjx&ubj)r&}r&(jSX``.a``jY}r&(j[]j\]j]]j^]j`]ujTjx&jN]r&jlX.ar&r&}r&(jSX.ajTj&ubajWjubjlX6 containing all dependent haskell libararies combined.r&r&}r&(jSX6 containing all dependent haskell libararies combined.jUNjbNjchjTjx&ubeubaubeubj)r&}r&(jSUjTjjUjVjWjjY}r&(j^]j]]j[]j\]j`]Uentries]r&(jX5setup-configure command line option; --disable-staticjUNtr&aujbNjchjN]ubj)r&}r&(jSUjTjjUjVjWjjY}r&(jjXstdj^]j]]j[]j\]j`]jXoptionr&jj&ujbNjchjN]r&(j)r&}r&(jSX--disable-staticr&jTj&jUjVjWjjY}r&(j]r&j&aj^]r&jaj]]j[]j\]j`]r&hrajujbMjchjN]r&(j)r&}r&(jSj&jTj&jUjVjWjjY}r&(jjj^]j]]j[]j\]j`]ujbMjchjN]r&jlX--disable-staticr&r&}r&(jSUjUNjbNjchjTj&ubaubj)r&}r&(jSUjTj&jUjVjWjjY}r&(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r&}r&(jSUjTj&jUjVjWjjY}r&(j[]j\]j]]j^]j`]ujbMjchjN]r&j)r&}r&(jSX((default) Do not build a static library.r&jTj&jUjVjWjjY}r&(j[]j\]j]]j^]j`]ujbMjchjN]r&jlX((default) Do not build a static library.r&r&}r&(jSj&jUNjbNjchjTj&ubaubaubeubj)r&}r&(jSUjTjjUjVjWjjY}r&(j^]j]]j[]j\]j`]Uentries]r&(jX@setup-configure command line option; --enable-executable-dynamicj*UNtr&aujbNjchjN]ubj)r&}r&(jSUjTjjUjVjWjjY}r&(jjXstdj^]j]]j[]j\]j`]jXoptionr&jj&ujbNjchjN]r&(j)r&}r&(jSX--enable-executable-dynamicr&jTj&jUjVjWjjY}r&(j]r&j&aj^]r&j*aj]]j[]j\]j`]r&hajujbMjchjN]r&(j)r&}r&(jSj&jTj&jUjVjWjjY}r&(jjj^]j]]j[]j\]j`]ujbMjchjN]r&jlX--enable-executable-dynamicr&r&}r&(jSUjUNjbNjchjTj&ubaubj)r&}r&(jSUjTj&jUjVjWjjY}r&(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r&}r&(jSUjTj&jUjVjWjjY}r&(j[]j\]j]]j^]j`]ujbMjchjN]r&j)r&}r&(jSXLink dependent Haskell libraries into executables dynamically. The executable's library dependencies must have been built as shared objects. This implies :option:`--enable-shared` unless :option:`--disable-shared` is explicitly specified.jTj&jUjVjWjjY}r&(j[]j\]j]]j^]j`]ujbMjchjN]r&(jlXLink dependent Haskell libraries into executables dynamically. The executable’s library dependencies must have been built as shared objects. This implies r&r&}r&(jSXLink dependent Haskell libraries into executables dynamically. The executable's library dependencies must have been built as shared objects. This implies jUNjbNjchjTj&ubj)r&}r&(jSX:option:`--enable-shared`jTj&jUjVjWjjY}r&(UreftypeXoptionjjX--enable-sharedr&U refdomainXstdr&j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r&j)r&}r&(jSj&jY}r&(j[]j\]r&(jj&X std-optionr&ej]]j^]j`]ujTj&jN]r&jlX--enable-sharedr&r&}r&(jSUjTj&ubajWjubaubjlX unless r&r&}r&(jSX unless jUNjbNjchjTj&ubj)r&}r&(jSX:option:`--disable-shared`jTj&jUjVjWjjY}r&(UreftypeXoptionjjX--disable-sharedr&U refdomainXstdr&j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r&j)r&}r&(jSj&jY}r&(j[]j\]r&(jj&X std-optionr&ej]]j^]j`]ujTj&jN]r&jlX--disable-sharedr'r'}r'(jSUjTj&ubajWjubaubjlX is explicitly specified.r'r'}r'(jSX is explicitly specified.jUNjbNjchjTj&ubeubaubeubj)r'}r'(jSUjTjjUjVjWjjY}r'(j^]j]]j[]j\]j`]Uentries]r '(jXAsetup-configure command line option; --disable-executable-dynamicjUNtr 'aujbNjchjN]ubj)r '}r '(jSUjTjjUjVjWjjY}r '(jjXstdj^]j]]j[]j\]j`]jXoptionr'jj'ujbNjchjN]r'(j)r'}r'(jSX--disable-executable-dynamicr'jTj 'jUjVjWjjY}r'(j]r'j'aj^]r'jaj]]j[]j\]j`]r'hWajujbMjchjN]r'(j)r'}r'(jSj'jTj'jUjVjWjjY}r'(jjj^]j]]j[]j\]j`]ujbMjchjN]r'jlX--disable-executable-dynamicr'r'}r'(jSUjUNjbNjchjTj'ubaubj)r'}r '(jSUjTj'jUjVjWjjY}r!'(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r"'}r#'(jSUjTj 'jUjVjWjjY}r$'(j[]j\]j]]j^]j`]ujbMjchjN]r%'j)r&'}r''(jSX(default) Link dependent Haskell libraries into executables statically. Non-Haskell (C) libraries are still linked dynamically, including libc, so the result is still not a fully static executable unless :option:`--enable-executable-static` is given.jTj"'jUjVjWjjY}r('(j[]j\]j]]j^]j`]ujbMjchjN]r)'(jlX(default) Link dependent Haskell libraries into executables statically. Non-Haskell (C) libraries are still linked dynamically, including libc, so the result is still not a fully static executable unless r*'r+'}r,'(jSX(default) Link dependent Haskell libraries into executables statically. Non-Haskell (C) libraries are still linked dynamically, including libc, so the result is still not a fully static executable unless jUNjbNjchjTj&'ubj)r-'}r.'(jSX$:option:`--enable-executable-static`jTj&'jUjVjWjjY}r/'(UreftypeXoptionjjX--enable-executable-staticr0'U refdomainXstdr1'j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r2'j)r3'}r4'(jSj0'jY}r5'(j[]j\]r6'(jj1'X std-optionr7'ej]]j^]j`]ujTj-'jN]r8'jlX--enable-executable-staticr9'r:'}r;'(jSUjTj3'ubajWjubaubjlX is given.r<'r='}r>'(jSX is given.jUNjbNjchjTj&'ubeubaubeubj)r?'}r@'(jSUjTjjUjVjWjjY}rA'(j^]j]]j[]j\]j`]Uentries]rB'(jX?setup-configure command line option; --enable-executable-staticjUNtrC'aujbNjchjN]ubj)rD'}rE'(jSUjTjjUjVjWjjY}rF'(jjXstdj^]j]]j[]j\]j`]jXoptionrG'jjG'ujbNjchjN]rH'(j)rI'}rJ'(jSX--enable-executable-staticrK'jTjD'jUjVjWjjY}rL'(j]rM'jK'aj^]rN'jaj]]j[]j\]j`]rO'hhajujbMjchjN]rP'(j)rQ'}rR'(jSjK'jTjI'jUjVjWjjY}rS'(jjj^]j]]j[]j\]j`]ujbMjchjN]rT'jlX--enable-executable-staticrU'rV'}rW'(jSUjUNjbNjchjTjQ'ubaubj)rX'}rY'(jSUjTjI'jUjVjWjjY}rZ'(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r['}r\'(jSUjTjD'jUjVjWjjY}r]'(j[]j\]j]]j^]j`]ujbMjchjN]r^'j)r_'}r`'(jSXnBuild fully static executables. This link all dependent libraries into executables statically, including libc.ra'jTj['jUjVjWjjY}rb'(j[]j\]j]]j^]j`]ujbMjchjN]rc'jlXnBuild fully static executables. This link all dependent libraries into executables statically, including libc.rd're'}rf'(jSja'jUNjbNjchjTj_'ubaubaubeubj)rg'}rh'(jSUjTjjUjVjWjjY}ri'(j^]j]]j[]j\]j`]Uentries]rj'(jX@setup-configure command line option; --disable-executable-statichUNtrk'aujbNjchjN]ubj)rl'}rm'(jSUjTjjUjVjWjjY}rn'(jjXstdj^]j]]j[]j\]j`]jXoptionro'jjo'ujbNjchjN]rp'(j)rq'}rr'(jSX--disable-executable-staticrs'jTjl'jUjVjWjjY}rt'(j]ru'js'aj^]rv'haj]]j[]j\]j`]rw'hajujbMjchjN]rx'(j)ry'}rz'(jSjs'jTjq'jUjVjWjjY}r{'(jjj^]j]]j[]j\]j`]ujbMjchjN]r|'jlX--disable-executable-staticr}'r~'}r'(jSUjUNjbNjchjTjy'ubaubj)r'}r'(jSUjTjq'jUjVjWjjY}r'(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r'}r'(jSUjTjl'jUjVjWjjY}r'(j[]j\]j]]j^]j`]ujbMjchjN]r'j)r'}r'(jSX0(default) Do not build fully static executables.r'jTj'jUjVjWjjY}r'(j[]j\]j]]j^]j`]ujbMjchjN]r'jlX0(default) Do not build fully static executables.r'r'}r'(jSj'jUNjbNjchjTj'ubaubaubeubj)r'}r'(jSUjTjjUjVjWjjY}r'(j^]j]]j[]j\]j`]Uentries]r'(jX;setup-configure command line option; --configure-option=strjUNtr'aujbNjchjN]ubj)r'}r'(jSUjTjjUjVjWjjY}r'(jjXstdj^]j]]j[]j\]j`]jXoptionr'jj'ujbNjchjN]r'(j)r'}r'(jSX--configure-option=strjTj'jUjVjWjjY}r'(j]r'X--configure-optionr'aj^]r'jaj]]j[]j\]j`]r'hgajujbMjchjN]r'(j)r'}r'(jSj'jTj'jUjVjWjjY}r'(jjj^]j]]j[]j\]j`]ujbMjchjN]r'jlX--configure-optionr'r'}r'(jSUjUNjbNjchjTj'ubaubj)r'}r'(jSX=strjTj'jUjVjWjjY}r'(jjj^]j]]j[]j\]j`]ujbMjchjN]r'jlX=strr'r'}r'(jSUjUNjbNjchjTj'ubaubeubj)r'}r'(jSUjTj'jUjVjWjjY}r'(j[]j\]j]]j^]j`]ujbMjchjN]r'j)r'}r'(jSXAn extra option to an external ``configure`` script, if one is used (see the section on `system-dependent parameters `__). There can be several of these options.jTj'jUjVjWjjY}r'(j[]j\]j]]j^]j`]ujbMjchjN]r'(jlXAn extra option to an external r'r'}r'(jSXAn extra option to an external jUNjbNjchjTj'ubj)r'}r'(jSX ``configure``jY}r'(j[]j\]j]]j^]j`]ujTj'jN]r'jlX configurer'r'}r'(jSX configurejTj'ubajWjubjlX, script, if one is used (see the section on r'r'}r'(jSX, script, if one is used (see the section on jUNjbNjchjTj'ubj)r'}r'(jSXV`system-dependent parameters `__jY}r'(UnameXsystem-dependent parametersjX4developing-packages.html#system-dependent-parametersj^]j]]j[]j\]j`]ujTj'jN]r'jlXsystem-dependent parametersr'r'}r'(jSXsystem-dependent parametersjTj'ubajWjubjlX)). There can be several of these options.r'r'}r'(jSX)). There can be several of these options.jUNjbNjchjTj'ubeubaubeubj)r'}r'(jSUjTjjUjVjWjjY}r'(j^]j]]j[]j\]j`]Uentries]r'(jX?setup-configure command line option; --extra-include-dirs[=dir]jUNtr'aujbNjchjN]ubj)r'}r'(jSUjTjjUjVjWjjY}r'(jjXstdj^]j]]j[]j\]j`]jXoptionr'jj'ujbNjchjN]r'(j)r'}r'(jSX--extra-include-dirs[=dir]jTj'jUjVjWjjY}r'(j]r'X--extra-include-dirs[r'aj^]r'jaj]]j[]j\]j`]r'hUajujbMjchjN]r'(j)r'}r'(jSj'jTj'jUjVjWjjY}r'(jjj^]j]]j[]j\]j`]ujbMjchjN]r'jlX--extra-include-dirs[r'r'}r'(jSUjUNjbNjchjTj'ubaubj)r'}r'(jSX=dir]jTj'jUjVjWjjY}r'(jjj^]j]]j[]j\]j`]ujbMjchjN]r'jlX=dir]r'r'}r'(jSUjUNjbNjchjTj'ubaubeubj)r'}r'(jSUjTj'jUjVjWjjY}r'(j[]j\]j]]j^]j`]ujbMjchjN]r'(j)r'}r'(jSXsAn extra directory to search for C header files. You can use this flag multiple times to get a list of directories.r'jTj'jUjVjWjjY}r'(j[]j\]j]]j^]j`]ujbMjchjN]r'jlXsAn extra directory to search for C header files. You can use this flag multiple times to get a list of directories.r'r'}r'(jSj'jUNjbNjchjTj'ubaubj)r'}r'(jSXPYou might need to use this flag if you have standard system header files in a non-standard location that is not mentioned in the package's ``.cabal`` file. Using this option has the same affect as appending the directory *dir* to the ``include-dirs`` field in each library and executable in the package's ``.cabal`` file. The advantage of course is that you do not have to modify the package at all. These extra directories will be used while building the package and for libraries it is also saved in the package registration information and used when compiling modules that use the library.jTj'jUjVjWjjY}r'(j[]j\]j]]j^]j`]ujbMjchjN]r'(jlXYou might need to use this flag if you have standard system header files in a non-standard location that is not mentioned in the package’s r'r'}r((jSXYou might need to use this flag if you have standard system header files in a non-standard location that is not mentioned in the package's jUNjbNjchjTj'ubj)r(}r((jSX ``.cabal``jY}r((j[]j\]j]]j^]j`]ujTj'jN]r(jlX.cabalr(r(}r((jSX.cabaljTj(ubajWjubjlXH file. Using this option has the same affect as appending the directory r(r (}r ((jSXH file. Using this option has the same affect as appending the directory jUNjbNjchjTj'ubj)r (}r ((jSX*dir*jY}r ((j[]j\]j]]j^]j`]ujTj'jN]r(jlXdirr(r(}r((jSXdirjTj (ubajWjubjlX to the r(r(}r((jSX to the jUNjbNjchjTj'ubj)r(}r((jSX``include-dirs``jY}r((j[]j\]j]]j^]j`]ujTj'jN]r(jlX include-dirsr(r(}r((jSX include-dirsjTj(ubajWjubjlX9 field in each library and executable in the package’s r(r(}r((jSX7 field in each library and executable in the package's jUNjbNjchjTj'ubj)r(}r ((jSX ``.cabal``jY}r!((j[]j\]j]]j^]j`]ujTj'jN]r"(jlX.cabalr#(r$(}r%((jSX.cabaljTj(ubajWjubjlX file. The advantage of course is that you do not have to modify the package at all. These extra directories will be used while building the package and for libraries it is also saved in the package registration information and used when compiling modules that use the library.r&(r'(}r(((jSX file. The advantage of course is that you do not have to modify the package at all. These extra directories will be used while building the package and for libraries it is also saved in the package registration information and used when compiling modules that use the library.jUNjbNjchjTj'ubeubeubeubj)r)(}r*((jSUjTjjUjVjWjjY}r+((j^]j]]j[]j\]j`]Uentries]r,((jX;setup-configure command line option; --extra-lib-dirs[=dir]hUNtr-(aujbNjchjN]ubj)r.(}r/((jSUjTjjUjVjWjjY}r0((jjXstdj^]j]]j[]j\]j`]jXoptionr1(jj1(ujbNjchjN]r2((j)r3(}r4((jSX--extra-lib-dirs[=dir]jTj.(jUjVjWjjY}r5((j]r6(X--extra-lib-dirs[r7(aj^]r8(haj]]j[]j\]j`]r9(h*ajujbMjchjN]r:((j)r;(}r<((jSj7(jTj3(jUjVjWjjY}r=((jjj^]j]]j[]j\]j`]ujbMjchjN]r>(jlX--extra-lib-dirs[r?(r@(}rA((jSUjUNjbNjchjTj;(ubaubj)rB(}rC((jSX=dir]jTj3(jUjVjWjjY}rD((jjj^]j]]j[]j\]j`]ujbMjchjN]rE(jlX=dir]rF(rG(}rH((jSUjUNjbNjchjTjB(ubaubeubj)rI(}rJ((jSUjTj.(jUjVjWjjY}rK((j[]j\]j]]j^]j`]ujbMjchjN]rL(j)rM(}rN((jSX{An extra directory to search for system libraries files. You can use this flag multiple times to get a list of directories.rO(jTjI(jUjVjWjjY}rP((j[]j\]j]]j^]j`]ujbMjchjN]rQ(jlX{An extra directory to search for system libraries files. You can use this flag multiple times to get a list of directories.rR(rS(}rT((jSjO(jUNjbNjchjTjM(ubaubaubeubj)rU(}rV((jSUjTjjUjVjWjjY}rW((j^]j]]j[]j\]j`]Uentries]rX((jXAsetup-configure command line option; --extra-framework-dirs[=dir]jHUNtrY(aujbNjchjN]ubj)rZ(}r[((jSUjTjjUjVjWjjY}r\((jjXstdj^]j]]j[]j\]j`]jXoptionr](jj](ujbNjchjN]r^((j)r_(}r`((jSX--extra-framework-dirs[=dir]jTjZ(jUjVjWjjY}ra((j]rb(X--extra-framework-dirs[rc(aj^]rd(jHaj]]j[]j\]j`]re(hajujbMjchjN]rf((j)rg(}rh((jSjc(jTj_(jUjVjWjjY}ri((jjj^]j]]j[]j\]j`]ujbMjchjN]rj(jlX--extra-framework-dirs[rk(rl(}rm((jSUjUNjbNjchjTjg(ubaubj)rn(}ro((jSX=dir]jTj_(jUjVjWjjY}rp((jjj^]j]]j[]j\]j`]ujbMjchjN]rq(jlX=dir]rr(rs(}rt((jSUjUNjbNjchjTjn(ubaubeubj)ru(}rv((jSUjTjZ(jUjVjWjjY}rw((j[]j\]j]]j^]j`]ujbMjchjN]rx((j)ry(}rz((jSX{An extra directory to search for frameworks (OS X only). You can use this flag multiple times to get a list of directories.r{(jTju(jUjVjWjjY}r|((j[]j\]j]]j^]j`]ujbMjchjN]r}(jlX{An extra directory to search for frameworks (OS X only). You can use this flag multiple times to get a list of directories.r~(r(}r((jSj{(jUNjbNjchjTjy(ubaubj)r(}r((jSXOYou might need to use this flag if you have standard system libraries in a non-standard location that is not mentioned in the package's ``.cabal`` file. Using this option has the same affect as appending the directory *dir* to the ``extra-lib-dirs`` field in each library and executable in the package's ``.cabal`` file. The advantage of course is that you do not have to modify the package at all. These extra directories will be used while building the package and for libraries it is also saved in the package registration information and used when compiling modules that use the library.jTju(jUjVjWjjY}r((j[]j\]j]]j^]j`]ujbMjchjN]r((jlXYou might need to use this flag if you have standard system libraries in a non-standard location that is not mentioned in the package’s r(r(}r((jSXYou might need to use this flag if you have standard system libraries in a non-standard location that is not mentioned in the package's jUNjbNjchjTj(ubj)r(}r((jSX ``.cabal``jY}r((j[]j\]j]]j^]j`]ujTj(jN]r(jlX.cabalr(r(}r((jSX.cabaljTj(ubajWjubjlXH file. Using this option has the same affect as appending the directory r(r(}r((jSXH file. Using this option has the same affect as appending the directory jUNjbNjchjTj(ubj)r(}r((jSX*dir*jY}r((j[]j\]j]]j^]j`]ujTj(jN]r(jlXdirr(r(}r((jSXdirjTj(ubajWjubjlX to the r(r(}r((jSX to the jUNjbNjchjTj(ubj)r(}r((jSX``extra-lib-dirs``jY}r((j[]j\]j]]j^]j`]ujTj(jN]r(jlXextra-lib-dirsr(r(}r((jSXextra-lib-dirsjTj(ubajWjubjlX9 field in each library and executable in the package’s r(r(}r((jSX7 field in each library and executable in the package's jUNjbNjchjTj(ubj)r(}r((jSX ``.cabal``jY}r((j[]j\]j]]j^]j`]ujTj(jN]r(jlX.cabalr(r(}r((jSX.cabaljTj(ubajWjubjlX file. The advantage of course is that you do not have to modify the package at all. These extra directories will be used while building the package and for libraries it is also saved in the package registration information and used when compiling modules that use the library.r(r(}r((jSX file. The advantage of course is that you do not have to modify the package at all. These extra directories will be used while building the package and for libraries it is also saved in the package registration information and used when compiling modules that use the library.jUNjbNjchjTj(ubeubeubeubj)r(}r((jSUjTjjUjVjWjjY}r((j^]j]]j[]j\]j`]Uentries]r((jX@setup-configure command line option; --dependency[=pkgname=ipid]hUNtr(aujbNjchjN]ubj)r(}r((jSUjTjjUjVjWjjY}r((jjXstdj^]j]]j[]j\]j`]jXoptionr(jj(ujbNjchjN]r((j)r(}r((jSX--dependency[=pkgname=ipid]jTj(jUjVjWjjY}r((j]r(X --dependency[r(aj^]r(haj]]j[]j\]j`]r(h/ajujbMjchjN]r((j)r(}r((jSj(jTj(jUjVjWjjY}r((jjj^]j]]j[]j\]j`]ujbMjchjN]r(jlX --dependency[r(r(}r((jSUjUNjbNjchjTj(ubaubj)r(}r((jSX=pkgname=ipid]jTj(jUjVjWjjY}r((jjj^]j]]j[]j\]j`]ujbMjchjN]r(jlX=pkgname=ipid]r(r(}r((jSUjUNjbNjchjTj(ubaubeubj)r(}r((jSUjTj(jUjVjWjjY}r((j[]j\]j]]j^]j`]ujbMjchjN]r(j)r(}r((jSXSpecify that a particular dependency should used for a particular package name. In particular, it declares that any reference to *pkgname* in a ``build-depends`` should be resolved to *ipid*.jTj(jUjVjWjjY}r((j[]j\]j]]j^]j`]ujbMjchjN]r((jlXSpecify that a particular dependency should used for a particular package name. In particular, it declares that any reference to r(r(}r((jSXSpecify that a particular dependency should used for a particular package name. In particular, it declares that any reference to jUNjbNjchjTj(ubj)r(}r((jSX *pkgname*jY}r((j[]j\]j]]j^]j`]ujTj(jN]r(jlXpkgnamer(r(}r((jSXpkgnamejTj(ubajWjubjlX in a r(r(}r((jSX in a jUNjbNjchjTj(ubj)r(}r((jSX``build-depends``jY}r((j[]j\]j]]j^]j`]ujTj(jN]r(jlX build-dependsr(r(}r((jSX build-dependsjTj(ubajWjubjlX should be resolved to r(r(}r((jSX should be resolved to jUNjbNjchjTj(ubj)r(}r((jSX*ipid*jY}r((j[]j\]j]]j^]j`]ujTj(jN]r(jlXipidr(r(}r((jSXipidjTj(ubajWjubjlX.r(}r((jSX.jUNjbNjchjTj(ubeubaubeubj)r(}r((jSUjTjjUjVjWjjY}r((j^]j]]j[]j\]j`]Uentries]r((jX:setup-configure command line option; --exact-configurationj7UNtr(aujbNjchjN]ubj)r(}r((jSUjTjjUjVjWjjY}r((jjXstdj^]j]]j[]j\]j`]jXoptionr)jj)ujbNjchjN]r)(j)r)}r)(jSX--exact-configurationr)jTj(jUjVjWjjY}r)(j]r)j)aj^]r)j7aj]]j[]j\]j`]r)hajujbMjchjN]r )(j)r )}r )(jSj)jTj)jUjVjWjjY}r )(jjj^]j]]j[]j\]j`]ujbMjchjN]r )jlX--exact-configurationr)r)}r)(jSUjUNjbNjchjTj )ubaubj)r)}r)(jSUjTj)jUjVjWjjY}r)(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r)}r)(jSUjTj(jUjVjWjjY}r)(j[]j\]j]]j^]j`]ujbMjchjN]r)j)r)}r)(jSX$This changes Cabal to require every dependency be explicitly specified using :option:`--dependency`, rather than use Cabal's (very simple) dependency solver. This is useful for programmatic use of Cabal's API, where you want to error if you didn't specify enough :option:`--dependency` flags.jTj)jUjVjWjjY}r)(j[]j\]j]]j^]j`]ujbMjchjN]r)(jlXMThis changes Cabal to require every dependency be explicitly specified using r)r)}r)(jSXMThis changes Cabal to require every dependency be explicitly specified using jUNjbNjchjTj)ubj)r)}r )(jSX:option:`--dependency`jTj)jUjVjWjjY}r!)(UreftypeXoptionjjX --dependencyr")U refdomainXstdr#)j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r$)j)r%)}r&)(jSj")jY}r')(j[]j\]r()(jj#)X std-optionr))ej]]j^]j`]ujTj)jN]r*)jlX --dependencyr+)r,)}r-)(jSUjTj%)ubajWjubaubjlX, rather than use Cabal’s (very simple) dependency solver. This is useful for programmatic use of Cabal’s API, where you want to error if you didn’t specify enough r.)r/)}r0)(jSX, rather than use Cabal's (very simple) dependency solver. This is useful for programmatic use of Cabal's API, where you want to error if you didn't specify enough jUNjbNjchjTj)ubj)r1)}r2)(jSX:option:`--dependency`jTj)jUjVjWjjY}r3)(UreftypeXoptionjjX --dependencyr4)U refdomainXstdr5)j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r6)j)r7)}r8)(jSj4)jY}r9)(j[]j\]r:)(jj5)X std-optionr;)ej]]j^]j`]ujTj1)jN]r<)jlX --dependencyr=)r>)}r?)(jSUjTj7)ubajWjubaubjlX flags.r@)rA)}rB)(jSX flags.jUNjbNjchjTj)ubeubaubeubj)rC)}rD)(jSUjTjjUjVjWjjY}rE)(j^]j]]j[]j\]j`]Uentries]rF)(jXOsetup-configure command line option; --allow-newer[=pkgs], --allow-older[=pkgs]hUNtrG)aujbNjchjN]ubj)rH)}rI)(jSUjTjjUjVjWjjY}rJ)(jjXstdj^]j]]j[]j\]j`]jXoptionrK)jjK)ujbNjchjN]rL)(j)rM)}rN)(jSX*--allow-newer[=pkgs], --allow-older[=pkgs]jTjH)jUjVjWjjY}rO)(j]rP)(X--allow-newer[rQ)X--allow-older[rR)ej^]rS)haj]]j[]j\]j`]rT)(h:hejujbMjchjN]rU)(j)rV)}rW)(jSjQ)jTjM)jUjVjWjjY}rX)(jjj^]j]]j[]j\]j`]ujbMjchjN]rY)jlX--allow-newer[rZ)r[)}r\)(jSUjUNjbNjchjTjV)ubaubj)r])}r^)(jSX=pkgs]jTjM)jUjVjWjjY}r_)(jjj^]j]]j[]j\]j`]ujbMjchjN]r`)jlX=pkgs]ra)rb)}rc)(jSUjUNjbNjchjTj])ubaubj)rd)}re)(jSjjTjM)jUjVjWjjY}rf)(jjj^]j]]j[]j\]j`]ujbMjchjN]rg)jlX, rh)ri)}rj)(jSUjUNjbNjchjTjd)ubaubj)rk)}rl)(jSjR)jTjM)jUjVjWjjY}rm)(jjj^]j]]j[]j\]j`]ujbMjchjN]rn)jlX--allow-older[ro)rp)}rq)(jSUjUNjbNjchjTjk)ubaubj)rr)}rs)(jSX=pkgs]jTjM)jUjVjWjjY}rt)(jjj^]j]]j[]j\]j`]ujbMjchjN]ru)jlX=pkgs]rv)rw)}rx)(jSUjUNjbNjchjTjr)ubaubeubj)ry)}rz)(jSUjTjH)jUjVjWjjY}r{)(j[]j\]j]]j^]j`]ujbMjchjN]r|)(j)r})}r~)(jSXmSelectively relax upper or lower bounds in dependencies without editing the package description respectively.r)jTjy)jUjVjWjjY}r)(j[]j\]j]]j^]j`]ujbMjchjN]r)jlXmSelectively relax upper or lower bounds in dependencies without editing the package description respectively.r)r)}r)(jSj)jUNjbNjchjTj})ubaubj)r)}r)(jSXThe following description focuses on upper bounds and the :option:`--allow-newer` flag, but applies analogously to :option:`--allow-older` and lower bounds. :option:`--allow-newer` and :option:`--allow-older` can be used at the same time.jTjy)jUjVjWjjY}r)(j[]j\]j]]j^]j`]ujbMjchjN]r)(jlX:The following description focuses on upper bounds and the r)r)}r)(jSX:The following description focuses on upper bounds and the jUNjbNjchjTj)ubj)r)}r)(jSX:option:`--allow-newer`jTj)jUjVjWjjY}r)(UreftypeXoptionjjX --allow-newerr)U refdomainXstdr)j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r)j)r)}r)(jSj)jY}r)(j[]j\]r)(jj)X std-optionr)ej]]j^]j`]ujTj)jN]r)jlX --allow-newerr)r)}r)(jSUjTj)ubajWjubaubjlX" flag, but applies analogously to r)r)}r)(jSX" flag, but applies analogously to jUNjbNjchjTj)ubj)r)}r)(jSX:option:`--allow-older`jTj)jUjVjWjjY}r)(UreftypeXoptionjjX --allow-olderr)U refdomainXstdr)j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r)j)r)}r)(jSj)jY}r)(j[]j\]r)(jj)X std-optionr)ej]]j^]j`]ujTj)jN]r)jlX --allow-olderr)r)}r)(jSUjTj)ubajWjubaubjlX and lower bounds. r)r)}r)(jSX and lower bounds. jUNjbNjchjTj)ubj)r)}r)(jSX:option:`--allow-newer`jTj)jUjVjWjjY}r)(UreftypeXoptionjjX --allow-newerr)U refdomainXstdr)j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r)j)r)}r)(jSj)jY}r)(j[]j\]r)(jj)X std-optionr)ej]]j^]j`]ujTj)jN]r)jlX --allow-newerr)r)}r)(jSUjTj)ubajWjubaubjlX and r)r)}r)(jSX and jUNjbNjchjTj)ubj)r)}r)(jSX:option:`--allow-older`jTj)jUjVjWjjY}r)(UreftypeXoptionjjX --allow-olderr)U refdomainXstdr)j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r)j)r)}r)(jSj)jY}r)(j[]j\]r)(jj)X std-optionr)ej]]j^]j`]ujTj)jN]r)jlX --allow-olderr)r)}r)(jSUjTj)ubajWjubaubjlX can be used at the same time.r)r)}r)(jSX can be used at the same time.jUNjbNjchjTj)ubeubj)r)}r)(jSXJIf you want to install a package A that depends on B >= 1.0 && < 2.0, but you have the version 2.0 of B installed, you can compile A against B 2.0 by using ``cabal install --allow-newer=B A``. This works for the whole package index: if A also depends on C that in turn depends on B < 2.0, C's dependency on B will be also relaxed.jTjy)jUjVjWjjY}r)(j[]j\]j]]j^]j`]ujbMjchjN]r)(jlXIf you want to install a package A that depends on B >= 1.0 && < 2.0, but you have the version 2.0 of B installed, you can compile A against B 2.0 by using r)r)}r)(jSXIf you want to install a package A that depends on B >= 1.0 && < 2.0, but you have the version 2.0 of B installed, you can compile A against B 2.0 by using jUNjbNjchjTj)ubj)r)}r)(jSX#``cabal install --allow-newer=B A``jY}r)(j[]j\]j]]j^]j`]ujTj)jN]r)jlXcabal install --allow-newer=B Ar)r)}r)(jSXcabal install --allow-newer=B AjTj)ubajWjubjlX. This works for the whole package index: if A also depends on C that in turn depends on B < 2.0, C’s dependency on B will be also relaxed.r)r)}r)(jSX. This works for the whole package index: if A also depends on C that in turn depends on B < 2.0, C's dependency on B will be also relaxed.jUNjbNjchjTj)ubeubj)r)}r)(jSXExample:r)jTjy)jUjVjWjjY}r)(j[]j\]j]]j^]j`]ujbMjchjN]r)jlXExample:r)r)}r)(jSj)jUNjbNjchjTj)ubaubj)r)}r)(jSX$ cd foo $ cabal configure Resolving dependencies... cabal: Could not resolve dependencies: [...] $ cabal configure --allow-newer Resolving dependencies... Configuring foo...jTjy)jUjVjWjjY}r)(jjj^]j]]j[]j\]j`]ujbMjchjN]r)jlX$ cd foo $ cabal configure Resolving dependencies... cabal: Could not resolve dependencies: [...] $ cabal configure --allow-newer Resolving dependencies... Configuring foo...r)r)}r)(jSUjTj)ubaubj)r)}r)(jSXAdditional examples:r)jTjy)jUjVjWjjY}r)(j[]j\]j]]j^]j`]ujbMjchjN]r)jlXAdditional examples:r)r)}r)(jSj)jUNjbNjchjTj)ubaubj)r)}r)(jSX-# Relax upper bounds in all dependencies. $ cabal install --allow-newer foo # Relax upper bounds only in dependencies on bar, baz and quux. $ cabal install --allow-newer=bar,baz,quux foo # Relax the upper bound on bar and force bar==2.1. $ cabal install --allow-newer=bar --constraint="bar==2.1" foojTjy)jUjVjWjjY}r)(jjj^]j]]j[]j\]j`]ujbMjchjN]r)jlX-# Relax upper bounds in all dependencies. $ cabal install --allow-newer foo # Relax upper bounds only in dependencies on bar, baz and quux. $ cabal install --allow-newer=bar,baz,quux foo # Relax the upper bound on bar and force bar==2.1. $ cabal install --allow-newer=bar --constraint="bar==2.1" foor*r*}r*(jSUjTj)ubaubj)r*}r*(jSXIt's also possible to limit the scope of :option:`--allow-newer` to single packages with the ``--allow-newer=scope:dep`` syntax. This means that the dependency on ``dep`` will be relaxed only for the package ``scope``.jTjy)jUjVjWjjY}r*(j[]j\]j]]j^]j`]ujbMjchjN]r*(jlX+It’s also possible to limit the scope of r*r*}r *(jSX)It's also possible to limit the scope of jUNjbNjchjTj*ubj)r *}r *(jSX:option:`--allow-newer`jTj*jUjVjWjjY}r *(UreftypeXoptionjjX --allow-newerr *U refdomainXstdr*j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]r*j)r*}r*(jSj *jY}r*(j[]j\]r*(jj*X std-optionr*ej]]j^]j`]ujTj *jN]r*jlX --allow-newerr*r*}r*(jSUjTj*ubajWjubaubjlX to single packages with the r*r*}r*(jSX to single packages with the jUNjbNjchjTj*ubj)r*}r*(jSX``--allow-newer=scope:dep``jY}r*(j[]j\]j]]j^]j`]ujTj*jN]r*jlX--allow-newer=scope:depr *r!*}r"*(jSX--allow-newer=scope:depjTj*ubajWjubjlX+ syntax. This means that the dependency on r#*r$*}r%*(jSX+ syntax. This means that the dependency on jUNjbNjchjTj*ubj)r&*}r'*(jSX``dep``jY}r(*(j[]j\]j]]j^]j`]ujTj*jN]r)*jlXdepr**r+*}r,*(jSXdepjTj&*ubajWjubjlX& will be relaxed only for the package r-*r.*}r/*(jSX& will be relaxed only for the package jUNjbNjchjTj*ubj)r0*}r1*(jSX ``scope``jY}r2*(j[]j\]j]]j^]j`]ujTj*jN]r3*jlXscoper4*r5*}r6*(jSXscopejTj0*ubajWjubjlX.r7*}r8*(jSX.jUNjbNjchjTj*ubeubj)r9*}r:*(jSXExample:r;*jTjy)jUjVjWjjY}r<*(j[]j\]j]]j^]j`]ujbMjchjN]r=*jlXExample:r>*r?*}r@*(jSj;*jUNjbNjchjTj9*ubaubj)rA*}rB*(jSX# Relax upper bound in foo's dependency on base; also relax upper bound in # every package's dependency on lens. $ cabal install --allow-newer=foo:base,lens # Relax upper bounds in foo's dependency on base and bar's dependency # on time; also relax the upper bound in the dependency on lens specified by # any package. $ cabal install --allow-newer=foo:base,lens --allow-newer=bar:timejTjy)jUjVjWjjY}rC*(jjj^]j]]j[]j\]j`]ujbM jchjN]rD*jlX# Relax upper bound in foo's dependency on base; also relax upper bound in # every package's dependency on lens. $ cabal install --allow-newer=foo:base,lens # Relax upper bounds in foo's dependency on base and bar's dependency # on time; also relax the upper bound in the dependency on lens specified by # any package. $ cabal install --allow-newer=foo:base,lens --allow-newer=bar:timerE*rF*}rG*(jSUjTjA*ubaubj)rH*}rI*(jSXFinally, one can enable :option:`--allow-newer` permanently by setting ``allow-newer: True`` in the ``~/.cabal/config`` file. Enabling 'allow-newer' selectively is also supported in the config file (``allow-newer: foo, bar, baz:base``).jTjy)jUjVjWjjY}rJ*(j[]j\]j]]j^]j`]ujbMjchjN]rK*(jlXFinally, one can enable rL*rM*}rN*(jSXFinally, one can enable jUNjbNjchjTjH*ubj)rO*}rP*(jSX:option:`--allow-newer`jTjH*jUjVjWjjY}rQ*(UreftypeXoptionjjX --allow-newerrR*U refdomainXstdrS*j^]j]]U refexplicitj[]j\]j`]jjjjujbMjN]rT*j)rU*}rV*(jSjR*jY}rW*(j[]j\]rX*(jjS*X std-optionrY*ej]]j^]j`]ujTjO*jN]rZ*jlX --allow-newerr[*r\*}r]*(jSUjTjU*ubajWjubaubjlX permanently by setting r^*r_*}r`*(jSX permanently by setting jUNjbNjchjTjH*ubj)ra*}rb*(jSX``allow-newer: True``jY}rc*(j[]j\]j]]j^]j`]ujTjH*jN]rd*jlXallow-newer: Truere*rf*}rg*(jSXallow-newer: TruejTja*ubajWjubjlX in the rh*ri*}rj*(jSX in the jUNjbNjchjTjH*ubj)rk*}rl*(jSX``~/.cabal/config``jY}rm*(j[]j\]j]]j^]j`]ujTjH*jN]rn*jlX~/.cabal/configro*rp*}rq*(jSX~/.cabal/configjTjk*ubajWjubjlXT file. Enabling ‘allow-newer’ selectively is also supported in the config file (rr*rs*}rt*(jSXP file. Enabling 'allow-newer' selectively is also supported in the config file (jUNjbNjchjTjH*ubj)ru*}rv*(jSX#``allow-newer: foo, bar, baz:base``jY}rw*(j[]j\]j]]j^]j`]ujTjH*jN]rx*jlXallow-newer: foo, bar, baz:basery*rz*}r{*(jSXallow-newer: foo, bar, baz:basejTju*ubajWjubjlX).r|*r}*}r~*(jSX).jUNjbNjchjTjH*ubeubeubeubj)r*}r*(jSUjTjjUNjWjjY}r*(j^]j]]j[]j\]j`]Uentries]r*(jX<setup-configure command line option; --constraint=constrainthUNtr*aujbNjchjN]ubj)r*}r*(jSUjTjjUNjWjjY}r*(jjXstdj^]j]]j[]j\]j`]jXoptionr*jj*ujbNjchjN]r*(j)r*}r*(jSX--constraint=constraintjTj*jUjVjWjjY}r*(j]r*X --constraintr*aj^]r*haj]]j[]j\]j`]r*h ajujbMnjchjN]r*(j)r*}r*(jSj*jTj*jUjVjWjjY}r*(jjj^]j]]j[]j\]j`]ujbMnjchjN]r*jlX --constraintr*r*}r*(jSUjUNjbNjchjTj*ubaubj)r*}r*(jSX =constraintjTj*jUjVjWjjY}r*(jjj^]j]]j[]j\]j`]ujbMnjchjN]r*jlX =constraintr*r*}r*(jSUjUNjbNjchjTj*ubaubeubj)r*}r*(jSUjTj*jUjVjWjjY}r*(j[]j\]j]]j^]j`]ujbMnjchjN]r*(j)r*}r*(jSXRestrict solutions involving a package to given version bounds, flag settings, and other properties. For example, to consider only install plans that use version 2.1 of ``bar`` or do not use ``bar`` at all, write:jTj*jUjVjWjjY}r*(j[]j\]j]]j^]j`]ujbMjchjN]r*(jlXRestrict solutions involving a package to given version bounds, flag settings, and other properties. For example, to consider only install plans that use version 2.1 of r*r*}r*(jSXRestrict solutions involving a package to given version bounds, flag settings, and other properties. For example, to consider only install plans that use version 2.1 of jUNjbNjchjTj*ubj)r*}r*(jSX``bar``jY}r*(j[]j\]j]]j^]j`]ujTj*jN]r*jlXbarr*r*}r*(jSXbarjTj*ubajWjubjlX or do not use r*r*}r*(jSX or do not use jUNjbNjchjTj*ubj)r*}r*(jSX``bar``jY}r*(j[]j\]j]]j^]j`]ujTj*jN]r*jlXbarr*r*}r*(jSXbarjTj*ubajWjubjlX at all, write:r*r*}r*(jSX at all, write:jUNjbNjchjTj*ubeubj)r*}r*(jSX)$ cabal install --constraint="bar == 2.1"jTj*jUjVjWjjY}r*(jjj^]j]]j[]j\]j`]ujbM#jchjN]r*jlX)$ cabal install --constraint="bar == 2.1"r*r*}r*(jSUjTj*ubaubj)r*}r*(jSXVersion bounds have the same syntax as ``build-depends``. As a special case, the following prevents ``bar`` from being used at all:jTj*jUjVjWjjY}r*(j[]j\]j]]j^]j`]ujbM%jchjN]r*(jlX'Version bounds have the same syntax as r*r*}r*(jSX'Version bounds have the same syntax as jUNjbNjchjTj*ubj)r*}r*(jSX``build-depends``jY}r*(j[]j\]j]]j^]j`]ujTj*jN]r*jlX build-dependsr*r*}r*(jSX build-dependsjTj*ubajWjubjlX,. As a special case, the following prevents r*r*}r*(jSX,. As a special case, the following prevents jUNjbNjchjTj*ubj)r*}r*(jSX``bar``jY}r*(j[]j\]j]]j^]j`]ujTj*jN]r*jlXbarr*r*}r*(jSXbarjTj*ubajWjubjlX from being used at all:r*r*}r*(jSX from being used at all:jUNjbNjchjTj*ubeubj)r*}r*(jSX# Note: this is just syntax sugar for '> 1 && < 1', and is # supported by build-depends. $ cabal install --constraint="bar -none"jTj*jUjVjWjjY}r*(jjj^]j]]j[]j\]j`]ujbM+jchjN]r*jlX# Note: this is just syntax sugar for '> 1 && < 1', and is # supported by build-depends. $ cabal install --constraint="bar -none"r*r*}r*(jSUjTj*ubaubj)r*}r*(jSX&You can also specify flag assignments:r*jTj*jUjVjWjjY}r*(j[]j\]j]]j^]j`]ujbM/jchjN]r*jlX&You can also specify flag assignments:r*r*}r*(jSj*jUNjbNjchjTj*ubaubj)r*}r*(jSX# Require bar to be installed with the foo flag turned on and # the baz flag turned off. $ cabal install --constraint="bar +foo -baz"jTj*jUjVjWjjY}r*(jjj^]j]]j[]j\]j`]ujbM3jchjN]r*jlX# Require bar to be installed with the foo flag turned on and # the baz flag turned off. $ cabal install --constraint="bar +foo -baz"r*r*}r*(jSUjTj*ubaubj)r*}r*(jSXWTo specify multiple constraints, you may pass the ``constraint`` option multiple times.jTj*jUjVjWjjY}r*(j[]j\]j]]j^]j`]ujbM7jchjN]r*(jlX2To specify multiple constraints, you may pass the r*r*}r*(jSX2To specify multiple constraints, you may pass the jUNjbNjchjTj*ubj)r*}r*(jSX``constraint``jY}r*(j[]j\]j]]j^]j`]ujTj*jN]r+jlX constraintr+r+}r+(jSX constraintjTj*ubajWjubjlX option multiple times.r+r+}r+(jSX option multiple times.jUNjbNjchjTj*ubeubj)r+}r+(jSXYThere are also some more specialized constraints, which most people don't generally need:r +jTj*jUjVjWjjY}r +(j[]j\]j]]j^]j`]ujbM:jchjN]r +jlX[There are also some more specialized constraints, which most people don’t generally need:r +r +}r+(jSj +jUNjbNjchjTj+ubaubj)r+}r+(jSX# Require that a version of bar be used that is already installed in # the global package database. $ cabal install --constraint="bar installed" # Require the local source copy of bar to be used. # (Note: By default, if we have a local package we will # automatically use it, so it will generally not be necessary to # specify this.) $ cabal install --constraint="bar source" # Require that bar have test suites and benchmarks enabled. $ cabal install --constraint="bar test" --constraint="bar bench"jTj*jUjVjWjjY}r+(jjj^]j]]j[]j\]j`]ujbM?jchjN]r+jlX# Require that a version of bar be used that is already installed in # the global package database. $ cabal install --constraint="bar installed" # Require the local source copy of bar to be used. # (Note: By default, if we have a local package we will # automatically use it, so it will generally not be necessary to # specify this.) $ cabal install --constraint="bar source" # Require that bar have test suites and benchmarks enabled. $ cabal install --constraint="bar test" --constraint="bar bench"r+r+}r+(jSUjTj+ubaubj)r+}r+(jSXBy default, constraints only apply to build dependencies (``build-depends``), build dependencies of build dependencies, and so on. Constraints normally do not apply to dependencies of the ``Setup.hs`` script of any package (``setup-depends``) nor do they apply to build tools (``build-tool-depends``) or the dependencies of build tools. To explicitly apply a constraint to a setup or build tool dependency, you can add a qualifier to the constraint as follows:jTj*jUjVjWjjY}r+(j[]j\]j]]j^]j`]ujbMLjchjN]r+(jlX:By default, constraints only apply to build dependencies (r+r+}r+(jSX:By default, constraints only apply to build dependencies (jUNjbNjchjTj+ubj)r+}r+(jSX``build-depends``jY}r+(j[]j\]j]]j^]j`]ujTj+jN]r +jlX build-dependsr!+r"+}r#+(jSX build-dependsjTj+ubajWjubjlXq), build dependencies of build dependencies, and so on. Constraints normally do not apply to dependencies of the r$+r%+}r&+(jSXq), build dependencies of build dependencies, and so on. Constraints normally do not apply to dependencies of the jUNjbNjchjTj+ubj)r'+}r(+(jSX ``Setup.hs``jY}r)+(j[]j\]j]]j^]j`]ujTj+jN]r*+jlXSetup.hsr++r,+}r-+(jSXSetup.hsjTj'+ubajWjubjlX script of any package (r.+r/+}r0+(jSX script of any package (jUNjbNjchjTj+ubj)r1+}r2+(jSX``setup-depends``jY}r3+(j[]j\]j]]j^]j`]ujTj+jN]r4+jlX setup-dependsr5+r6+}r7+(jSX setup-dependsjTj1+ubajWjubjlX$) nor do they apply to build tools (r8+r9+}r:+(jSX$) nor do they apply to build tools (jUNjbNjchjTj+ubj)r;+}r<+(jSX``build-tool-depends``jY}r=+(j[]j\]j]]j^]j`]ujTj+jN]r>+jlXbuild-tool-dependsr?+r@+}rA+(jSXbuild-tool-dependsjTj;+ubajWjubjlX) or the dependencies of build tools. To explicitly apply a constraint to a setup or build tool dependency, you can add a qualifier to the constraint as follows:rB+rC+}rD+(jSX) or the dependencies of build tools. To explicitly apply a constraint to a setup or build tool dependency, you can add a qualifier to the constraint as follows:jUNjbNjchjTj+ubeubj)rE+}rF+(jSX# Example use of the 'any' qualifier. This constraint # applies to package bar anywhere in the dependency graph. $ cabal install --constraint="any.bar == 1.0"jTj*jUjVjWjjY}rG+(jjj^]j]]j[]j\]j`]ujbMXjchjN]rH+jlX# Example use of the 'any' qualifier. This constraint # applies to package bar anywhere in the dependency graph. $ cabal install --constraint="any.bar == 1.0"rI+rJ+}rK+(jSUjTjE+ubaubj)rL+}rM+(jSXP# Example uses of 'setup' qualifiers. # This constraint applies to package bar when it is a # dependency of any Setup.hs script. $ cabal install --constraint="setup.bar == 1.0" # This constraint applies to package bar when it is a # dependency of the Setup.hs script of package foo. $ cabal install --constraint="foo:setup.bar == 1.0"jTj*jUjVjWjjY}rN+(jjj^]j]]j[]j\]j`]ujbM^jchjN]rO+jlXP# Example uses of 'setup' qualifiers. # This constraint applies to package bar when it is a # dependency of any Setup.hs script. $ cabal install --constraint="setup.bar == 1.0" # This constraint applies to package bar when it is a # dependency of the Setup.hs script of package foo. $ cabal install --constraint="foo:setup.bar == 1.0"rP+rQ+}rR+(jSUjTjL+ubaubcdocutils.nodes comment rS+)rT+}rU+(jSXBTODO: Uncomment this example once we decide on a syntax for 'exe'.jTj*jUjVjWUcommentrV+jY}rW+(jjj^]j]]j[]j\]j`]ujbMhjchjN]rX+jlXBTODO: Uncomment this example once we decide on a syntax for 'exe'.rY+rZ+}r[+(jSUjTjT+ubaubjS+)r\+}r]+(jSX# Example use of the 'exe' (executable build tool) # qualifier. This constraint applies to package baz when it # is a dependency of the build tool bar being used to # build package foo. $ cabal install --constraint="foo:bar:exe.baz == 1.0"jTj*jUjVjWjV+jY}r^+(jjj^]j]]j[]j\]j`]ujbMmjchjN]r_+jlX# Example use of the 'exe' (executable build tool) # qualifier. This constraint applies to package baz when it # is a dependency of the build tool bar being used to # build package foo. $ cabal install --constraint="foo:bar:exe.baz == 1.0"r`+ra+}rb+(jSUjTj\+ubaubeubeubj)rc+}rd+(jSUjTjjUjVjWjjY}re+(j^]j]]j[]j\]j`]Uentries]rf+(jX<setup-configure command line option; --preference=preferencehUNtrg+aujbNjchjN]ubj)rh+}ri+(jSUjTjjUjVjWjjY}rj+(jjXstdj^]j]]j[]j\]j`]jXoptionrk+jjk+ujbNjchjN]rl+(j)rm+}rn+(jSX--preference=preferencejTjh+jUjVjWjjY}ro+(j]rp+X --preferencerq+aj^]rr+haj]]j[]j\]j`]rs+hKajujbMsjchjN]rt+(j)ru+}rv+(jSjq+jTjm+jUjVjWjjY}rw+(jjj^]j]]j[]j\]j`]ujbMsjchjN]rx+jlX --preferencery+rz+}r{+(jSUjUNjbNjchjTju+ubaubj)r|+}r}+(jSX =preferencejTjm+jUjVjWjjY}r~+(jjj^]j]]j[]j\]j`]ujbMsjchjN]r+jlX =preferencer+r+}r+(jSUjUNjbNjchjTj|+ubaubeubj)r+}r+(jSUjTjh+jUjVjWjjY}r+(j[]j\]j]]j^]j`]ujbMsjchjN]r+j)r+}r+(jSXSpecify a soft constraint on versions of a package. The solver will attempt to satisfy these preferences on a "best-effort" basis.r+jTj+jUjVjWjjY}r+(j[]j\]j]]j^]j`]ujbMqjchjN]r+jlXSpecify a soft constraint on versions of a package. The solver will attempt to satisfy these preferences on a “best-effort” basis.r+r+}r+(jSj+jUNjbNjchjTj+ubaubaubeubj)r+}r+(jSUjTjjUjVjWjjY}r+(j^]j]]j[]j\]j`]Uentries]r+(jX=setup-configure command line option; --disable-response-fileshUNtr+aujbNjchjN]ubj)r+}r+(jSUjTjjUjVjWjjY}r+(jjXstdj^]j]]j[]j\]j`]jXoptionr+jj+ujbNjchjN]r+(j)r+}r+(jSX--disable-response-filesr+jTj+jUjVjWjjY}r+(j]r+j+aj^]r+haj]]j[]j\]j`]r+hajujbM|jchjN]r+(j)r+}r+(jSj+jTj+jUjVjWjjY}r+(jjj^]j]]j[]j\]j`]ujbM|jchjN]r+jlX--disable-response-filesr+r+}r+(jSUjUNjbNjchjTj+ubaubj)r+}r+(jSUjTj+jUjVjWjjY}r+(jjj^]j]]j[]j\]j`]ujbM|jchjN]ubeubj)r+}r+(jSUjTj+jUjVjWjjY}r+(j[]j\]j]]j^]j`]ujbM|jchjN]r+j)r+}r+(jSXhEnable workaround for older versions of programs such as ``ar`` or ``ld`` that do not support response file arguments (i.e. ``@file`` arguments). You may want this flag only if you specify custom ar executable. For system ``ar`` or the one bundled with ``ghc`` on Windows the ``cabal`` should do the right thing and hence should normally not require this flag.jTj+jUjVjWjjY}r+(j[]j\]j]]j^]j`]ujbMvjchjN]r+(jlX9Enable workaround for older versions of programs such as r+r+}r+(jSX9Enable workaround for older versions of programs such as jUNjbNjchjTj+ubj)r+}r+(jSX``ar``jY}r+(j[]j\]j]]j^]j`]ujTj+jN]r+jlXarr+r+}r+(jSXarjTj+ubajWjubjlX or r+r+}r+(jSX or jUNjbNjchjTj+ubj)r+}r+(jSX``ld``jY}r+(j[]j\]j]]j^]j`]ujTj+jN]r+jlXldr+r+}r+(jSXldjTj+ubajWjubjlX3 that do not support response file arguments (i.e. r+r+}r+(jSX3 that do not support response file arguments (i.e. jUNjbNjchjTj+ubj)r+}r+(jSX ``@file``jY}r+(j[]j\]j]]j^]j`]ujTj+jN]r+jlX@filer+r+}r+(jSX@filejTj+ubajWjubjlXY arguments). You may want this flag only if you specify custom ar executable. For system r+r+}r+(jSXY arguments). You may want this flag only if you specify custom ar executable. For system jUNjbNjchjTj+ubj)r+}r+(jSX``ar``jY}r+(j[]j\]j]]j^]j`]ujTj+jN]r+jlXarr+r+}r+(jSXarjTj+ubajWjubjlX or the one bundled with r+r+}r+(jSX or the one bundled with jUNjbNjchjTj+ubj)r+}r+(jSX``ghc``jY}r+(j[]j\]j]]j^]j`]ujTj+jN]r+jlXghcr+r+}r+(jSXghcjTj+ubajWjubjlX on Windows the r+r+}r+(jSX on Windows the jUNjbNjchjTj+ubj)r+}r+(jSX ``cabal``jY}r+(j[]j\]j]]j^]j`]ujTj+jN]r+jlXcabalr+r+}r+(jSXcabaljTj+ubajWjubjlXK should do the right thing and hence should normally not require this flag.r+r+}r+(jSXK should do the right thing and hence should normally not require this flag.jUNjbNjchjTj+ubeubaubeubj)r+}r+(jSX.. _setup-build:jTjjUjVjWj jY}r+(j^]j]]j[]j\]j`]j hujbM}jchjN]ubeubeubjP)r+}r+(jSUjTj jUjVj}r+h#j+sjWjXjY}r+(j[]j\]j]]j^]r+(hjEej`]r+(hh#eujbMjchj}r+hj+sjN]r+(je)r+}r+(jSX setup buildr+jTj+jUjVjWjijY}r,(j[]j\]j]]j^]j`]ujbMjchjN]r,jlX setup buildr,r,}r,(jSj+jUNjbNjchjTj+ubaubj)r,}r,(jSX\Perform any preprocessing or compilation needed to make this package ready for installation.r,jTj+jUjVjWjjY}r,(j[]j\]j]]j^]j`]ujbMjchjN]r ,jlX\Perform any preprocessing or compilation needed to make this package ready for installation.r ,r ,}r ,(jSj,jUNjbNjchjTj,ubaubj)r ,}r,(jSX)This command takes the following options:r,jTj+jUjVjWjjY}r,(j[]j\]j]]j^]j`]ujbMjchjN]r,jlX)This command takes the following options:r,r,}r,(jSj,jUNjbNjchjTj ,ubaubj)r,}r,(jSUjTj+jUjVjWjjY}r,(j^]j]]j[]j\]j`]Uentries]r,(jXMsetup-build command line option; --prog-options=options, --prog-option=optionhUNtr,aujbNjchjN]ubj)r,}r,(jSUjTj+jUjVjWjjY}r,(jjXstdj^]j]]j[]j\]j`]jXoptionr,jj,ujbNjchjN]r,(j)r,}r ,(jSX,--prog-options=options, --prog-option=optionjTj,jUjVjWjjY}r!,(j]r",(X--prog-optionsr#,X --prog-optionr$,ej^]r%,haj]]j[]j\]j`]r&,(hwhejujbMjchjN]r',(j)r(,}r),(jSj#,jTj,jUjVjWjjY}r*,(jjj^]j]]j[]j\]j`]ujbMjchjN]r+,jlX--prog-optionsr,,r-,}r.,(jSUjUNjbNjchjTj(,ubaubj)r/,}r0,(jSX=optionsjTj,jUjVjWjjY}r1,(jjj^]j]]j[]j\]j`]ujbMjchjN]r2,jlX=optionsr3,r4,}r5,(jSUjUNjbNjchjTj/,ubaubj)r6,}r7,(jSjjTj,jUjVjWjjY}r8,(jjj^]j]]j[]j\]j`]ujbMjchjN]r9,jlX, r:,r;,}r<,(jSUjUNjbNjchjTj6,ubaubj)r=,}r>,(jSj$,jTj,jUjVjWjjY}r?,(jjj^]j]]j[]j\]j`]ujbMjchjN]r@,jlX --prog-optionrA,rB,}rC,(jSUjUNjbNjchjTj=,ubaubj)rD,}rE,(jSX=optionjTj,jUjVjWjjY}rF,(jjj^]j]]j[]j\]j`]ujbMjchjN]rG,jlX=optionrH,rI,}rJ,(jSUjUNjbNjchjTjD,ubaubeubj)rK,}rL,(jSUjTj,jUjVjWjjY}rM,(j[]j\]j]]j^]j`]ujbMjchjN]rN,j)rO,}rP,(jSXiThese are mostly the same as the `options configure step <#setup-configure>`__. Unlike the options specified at the configure step, any program options specified at the build step are not persistent but are used for that invocation only. They options specified at the build step are in addition not in replacement of any options specified at the configure step.jTjK,jUjVjWjjY}rQ,(j[]j\]j]]j^]j`]ujbMjchjN]rR,(jlX!These are mostly the same as the rS,rT,}rU,(jSX!These are mostly the same as the jUNjbNjchjTjO,ubj)rV,}rW,(jSX-`options configure step <#setup-configure>`__jY}rX,(UnameXoptions configure stepjX#setup-configurej^]j]]j[]j\]j`]ujTjO,jN]rY,jlXoptions configure steprZ,r[,}r\,(jSXoptions configure stepjTjV,ubajWjubjlX. Unlike the options specified at the configure step, any program options specified at the build step are not persistent but are used for that invocation only. They options specified at the build step are in addition not in replacement of any options specified at the configure step.r],r^,}r_,(jSX. Unlike the options specified at the configure step, any program options specified at the build step are not persistent but are used for that invocation only. They options specified at the build step are in addition not in replacement of any options specified at the configure step.jUNjbNjchjTjO,ubeubaubeubj)r`,}ra,(jSX.. _setup-haddock:jTj+jUjVjWj jY}rb,(j^]j]]j[]j\]j`]j hujbMjchjN]ubeubjP)rc,}rd,(jSUjTj jUjVj}re,hj`,sjWjXjY}rf,(j[]j\]j]]j^]rg,(hj9ej`]rh,(hheujbMjchj}ri,hj`,sjN]rj,(je)rk,}rl,(jSX setup haddockrm,jTjc,jUjVjWjijY}rn,(j[]j\]j]]j^]j`]ujbMjchjN]ro,jlX setup haddockrp,rq,}rr,(jSjm,jUNjbNjchjTjk,ubaubj)rs,}rt,(jSXBuild the documentation for the package using Haddock_. By default, only the documentation for the exposed modules is generated (but see the :option:`--executables` and :option:`--internal` flags below).jTjc,jUjVjWjjY}ru,(j[]j\]j]]j^]j`]ujbMjchjN]rv,(jlX.Build the documentation for the package using rw,rx,}ry,(jSX.Build the documentation for the package using jUNjbNjchjTjs,ubj)rz,}r{,(jSXHaddock_jKjTjs,jWjjY}r|,(UnameXHaddockr},jXhttp://www.haskell.org/haddock/r~,j^]j]]j[]j\]j`]ujN]r,jlXHaddockr,r,}r,(jSj},jTjz,ubaubjlXW. By default, only the documentation for the exposed modules is generated (but see the r,r,}r,(jSXW. By default, only the documentation for the exposed modules is generated (but see the jUNjbNjchjTjs,ubj)r,}r,(jSX:option:`--executables`jTjs,jUjVjWjjY}r,(UreftypeXoptionjjX --executablesr,U refdomainXstdr,j^]j]]U refexplicitj[]j\]j`]jjjX setup-haddockr,ujbMjN]r,j)r,}r,(jSj,jY}r,(j[]j\]r,(jj,X std-optionr,ej]]j^]j`]ujTj,jN]r,jlX --executablesr,r,}r,(jSUjTj,ubajWjubaubjlX and r,r,}r,(jSX and jUNjbNjchjTjs,ubj)r,}r,(jSX:option:`--internal`jTjs,jUjVjWjjY}r,(UreftypeXoptionjjX --internalr,U refdomainXstdr,j^]j]]U refexplicitj[]j\]j`]jjjj,ujbMjN]r,j)r,}r,(jSj,jY}r,(j[]j\]r,(jj,X std-optionr,ej]]j^]j`]ujTj,jN]r,jlX --internalr,r,}r,(jSUjTj,ubajWjubaubjlX flags below).r,r,}r,(jSX flags below).jUNjbNjchjTjs,ubeubj)r,}r,(jSX)This command takes the following options:r,jTjc,jUjVjWjjY}r,(j[]j\]j]]j^]j`]ujbMjchjN]r,jlX)This command takes the following options:r,r,}r,(jSj,jUNjbNjchjTj,ubaubj)r,}r,(jSUjTjc,jUjVjWjjY}r,(j^]j]]j[]j\]j`]Uentries]r,(jX+setup-haddock command line option; --hooglehUNtr,aujbNjchjN]ubj)r,}r,(jSUjTjc,jUjVjWjjY}r,(jjXstdj^]j]]j[]j\]j`]jXoptionr,jj,ujbNjchjN]r,(j)r,}r,(jSX--hoogler,jTj,jUjVjWjjY}r,(j]r,j,aj^]r,haj]]j[]j\]j`]r,h9ajujbMjchjN]r,(j)r,}r,(jSj,jTj,jUjVjWjjY}r,(jjj^]j]]j[]j\]j`]ujbMjchjN]r,jlX--hoogler,r,}r,(jSUjUNjbNjchjTj,ubaubj)r,}r,(jSUjTj,jUjVjWjjY}r,(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r,}r,(jSUjTj,jUjVjWjjY}r,(j[]j\]j]]j^]j`]ujbMjchjN]r,j)r,}r,(jSXGenerate a file ``dist/doc/html/``\ *pkgid*\ ``.txt``, which can be converted by Hoogle_ into a database for searching. This is equivalent to running Haddock_ with the ``--hoogle`` flag.jTj,jUjVjWjjY}r,(j[]j\]j]]j^]j`]ujbMjchjN]r,(jlXGenerate a file r,r,}r,(jSXGenerate a file jUNjbNjchjTj,ubj)r,}r,(jSX``dist/doc/html/``jY}r,(j[]j\]j]]j^]j`]ujTj,jN]r,jlXdist/doc/html/r,r,}r,(jSXdist/doc/html/jTj,ubajWjubjlXr,}r,(jSX\ r,jUNjbNjchjTj,ubj)r,}r,(jSX*pkgid*jY}r,(j[]j\]j]]j^]j`]ujTj,jN]r,jlXpkgidr,r,}r,(jSXpkgidjTj,ubajWjubjlXr,}r,(jSj,jTj,ubj)r,}r,(jSX``.txt``jY}r,(j[]j\]j]]j^]j`]ujTj,jN]r,jlX.txtr,r,}r,(jSX.txtjTj,ubajWjubjlX, which can be converted by r,r,}r,(jSX, which can be converted by jUNjbNjchjTj,ubj)r,}r,(jSXHoogle_jKjTj,jWjjY}r,(UnameXHoogler,jXhttp://www.haskell.org/hoogle/r,j^]j]]j[]j\]j`]ujN]r,jlXHoogler,r,}r,(jSj,jTj,ubaubjlX> into a database for searching. This is equivalent to running r-r-}r-(jSX> into a database for searching. This is equivalent to running jUNjbNjchjTj,ubj)r-}r-(jSXHaddock_jKjTj,jWjjY}r-(UnameXHaddockr-jj~,j^]j]]j[]j\]j`]ujN]r-jlXHaddockr-r -}r -(jSj-jTj-ubaubjlX with the r -r -}r -(jSX with the jUNjbNjchjTj,ubj)r-}r-(jSX ``--hoogle``jY}r-(j[]j\]j]]j^]j`]ujTj,jN]r-jlX--hoogler-r-}r-(jSX--hooglejTj-ubajWjubjlX flag.r-r-}r-(jSX flag.jUNjbNjchjTj,ubeubaubeubj)r-}r-(jSUjTjc,jUjVjWjjY}r-(j^]j]]j[]j\]j`]Uentries]r-(jX6setup-haddock command line option; --html-location=urlj)UNtr-aujbNjchjN]ubj)r-}r-(jSUjTjc,jUjVjWjjY}r-(jjXstdj^]j]]j[]j\]j`]jXoptionr -jj -ujbNjchjN]r!-(j)r"-}r#-(jSX--html-location=urljTj-jUjVjWjjY}r$-(j]r%-X--html-locationr&-aj^]r'-j)aj]]j[]j\]j`]r(-hajujbMjchjN]r)-(j)r*-}r+-(jSj&-jTj"-jUjVjWjjY}r,-(jjj^]j]]j[]j\]j`]ujbMjchjN]r--jlX--html-locationr.-r/-}r0-(jSUjUNjbNjchjTj*-ubaubj)r1-}r2-(jSX=urljTj"-jUjVjWjjY}r3-(jjj^]j]]j[]j\]j`]ujbMjchjN]r4-jlX=urlr5-r6-}r7-(jSUjUNjbNjchjTj1-ubaubeubj)r8-}r9-(jSUjTj-jUjVjWjjY}r:-(j[]j\]j]]j^]j`]ujbMjchjN]r;-(j)r<-}r=-(jSXoSpecify a template for the location of HTML documentation for prerequisite packages. The substitutions (`see listing <#paths-in-the-simple-build-system>`__) are applied to the template to obtain a location for each package, which will be used by hyperlinks in the generated documentation. For example, the following command generates links pointing at Hackage_ pages:jTj8-jUjVjWjjY}r>-(j[]j\]j]]j^]j`]ujbMjchjN]r?-(jlXhSpecify a template for the location of HTML documentation for prerequisite packages. The substitutions (r@-rA-}rB-(jSXhSpecify a template for the location of HTML documentation for prerequisite packages. The substitutions (jUNjbNjchjTj<-ubj)rC-}rD-(jSX3`see listing <#paths-in-the-simple-build-system>`__jY}rE-(UnameX see listingjX!#paths-in-the-simple-build-systemj^]j]]j[]j\]j`]ujTj<-jN]rF-jlX see listingrG-rH-}rI-(jSX see listingjTjC-ubajWjubjlX) are applied to the template to obtain a location for each package, which will be used by hyperlinks in the generated documentation. For example, the following command generates links pointing at rJ-rK-}rL-(jSX) are applied to the template to obtain a location for each package, which will be used by hyperlinks in the generated documentation. For example, the following command generates links pointing at jUNjbNjchjTj<-ubj)rM-}rN-(jSXHackage_jKjTj<-jWjjY}rO-(UnameXHackagerP-jjj^]j]]j[]j\]j`]ujN]rQ-jlXHackagerR-rS-}rT-(jSjP-jTjM-ubaubjlX pages:rU-rV-}rW-(jSX pages:jUNjbNjchjTj<-ubeubcdocutils.nodes block_quote rX-)rY-}rZ-(jSUjTj8-jUjVjWU block_quoter[-jY}r\-(j[]j\]j]]j^]j`]ujbNjchjN]r]-j)r^-}r_-(jSX`setup haddock --html-location='http://hackage.haskell.org/packages/archive/$pkg/latest/doc/html'jTjY-jUjVjWjjY}r`-(j[]j\]j]]j^]j`]ujbMjN]ra-(jlX"setup haddock –html-location=’rb-rc-}rd-(jSXsetup haddock --html-location='jTj^-ubj)re-}rf-(jSX@http://hackage.haskell.org/packages/archive/$pkg/latest/doc/htmlrg-jY}rh-(Urefurijg-j^]j]]j[]j\]j`]ujTj^-jN]ri-jlX@http://hackage.haskell.org/packages/archive/$pkg/latest/doc/htmlrj-rk-}rl-(jSjg-jTje-ubajWjubjlX’rm-}rn-(jSX'jTj^-ubeubaubj)ro-}rp-(jSXHere the argument is quoted to prevent substitution by the shell. If this option is omitted, the location for each package is obtained using the package tool (e.g. ``ghc-pkg``).jTj8-jUjVjWjjY}rq-(j[]j\]j]]j^]j`]ujbMjchjN]rr-(jlXHere the argument is quoted to prevent substitution by the shell. If this option is omitted, the location for each package is obtained using the package tool (e.g. rs-rt-}ru-(jSXHere the argument is quoted to prevent substitution by the shell. If this option is omitted, the location for each package is obtained using the package tool (e.g. jUNjbNjchjTjo-ubj)rv-}rw-(jSX ``ghc-pkg``jY}rx-(j[]j\]j]]j^]j`]ujTjo-jN]ry-jlXghc-pkgrz-r{-}r|-(jSXghc-pkgjTjv-ubajWjubjlX).r}-r~-}r-(jSX).jUNjbNjchjTjo-ubeubeubeubj)r-}r-(jSUjTjc,jUjVjWjjY}r-(j^]j]]j[]j\]j`]Uentries]r-(jX0setup-haddock command line option; --executablesjAUNtr-aujbNjchjN]ubj)r-}r-(jSUjTjc,jUjVjWjjY}r-(jjXstdj^]j]]j[]j\]j`]jXoptionr-jj-ujbNjchjN]r-(j)r-}r-(jSX --executablesr-jTj-jUjVjWjjY}r-(j]r-j-aj^]r-jAaj]]j[]j\]j`]r-hajujbMjchjN]r-(j)r-}r-(jSj-jTj-jUjVjWjjY}r-(jjj^]j]]j[]j\]j`]ujbMjchjN]r-jlX --executablesr-r-}r-(jSUjUNjbNjchjTj-ubaubj)r-}r-(jSUjTj-jUjVjWjjY}r-(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r-}r-(jSUjTj-jUjVjWjjY}r-(j[]j\]j]]j^]j`]ujbMjchjN]r-j)r-}r-(jSXzAlso run Haddock_ for the modules of all the executable programs. By default Haddock_ is run only on the exported modules.jTj-jUjVjWjjY}r-(j[]j\]j]]j^]j`]ujbMjchjN]r-(jlX Also run r-r-}r-(jSX Also run jUNjbNjchjTj-ubj)r-}r-(jSXHaddock_jKjTj-jWjjY}r-(UnameXHaddockr-jj~,j^]j]]j[]j\]j`]ujN]r-jlXHaddockr-r-}r-(jSj-jTj-ubaubjlX< for the modules of all the executable programs. By default r-r-}r-(jSX< for the modules of all the executable programs. By default jUNjbNjchjTj-ubj)r-}r-(jSXHaddock_jKjTj-jWjjY}r-(UnameXHaddockr-jj~,j^]j]]j[]j\]j`]ujN]r-jlXHaddockr-r-}r-(jSj-jTj-ubaubjlX% is run only on the exported modules.r-r-}r-(jSX% is run only on the exported modules.jUNjbNjchjTj-ubeubaubeubj)r-}r-(jSUjTjc,jUjVjWjjY}r-(j^]j]]j[]j\]j`]Uentries]r-(jX-setup-haddock command line option; --internalhUNtr-aujbNjchjN]ubj)r-}r-(jSUjTjc,jUjVjWjjY}r-(jjXstdj^]j]]j[]j\]j`]jXoptionr-jj-ujbNjchjN]r-(j)r-}r-(jSX --internalr-jTj-jUjVjWjjY}r-(j]r-j-aj^]r-haj]]j[]j\]j`]r-h2ajujbMjchjN]r-(j)r-}r-(jSj-jTj-jUjVjWjjY}r-(jjj^]j]]j[]j\]j`]ujbMjchjN]r-jlX --internalr-r-}r-(jSUjUNjbNjchjTj-ubaubj)r-}r-(jSUjTj-jUjVjWjjY}r-(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r-}r-(jSUjTj-jUjVjWjjY}r-(j[]j\]j]]j^]j`]ujbMjchjN]r-j)r-}r-(jSXRun Haddock_ for the all modules, including unexposed ones, and make Haddock_ generate documentation for unexported symbols as well.jTj-jUjVjWjjY}r-(j[]j\]j]]j^]j`]ujbMjchjN]r-(jlXRun r-r-}r-(jSXRun jUNjbNjchjTj-ubj)r-}r-(jSXHaddock_jKjTj-jWjjY}r-(UnameXHaddockr-jj~,j^]j]]j[]j\]j`]ujN]r-jlXHaddockr-r-}r-(jSj-jTj-ubaubjlX9 for the all modules, including unexposed ones, and make r-r-}r-(jSX9 for the all modules, including unexposed ones, and make jUNjbNjchjTj-ubj)r-}r-(jSXHaddock_jKjTj-jWjjY}r-(UnameXHaddockr-jj~,j^]j]]j[]j\]j`]ujN]r-jlXHaddockr-r-}r-(jSj-jTj-ubaubjlX7 generate documentation for unexported symbols as well.r-r-}r-(jSX7 generate documentation for unexported symbols as well.jUNjbNjchjTj-ubeubaubeubj)r-}r-(jSUjTjc,jUjVjWjjY}r-(j^]j]]j[]j\]j`]Uentries]r-(jX-setup-haddock command line option; --css=pathhUNtr-aujbNjchjN]ubj)r-}r.(jSUjTjc,jUjVjWjjY}r.(jjXstdj^]j]]j[]j\]j`]jXoptionr.jj.ujbNjchjN]r.(j)r.}r.(jSX --css=pathjTj-jUjVjWjjY}r.(j]r.X--cssr.aj^]r .haj]]j[]j\]j`]r .hIajujbMjchjN]r .(j)r .}r .(jSj.jTj.jUjVjWjjY}r.(jjj^]j]]j[]j\]j`]ujbMjchjN]r.jlX--cssr.r.}r.(jSUjUNjbNjchjTj .ubaubj)r.}r.(jSX=pathjTj.jUjVjWjjY}r.(jjj^]j]]j[]j\]j`]ujbMjchjN]r.jlX=pathr.r.}r.(jSUjUNjbNjchjTj.ubaubeubj)r.}r.(jSUjTj-jUjVjWjjY}r.(j[]j\]j]]j^]j`]ujbMjchjN]r.j)r.}r.(jSXThe argument *path* denotes a CSS file, which is passed to Haddock_ and used to set the style of the generated documentation. This is only needed to override the default style that Haddock_ uses.jTj.jUjVjWjjY}r .(j[]j\]j]]j^]j`]ujbMjchjN]r!.(jlX The argument r".r#.}r$.(jSX The argument jUNjbNjchjTj.ubj)r%.}r&.(jSX*path*jY}r'.(j[]j\]j]]j^]j`]ujTj.jN]r(.jlXpathr).r*.}r+.(jSXpathjTj%.ubajWjubjlX( denotes a CSS file, which is passed to r,.r-.}r..(jSX( denotes a CSS file, which is passed to jUNjbNjchjTj.ubj)r/.}r0.(jSXHaddock_jKjTj.jWjjY}r1.(UnameXHaddockr2.jj~,j^]j]]j[]j\]j`]ujN]r3.jlXHaddockr4.r5.}r6.(jSj2.jTj/.ubaubjlXr and used to set the style of the generated documentation. This is only needed to override the default style that r7.r8.}r9.(jSXr and used to set the style of the generated documentation. This is only needed to override the default style that jUNjbNjchjTj.ubj)r:.}r;.(jSXHaddock_jKjTj.jWjjY}r<.(UnameXHaddockr=.jj~,j^]j]]j[]j\]j`]ujN]r>.jlXHaddockr?.r@.}rA.(jSj=.jTj:.ubaubjlX uses.rB.rC.}rD.(jSX uses.jUNjbNjchjTj.ubeubaubeubj)rE.}rF.(jSUjTjc,jUjVjWjjY}rG.(j^]j]]j[]j\]j`]Uentries]rH.(jX5setup-haddock command line option; --hyperlink-sourcej-UNtrI.aujbNjchjN]ubj)rJ.}rK.(jSUjTjc,jUjVjWjjY}rL.(jjXstdj^]j]]j[]j\]j`]jXoptionrM.jjM.ujbNjchjN]rN.(j)rO.}rP.(jSX--hyperlink-sourcerQ.jTjJ.jUjVjWjjY}rR.(j]rS.jQ.aj^]rT.j-aj]]j[]j\]j`]rU.hajujbMjchjN]rV.(j)rW.}rX.(jSjQ.jTjO.jUjVjWjjY}rY.(jjj^]j]]j[]j\]j`]ujbMjchjN]rZ.jlX--hyperlink-sourcer[.r\.}r].(jSUjUNjbNjchjTjW.ubaubj)r^.}r_.(jSUjTjO.jUjVjWjjY}r`.(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)ra.}rb.(jSUjTjJ.jUjVjWjjY}rc.(j[]j\]j]]j^]j`]ujbMjchjN]rd.j)re.}rf.(jSXGenerate Haddock_ documentation integrated with HsColour_ . First, HsColour_ is run to generate colourised code. Then Haddock_ is run to generate HTML documentation. Each entity shown in the documentation is linked to its definition in the colourised code.jTja.jUjVjWjjY}rg.(j[]j\]j]]j^]j`]ujbMjchjN]rh.(jlX Generate ri.rj.}rk.(jSX Generate jUNjbNjchjTje.ubj)rl.}rm.(jSXHaddock_jKjTje.jWjjY}rn.(UnameXHaddockro.jj~,j^]j]]j[]j\]j`]ujN]rp.jlXHaddockrq.rr.}rs.(jSjo.jTjl.ubaubjlX documentation integrated with rt.ru.}rv.(jSX documentation integrated with jUNjbNjchjTje.ubj)rw.}rx.(jSX HsColour_jKjTje.jWjjY}ry.(UnameXHsColourrz.jX+http://www.cs.york.ac.uk/fp/darcs/hscolour/r{.j^]j]]j[]j\]j`]ujN]r|.jlXHsColourr}.r~.}r.(jSjz.jTjw.ubaubjlX . First, r.r.}r.(jSX . First, jUNjbNjchjTje.ubj)r.}r.(jSX HsColour_jKjTje.jWjjY}r.(UnameXHsColourr.jj{.j^]j]]j[]j\]j`]ujN]r.jlXHsColourr.r.}r.(jSj.jTj.ubaubjlX* is run to generate colourised code. Then r.r.}r.(jSX* is run to generate colourised code. Then jUNjbNjchjTje.ubj)r.}r.(jSXHaddock_jKjTje.jWjjY}r.(UnameXHaddockr.jj~,j^]j]]j[]j\]j`]ujN]r.jlXHaddockr.r.}r.(jSj.jTj.ubaubjlX is run to generate HTML documentation. Each entity shown in the documentation is linked to its definition in the colourised code.r.r.}r.(jSX is run to generate HTML documentation. Each entity shown in the documentation is linked to its definition in the colourised code.jUNjbNjchjTje.ubeubaubeubj)r.}r.(jSUjTjc,jUjVjWjjY}r.(j^]j]]j[]j\]j`]Uentries]r.(jX6setup-haddock command line option; --hscolour-css=pathjUNtr.aujbNjchjN]ubj)r.}r.(jSUjTjc,jUjVjWjjY}r.(jjXstdj^]j]]j[]j\]j`]jXoptionr.jj.ujbNjchjN]r.(j)r.}r.(jSX--hscolour-css=pathr.jTj.jUjVjWjjY}r.(j]r.X--hscolour-cssr.aj^]r.jaj]]j[]j\]j`]r.hVajujbMjchjN]r.(j)r.}r.(jSj.jTj.jUjVjWjjY}r.(jjj^]j]]j[]j\]j`]ujbMjchjN]r.jlX--hscolour-cssr.r.}r.(jSUjUNjbNjchjTj.ubaubj)r.}r.(jSX=pathjTj.jUjVjWjjY}r.(jjj^]j]]j[]j\]j`]ujbMjchjN]r.jlX=pathr.r.}r.(jSUjUNjbNjchjTj.ubaubeubj)r.}r.(jSUjTj.jUjVjWjjY}r.(j[]j\]j]]j^]j`]ujbMjchjN]r.(j)r.}r.(jSXJThe argument *path* denotes a CSS file, which is passed to HsColour_ as inr.jTj.jUjVjWjjY}r.(j[]j\]j]]j^]j`]ujbMjchjN]r.(jlX The argument r.r.}r.(jSX The argument jUNjbNjchjTj.ubj)r.}r.(jSX*path*jY}r.(j[]j\]j]]j^]j`]ujTj.jN]r.jlXpathr.r.}r.(jSXpathjTj.ubajWjubjlX( denotes a CSS file, which is passed to r.r.}r.(jSX( denotes a CSS file, which is passed to jUNjbNjchjTj.ubj)r.}r.(jSX HsColour_jKjTj.jWjjY}r.(UnameXHsColourr.jj{.j^]j]]j[]j\]j`]ujN]r.jlXHsColourr.r.}r.(jSj.jTj.ubaubjlX as inr.r.}r.(jSX as injUNjbNjchjTj.ubeubjX-)r.}r.(jSUjTj.jUjVjWj[-jY}r.(j[]j\]j]]j^]j`]ujbNjchjN]r.j)r.}r.(jSX)runhaskell Setup.hs hscolour --css=*path*r.jTj.jUjVjWjjY}r.(j[]j\]j]]j^]j`]ujbMjN]r.jlX*runhaskell Setup.hs hscolour –css=*path*r.r.}r.(jSj.jTj.ubaubaubeubeubj)r.}r.(jSX.. _setup-hscolour:jTjc,jUjVjWj jY}r.(j^]j]]j[]j\]j`]j j<ujbMjchjN]ubeubjP)r.}r.(jSUjTj jUjVj}r.hj.sjWjXjY}r.(j[]j\]j]]j^]r.(j<j+ej`]r.(hheujbMjchj}r.j<j.sjN]r.(je)r.}r.(jSXsetup hscolourr.jTj.jUjVjWjijY}r.(j[]j\]j]]j^]j`]ujbMjchjN]r.jlXsetup hscolourr.r.}r.(jSj.jUNjbNjchjTj.ubaubj)r.}r.(jSXProduce colourised code in HTML format using HsColour_. Colourised code for exported modules is put in ``dist/doc/html/``\ *pkgid*\ ``/src``.jTj.jUjVjWjjY}r.(j[]j\]j]]j^]j`]ujbMjchjN]r.(jlX-Produce colourised code in HTML format using r.r.}r/(jSX-Produce colourised code in HTML format using jUNjbNjchjTj.ubj)r/}r/(jSX HsColour_jKjTj.jWjjY}r/(UnameXHsColourr/jj{.j^]j]]j[]j\]j`]ujN]r/jlXHsColourr/r/}r/(jSj/jTj/ubaubjlX1. Colourised code for exported modules is put in r /r /}r /(jSX1. Colourised code for exported modules is put in jUNjbNjchjTj.ubj)r /}r /(jSX``dist/doc/html/``jY}r/(j[]j\]j]]j^]j`]ujTj.jN]r/jlXdist/doc/html/r/r/}r/(jSXdist/doc/html/jTj /ubajWjubjlXr/}r/(jSX\ r/jUNjbNjchjTj.ubj)r/}r/(jSX*pkgid*jY}r/(j[]j\]j]]j^]j`]ujTj.jN]r/jlXpkgidr/r/}r/(jSXpkgidjTj/ubajWjubjlXr/}r/(jSj/jTj.ubj)r/}r /(jSX``/src``jY}r!/(j[]j\]j]]j^]j`]ujTj.jN]r"/jlX/srcr#/r$/}r%/(jSX/srcjTj/ubajWjubjlX.r&/}r'/(jSX.jUNjbNjchjTj.ubeubj)r(/}r)/(jSX)This command takes the following options:r*/jTj.jUjVjWjjY}r+/(j[]j\]j]]j^]j`]ujbMjchjN]r,/jlX)This command takes the following options:r-/r./}r//(jSj*/jUNjbNjchjTj(/ubaubj)r0/}r1/(jSUjTj.jUjVjWjjY}r2/(j^]j]]j[]j\]j`]Uentries]r3/(jX1setup-hscolour command line option; --executablesj"UNtr4/aujbNjchjN]ubj)r5/}r6/(jSUjTj.jUjVjWjjY}r7/(jjXstdj^]j]]j[]j\]j`]jXoptionr8/jj8/ujbNjchjN]r9/(j)r:/}r;/(jSX --executablesr/j`__ are determined by options to `setup configure`_.jTj/jUjVjWjjY}r/(j[]j\]j]]j^]j`]ujbMjchjN]r/(jlXThe r/r/}r/(jSXThe jUNjbNjchjTj/ubj)r/}r/(jSX+`install locations <#installation-paths>`__jY}r/(UnameXinstall locationsjX#installation-pathsj^]j]]j[]j\]j`]ujTj/jN]r/jlXinstall locationsr/r/}r/(jSXinstall locationsjTj/ubajWjubjlX are determined by options to r/r/}r/(jSX are determined by options to jUNjbNjchjTj/ubj)r/}r/(jSX`setup configure`_jKjTj/jWjjY}r/(UnameXsetup configurej^]j]]j[]j\]j`]j j.ujN]r/jlXsetup configurer/r/}r/(jSXsetup configurejTj/ubaubjlX.r/}r/(jSX.jUNjbNjchjTj/ubeubj)r/}r/(jSX)This command takes the following options:r/jTj/jUjVjWjjY}r/(j[]j\]j]]j^]j`]ujbMjchjN]r/jlX)This command takes the following options:r/r/}r/(jSj/jUNjbNjchjTj/ubaubj)r/}r/(jSUjTj/jUjVjWjjY}r/(j^]j]]j[]j\]j`]Uentries]r/(jX+setup-install command line option; --globalj UNtr/aujbNjchjN]ubj)r/}r/(jSUjTj/jUjVjWjjY}r0(jjXstdj^]j]]j[]j\]j`]jXoptionr0jj0ujbNjchjN]r0(j)r0}r0(jSX--globalr0jTj/jUjVjWjjY}r0(j]r0j0aj^]r0j aj]]j[]j\]j`]r 0h`ajujbMjchjN]r 0(j)r 0}r 0(jSj0jTj0jUjVjWjjY}r 0(jjj^]j]]j[]j\]j`]ujbMjchjN]r0jlX--globalr0r0}r0(jSUjUNjbNjchjTj 0ubaubj)r0}r0(jSUjTj0jUjVjWjjY}r0(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r0}r0(jSUjTj/jUjVjWjjY}r0(j[]j\]j]]j^]j`]ujbMjchjN]r0j)r0}r0(jSXRegister this package in the system-wide database. (This is the default, unless the :option:`setup configure --user` option was supplied to the ``configure`` command.)jTj0jUjVjWjjY}r0(j[]j\]j]]j^]j`]ujbMjchjN]r0(jlXTRegister this package in the system-wide database. (This is the default, unless the r0r0}r0(jSXTRegister this package in the system-wide database. (This is the default, unless the jUNjbNjchjTj0ubj)r 0}r!0(jSX :option:`setup configure --user`jTj0jUjVjWjjY}r"0(UreftypeXoptionjjXsetup configure --userr#0U refdomainXstdr$0j^]j]]U refexplicitj[]j\]j`]jjjX setup-installr%0ujbMjN]r&0j)r'0}r(0(jSj#0jY}r)0(j[]j\]r*0(jj$0X std-optionr+0ej]]j^]j`]ujTj 0jN]r,0jlXsetup configure --userr-0r.0}r/0(jSUjTj'0ubajWjubaubjlX option was supplied to the r00r10}r20(jSX option was supplied to the jUNjbNjchjTj0ubj)r30}r40(jSX ``configure``jY}r50(j[]j\]j]]j^]j`]ujTj0jN]r60jlX configurer70r80}r90(jSX configurejTj30ubajWjubjlX command.)r:0r;0}r<0(jSX command.)jUNjbNjchjTj0ubeubaubeubj)r=0}r>0(jSUjTj/jUjVjWjjY}r?0(j^]j]]j[]j\]j`]Uentries]r@0(jX)setup-install command line option; --userjUNtrA0aujbNjchjN]ubj)rB0}rC0(jSUjTj/jUjVjWjjY}rD0(jjXstdj^]j]]j[]j\]j`]jXoptionrE0jjE0ujbNjchjN]rF0(j)rG0}rH0(jSX--userrI0jTjB0jUjVjWjjY}rJ0(j]rK0jI0aj^]rL0jaj]]j[]j\]j`]rM0hoajujbM jchjN]rN0(j)rO0}rP0(jSjI0jTjG0jUjVjWjjY}rQ0(jjj^]j]]j[]j\]j`]ujbM jchjN]rR0jlX--userrS0rT0}rU0(jSUjUNjbNjchjTjO0ubaubj)rV0}rW0(jSUjTjG0jUjVjWjjY}rX0(jjj^]j]]j[]j\]j`]ujbM jchjN]ubeubj)rY0}rZ0(jSUjTjB0jUjVjWjjY}r[0(j[]j\]j]]j^]j`]ujbM jchjN]r\0j)r]0}r^0(jSXRegister this package in the user's local package database. (This is the default if the :option:`setup configure --user` option was supplied to the ``configure`` command.)jTjY0jUjVjWjjY}r_0(j[]j\]j]]j^]j`]ujbMjchjN]r`0(jlXZRegister this package in the user’s local package database. (This is the default if the ra0rb0}rc0(jSXXRegister this package in the user's local package database. (This is the default if the jUNjbNjchjTj]0ubj)rd0}re0(jSX :option:`setup configure --user`jTj]0jUjVjWjjY}rf0(UreftypeXoptionjjXsetup configure --userrg0U refdomainXstdrh0j^]j]]U refexplicitj[]j\]j`]jjjj%0ujbMjN]ri0j)rj0}rk0(jSjg0jY}rl0(j[]j\]rm0(jjh0X std-optionrn0ej]]j^]j`]ujTjd0jN]ro0jlXsetup configure --userrp0rq0}rr0(jSUjTjj0ubajWjubaubjlX option was supplied to the rs0rt0}ru0(jSX option was supplied to the jUNjbNjchjTj]0ubj)rv0}rw0(jSX ``configure``jY}rx0(j[]j\]j]]j^]j`]ujTj]0jN]ry0jlX configurerz0r{0}r|0(jSX configurejTjv0ubajWjubjlX command.)r}0r~0}r0(jSX command.)jUNjbNjchjTj]0ubeubaubeubj)r0}r0(jSX.. _setup-copy:jTj/jUjVjWj jY}r0(j^]j]]j[]j\]j`]j jJujbM jchjN]ubeubjP)r0}r0(jSUjTj jUjVj}r0hj0sjWjXjY}r0(j[]j\]j]]j^]r0(jJj3ej`]r0(hheujbMjchj}r0jJj0sjN]r0(je)r0}r0(jSX setup copyr0jTj0jUjVjWjijY}r0(j[]j\]j]]j^]j`]ujbMjchjN]r0jlX setup copyr0r0}r0(jSj0jUNjbNjchjTj0ubaubj)r0}r0(jSXiCopy the files without registering them. This command is mainly of use to those creating binary packages.r0jTj0jUjVjWjjY}r0(j[]j\]j]]j^]j`]ujbMjchjN]r0jlXiCopy the files without registering them. This command is mainly of use to those creating binary packages.r0r0}r0(jSj0jUNjbNjchjTj0ubaubj)r0}r0(jSX(This command takes the following option:r0jTj0jUjVjWjjY}r0(j[]j\]j]]j^]j`]ujbMjchjN]r0jlX(This command takes the following option:r0r0}r0(jSj0jUNjbNjchjTj0ubaubj)r0}r0(jSUjTj0jUjVjWjjY}r0(j^]j]]j[]j\]j`]Uentries]r0(jX.setup-copy command line option; --destdir=pathhUNtr0aujbNjchjN]ubj)r0}r0(jSUjTj0jUjVjWjjY}r0(jjXstdj^]j]]j[]j\]j`]jXoptionr0jj0ujbNjchjN]r0(j)r0}r0(jSX--destdir=pathjTj0jUjVjWjjY}r0(j]r0X --destdirr0aj^]r0haj]]j[]j\]j`]r0hJajujbMjchjN]r0(j)r0}r0(jSj0jTj0jUjVjWjjY}r0(jjj^]j]]j[]j\]j`]ujbMjchjN]r0jlX --destdirr0r0}r0(jSUjUNjbNjchjTj0ubaubj)r0}r0(jSX=pathjTj0jUjVjWjjY}r0(jjj^]j]]j[]j\]j`]ujbMjchjN]r0jlX=pathr0r0}r0(jSUjUNjbNjchjTj0ubaubeubj)r0}r0(jSUjTj0jUjVjWjjY}r0(j[]j\]j]]j^]j`]ujbMjchjN]r0j)r0}r0(jSXuSpecify the directory under which to place installed files. If this is not given, then the root directory is assumed.r0jTj0jUjVjWjjY}r0(j[]j\]j]]j^]j`]ujbMjchjN]r0jlXuSpecify the directory under which to place installed files. If this is not given, then the root directory is assumed.r0r0}r0(jSj0jUNjbNjchjTj0ubaubaubeubj)r0}r0(jSX.. _setup-register:jTj0jUjVjWj jY}r0(j^]j]]j[]j\]j`]j j ujbMjchjN]ubeubjP)r0}r0(jSUjTj jUjVj}r0h^j0sjWjXjY}r0(j[]j\]j]]j^]r0(j hej`]r0(h%h^eujbMjchj}r0j j0sjN]r0(je)r0}r0(jSXsetup registerr0jTj0jUjVjWjijY}r0(j[]j\]j]]j^]j`]ujbMjchjN]r0jlXsetup registerr0r0}r0(jSj0jUNjbNjchjTj0ubaubj)r0}r0(jSX&Register this package with the compiler, i.e. make the modules it contains available to programs. This only makes sense for library packages. Note that the ``install`` command incorporates this action. The main use of this separate command is in the post-installation step for a binary package.jTj0jUjVjWjjY}r0(j[]j\]j]]j^]j`]ujbM!jchjN]r0(jlXRegister this package with the compiler, i.e. make the modules it contains available to programs. This only makes sense for library packages. Note that the r0r0}r0(jSXRegister this package with the compiler, i.e. make the modules it contains available to programs. This only makes sense for library packages. Note that the jUNjbNjchjTj0ubj)r0}r0(jSX ``install``jY}r0(j[]j\]j]]j^]j`]ujTj0jN]r0jlXinstallr0r0}r0(jSXinstalljTj0ubajWjubjlX command incorporates this action. The main use of this separate command is in the post-installation step for a binary package.r0r0}r0(jSX command incorporates this action. The main use of this separate command is in the post-installation step for a binary package.jUNjbNjchjTj0ubeubj)r0}r0(jSX)This command takes the following options:r0jTj0jUjVjWjjY}r0(j[]j\]j]]j^]j`]ujbM'jchjN]r0jlX)This command takes the following options:r0r0}r0(jSj0jUNjbNjchjTj0ubaubj)r0}r0(jSUjTj0jUjVjWjjY}r0(j^]j]]j[]j\]j`]Uentries]r0(jX,setup-register command line option; --globalj1UNtr0aujbNjchjN]ubj)r1}r1(jSUjTj0jUjVjWjjY}r1(jjXstdj^]j]]j[]j\]j`]jXoptionr1jj1ujbNjchjN]r1(j)r1}r1(jSX--globalr1jTj1jUjVjWjjY}r1(j]r 1j1aj^]r 1j1aj]]j[]j\]j`]r 1hajujbM/jchjN]r 1(j)r 1}r1(jSj1jTj1jUjVjWjjY}r1(jjj^]j]]j[]j\]j`]ujbM/jchjN]r1jlX--globalr1r1}r1(jSUjUNjbNjchjTj 1ubaubj)r1}r1(jSUjTj1jUjVjWjjY}r1(jjj^]j]]j[]j\]j`]ujbM/jchjN]ubeubj)r1}r1(jSUjTj1jUjVjWjjY}r1(j[]j\]j]]j^]j`]ujbM/jchjN]r1j)r1}r1(jSXIRegister this package in the system-wide database. (This is the default.)r1jTj1jUjVjWjjY}r1(j[]j\]j]]j^]j`]ujbM-jchjN]r1jlXIRegister this package in the system-wide database. (This is the default.)r 1r!1}r"1(jSj1jUNjbNjchjTj1ubaubaubeubj)r#1}r$1(jSUjTj0jUjVjWjjY}r%1(j^]j]]j[]j\]j`]Uentries]r&1(jX*setup-register command line option; --userjUNtr'1aujbNjchjN]ubj)r(1}r)1(jSUjTj0jUjVjWjjY}r*1(jjXstdj^]j]]j[]j\]j`]jXoptionr+1jj+1ujbNjchjN]r,1(j)r-1}r.1(jSX--userr/1jTj(1jUjVjWjjY}r01(j]r11j/1aj^]r21jaj]]j[]j\]j`]r31huajujbM3jchjN]r41(j)r51}r61(jSj/1jTj-1jUjVjWjjY}r71(jjj^]j]]j[]j\]j`]ujbM3jchjN]r81jlX--userr91r:1}r;1(jSUjUNjbNjchjTj51ubaubj)r<1}r=1(jSUjTj-1jUjVjWjjY}r>1(jjj^]j]]j[]j\]j`]ujbM3jchjN]ubeubj)r?1}r@1(jSUjTj(1jUjVjWjjY}rA1(j[]j\]j]]j^]j`]ujbM3jchjN]rB1j)rC1}rD1(jSX;Register this package in the user's local package database.rE1jTj?1jUjVjWjjY}rF1(j[]j\]j]]j^]j`]ujbM2jchjN]rG1jlX=Register this package in the user’s local package database.rH1rI1}rJ1(jSjE1jUNjbNjchjTjC1ubaubaubeubj)rK1}rL1(jSUjTj0jUjVjWjjY}rM1(j^]j]]j[]j\]j`]Uentries]rN1(jX0setup-register command line option; --gen-scriptj/UNtrO1aujbNjchjN]ubj)rP1}rQ1(jSUjTj0jUjVjWjjY}rR1(jjXstdj^]j]]j[]j\]j`]jXoptionrS1jjS1ujbNjchjN]rT1(j)rU1}rV1(jSX --gen-scriptrW1jTjP1jUjVjWjjY}rX1(j]rY1jW1aj^]rZ1j/aj]]j[]j\]j`]r[1hajujbM;jchjN]r\1(j)r]1}r^1(jSjW1jTjU1jUjVjWjjY}r_1(jjj^]j]]j[]j\]j`]ujbM;jchjN]r`1jlX --gen-scriptra1rb1}rc1(jSUjUNjbNjchjTj]1ubaubj)rd1}re1(jSUjTjU1jUjVjWjjY}rf1(jjj^]j]]j[]j\]j`]ujbM;jchjN]ubeubj)rg1}rh1(jSUjTjP1jUjVjWjjY}ri1(j[]j\]j]]j^]j`]ujbM;jchjN]rj1j)rk1}rl1(jSX!Instead of registering the package, generate a script containing commands to perform the registration. On Unix, this file is called ``register.sh``, on Windows, ``register.bat``. This script might be included in a binary bundle, to be run after the bundle is unpacked on the target system.jTjg1jUjVjWjjY}rm1(j[]j\]j]]j^]j`]ujbM6jchjN]rn1(jlXInstead of registering the package, generate a script containing commands to perform the registration. On Unix, this file is called ro1rp1}rq1(jSXInstead of registering the package, generate a script containing commands to perform the registration. On Unix, this file is called jUNjbNjchjTjk1ubj)rr1}rs1(jSX``register.sh``jY}rt1(j[]j\]j]]j^]j`]ujTjk1jN]ru1jlX register.shrv1rw1}rx1(jSX register.shjTjr1ubajWjubjlX, on Windows, ry1rz1}r{1(jSX, on Windows, jUNjbNjchjTjk1ubj)r|1}r}1(jSX``register.bat``jY}r~1(j[]j\]j]]j^]j`]ujTjk1jN]r1jlX register.batr1r1}r1(jSX register.batjTj|1ubajWjubjlXp. This script might be included in a binary bundle, to be run after the bundle is unpacked on the target system.r1r1}r1(jSXp. This script might be included in a binary bundle, to be run after the bundle is unpacked on the target system.jUNjbNjchjTjk1ubeubaubeubj)r1}r1(jSUjTj0jUjVjWjjY}r1(j^]j]]j[]j\]j`]Uentries]r1(jX;setup-register command line option; --gen-pkg-config[=path]jUNtr1aujbNjchjN]ubj)r1}r1(jSUjTj0jUjVjWjjY}r1(jjXstdj^]j]]j[]j\]j`]jXoptionr1jj1ujbNjchjN]r1(j)r1}r1(jSX--gen-pkg-config[=path]jTj1jUjVjWjjY}r1(j]r1X--gen-pkg-config[r1aj^]r1jaj]]j[]j\]j`]r1hZajujbMMjchjN]r1(j)r1}r1(jSj1jTj1jUjVjWjjY}r1(jjj^]j]]j[]j\]j`]ujbMMjchjN]r1jlX--gen-pkg-config[r1r1}r1(jSUjUNjbNjchjTj1ubaubj)r1}r1(jSX=path]jTj1jUjVjWjjY}r1(jjj^]j]]j[]j\]j`]ujbMMjchjN]r1jlX=path]r1r1}r1(jSUjUNjbNjchjTj1ubaubeubj)r1}r1(jSUjTj1jUjVjWjjY}r1(j[]j\]j]]j^]j`]ujbMMjchjN]r1(j)r1}r1(jSXInstead of registering the package, generate a package registration file (or directory, in some circumstances). This only applies to compilers that support package registration files which at the moment is only GHC. The file should be used with the compiler's mechanism for registering packages. This option is mainly intended for packaging systems. If possible use the :option:`--gen-script` option instead since it is more portable across Haskell implementations. The *path* is optional and can be used to specify a particular output file to generate. Otherwise, by default the file is the package name and version with a ``.conf`` extension.jTj1jUjVjWjjY}r1(j[]j\]j]]j^]j`]ujbM>jchjN]r1(jlXtInstead of registering the package, generate a package registration file (or directory, in some circumstances). This only applies to compilers that support package registration files which at the moment is only GHC. The file should be used with the compiler’s mechanism for registering packages. This option is mainly intended for packaging systems. If possible use the r1r1}r1(jSXrInstead of registering the package, generate a package registration file (or directory, in some circumstances). This only applies to compilers that support package registration files which at the moment is only GHC. The file should be used with the compiler's mechanism for registering packages. This option is mainly intended for packaging systems. If possible use the jUNjbNjchjTj1ubj)r1}r1(jSX:option:`--gen-script`jTj1jUjVjWjjY}r1(UreftypeXoptionjjX --gen-scriptr1U refdomainXstdr1j^]j]]U refexplicitj[]j\]j`]jjjXsetup-registerr1ujbM>jN]r1j)r1}r1(jSj1jY}r1(j[]j\]r1(jj1X std-optionr1ej]]j^]j`]ujTj1jN]r1jlX --gen-scriptr1r1}r1(jSUjTj1ubajWjubaubjlXN option instead since it is more portable across Haskell implementations. The r1r1}r1(jSXN option instead since it is more portable across Haskell implementations. The jUNjbNjchjTj1ubj)r1}r1(jSX*path*jY}r1(j[]j\]j]]j^]j`]ujTj1jN]r1jlXpathr1r1}r1(jSXpathjTj1ubajWjubjlX is optional and can be used to specify a particular output file to generate. Otherwise, by default the file is the package name and version with a r1r1}r1(jSX is optional and can be used to specify a particular output file to generate. Otherwise, by default the file is the package name and version with a jUNjbNjchjTj1ubj)r1}r1(jSX ``.conf``jY}r1(j[]j\]j]]j^]j`]ujTj1jN]r1jlX.confr1r1}r1(jSX.confjTj1ubajWjubjlX extension.r1r1}r1(jSX extension.jUNjbNjchjTj1ubeubj)r1}r1(jSXThis option outputs a directory if the package requires multiple registrations: this can occur if internal/convenience libraries are used. These configuration file names are sorted so that they can be registered in order.r1jTj1jUjVjWjjY}r1(j[]j\]j]]j^]j`]ujbMIjchjN]r1jlXThis option outputs a directory if the package requires multiple registrations: this can occur if internal/convenience libraries are used. These configuration file names are sorted so that they can be registered in order.r1r1}r1(jSj1jUNjbNjchjTj1ubaubeubeubj)r1}r1(jSUjTj0jUjVjWjjY}r1(j^]j]]j[]j\]j`]Uentries]r1(jX-setup-register command line option; --inplacej!UNtr1aujbNjchjN]ubj)r1}r1(jSUjTj0jUjVjWjjY}r1(jjXstdj^]j]]j[]j\]j`]jXoptionr1jj1ujbNjchjN]r1(j)r1}r1(jSX --inplacer1jTj1jUjVjWjjY}r1(j]r1j1aj^]r1j!aj]]j[]j\]j`]r1hxajujbM\jchjN]r1(j)r1}r1(jSj1jTj1jUjVjWjjY}r1(jjj^]j]]j[]j\]j`]ujbM\jchjN]r1jlX --inplacer1r1}r1(jSUjUNjbNjchjTj1ubaubj)r1}r1(jSUjTj1jUjVjWjjY}r1(jjj^]j]]j[]j\]j`]ujbM\jchjN]ubeubj)r1}r1(jSUjTj1jUjVjWjjY}r1(j[]j\]j]]j^]j`]ujbM\jchjN]r1(j)r2}r2(jSXRegisters the package for use directly from the build tree, without needing to install it. This can be useful for testing: there's no need to install the package after modifying it, just recompile and test.r2jTj1jUjVjWjjY}r2(j[]j\]j]]j^]j`]ujbMPjchjN]r2jlXRegisters the package for use directly from the build tree, without needing to install it. This can be useful for testing: there’s no need to install the package after modifying it, just recompile and test.r2r2}r2(jSj2jUNjbNjchjTj2ubaubj)r2}r 2(jSXThis flag does not create a build-tree-local package database. It still registers the package in one of the user or global databases.r 2jTj1jUjVjWjjY}r 2(j[]j\]j]]j^]j`]ujbMUjchjN]r 2jlXThis flag does not create a build-tree-local package database. It still registers the package in one of the user or global databases.r 2r2}r2(jSj 2jUNjbNjchjTj2ubaubj)r2}r2(jSXHowever, there are some caveats. It only works with GHC (currently). It only works if your package doesn't depend on having any supplemental files installed --- plain Haskell libraries should be fine.r2jTj1jUjVjWjjY}r2(j[]j\]j]]j^]j`]ujbMXjchjN]r2jlXHowever, there are some caveats. It only works with GHC (currently). It only works if your package doesn’t depend on having any supplemental files installed — plain Haskell libraries should be fine.r2r2}r2(jSj2jUNjbNjchjTj2ubaubeubeubj)r2}r2(jSX.. _setup-unregister:jTj0jUjVjWj jY}r2(j^]j]]j[]j\]j`]j hujbM]jchjN]ubeubjP)r2}r2(jSUjTj jUjVj}r2h j2sjWjXjY}r2(j[]j\]j]]j^]r2(hj4ej`]r 2(hh eujbM`jchj}r!2hj2sjN]r"2(je)r#2}r$2(jSXsetup unregisterr%2jTj2jUjVjWjijY}r&2(j[]j\]j]]j^]j`]ujbM`jchjN]r'2jlXsetup unregisterr(2r)2}r*2(jSj%2jUNjbNjchjTj#2ubaubj)r+2}r,2(jSX*Deregister this package with the compiler.r-2jTj2jUjVjWjjY}r.2(j[]j\]j]]j^]j`]ujbMdjchjN]r/2jlX*Deregister this package with the compiler.r02r12}r22(jSj-2jUNjbNjchjTj+2ubaubj)r32}r42(jSX)This command takes the following options:r52jTj2jUjVjWjjY}r62(j[]j\]j]]j^]j`]ujbMfjchjN]r72jlX)This command takes the following options:r82r92}r:2(jSj52jUNjbNjchjTj32ubaubj)r;2}r<2(jSUjTj2jUjVjWjjY}r=2(j^]j]]j[]j\]j`]Uentries]r>2(jX.setup-unregister command line option; --globaljUNtr?2aujbNjchjN]ubj)r@2}rA2(jSUjTj2jUjVjWjjY}rB2(jjXstdj^]j]]j[]j\]j`]jXoptionrC2jjC2ujbNjchjN]rD2(j)rE2}rF2(jSX--globalrG2jTj@2jUjVjWjjY}rH2(j]rI2jG2aj^]rJ2jaj]]j[]j\]j`]rK2h[ajujbMljchjN]rL2(j)rM2}rN2(jSjG2jTjE2jUjVjWjjY}rO2(jjj^]j]]j[]j\]j`]ujbMljchjN]rP2jlX--globalrQ2rR2}rS2(jSUjUNjbNjchjTjM2ubaubj)rT2}rU2(jSUjTjE2jUjVjWjjY}rV2(jjj^]j]]j[]j\]j`]ujbMljchjN]ubeubj)rW2}rX2(jSUjTj@2jUjVjWjjY}rY2(j[]j\]j]]j^]j`]ujbMljchjN]rZ2j)r[2}r\2(jSXKDeregister this package in the system-wide database. (This is the default.)r]2jTjW2jUjVjWjjY}r^2(j[]j\]j]]j^]j`]ujbMjjchjN]r_2jlXKDeregister this package in the system-wide database. (This is the default.)r`2ra2}rb2(jSj]2jUNjbNjchjTj[2ubaubaubeubj)rc2}rd2(jSUjTj2jUjVjWjjY}re2(j^]j]]j[]j\]j`]Uentries]rf2(jX,setup-unregister command line option; --userhUNtrg2aujbNjchjN]ubj)rh2}ri2(jSUjTj2jUjVjWjjY}rj2(jjXstdj^]j]]j[]j\]j`]jXoptionrk2jjk2ujbNjchjN]rl2(j)rm2}rn2(jSX--userro2jTjh2jUjVjWjjY}rp2(j]rq2jo2aj^]rr2haj]]j[]j\]j`]rs2hajujbMpjchjN]rt2(j)ru2}rv2(jSjo2jTjm2jUjVjWjjY}rw2(jjj^]j]]j[]j\]j`]ujbMpjchjN]rx2jlX--userry2rz2}r{2(jSUjUNjbNjchjTju2ubaubj)r|2}r}2(jSUjTjm2jUjVjWjjY}r~2(jjj^]j]]j[]j\]j`]ujbMpjchjN]ubeubj)r2}r2(jSUjTjh2jUjVjWjjY}r2(j[]j\]j]]j^]j`]ujbMpjchjN]r2j)r2}r2(jSX=Deregister this package in the user's local package database.r2jTj2jUjVjWjjY}r2(j[]j\]j]]j^]j`]ujbMojchjN]r2jlX?Deregister this package in the user’s local package database.r2r2}r2(jSj2jUNjbNjchjTj2ubaubaubeubj)r2}r2(jSUjTj2jUjVjWjjY}r2(j^]j]]j[]j\]j`]Uentries]r2(jX2setup-unregister command line option; --gen-scripthUNtr2aujbNjchjN]ubj)r2}r2(jSUjTj2jUjVjWjjY}r2(jjXstdj^]j]]j[]j\]j`]jXoptionr2jj2ujbNjchjN]r2(j)r2}r2(jSX --gen-scriptr2jTj2jUjVjWjjY}r2(j]r2j2aj^]r2haj]]j[]j\]j`]r2hBajujbMwjchjN]r2(j)r2}r2(jSj2jTj2jUjVjWjjY}r2(jjj^]j]]j[]j\]j`]ujbMwjchjN]r2jlX --gen-scriptr2r2}r2(jSUjUNjbNjchjTj2ubaubj)r2}r2(jSUjTj2jUjVjWjjY}r2(jjj^]j]]j[]j\]j`]ujbMwjchjN]ubeubj)r2}r2(jSUjTj2jUjVjWjjY}r2(j[]j\]j]]j^]j`]ujbMwjchjN]r2j)r2}r2(jSX Instead of deregistering the package, generate a script containing commands to perform the deregistration. On Unix, this file is called ``unregister.sh``, on Windows, ``unregister.bat``. This script might be included in a binary bundle, to be run on the target system.jTj2jUjVjWjjY}r2(j[]j\]j]]j^]j`]ujbMsjchjN]r2(jlXInstead of deregistering the package, generate a script containing commands to perform the deregistration. On Unix, this file is called r2r2}r2(jSXInstead of deregistering the package, generate a script containing commands to perform the deregistration. On Unix, this file is called jUNjbNjchjTj2ubj)r2}r2(jSX``unregister.sh``jY}r2(j[]j\]j]]j^]j`]ujTj2jN]r2jlX unregister.shr2r2}r2(jSX unregister.shjTj2ubajWjubjlX, on Windows, r2r2}r2(jSX, on Windows, jUNjbNjchjTj2ubj)r2}r2(jSX``unregister.bat``jY}r2(j[]j\]j]]j^]j`]ujTj2jN]r2jlXunregister.batr2r2}r2(jSXunregister.batjTj2ubajWjubjlXS. This script might be included in a binary bundle, to be run on the target system.r2r2}r2(jSXS. This script might be included in a binary bundle, to be run on the target system.jUNjbNjchjTj2ubeubaubeubj)r2}r2(jSX.. _setup-clean:jTj2jUjVjWj jY}r2(j^]j]]j[]j\]j`]j hujbMxjchjN]ubeubjP)r2}r2(jSUjTj jUjVj}r2hj2sjWjXjY}r2(j[]j\]j]]j^]r2(hjej`]r2(hfheujbM{jchj}r2hj2sjN]r2(je)r2}r2(jSX setup cleanr2jTj2jUjVjWjijY}r2(j[]j\]j]]j^]j`]ujbM{jchjN]r2jlX setup cleanr2r2}r2(jSj2jUNjbNjchjTj2ubaubj)r2}r2(jSXRemove any local files created during the ``configure``, ``build``, ``haddock``, ``register`` or ``unregister`` steps, and also any files and directories listed in the :pkg-field:`extra-tmp-files` field.jTj2jUjVjWjjY}r2(j[]j\]j]]j^]j`]ujbM}jchjN]r2(jlX*Remove any local files created during the r2r2}r2(jSX*Remove any local files created during the jUNjbNjchjTj2ubj)r2}r2(jSX ``configure``jY}r2(j[]j\]j]]j^]j`]ujTj2jN]r2jlX configurer2r2}r2(jSX configurejTj2ubajWjubjlX, r2r2}r2(jSX, r2jUNjbNjchjTj2ubj)r2}r2(jSX ``build``jY}r2(j[]j\]j]]j^]j`]ujTj2jN]r2jlXbuildr2r2}r2(jSXbuildjTj2ubajWjubjlX, r2r2}r2(jSX, jUNjbNjchjTj2ubj)r2}r2(jSX ``haddock``jY}r2(j[]j\]j]]j^]j`]ujTj2jN]r2jlXhaddockr2r2}r2(jSXhaddockjTj2ubajWjubjlX, r2r2}r2(jSj2jTj2ubj)r2}r3(jSX ``register``jY}r3(j[]j\]j]]j^]j`]ujTj2jN]r3jlXregisterr3r3}r3(jSXregisterjTj2ubajWjubjlX or r3r3}r3(jSX or jUNjbNjchjTj2ubj)r 3}r 3(jSX``unregister``jY}r 3(j[]j\]j]]j^]j`]ujTj2jN]r 3jlX unregisterr 3r3}r3(jSX unregisterjTj 3ubajWjubjlX9 steps, and also any files and directories listed in the r3r3}r3(jSX9 steps, and also any files and directories listed in the jUNjbNjchjTj2ubj)r3}r3(jSX:pkg-field:`extra-tmp-files`jTj2jUjVjWjjY}r3(UreftypeX pkg-fieldjjXextra-tmp-filesr3U refdomainXcabalr3j^]j]]U refexplicitj[]j\]j`]jjUcabal:pkg-sectionr3NujbM}jN]r3j)r3}r3(jSj3jY}r3(j[]j\]r3(jj3Xcabal-pkg-fieldr3ej]]j^]j`]ujTj3jN]r3jlXextra-tmp-filesr 3r!3}r"3(jSUjTj3ubajWjubaubjlX field.r#3r$3}r%3(jSX field.jUNjbNjchjTj2ubeubj)r&3}r'3(jSX)This command takes the following options:r(3jTj2jUjVjWjjY}r)3(j[]j\]j]]j^]j`]ujbMjchjN]r*3jlX)This command takes the following options:r+3r,3}r-3(jSj(3jUNjbNjchjTj&3ubaubj)r.3}r/3(jSUjTj2jUjVjWjjY}r03(j^]j]]j[]j\]j`]Uentries]r13(jX5setup-clean command line option; --save-configure, -shUNtr23aujbNjchjN]ubj)r33}r43(jSUjTj2jUjVjWjjY}r53(jjXstdj^]j]]j[]j\]j`]jXoptionr63jj63ujbNjchjN]r73(j)r83}r93(jSX--save-configure, -sjTj33jUjVjWjjY}r:3(j]r;3(X--save-configurer<3X-sr=3ej^]r>3haj]]j[]j\]j`]r?3(hmh"ejujbMjchjN]r@3(j)rA3}rB3(jSj<3jTj83jUjVjWjjY}rC3(jjj^]j]]j[]j\]j`]ujbMjchjN]rD3jlX--save-configurerE3rF3}rG3(jSUjUNjbNjchjTjA3ubaubj)rH3}rI3(jSUjTj83jUjVjWjjY}rJ3(jjj^]j]]j[]j\]j`]ujbMjchjN]ubj)rK3}rL3(jSjjTj83jUjVjWjjY}rM3(jjj^]j]]j[]j\]j`]ujbMjchjN]rN3jlX, rO3rP3}rQ3(jSUjUNjbNjchjTjK3ubaubj)rR3}rS3(jSj=3jTj83jUjVjWjjY}rT3(jjj^]j]]j[]j\]j`]ujbMjchjN]rU3jlX-srV3rW3}rX3(jSUjUNjbNjchjTjR3ubaubj)rY3}rZ3(jSUjTj83jUjVjWjjY}r[3(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r\3}r]3(jSUjTj33jUjVjWjjY}r^3(j[]j\]j]]j^]j`]ujbMjchjN]r_3j)r`3}ra3(jSXkKeeps the configuration information so it is not necessary to run the configure step again before building.rb3jTj\3jUjVjWjjY}rc3(j[]j\]j]]j^]j`]ujbMjchjN]rd3jlXkKeeps the configuration information so it is not necessary to run the configure step again before building.re3rf3}rg3(jSjb3jUNjbNjchjTj`3ubaubaubeubeubjP)rh3}ri3(jSUjTj jUjVjWjXjY}rj3(j[]j\]j]]j^]rk3jaj`]rl3hXaujbMjchjN]rm3(je)rn3}ro3(jSX setup testrp3jTjh3jUjVjWjijY}rq3(j[]j\]j]]j^]j`]ujbMjchjN]rr3jlX setup testrs3rt3}ru3(jSjp3jUNjbNjchjTjn3ubaubj)rv3}rw3(jSX(Run the test suites specified in the package description file. Aside from the following flags, Cabal accepts the name of one or more test suites on the command line after ``test``. When supplied, Cabal will run only the named test suites, otherwise, Cabal will run all test suites in the package.jTjh3jUjVjWjjY}rx3(j[]j\]j]]j^]j`]ujbMjchjN]ry3(jlXRun the test suites specified in the package description file. Aside from the following flags, Cabal accepts the name of one or more test suites on the command line after rz3r{3}r|3(jSXRun the test suites specified in the package description file. Aside from the following flags, Cabal accepts the name of one or more test suites on the command line after jUNjbNjchjTjv3ubj)r}3}r~3(jSX``test``jY}r3(j[]j\]j]]j^]j`]ujTjv3jN]r3jlXtestr3r3}r3(jSXtestjTj}3ubajWjubjlXu. When supplied, Cabal will run only the named test suites, otherwise, Cabal will run all test suites in the package.r3r3}r3(jSXu. When supplied, Cabal will run only the named test suites, otherwise, Cabal will run all test suites in the package.jUNjbNjchjTjv3ubeubj)r3}r3(jSUjTjh3jUjVjWjjY}r3(j^]j]]j[]j\]j`]Uentries]r3(jX.setup-test command line option; --builddir=dirhUNtr3aujbNjchjN]ubj)r3}r3(jSUjTjh3jUjVjWjjY}r3(jjXstdj^]j]]j[]j\]j`]jXoptionr3jj3ujbNjchjN]r3(j)r3}r3(jSX--builddir=dirjTj3jUjVjWjjY}r3(j]r3X --builddirr3aj^]r3haj]]j[]j\]j`]r3hLajujbMjchjN]r3(j)r3}r3(jSj3jTj3jUjVjWjjY}r3(jjj^]j]]j[]j\]j`]ujbMjchjN]r3jlX --builddirr3r3}r3(jSUjUNjbNjchjTj3ubaubj)r3}r3(jSX=dirjTj3jUjVjWjjY}r3(jjj^]j]]j[]j\]j`]ujbMjchjN]r3jlX=dirr3r3}r3(jSUjUNjbNjchjTj3ubaubeubj)r3}r3(jSUjTj3jUjVjWjjY}r3(j[]j\]j]]j^]j`]ujbMjchjN]r3j)r3}r3(jSXThe directory where Cabal puts generated build files (default: ``dist``). Test logs will be located in the ``test`` subdirectory.jTj3jUjVjWjjY}r3(j[]j\]j]]j^]j`]ujbMjchjN]r3(jlX?The directory where Cabal puts generated build files (default: r3r3}r3(jSX?The directory where Cabal puts generated build files (default: jUNjbNjchjTj3ubj)r3}r3(jSX``dist``jY}r3(j[]j\]j]]j^]j`]ujTj3jN]r3jlXdistr3r3}r3(jSXdistjTj3ubajWjubjlX$). Test logs will be located in the r3r3}r3(jSX$). Test logs will be located in the jUNjbNjchjTj3ubj)r3}r3(jSX``test``jY}r3(j[]j\]j]]j^]j`]ujTj3jN]r3jlXtestr3r3}r3(jSXtestjTj3ubajWjubjlX subdirectory.r3r3}r3(jSX subdirectory.jUNjbNjchjTj3ubeubaubeubj)r3}r3(jSUjTjh3jUjVjWjjY}r3(j^]j]]j[]j\]j`]Uentries]r3(jX0setup-test command line option; --human-log=pathhUNtr3aujbNjchjN]ubj)r3}r3(jSUjTjh3jUjVjWjjY}r3(jjXstdj^]j]]j[]j\]j`]jXoptionr3jj3ujbNjchjN]r3(j)r3}r3(jSX--human-log=pathjTj3jUjVjWjjY}r3(j]r3X --human-logr3aj^]r3haj]]j[]j\]j`]r3h ajujbMjchjN]r3(j)r3}r3(jSj3jTj3jUjVjWjjY}r3(jjj^]j]]j[]j\]j`]ujbMjchjN]r3jlX --human-logr3r3}r3(jSUjUNjbNjchjTj3ubaubj)r3}r3(jSX=pathjTj3jUjVjWjjY}r3(jjj^]j]]j[]j\]j`]ujbMjchjN]r3jlX=pathr3r3}r3(jSUjUNjbNjchjTj3ubaubeubj)r3}r3(jSUjTj3jUjVjWjjY}r3(j[]j\]j]]j^]j`]ujbMjchjN]r3j)r3}r3(jSX~The template used to name human-readable test logs; the path is relative to ``dist/test``. By default, logs are named according to the template ``$pkgid-$test-suite.log``, so that each test suite will be logged to its own human-readable log file. Template variables allowed are: ``$pkgid``, ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag``, ``$test-suite``, and ``$result``.jTj3jUjVjWjjY}r3(j[]j\]j]]j^]j`]ujbMjchjN]r3(jlXLThe template used to name human-readable test logs; the path is relative to r3r3}r3(jSXLThe template used to name human-readable test logs; the path is relative to jUNjbNjchjTj3ubj)r3}r3(jSX ``dist/test``jY}r3(j[]j\]j]]j^]j`]ujTj3jN]r3jlX dist/testr3r3}r3(jSX dist/testjTj3ubajWjubjlX7. By default, logs are named according to the template r3r3}r3(jSX7. By default, logs are named according to the template jUNjbNjchjTj3ubj)r3}r3(jSX``$pkgid-$test-suite.log``jY}r3(j[]j\]j]]j^]j`]ujTj3jN]r3jlX$pkgid-$test-suite.logr3r4}r4(jSX$pkgid-$test-suite.logjTj3ubajWjubjlXm, so that each test suite will be logged to its own human-readable log file. Template variables allowed are: r4r4}r4(jSXm, so that each test suite will be logged to its own human-readable log file. Template variables allowed are: jUNjbNjchjTj3ubj)r4}r4(jSX ``$pkgid``jY}r4(j[]j\]j]]j^]j`]ujTj3jN]r4jlX$pkgidr 4r 4}r 4(jSX$pkgidjTj4ubajWjubjlX, r 4r 4}r4(jSX, r4jUNjbNjchjTj3ubj)r4}r4(jSX ``$compiler``jY}r4(j[]j\]j]]j^]j`]ujTj3jN]r4jlX $compilerr4r4}r4(jSX $compilerjTj4ubajWjubjlX, r4r4}r4(jSX, jTj3ubj)r4}r4(jSX``$os``jY}r4(j[]j\]j]]j^]j`]ujTj3jN]r4jlX$osr4r4}r 4(jSX$osjTj4ubajWjubjlX, r!4r"4}r#4(jSX, jUNjbNjchjTj3ubj)r$4}r%4(jSX ``$arch``jY}r&4(j[]j\]j]]j^]j`]ujTj3jN]r'4jlX$archr(4r)4}r*4(jSX$archjTj$4ubajWjubjlX, r+4r,4}r-4(jSX, jTj3ubj)r.4}r/4(jSX``$abi``jY}r04(j[]j\]j]]j^]j`]ujTj3jN]r14jlX$abir24r34}r44(jSX$abijTj.4ubajWjubjlX, r54r64}r74(jSX, jTj3ubj)r84}r94(jSX ``$abitag``jY}r:4(j[]j\]j]]j^]j`]ujTj3jN]r;4jlX$abitagr<4r=4}r>4(jSX$abitagjTj84ubajWjubjlX, r?4r@4}rA4(jSj4jTj3ubj)rB4}rC4(jSX``$test-suite``jY}rD4(j[]j\]j]]j^]j`]ujTj3jN]rE4jlX $test-suiterF4rG4}rH4(jSX $test-suitejTjB4ubajWjubjlX, and rI4rJ4}rK4(jSX, and jUNjbNjchjTj3ubj)rL4}rM4(jSX ``$result``jY}rN4(j[]j\]j]]j^]j`]ujTj3jN]rO4jlX$resultrP4rQ4}rR4(jSX$resultjTjL4ubajWjubjlX.rS4}rT4(jSX.jUNjbNjchjTj3ubeubaubeubj)rU4}rV4(jSUjTjh3jUjVjWjjY}rW4(j^]j]]j[]j\]j`]Uentries]rX4(jX2setup-test command line option; --machine-log=pathhUNtrY4aujbNjchjN]ubj)rZ4}r[4(jSUjTjh3jUjVjWjjY}r\4(jjXstdj^]j]]j[]j\]j`]jXoptionr]4jj]4ujbNjchjN]r^4(j)r_4}r`4(jSX--machine-log=pathjTjZ4jUjVjWjjY}ra4(j]rb4X --machine-logrc4aj^]rd4haj]]j[]j\]j`]re4h,ajujbMjchjN]rf4(j)rg4}rh4(jSjc4jTj_4jUjVjWjjY}ri4(jjj^]j]]j[]j\]j`]ujbMjchjN]rj4jlX --machine-logrk4rl4}rm4(jSUjUNjbNjchjTjg4ubaubj)rn4}ro4(jSX=pathjTj_4jUjVjWjjY}rp4(jjj^]j]]j[]j\]j`]ujbMjchjN]rq4jlX=pathrr4rs4}rt4(jSUjUNjbNjchjTjn4ubaubeubj)ru4}rv4(jSUjTjZ4jUjVjWjjY}rw4(j[]j\]j]]j^]j`]ujbMjchjN]rx4j)ry4}rz4(jSXThe path to the machine-readable log, relative to ``dist/test``. The default template is ``$pkgid.log``. Template variables allowed are: ``$pkgid``, ``$compiler``, ``$os``, ``$arch``, ``$abi``, ``$abitag`` and ``$result``.jTju4jUjVjWjjY}r{4(j[]j\]j]]j^]j`]ujbMjchjN]r|4(jlX2The path to the machine-readable log, relative to r}4r~4}r4(jSX2The path to the machine-readable log, relative to jUNjbNjchjTjy4ubj)r4}r4(jSX ``dist/test``jY}r4(j[]j\]j]]j^]j`]ujTjy4jN]r4jlX dist/testr4r4}r4(jSX dist/testjTj4ubajWjubjlX. The default template is r4r4}r4(jSX. The default template is jUNjbNjchjTjy4ubj)r4}r4(jSX``$pkgid.log``jY}r4(j[]j\]j]]j^]j`]ujTjy4jN]r4jlX $pkgid.logr4r4}r4(jSX $pkgid.logjTj4ubajWjubjlX". Template variables allowed are: r4r4}r4(jSX". Template variables allowed are: jUNjbNjchjTjy4ubj)r4}r4(jSX ``$pkgid``jY}r4(j[]j\]j]]j^]j`]ujTjy4jN]r4jlX$pkgidr4r4}r4(jSX$pkgidjTj4ubajWjubjlX, r4r4}r4(jSX, r4jUNjbNjchjTjy4ubj)r4}r4(jSX ``$compiler``jY}r4(j[]j\]j]]j^]j`]ujTjy4jN]r4jlX $compilerr4r4}r4(jSX $compilerjTj4ubajWjubjlX, r4r4}r4(jSX, jTjy4ubj)r4}r4(jSX``$os``jY}r4(j[]j\]j]]j^]j`]ujTjy4jN]r4jlX$osr4r4}r4(jSX$osjTj4ubajWjubjlX, r4r4}r4(jSX, jTjy4ubj)r4}r4(jSX ``$arch``jY}r4(j[]j\]j]]j^]j`]ujTjy4jN]r4jlX$archr4r4}r4(jSX$archjTj4ubajWjubjlX, r4r4}r4(jSX, jTjy4ubj)r4}r4(jSX``$abi``jY}r4(j[]j\]j]]j^]j`]ujTjy4jN]r4jlX$abir4r4}r4(jSX$abijTj4ubajWjubjlX, r4r4}r4(jSj4jTjy4ubj)r4}r4(jSX ``$abitag``jY}r4(j[]j\]j]]j^]j`]ujTjy4jN]r4jlX$abitagr4r4}r4(jSX$abitagjTj4ubajWjubjlX and r4r4}r4(jSX and jUNjbNjchjTjy4ubj)r4}r4(jSX ``$result``jY}r4(j[]j\]j]]j^]j`]ujTjy4jN]r4jlX$resultr4r4}r4(jSX$resultjTj4ubajWjubjlX.r4}r4(jSX.jUNjbNjchjTjy4ubeubaubeubj)r4}r4(jSUjTjh3jUjVjWjjY}r4(j^]j]]j[]j\]j`]Uentries]r4(jX5setup-test command line option; --show-details=filterhUNtr4aujbNjchjN]ubj)r4}r4(jSUjTjh3jUjVjWjjY}r4(jjXstdj^]j]]j[]j\]j`]jXoptionr4jj4ujbNjchjN]r4(j)r4}r4(jSX--show-details=filterjTj4jUjVjWjjY}r4(j]r4X--show-detailsr4aj^]r4haj]]j[]j\]j`]r4hOajujbMjchjN]r4(j)r4}r4(jSj4jTj4jUjVjWjjY}r4(jjj^]j]]j[]j\]j`]ujbMjchjN]r4jlX--show-detailsr4r4}r4(jSUjUNjbNjchjTj4ubaubj)r4}r4(jSX=filterjTj4jUjVjWjjY}r4(jjj^]j]]j[]j\]j`]ujbMjchjN]r4jlX=filterr4r4}r4(jSUjUNjbNjchjTj4ubaubeubj)r4}r4(jSUjTj4jUjVjWjjY}r4(j[]j\]j]]j^]j`]ujbMjchjN]r4j)r4}r4(jSXDetermines if the results of individual test cases are shown on the terminal. May be ``always`` (always show), ``never`` (never show), ``failures`` (show only failed results), or ``streaming`` (show all results in real time).jTj4jUjVjWjjY}r5(j[]j\]j]]j^]j`]ujbMjchjN]r5(jlXUDetermines if the results of individual test cases are shown on the terminal. May be r5r5}r5(jSXUDetermines if the results of individual test cases are shown on the terminal. May be jUNjbNjchjTj4ubj)r5}r5(jSX ``always``jY}r5(j[]j\]j]]j^]j`]ujTj4jN]r5jlXalwaysr 5r 5}r 5(jSXalwaysjTj5ubajWjubjlX (always show), r 5r 5}r5(jSX (always show), jUNjbNjchjTj4ubj)r5}r5(jSX ``never``jY}r5(j[]j\]j]]j^]j`]ujTj4jN]r5jlXneverr5r5}r5(jSXneverjTj5ubajWjubjlX (never show), r5r5}r5(jSX (never show), jUNjbNjchjTj4ubj)r5}r5(jSX ``failures``jY}r5(j[]j\]j]]j^]j`]ujTj4jN]r5jlXfailuresr5r5}r5(jSXfailuresjTj5ubajWjubjlX (show only failed results), or r 5r!5}r"5(jSX (show only failed results), or jUNjbNjchjTj4ubj)r#5}r$5(jSX ``streaming``jY}r%5(j[]j\]j]]j^]j`]ujTj4jN]r&5jlX streamingr'5r(5}r)5(jSX streamingjTj#5ubajWjubjlX! (show all results in real time).r*5r+5}r,5(jSX! (show all results in real time).jUNjbNjchjTj4ubeubaubeubj)r-5}r.5(jSUjTjh3jUNjWjjY}r/5(j^]j]]j[]j\]j`]Uentries]r05((jX6setup-test command line option; --test-options=optionshUNtr15(jXKsetup-test command line option; Give extra options to the test executables.jGUNtr25eujbNjchjN]ubj)r35}r45(jSUjTjh3jUNjWjjY}r55(jjXstdj^]j]]j[]j\]j`]jXoptionr65jj65ujbNjchjN]r75(j)r85}r95(jSX--test-options=optionsjTj35jUjVjWjjY}r:5(j]r;5X--test-optionsr<5aj^]r=5haj]]j[]j\]j`]r>5hajujbMjchjN]r?5(j)r@5}rA5(jSj<5jTj85jUjVjWjjY}rB5(jjj^]j]]j[]j\]j`]ujbMjchjN]rC5jlX--test-optionsrD5rE5}rF5(jSUjUNjbNjchjTj@5ubaubj)rG5}rH5(jSX=optionsjTj85jUjVjWjjY}rI5(jjj^]j]]j[]j\]j`]ujbMjchjN]rJ5jlX=optionsrK5rL5}rM5(jSUjUNjbNjchjTjG5ubaubeubj)rN5}rO5(jSX+Give extra options to the test executables.jTj35jUjVjWjjY}rP5(j]rQ5XGiverR5aj^]rS5jGaj]]j[]j\]j`]rT5hajujbMjchjN]rU5(j)rV5}rW5(jSjR5jTjN5jUjVjWjjY}rX5(jjj^]j]]j[]j\]j`]ujbMjchjN]rY5jlXGiverZ5r[5}r\5(jSUjUNjbNjchjTjV5ubaubj)r]5}r^5(jSX' extra options to the test executables.jTjN5jUjVjWjjY}r_5(jjj^]j]]j[]j\]j`]ujbMjchjN]r`5jlX' extra options to the test executables.ra5rb5}rc5(jSUjUNjbNjchjTj]5ubaubeubj)rd5}re5(jSUjTj35jUjVjWjjY}rf5(j[]j\]j]]j^]j`]ujbMjchjN]ubeubj)rg5}rh5(jSUjTjh3jUjVjWjjY}ri5(j^]j]]j[]j\]j`]Uentries]rj5(jX4setup-test command line option; --test-option=optionhUNtrk5aujbNjchjN]ubj)rl5}rm5(jSUjTjh3jUjVjWjjY}rn5(jjXstdj^]j]]j[]j\]j`]jXoptionro5jjo5ujbNjchjN]rp5(j)rq5}rr5(jSX--test-option=optionjTjl5jUjVjWjjY}rs5(j]rt5X --test-optionru5aj^]rv5haj]]j[]j\]j`]rw5hajujbMjchjN]rx5(j)ry5}rz5(jSju5jTjq5jUjVjWjjY}r{5(jjj^]j]]j[]j\]j`]ujbMjchjN]r|5jlX --test-optionr}5r~5}r5(jSUjUNjbNjchjTjy5ubaubj)r5}r5(jSX=optionjTjq5jUjVjWjjY}r5(jjj^]j]]j[]j\]j`]ujbMjchjN]r5jlX=optionr5r5}r5(jSUjUNjbNjchjTj5ubaubeubj)r5}r5(jSUjTjl5jUjVjWjjY}r5(j[]j\]j]]j^]j`]ujbMjchjN]r5j)r5}r5(jSXgive an extra option to the test executables. There is no need to quote options containing spaces because a single option is assumed, so options will not be split on spaces.r5jTj5jUjVjWjjY}r5(j[]j\]j]]j^]j`]ujbMjchjN]r5jlXgive an extra option to the test executables. There is no need to quote options containing spaces because a single option is assumed, so options will not be split on spaces.r5r5}r5(jSj5jUNjbNjchjTj5ubaubaubeubj)r5}r5(jSUjTjh3jUjVjWjjY}r5(j^]j]]j[]j\]j`]Uentries]r5(jX3setup-test command line option; --test-wrapper=pathj@UNtr5aujbNjchjN]ubj)r5}r5(jSUjTjh3jUjVjWjjY}r5(jjXstdj^]j]]j[]j\]j`]jXoptionr5jj5ujbNjchjN]r5(j)r5}r5(jSX--test-wrapper=pathjTj5jUjVjWjjY}r5(j]r5X--test-wrapperr5aj^]r5j@aj]]j[]j\]j`]r5hajujbMjchjN]r5(j)r5}r5(jSj5jTj5jUjVjWjjY}r5(jjj^]j]]j[]j\]j`]ujbMjchjN]r5jlX--test-wrapperr5r5}r5(jSUjUNjbNjchjTj5ubaubj)r5}r5(jSX=pathjTj5jUjVjWjjY}r5(jjj^]j]]j[]j\]j`]ujbMjchjN]r5jlX=pathr5r5}r5(jSUjUNjbNjchjTj5ubaubeubj)r5}r5(jSUjTj5jUjVjWjjY}r5(j[]j\]j]]j^]j`]ujbMjchjN]r5j)r5}r5(jSXThe wrapper script/application used to setup and tear down the test execution context. The text executable path and test arguments are passed as arguments to the wrapper and it is expected that the wrapper will return the test's return code, as well as a copy of stdout/stderr.r5jTj5jUjVjWjjY}r5(j[]j\]j]]j^]j`]ujbMjchjN]r5jlXThe wrapper script/application used to setup and tear down the test execution context. The text executable path and test arguments are passed as arguments to the wrapper and it is expected that the wrapper will return the test’s return code, as well as a copy of stdout/stderr.r5r5}r5(jSj5jUNjbNjchjTj5ubaubaubeubj)r5}r5(jSX.. _setup-sdist:jTjh3jUjVjWj jY}r5(j^]j]]j[]j\]j`]j hujbMjchjN]ubeubjP)r5}r5(jSUjTj jUjVj}r5hCj5sjWjXjY}r5(j[]j\]j]]j^]r5(hjIej`]r5(hhCeujbMjchj}r5hj5sjN]r5(je)r5}r5(jSX setup sdistr5jTj5jUjVjWjijY}r5(j[]j\]j]]j^]j`]ujbMjchjN]r5jlX setup sdistr5r5}r5(jSj5jUNjbNjchjTj5ubaubj)r5}r5(jSXCreate a system- and compiler-independent source distribution in a file *package*-*version*\ ``.tar.gz`` in the ``dist`` subdirectory, for distribution to package builders. When unpacked, the commands listed in this section will be available.jTj5jUjVjWjjY}r5(j[]j\]j]]j^]j`]ujbMjchjN]r5(jlXHCreate a system- and compiler-independent source distribution in a file r5r5}r5(jSXHCreate a system- and compiler-independent source distribution in a file jUNjbNjchjTj5ubj)r5}r5(jSX *package*jY}r5(j[]j\]j]]j^]j`]ujTj5jN]r5jlXpackager5r5}r5(jSXpackagejTj5ubajWjubjlX-r5}r5(jSX-jUNjbNjchjTj5ubj)r5}r5(jSX *version*jY}r5(j[]j\]j]]j^]j`]ujTj5jN]r5jlXversionr5r5}r5(jSXversionjTj5ubajWjubjlXr5}r5(jSX\ jUNjbNjchjTj5ubj)r5}r5(jSX ``.tar.gz``jY}r5(j[]j\]j]]j^]j`]ujTj5jN]r5jlX.tar.gzr5r5}r5(jSX.tar.gzjTj5ubajWjubjlX in the r5r5}r5(jSX in the jUNjbNjchjTj5ubj)r5}r5(jSX``dist``jY}r5(j[]j\]j]]j^]j`]ujTj5jN]r5jlXdistr5r5}r5(jSXdistjTj5ubajWjubjlXz subdirectory, for distribution to package builders. When unpacked, the commands listed in this section will be available.r5r5}r5(jSXz subdirectory, for distribution to package builders. When unpacked, the commands listed in this section will be available.jUNjbNjchjTj5ubeubj)r5}r6(jSXYThe files placed in this distribution are the package description file, the setup script, the sources of the modules named in the package description file, and files named in the ``license-file``, ``main-is``, ``c-sources``, ``asm-sources``, ``cmm-sources``, ``js-sources``, ``data-files``, ``extra-source-files`` and ``extra-doc-files`` fields.jTj5jUjVjWjjY}r6(j[]j\]j]]j^]j`]ujbMjchjN]r6(jlXThe files placed in this distribution are the package description file, the setup script, the sources of the modules named in the package description file, and files named in the r6r6}r6(jSXThe files placed in this distribution are the package description file, the setup script, the sources of the modules named in the package description file, and files named in the jUNjbNjchjTj5ubj)r6}r6(jSX``license-file``jY}r6(j[]j\]j]]j^]j`]ujTj5jN]r 6jlX license-filer 6r 6}r 6(jSX license-filejTj6ubajWjubjlX, r 6r6}r6(jSX, r6jUNjbNjchjTj5ubj)r6}r6(jSX ``main-is``jY}r6(j[]j\]j]]j^]j`]ujTj5jN]r6jlXmain-isr6r6}r6(jSXmain-isjTj6ubajWjubjlX, r6r6}r6(jSX, r6jUNjbNjchjTj5ubj)r6}r6(jSX ``c-sources``jY}r6(j[]j\]j]]j^]j`]ujTj5jN]r6jlX c-sourcesr 6r!6}r"6(jSX c-sourcesjTj6ubajWjubjlX, r#6r$6}r%6(jSX, jTj5ubj)r&6}r'6(jSX``asm-sources``jY}r(6(j[]j\]j]]j^]j`]ujTj5jN]r)6jlX asm-sourcesr*6r+6}r,6(jSX asm-sourcesjTj&6ubajWjubjlX, r-6r.6}r/6(jSX, jTj5ubj)r06}r16(jSX``cmm-sources``jY}r26(j[]j\]j]]j^]j`]ujTj5jN]r36jlX cmm-sourcesr46r56}r66(jSX cmm-sourcesjTj06ubajWjubjlX, r76r86}r96(jSX, jTj5ubj)r:6}r;6(jSX``js-sources``jY}r<6(j[]j\]j]]j^]j`]ujTj5jN]r=6jlX js-sourcesr>6r?6}r@6(jSX js-sourcesjTj:6ubajWjubjlX, rA6rB6}rC6(jSj6jTj5ubj)rD6}rE6(jSX``data-files``jY}rF6(j[]j\]j]]j^]j`]ujTj5jN]rG6jlX data-filesrH6rI6}rJ6(jSX data-filesjTjD6ubajWjubjlX, rK6rL6}rM6(jSj6jTj5ubj)rN6}rO6(jSX``extra-source-files``jY}rP6(j[]j\]j]]j^]j`]ujTj5jN]rQ6jlXextra-source-filesrR6rS6}rT6(jSXextra-source-filesjTjN6ubajWjubjlX and rU6rV6}rW6(jSX and jUNjbNjchjTj5ubj)rX6}rY6(jSX``extra-doc-files``jY}rZ6(j[]j\]j]]j^]j`]ujTj5jN]r[6jlXextra-doc-filesr\6r]6}r^6(jSXextra-doc-filesjTjX6ubajWjubjlX fields.r_6r`6}ra6(jSX fields.jUNjbNjchjTj5ubeubj)rb6}rc6(jSX(This command takes the following option:rd6jTj5jUjVjWjjY}re6(j[]j\]j]]j^]j`]ujbMjchjN]rf6jlX(This command takes the following option:rg6rh6}ri6(jSjd6jUNjbNjchjTjb6ubaubj)rj6}rk6(jSUjTj5jUjVjWjjY}rl6(j^]j]]j[]j\]j`]Uentries]rm6(jX+setup-sdist command line option; --snapshothUNtrn6aujbNjchjN]ubj)ro6}rp6(jSUjTj5jUjVjWjjY}rq6(jjXstdj^]j]]j[]j\]j`]jXoptionrr6jjr6ujbNjchjN]rs6(j)rt6}ru6(jSX --snapshotrv6jTjo6jUjVjWjjY}rw6(j]rx6jv6aj^]ry6haj]]j[]j\]j`]rz6h+ajujbMjchjN]r{6(j)r|6}r}6(jSjv6jTjt6jUjVjWjjY}r~6(jjj^]j]]j[]j\]j`]ujbMjchjN]r6jlX --snapshotr6r6}r6(jSUjUNjbNjchjTj|6ubaubj)r6}r6(jSUjTjt6jUjVjWjjY}r6(jjj^]j]]j[]j\]j`]ujbMjchjN]ubeubj)r6}r6(jSUjTjo6jUjVjWjjY}r6(j[]j\]j]]j^]j`]ujbMjchjN]r6j)r6}r6(jSXAppend today's date (in "YYYYMMDD" format) to the version number for the generated source package. The original package is unaffected.r6jTj6jUjVjWjjY}r6(j[]j\]j]]j^]j`]ujbMjchjN]r6jlXAppend today’s date (in “YYYYMMDD” format) to the version number for the generated source package. The original package is unaffected.r6r6}r6(jSj6jUNjbNjchjTj6ubaubaubeubjS+)r6}r6(jSX[-*- rst -*- This file contains commonly used link-references See also "extlinks" in conf.pyjTj5jUcdocutils.nodes reprunicode r6Xdoc/references.incr6r6}r6bjWjV+jY}r6(jjj^]j]]j[]j\]j`]ujbKjchjN]r6jlX[-*- rst -*- This file contains commonly used link-references See also "extlinks" in conf.pyr6r6}r6(jSUjTj6ubaubj)r6}r6(jSX .. _`Package Versioning Policy`:jTj5jUj6jWj jY}r6(j^]j]]j[]j\]j`]j j0ujbMjchjN]ubj)r6}r6(jSX .. _PVP: http://pvp.haskell.org/jTj5jUj6j}r6hj6sjWj jY}r6(jXhttp://pvp.haskell.org/j^]r6(hj0ej]]j[]j\]j`]r6(hNheujbMjchj}r6j0j6sjN]ubj)r6}r6(jSX(.. _Hackage: http://hackage.haskell.org/jKjTj5jUj6jWj jY}r6(jjj^]r6jMaj]]j[]j\]j`]r6haujbMjchjN]ubj)r6}r6(jSX$.. _Haskell: http://www.haskell.org/jTj5jUj6jWj jY}r6(jXhttp://www.haskell.org/j^]r6j aj]]j[]j\]j`]r6haaujbMjchjN]ubj)r6}r6(jSX,.. _Haddock: http://www.haskell.org/haddock/jKjTj5jUj6jWj jY}r6(jj~,j^]r6j(aj]]j[]j\]j`]r6haujbMjchjN]ubj)r6}r6(jSX&.. _Alex: http://www.haskell.org/alex/jTj5jUj6jWj jY}r6(jXhttp://www.haskell.org/alex/j^]r6haj]]j[]j\]j`]r6hPaujbMjchjN]ubj)r6}r6(jSX(.. _Happy: http://www.haskell.org/happy/jTj5jUj6jWj jY}r6(jXhttp://www.haskell.org/happy/j^]r6jaj]]j[]j\]j`]r6hqaujbMjchjN]ubj)r6}r6(jSX*.. _Hoogle: http://www.haskell.org/hoogle/jKjTj5jUj6jWj jY}r6(jj,j^]r6jaj]]j[]j\]j`]r6hcaujbMjchjN]ubj)r6}r6(jSX9.. _HsColour: http://www.cs.york.ac.uk/fp/darcs/hscolour/jKjTj5jUj6jWj jY}r6(jj{.j^]r6haj]]j[]j\]j`]r6h>aujbMjchjN]ubj)r6}r6(jSX-.. _cpphs: http://projects.haskell.org/cpphs/jTj5jUj6jWj jY}r6(jX"http://projects.haskell.org/cpphs/j^]r6haj]]j[]j\]j`]r6hTaujbMjchjN]ubj)r6}r6(jSX-.. _ABNF: https://tools.ietf.org/html/rfc5234jTj5jUj6jWj jY}r6(jX#https://tools.ietf.org/html/rfc5234j^]r6jaj]]j[]j\]j`]r6hiaujbMjchjN]ubj)r6}r6(jSX<.. _Backpack: https://ghc.haskell.org/trac/ghc/wiki/BackpackjTj5jUj6jWj jY}r6(jX.https://ghc.haskell.org/trac/ghc/wiki/Backpackj^]r6haj]]j[]j\]j`]r6haujbMjchjN]ubeubeubejSUU transformerr6NU footnote_refsr6}r6Urefnamesr6}r6(Xhaddock]r6(jz,j-j-j-j-j-j/.j:.jl.j.eXhscolour]r6(jw.j.j.j/jW/eXsetup configure]r6j/aXhoogle]r6j,aXhackage]r6(j j(jjM-euUsymbol_footnotesr6]r6Uautofootnote_refsr6]r6Usymbol_footnote_refsr6]r6U citationsr6]r6jchU current_liner6NUtransform_messagesr6]r6(cdocutils.nodes system_message r6)r6}r6(jSUjY}r6(j[]UlevelKj^]j]]UsourcejVj\]j`]UlineKUtypeUINFOr6ujN]r6j)r6}r6(jSUjY}r6(j[]j\]j]]j^]j`]ujTj6jN]r6jlX9Hyperlink target "installing-packages" is not referenced.r6r6}r6(jSUjTj6ubajWjubajWUsystem_messager6ubj6)r6}r6(jSUjY}r6(j[]UlevelKj^]j]]UsourcejVj\]j`]UlineMUtypej6ujN]r6j)r7}r7(jSUjY}r7(j[]j\]j]]j^]j`]ujTj6jN]r7jlX5Hyperlink target "setup-configure" is not referenced.r7r7}r7(jSUjTj7ubajWjubajWj6ubj6)r7}r7(jSUjY}r 7(j[]UlevelKj^]j]]UsourcejVj\]j`]UlineM}Utypej6ujN]r 7j)r 7}r 7(jSUjY}r 7(j[]j\]j]]j^]j`]ujTj7jN]r7jlX1Hyperlink target "setup-build" is not referenced.r7r7}r7(jSUjTj 7ubajWjubajWj6ubj6)r7}r7(jSUjY}r7(j[]UlevelKj^]j]]UsourcejVj\]j`]UlineMUtypej6ujN]r7j)r7}r7(jSUjY}r7(j[]j\]j]]j^]j`]ujTj7jN]r7jlX3Hyperlink target "setup-haddock" is not referenced.r7r7}r7(jSUjTj7ubajWjubajWj6ubj6)r7}r7(jSUjY}r7(j[]UlevelKj^]j]]UsourcejVj\]j`]UlineMUtypej6ujN]r 7j)r!7}r"7(jSUjY}r#7(j[]j\]j]]j^]j`]ujTj7jN]r$7jlX4Hyperlink target "setup-hscolour" is not referenced.r%7r&7}r'7(jSUjTj!7ubajWjubajWj6ubj6)r(7}r)7(jSUjY}r*7(j[]UlevelKj^]j]]UsourcejVj\]j`]UlineMUtypej6ujN]r+7j)r,7}r-7(jSUjY}r.7(j[]j\]j]]j^]j`]ujTj(7jN]r/7jlX3Hyperlink target "setup-install" is not referenced.r07r17}r27(jSUjTj,7ubajWjubajWj6ubj6)r37}r47(jSUjY}r57(j[]UlevelKj^]j]]UsourcejVj\]j`]UlineM Utypej6ujN]r67j)r77}r87(jSUjY}r97(j[]j\]j]]j^]j`]ujTj37jN]r:7jlX0Hyperlink target "setup-copy" is not referenced.r;7r<7}r=7(jSUjTj77ubajWjubajWj6ubj6)r>7}r?7(jSUjY}r@7(j[]UlevelKj^]j]]UsourcejVj\]j`]UlineMUtypej6ujN]rA7j)rB7}rC7(jSUjY}rD7(j[]j\]j]]j^]j`]ujTj>7jN]rE7jlX4Hyperlink target "setup-register" is not referenced.rF7rG7}rH7(jSUjTjB7ubajWjubajWj6ubj6)rI7}rJ7(jSUjY}rK7(j[]UlevelKj^]j]]UsourcejVj\]j`]UlineM]Utypej6ujN]rL7j)rM7}rN7(jSUjY}rO7(j[]j\]j]]j^]j`]ujTjI7jN]rP7jlX6Hyperlink target "setup-unregister" is not referenced.rQ7rR7}rS7(jSUjTjM7ubajWjubajWj6ubj6)rT7}rU7(jSUjY}rV7(j[]UlevelKj^]j]]UsourcejVj\]j`]UlineMxUtypej6ujN]rW7j)rX7}rY7(jSUjY}rZ7(j[]j\]j]]j^]j`]ujTjT7jN]r[7jlX1Hyperlink target "setup-clean" is not referenced.r\7r]7}r^7(jSUjTjX7ubajWjubajWj6ubj6)r_7}r`7(jSUjY}ra7(j[]UlevelKj^]j]]UsourcejVj\]j`]UlineMUtypej6ujN]rb7j)rc7}rd7(jSUjY}re7(j[]j\]j]]j^]j`]ujTj_7jN]rf7jlX1Hyperlink target "setup-sdist" is not referenced.rg7rh7}ri7(jSUjTjc7ubajWjubajWj6ubj6)rj7}rk7(jSUjY}rl7(j[]UlevelKj^]j]]Usourcej6j\]j`]UlineMUtypej6ujN]rm7j)rn7}ro7(jSUjY}rp7(j[]j\]j]]j^]j`]ujTjj7jN]rq7jlX?Hyperlink target "package-versioning-policy" is not referenced.rr7rs7}rt7(jSUjTjn7ubajWjubajWj6ubj6)ru7}rv7(jSUjY}rw7(j[]UlevelKj^]j]]Usourcej6j\]j`]UlineMUtypej6ujN]rx7j)ry7}rz7(jSUjY}r{7(j[]j\]j]]j^]j`]ujTju7jN]r|7jlX)Hyperlink target "pvp" is not referenced.r}7r~7}r7(jSUjTjy7ubajWjubajWj6ubj6)r7}r7(jSUjY}r7(j[]UlevelKj^]j]]Usourcej6j\]j`]UlineMUtypej6ujN]r7j)r7}r7(jSUjY}r7(j[]j\]j]]j^]j`]ujTj7jN]r7jlX-Hyperlink target "haskell" is not referenced.r7r7}r7(jSUjTj7ubajWjubajWj6ubj6)r7}r7(jSUjY}r7(j[]UlevelKj^]j]]Usourcej6j\]j`]UlineMUtypej6ujN]r7j)r7}r7(jSUjY}r7(j[]j\]j]]j^]j`]ujTj7jN]r7jlX*Hyperlink target "alex" is not referenced.r7r7}r7(jSUjTj7ubajWjubajWj6ubj6)r7}r7(jSUjY}r7(j[]UlevelKj^]j]]Usourcej6j\]j`]UlineMUtypej6ujN]r7j)r7}r7(jSUjY}r7(j[]j\]j]]j^]j`]ujTj7jN]r7jlX+Hyperlink target "happy" is not referenced.r7r7}r7(jSUjTj7ubajWjubajWj6ubj6)r7}r7(jSUjY}r7(j[]UlevelKj^]j]]Usourcej6j\]j`]UlineMUtypej6ujN]r7j)r7}r7(jSUjY}r7(j[]j\]j]]j^]j`]ujTj7jN]r7jlX+Hyperlink target "cpphs" is not referenced.r7r7}r7(jSUjTj7ubajWjubajWj6ubj6)r7}r7(jSUjY}r7(j[]UlevelKj^]j]]Usourcej6j\]j`]UlineMUtypej6ujN]r7j)r7}r7(jSUjY}r7(j[]j\]j]]j^]j`]ujTj7jN]r7jlX*Hyperlink target "abnf" is not referenced.r7r7}r7(jSUjTj7ubajWjubajWj6ubj6)r7}r7(jSUjY}r7(j[]UlevelKj^]j]]Usourcej6j\]j`]UlineMUtypej6ujN]r7j)r7}r7(jSUjY}r7(j[]j\]j]]j^]j`]ujTj7jN]r7jlX.Hyperlink target "backpack" is not referenced.r7r7}r7(jSUjTj7ubajWjubajWj6ubeUreporterr7NUid_startr7K U autofootnotesr7]r7U citation_refsr7}r7Uindirect_targetsr7]r7Usettingsr7(cdocutils.frontend Values r7or7}r7(Ufootnote_backlinksr7KUrecord_dependenciesr7NU language_coder7Uenr7U tracebackr7Upep_referencesr7NUstrip_commentsr7NU toc_backlinksr7jU rfc_base_urlr7Uhttps://tools.ietf.org/html/r7U datestampr7NU report_levelr7KUsmartquotes_localesr7]r7U _destinationr7NU halt_levelr7KU strip_classesr7NjiNUerror_encoding_error_handlerr7Ubackslashreplacer7Udebugr7NUembed_stylesheetr7Uoutput_encoding_error_handlerr7Ustrictr7U sectnum_xformr7KUdump_transformsr7NU docinfo_xformr7KUwarning_streamr7NUpep_file_url_templater7Upep-%04dr7Uexit_status_levelr7KUconfigr7NUstrict_visitorr7NUcloak_email_addressesr7Utrim_footnote_reference_spacer7Uenvr7NUdump_pseudo_xmlr7NUexpose_internalsr7NUsectsubtitle_xformr7U source_linkr7NUrfc_referencesr7NUoutput_encodingr7Uutf-8r7U source_urlr7NUinput_encodingr7U utf-8-sigr7U_disable_configr7NU id_prefixr7UUcharacter_level_inline_markupr7U tab_widthr7KUerror_encodingr7UUTF-8r8U_sourcer8jVU generatorr8NUdump_internalsr8NU smart_quotesr8U pep_base_urlr8U https://www.python.org/dev/peps/r8Usyntax_highlightr8Ulongr8Uinput_encoding_error_handlerr 8j7Uauto_id_prefixr 8Uidr 8Udoctitle_xformr 8Ustrip_elements_with_classesr 8NU _config_filesr8]Ufile_insertion_enabledr8U raw_enabledr8KU dump_settingsr8NubUsymbol_footnote_startr8KUidsr8}r8(hjM)hjihj%$jj&j9jc,hj2hjhj2hjhjc,hj+hj6hj hj4jHj_(hjt6jj j:j%hj'%hj*jCjjGjN5jjj/jU1hj"hj+hj6hj hj%"jKjj,jjjA jjE2hj6j8j hj,hjj$jX jjvhj{hj_4hj6hj/jj!jj-1hj5j4j2hjXj3j0hj0j+j.hj/jEj+hjj.jj5j5j0j6hj6hjhjhjm2hj$hj jjh3hj,hj5j jjAj-hjhj2j j6jj jjj1j1hj.j@j5jj$jjuhj:&j j0jj.jj'jj6hj-hj!jjG0hjQjj6hj jjj!j1jIj5hj/j7j)hjbj j0jj'j2j&jj6j'jjjI'hjhjS hjq5j*j&hj$j#jhj4hj3j(j6hjj6j[j;jb&hj#hjjj"hj83hjhj3hj jj1jj7#j j8 hjj?j hjO%j"j:/j<j.hjV!j&jj)j"-j jj>j hjj-jO.hj85jBj jj3hjm+jDj;hj3(hjhj%j%jcj=jX hjjj2hj(hjjj'jJj0hj!!hj0hjq'jLj4jMj6jFj%uUsubstitution_namesr8}r8jWjcjY}r8(j[]j^]j]]UsourcejVj\]j`]uU footnotesr8]r8Urefidsr8}r8(h]r8j`,aj#]r8jah]r8j5aj>]r8jaj0]r 8j6aj ]r!8j0ah]r"8j2ajJ]r#8j0ah]r$8j2ah]r%8j+ah]r&8j/aj<]r'8j.auub.