Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Glasgow Haskell Compiler
Packages
Cabal
Commits
34179398
Commit
34179398
authored
Apr 07, 2014
by
tibbe
Browse files
Merge pull request #1752 from ianbollinger/fix-#893
Fix #893 (Broken links in user guide)
parents
c2cb3795
d06fc06e
Changes
4
Hide whitespace changes
Inline
Side-by-side
Cabal/doc/developing-packages.markdown
View file @
34179398
...
...
@@ -18,9 +18,7 @@ Proglet.hs
It is assumed that (apart from external dependencies) all the files that
make up a package live under a common project root directory. This
simple example has all the project files in one directory, but most
packages will use one or more subdirectories. See section
[
TODO
](
#TODO
)
for the standard practices for organising the files in your project
directory.
packages will use one or more subdirectories.
To turn this into a Cabal package we need two extra files in the
project's root directory:
...
...
@@ -655,8 +653,8 @@ several sections.
information](#build-information).
* Following is an arbitrary number of executable sections
which describe an
[
executable program
](#executable)
and relevant
[build
information](#build-information).
which describe an executable program and relevant
[build
information](#build-information).
Each section consists of a number of property descriptions
in the form of field/value pairs, with a syntax roughly like mail
...
...
@@ -724,8 +722,7 @@ These fields may occur in the first top-level properties section and
describe the package as a whole:
`
name:
` _package-name_ (required)
: The unique name of the [package](#packages), without the version
number.
: The unique name of the package, without the version number.
`
version:
` _numbers_ (required)
: The package version number, usually consisting of a sequence of
...
...
@@ -792,8 +789,8 @@ describe the package as a whole:
~~~~~~~~~~~~~~~~
For build type `
Make
` (see the section on [more complex
packages](#more-complex-packages) below),
the contents of
`
Setup.hs
` must be:
packages](
installing-packages.html
#more-complex-packages) below),
the contents of
`
Setup.hs
` must be:
~~~~~~~~~~~~~~~~
import Distribution.Make
...
...
@@ -866,8 +863,8 @@ describe the package as a whole:
package before.
For library packages, this field is used as prologue text by [`
setup
haddock
`](#setup-haddock), and thus may
contain the same markup as
[haddock][] documentation comments.
haddock
`](
installing-packages.html
#setup-haddock), and thus may
contain the same markup as
[haddock][] documentation comments.
`
category:
` _freeform_
: A classification category for future use by the package catalogue [Hackage]. These
...
...
@@ -910,8 +907,9 @@ describe the package as a whole:
`
extra-source-files:
` _filename list_
: A list of additional files to be included in source distributions
built with [`
setup sdist
`](#setup-sdist). As with `
data-files
` it
can use a limited form of `
*
` wildcards in file names.
built with [`
setup sdist
`](installing-packages.html#setup-sdist). As
with `
data-files
` it can use a limited form of `
*
` wildcards in file
names.
`
extra-doc-files:
` _filename list_
: A list of additional files to be included in source distributions,
...
...
@@ -921,9 +919,10 @@ describe the package as a whole:
`
extra-tmp-files:
` _filename list_
: A list of additional files or directories to be removed by [`
setup
clean
`](#setup-clean). These would typically be additional files
created by additional hooks, such as the scheme described in the
section on [system-dependent parameters](#system-dependent-parameters).
clean
`](installing-packages.html#setup-clean). These would typically
be additional files created by additional hooks, such as the scheme
described in the section on [system-dependent
parameters](#system-dependent-parameters).
### Library ###
...
...
@@ -1536,12 +1535,12 @@ following fields.
: The default value of this flag.
Note that this value may be [overridden in several
ways](#controlling-flag-assignments"). The
rationale for having
flags default to True is that users usually
want new features as
soon as they are available. Flags representing
features that are not
(yet) recommended for most users (such as
experimental features or
debugging support) should therefore
explicitly override the default
to False.
ways](
installing-packages.html
#controlling-flag-assignments"). The
rationale for having
flags default to True is that users usually
want new features as
soon as they are available. Flags representing
features that are not
(yet) recommended for most users (such as
experimental features or
debugging support) should therefore
explicitly override the default
to False.
`manual:`
_boolean_ (default:
`False`
)
: By default, Cabal will first try to satisfy dependencies with the
...
...
@@ -1828,9 +1827,9 @@ The `get` command supports the following options:
The placement on the target system of files listed in the
`data-files`
field varies between systems, and in some cases one can even move
packages around after installation (see
[
prefix
independence
](
#prefix-independence
)
).
To enable
packages to find these
files in a portable way, Cabal generates a module
called
`Paths_`
_pkgname_
(with any hyphens in _pkgname_ replaced by
independence
](
installing-packages.html
#prefix-independence
)
). To enable
packages to find these
files in a portable way, Cabal generates a module
called
`Paths_`
_pkgname_
(with any hyphens in _pkgname_ replaced by
underscores) during building, so that it may be imported by modules of
the package. This module defines a function
...
...
@@ -2097,27 +2096,27 @@ a few options:
*
Finally, with the
`build-type`
`Custom`
, you can also write your
own setup script from scratch. It must conform to the interface
described in the section on
[
building and installing
packages
](
#building-and-
installing-
a-
package
)
, and you may use the
Cabal
library for all or part of the work. One option is to copy
the
source of
`Distribution.Simple`
, and alter it for your needs.
Good
luck.
packages
](
installing-package
s.html
)
, and you may use the
Cabal
library for all or part of the work. One option is to copy
the
source of
`Distribution.Simple`
, and alter it for your needs.
Good
luck.
[
dist-simple
]:
../
libraries
/Cabal/Distribution-Simple.html
[
dist-make
]:
../
libraries
/Cabal/Distribution-Make.html
[
dist-license
]:
../
libraries
/Cabal/Distribution-License.html#t:License
[
extension
]:
../
libraries
/Cabal/Language-Haskell-Extension.html#t:Extension
[
BuildType
]:
../
libraries
/Cabal/Distribution-PackageDescription.html#t:BuildType
[
dist-simple
]:
../
release/cabal-latest/doc/API
/Cabal/Distribution-Simple.html
[
dist-make
]:
../
release/cabal-latest/doc/API
/Cabal/Distribution-Make.html
[
dist-license
]:
../
release/cabal-latest/doc/API
/Cabal/Distribution-License.html#t:License
[
extension
]:
../
release/cabal-latest/doc/API
/Cabal/Language-Haskell-Extension.html#t:Extension
[
BuildType
]:
../
release/cabal-latest/doc/API
/Cabal/Distribution-PackageDescription.html#t:BuildType
[
data-version
]:
http://hackage.haskell.org/packages/archive/base/latest/doc/html/Data-Version.html
[
alex
]:
http://www.haskell.org/alex/
[
autoconf
]:
http://www.gnu.org/software/autoconf/
[
c2hs
]:
http://www.cse.unsw.edu.au/~chak/haskell/c2hs/
[
cpphs
]:
http://
www
.haskell.org/cpphs/
[
greencard
]:
http://
www
.haskell.org/greencard
/
[
cpphs
]:
http://
projects
.haskell.org/cpphs/
[
greencard
]:
http://
hackage
.haskell.org/
package/
greencard
[
haddock
]:
http://www.haskell.org/haddock/
[
HsColour
]:
http://www.cs.york.ac.uk/fp/darcs/hscolour/
[
happy
]:
http://www.haskell.org/happy/
[
Hackage
]:
http://hackage.haskell.org/
[
pkg-config
]:
http://
pkg-config
.freedesktop.org/
[
pkg-config
]:
http://
www
.freedesktop.org/
wiki/Software/pkg-config/
[
REPL
]:
http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop
Cabal/doc/index.markdown
View file @
34179398
...
...
@@ -19,7 +19,6 @@ thousands of libraries and applications in the Cabal package format.
-
[
A tool for working with packages
](
#a-tool-for-working-with-packages
)
*
[
Building, installing and managing packages
](
installing-packages.html
)
*
[
Creating packages
](
developing-packages.html
)
*
[
Cabal specification, design and implementation
](
)
*
[
Reporting bugs and deficiencies
](
misc.html#reporting-bugs-and-deficiencies
)
*
[
Stability of Cabal interfaces
](
misc.html#stability-of-cabal-interfaces
)
...
...
Cabal/doc/installing-packages.markdown
View file @
34179398
...
...
@@ -267,12 +267,13 @@ infrastructure, the values supplied via these options are recorded in a
private file read by later stages.
If a user-supplied
`configure`
script is run (see the section on
[
system-dependent parameters
](
#system-dependent-parameters
)
or on
[
complex packages
](
#complex-packages
)
), it is passed the
`--with-hc-pkg`
,
`--prefix`
,
`--bindir`
,
`--libdir`
,
`--datadir`
,
`--libexecdir`
and
`--sysconfdir`
options. In addition the value of the
`--with-compiler`
option is passed in a
`--with-hc`
option and all options specified with
`--configure-option=`
are passed on.
[
system-dependent
parameters
](
developing-packages.html#system-dependent-parameters
)
or on
[
complex packages
](
developing-packages.html#more-complex-packages
)
), it
is passed the
`--with-hc-pkg`
,
`--prefix`
,
`--bindir`
,
`--libdir`
,
`--datadir`
,
`--libexecdir`
and
`--sysconfdir`
options. In addition the
value of the
`--with-compiler`
option is passed in a
`--with-hc`
option
and all options specified with
`--configure-option=`
are passed on.
### Programs used for building ###
...
...
@@ -528,8 +529,9 @@ have baked-in all absolute paths.
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
](
#accessing-data-files-from-package-code
)
, the
files will be accessed relative to the location of the current
provided for the
purpose
](
developing-packages.html#accessing-data-files-from-package-code
)
,
the files will be accessed relative to the location of the current
executable.
A library cannot (currently) be prefix-independent, because it will be
...
...
@@ -539,8 +541,8 @@ to the library package.
### Controlling Flag Assignments ###
Flag assignments (see the
[
resolution of conditions and
flags
](
#resolution-of-conditions-and-flags
)
) can
be controlled with the
followingcommand line options.
flags
](
developing-packages.html
#resolution-of-conditions-and-flags
)
) can
be controlled with the
following
command line options.
`-f`
_flagname_ or
`-f`
`-`
_flagname_
: Force the specified flag to
`true`
or
`false`
(if preceded with a
`-`
). Later
...
...
@@ -685,8 +687,8 @@ followingcommand line options.
`--configure-option=`
_str_
: An extra option to an external
`configure`
script, if one is used
(see the section on
[
system-dependent
parameters
](
#system-dependent-parameters
)
).
There can be several of
these options.
parameters
](
developing-packages.html
#system-dependent-parameters
)
).
There can be several of
these options.
`--extra-include-dirs`
[=_dir_]
: An extra directory to search for C header files. You can use this
...
...
@@ -1019,18 +1021,18 @@ This command takes the following option:
the generated source package. The original package is unaffected.
[
dist-simple
]:
../
libraries
/Cabal/Distribution-Simple.html
[
dist-make
]:
../
libraries
/Cabal/Distribution-Make.html
[
dist-license
]:
../
libraries
/Cabal/Distribution-License.html#t:License
[
extension
]:
../
libraries
/Cabal/Language-Haskell-Extension.html#t:Extension
[
BuildType
]:
../
libraries
/Cabal/Distribution-PackageDescription.html#t:BuildType
[
dist-simple
]:
../
release/cabal-latest/doc/API
/Cabal/Distribution-Simple.html
[
dist-make
]:
../
release/cabal-latest/doc/API
/Cabal/Distribution-Make.html
[
dist-license
]:
../
release/cabal-latest/doc/API
/Cabal/Distribution-License.html#t:License
[
extension
]:
../
release/cabal-latest/doc/API
/Cabal/Language-Haskell-Extension.html#t:Extension
[
BuildType
]:
../
release/cabal-latest/doc/API
/Cabal/Distribution-PackageDescription.html#t:BuildType
[
alex
]:
http://www.haskell.org/alex/
[
autoconf
]:
http://www.gnu.org/software/autoconf/
[
c2hs
]:
http://www.cse.unsw.edu.au/~chak/haskell/c2hs/
[
cpphs
]:
http://
www
.haskell.org/cpphs/
[
greencard
]:
http://
www
.haskell.org/greencard
/
[
cpphs
]:
http://
projects
.haskell.org/cpphs/
[
greencard
]:
http://
hackage
.haskell.org/
package/
greencard
[
haddock
]:
http://www.haskell.org/haddock/
[
HsColour
]:
http://www.cs.york.ac.uk/fp/darcs/hscolour/
[
happy
]:
http://www.haskell.org/happy/
[
Hackage
]:
http://hackage.haskell.org/
[
pkg-config
]:
http://
pkg-config
.freedesktop.org/
[
pkg-config
]:
http://
www
.freedesktop.org/
wiki/Software/pkg-config/
Cabal/doc/misc.markdown
View file @
34179398
...
...
@@ -61,7 +61,7 @@ the API are more prone to change than others. The rest of this section
gives some informal advice on what level of API stability you can expect
between major releases.
[
PVP
]:
http://haskell.org/haskellwiki/Package_versioning_policy
[
PVP
]:
http://
www.
haskell.org/haskellwiki/Package_versioning_policy
### Very Stable API ###
...
...
@@ -92,18 +92,18 @@ file. Incompatible revisions to the format would involve bumping the
name of the index file, i.e.,
`00-index.tar.gz`
,
`01-index.tar.gz`
etc.
[
dist-simple
]:
../
libraries
/Cabal/Distribution-Simple.html
[
dist-make
]:
../
libraries
/Cabal/Distribution-Make.html
[
dist-license
]:
../
libraries
/Cabal/Distribution-License.html#t:License
[
extension
]:
../
libraries
/Cabal/Language-Haskell-Extension.html#t:Extension
[
BuildType
]:
../
libraries
/Cabal/Distribution-PackageDescription.html#t:BuildType
[
dist-simple
]:
../
release/cabal-latest/doc/API
/Cabal/Distribution-Simple.html
[
dist-make
]:
../
release/cabal-latest/doc/API
/Cabal/Distribution-Make.html
[
dist-license
]:
../
release/cabal-latest/doc/API
/Cabal/Distribution-License.html#t:License
[
extension
]:
../
release/cabal-latest/doc/API
/Cabal/Language-Haskell-Extension.html#t:Extension
[
BuildType
]:
../
release/cabal-latest/doc/API
/Cabal/Distribution-PackageDescription.html#t:BuildType
[
alex
]:
http://www.haskell.org/alex/
[
autoconf
]:
http://www.gnu.org/software/autoconf/
[
c2hs
]:
http://www.cse.unsw.edu.au/~chak/haskell/c2hs/
[
cpphs
]:
http://
www
.haskell.org/cpphs/
[
greencard
]:
http://
www
.haskell.org/greencard
/
[
cpphs
]:
http://
projects
.haskell.org/cpphs/
[
greencard
]:
http://
hackage
.haskell.org/
package/
greencard
[
haddock
]:
http://www.haskell.org/haddock/
[
HsColour
]:
http://www.cs.york.ac.uk/fp/darcs/hscolour/
[
happy
]:
http://www.haskell.org/happy/
[
Hackage
DB
]:
http://hackage.haskell.org/
[
pkg-config
]:
http://
pkg-config
.freedesktop.org/
[
Hackage
]:
http://hackage.haskell.org/
[
pkg-config
]:
http://
www
.freedesktop.org/
wiki/Software/pkg-config/
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment