[[project @ 2005-01-21 12:48:38 by simonmar] simonmar**20050121124839 Update packages documentation (phew) ] { hunk ./ghc/docs/users_guide/flags.xml 454 - name - Use package name + P + Expose package P + static + - + + + name + Hide package P + static + - + + + name + Ignore package P hunk ./ghc/docs/users_guide/flags.xml 478 - name - Compile code for package name + + Don't load the user's package config file. hunk ./ghc/docs/users_guide/packages.xml 3 - Packages - packages + +Packages + + packages + + A package is a library of Haskell modules known to the compiler. GHC + comes with several packages: see the accompanying + library documentation. hunk ./ghc/docs/users_guide/packages.xml 12 - Packages are collections of libraries, conveniently grouped - together as a single entity. The package system is flexible: a - package may consist of Haskell code, foreign language code (eg. C - libraries), or a mixture of the two. A package is a good way to - group together related Haskell modules, and is essential if you - intend to make the modules into a Windows DLL (see below). + Using a package couldn't be simpler: if you're using + or GHCi, then most of the installed packages will be + automatically available to your program without any further options. The + exceptions to this rule are covered below in . hunk ./ghc/docs/users_guide/packages.xml 18 - Because packages can contain both Haskell and C libraries, they - are also a good way to provide convenient access to a Haskell - layer over a C library. + Building your own packages is also quite straightforward: we provide + the Cabal infrastructure which + automates the process of configuring, building, installing and distributing + a package. All you need to do is write a simple configuration file, put a + few files in the right places, and you have a package. See the Cabal + documentation for details, and also the Cabal libraries (Distribution.Simple, + for example). hunk ./ghc/docs/users_guide/packages.xml 26 - GHC comes with several packages (see the accompanying - library documentation), and packages can be added to or removed - from an existing GHC installation, using the supplied - ghc-pkgghc-pkg - tool, described in . + + Using Packages + + packages + using + + To see which packages are installed, use the + ghc-pkg command: hunk ./ghc/docs/users_guide/packages.xml 35 - - Using a package - packages - using - - Some packages, called auto packages, - are automatically available: you don't need - to specify any extra flags to use them (except in certain - circumstances; see below). All the packages which contain - hierarchical libraries fall into this category. + +$ ghc-pkg list +/usr/lib/ghc-6.4/package.conf: + base-1.0, haskell98-1.0, template-haskell-1.0, mtl-1.0, unix-1.0, + Cabal-1.0, haskell-src-1.0, parsec-1.0, network-1.0, + QuickCheck-1.0, HUnit-1.1, fgl-1.0, X11-1.1, HGL-3.1, OpenGL-2.0, + GLUT-2.0, stm-1.0, readline-1.0, (lang-1.0), (concurrent-1.0), + (posix-1.0), (util-1.0), (data-1.0), (text-1.0), (net-1.0), + (hssource-1.0), rts-1.0 + hunk ./ghc/docs/users_guide/packages.xml 46 - Some other packages are not - automatically available: those are normally the packages - containing old non-hierarchical libraries. To gain access to a - non-auto package, use the command-line - flag: + Packages are either exposed or hidden. Only + modules from exposed packages may be imported by your Haskell code; if + you try to import a module from a hidden package, GHC will emit an error + message. hunk ./ghc/docs/users_guide/packages.xml 51 - - - - - -package lib option - - - This option brings into scope all the modules from - package lib (they still have to - be imported in your Haskell source, however). It also - causes the relevant libraries to be linked when linking is - being done. - Some packages depend on other packages, for example the - text package makes use of some of the modules - in the lang package. The package system - takes care of all these dependencies, so that when you say - -package text on the command line, you - automatically get -package lang too. - - - + Each package has an exposed flag, which says whether it is exposed by + default or not. Packages hidden by default are listed in + parentheses (eg. (lang-1.0)) in the output from + ghc-pkg list. To expose a package which is hidden by + default, use the + flag (see below). + + To see which modules are exposed by a package: + + +$ ghc-pkg field network exposed-modules +exposed-modules: Network.BSD, + Network.CGI, + Network.Socket, + Network.URI, + Network + + + In general, packages containing hierarchical modules are usually + exposed by default. However, it is possible for two packages to contain + the same module: in this case, only one of the packages can be + exposed. This might happen if you have two versions of the same package + installed, for example. The general rule is: + +
There must be no overlaps in the modules provided by all + of the exposed packages, and the packages they depend on, and so + on.
hunk ./ghc/docs/users_guide/packages.xml 79 - There's one case where you need to use the - option even for auto packages: when - linking a program in batch mode mode () - This is because - GHC can't figure out from the object files which packages are - required; in mode and in - GHCi the compiler has more information available to figure out - the package dependencies. We might try to lift this restriction - in the future.. For example, to link a - program consisting of objects Foo.o and - Main.o, where we made use of the - network package, we need to give GHC the -package flag thus: + The GHC command line options that control packages are: + + + + + + + + + This option causes package P to be + exposed. The package P can be specified + in full with its version number + (e.g. network-1.0) or the version number can be + omitted if there is only one version of the package + installed. + + If there are multiple versions of P + installed, then all other versions will become hidden. + + The + option also causes package P to be + linked into the resulting executable. In + mode and GHCi, the compiler + normally determines which packages are required by the current + Haskell modules, and links only those. In batch mode however, the + dependency information isn't available, and explicit + options must be given when linking. + + For example, to link a program consisting of objects + Foo.o and Main.o, where + we made use of the network package, we need to + give GHC the -package flag thus: hunk ./ghc/docs/users_guide/packages.xml 114 - The same flag is necessary even if we compiled the modules from source, because GHC still - reckons it's in batch mode: -$ ghc -o myprog Foo.hs Main.hs -package network -In --make and --interactive modes (), however, GHC figures out -the auto packages required for linking without further assistance. - + The same flag is necessary even if we compiled the modules from + source, because GHC still reckons it's in batch mode: hunk ./ghc/docs/users_guide/packages.xml 117 -
+$ ghc -o myprog Foo.hs Main.hs -package network hunk ./ghc/docs/users_guide/packages.xml 119 + In --make and --interactive + modes (), however, GHC figures out the + packages required for linking without further assistance. hunk ./ghc/docs/users_guide/packages.xml 123 - - Maintaining a local set of packages + The one other time you might need to use + to force linking a package is when the + package does not contain any Haskell modules (it might contain a C + library only, for example). In that case, GHC + will never discover a dependency on it, so it has to be mentioned + explicitly. + + hunk ./ghc/docs/users_guide/packages.xml 132 - When GHC starts up, it automatically reads the default set - of packages from a configuration file, normally named - package.conf in your GHC installation - directory. + + P + + + + This option does the opposite of : it + causes the specified package to be hidden, + which means that none of its modules will be available for import + by Haskell import directives. hunk ./ghc/docs/users_guide/packages.xml 142 - You can load in additional package configuration files - using the option: + Note that the package might still end up being linked into the + final program, if it is a dependency (direct or indirect) of + another exposed package. + + hunk ./ghc/docs/users_guide/packages.xml 148 - - - - - - - - Read in the package configuration file - file in addition to the system - default file. This allows the user to have a local set of - packages in addition to the system-wide ones. - - - + + P + + + + Causes the compiler to behave as if package + P is not installed at all. This is not + the same as , because under + the package might still be present + in the program if another package depends on it. + + P + not only causes package P to be removed, + but also everything that depends on P, + and so on. hunk ./ghc/docs/users_guide/packages.xml 164 - To create your own package configuration file, just create - a new file and put the string - [] in it. Packages can be - added to the new configuration file using the - ghc-pkg tool, described in . - + Why do we need ? Well, it is + particularly useful when you're actually compiling package + P itself. The compiler will refuse to + compile module M if + M is already part of a package. So we + might try + P; but then if + P is a dependency of another package + P' we would have to + P' too; + and the author of the code can't know in advance which packages are + installed on the system and hence which + flags are required. So, we provide + which does the Right Thing. + + + +
+ + + Package Databases + + A package database is a file, normally called + package.conf which contains descriptions of installed + packages. GHC usually knows about two package databases: hunk ./ghc/docs/users_guide/packages.xml 190 - - Building a package from Haskell source - packages - building + + + The global package database, which comes with your GHC + installation. + + + A package database private to each user. On Unix + systems this will be + $HOME/.ghc/arch-os-version/package.conf, and on + Windows it will be something like + C:\Documents And Settings\user\ghc. + The ghc-pkg tool knows where this file should be + located, and will create it if it doesn't exist (see ). + + hunk ./ghc/docs/users_guide/packages.xml 207 - It takes some special considerations to build a new - package: + When GHC starts up, it reads the contents of these two package + databases, and builds up a list of the packages it knows about. You can + see GHC's package table by running GHC with the + flag. hunk ./ghc/docs/users_guide/packages.xml 212 - + Package databases may overlap: for example, packages in the user + database will override those of the same name in the global + database. + + You can control the loading of package databses using the following + GHC options: + + + + + + + hunk ./ghc/docs/users_guide/packages.xml 226 - A package may contain several Haskell modules. A - package may span many directories, or many packages may - exist in a single directory. Packages may not be mutually - recursive. + Read in the package configuration file + file in addition to the system + default file and the user's local file. Packages in additional + files read this way will override those in the global and user + databases. hunk ./ghc/docs/users_guide/packages.xml 232 + hunk ./ghc/docs/users_guide/packages.xml 234 + + + + + hunk ./ghc/docs/users_guide/packages.xml 240 - A package has a name - (e.g. base) + Prevent loading of the user's local package database. hunk ./ghc/docs/users_guide/packages.xml 242 + + hunk ./ghc/docs/users_guide/packages.xml 245 - - The Haskell code in a package may be built into one or + To create a new package database, just create + a new file and put the string + [] in it. Packages can be + added to the file using the + ghc-pkg tool, described in . + + + + Building a package from Haskell source + packages + building + + We don't recommend building packages the hard way. Instead, use the + Cabal infrastructure + if possible. If your package is particularly complicated or requires a + lot of configuration, then you might have to fall back to the low-level + mechanisms, so a few hints for those brave souls follow. + + + + You need to build an "installed package info" file for + passing to ghc-pkg when installing your + package. The contents of this file are described in . + + + + The Haskell code in a package may be built into one or hunk ./ghc/docs/users_guide/packages.xml 286 - Building a static library is done by using the + Building a static library is done by using the hunk ./ghc/docs/users_guide/packages.xml 291 - where A.o, + where A.o, hunk ./ghc/docs/users_guide/packages.xml 298 - Versions of the Haskell libraries for use with GHCi + Versions of the Haskell libraries for use with GHCi hunk ./ghc/docs/users_guide/packages.xml 310 - hunk ./ghc/docs/users_guide/packages.xml 311 - - (replace + (replace hunk ./ghc/docs/users_guide/packages.xml 314 - + hunk ./ghc/docs/users_guide/packages.xml 319 - - - - To compile a module which is to be part of a new package, - use the -package-name option: - - - - - - -package-nameoption - - - This option is added to the command line when - compiling a module that is destined to be part of package - foo. If this flag is omitted then the - default package Main is assumed. - - - + hunk ./ghc/docs/users_guide/packages.xml 321 - Failure to use the -package-name option - when compiling a package will result in disaster on Windows, but - is relatively harmless on Unix at the moment (it will just cause - a few extra dependencies in some interface files). However, - bear in mind that we might add support for Unix shared libraries - at some point in the future. - - It is worth noting that on Windows, when each package + + When compiling a Haskell module which is to be part of a new package + P, use +  P. + + + + It is worth noting that on Windows, when each package hunk ./ghc/docs/users_guide/packages.xml 335 - - Package management - packages - management - - The ghc-pkg tool allows packages to be - added or removed from a package configuration file. By default, - the system-wide configuration file is used, but alternatively - packages can be added, updated or removed from a user-specified - configuration file using the - option. An empty package configuration file consists of the - string []. + + Package management (the <literal>ghc-pkg</literal> command) + packages + management + + The ghc-pkg tool allows packages to be + added or removed from a package database. By default, + the system-wide package database is used, but alternatively + the user's local package database or another specified + file can be used. hunk ./ghc/docs/users_guide/packages.xml 346 - The ghc-pkg program accepts the - following options: + The ghc-pkg program may be run in the following + ways. Where a package name is required, the package can be named either + in full including the version number + (e.g. network-1.0), or without the version number if + that is unambiguous. hunk ./ghc/docs/users_guide/packages.xml 352 - - - - - - - - - - - Reads package specification from the input (see below), - and adds it to the database of installed packages. The - package specification must be a package that isn't already + + + ghc-pkg register file + + Reads a package specification from + file (which may be “-” + to indicate standard input), + and adds it to the database of installed packages. The syntax of + file is given in . + + The package specification must be a package that isn't already hunk ./ghc/docs/users_guide/packages.xml 365 - - + + hunk ./ghc/docs/users_guide/packages.xml 368 - - - - - - - - - - Read new package specifications from file - file. If a value of - "-" is given, standard input is used. - If no is present on the command-line, - an input file of "-" is assumed. - - - + + ghc-pkg update file + + The same as register, except that if a + package of the same name is already installed, it is + replaced by the new one. + + hunk ./ghc/docs/users_guide/packages.xml 377 - - - - - - - - - - Automatically generate the GHCi + + ghc-pkg unregister P + + Remove the specified package from the database. + + + + + ghc-pkg expose P + + Sets the exposed flag for package + P to True. + + + + + ghc-pkg hide P + + Sets the exposed flag for package + P to False. + + + + + ghc-pkg list + + This option displays the currently installed + packages, for each of the databases known to + ghc-pkg. That includes the global database, the + user's local database, and any further files + specified using the option on the command + line. + + Hidden packages (those for which the exposed + flag is False) are shown in parentheses in the + list of packages. + + + + + ghc-pkg describe P + + Emit the full description of the specified package. The + description is in the form of an + InstalledPackageInfo, the same as the input file + format for ghc-pkg register. See for details. + + + + + ghc-pkg field P field + + Show just a single field of the installed package description + for P. + + + + + Additionally, the following flags are accepted by + ghc-pkg: + + + + + + + + + Automatically generate the GHCi hunk ./ghc/docs/users_guide/packages.xml 459 - - + + + + + + file + + + + + file + + + + + Operate on the package database in + file. + This flag affects the register, + update, unregister, + expose, and hide + commands. + + When multiple options are given, or + is used in conjunction with + or , the last + one on the command-line takes precedence. When listing packages + with ghc-pkg list, the contents of all the + databases specified on the command-line are listed. + + + + + + + + + + + + Causes ghc-pkg to ignore missing + dependencies, directories and libraries when registering a package, + and just go ahead and add it anyway. This might be useful if your + package installation system needs to add the package to + GHC before building and installing the files. + + + + + + + + + + Operate on the global package database (this is the default). + This flag affects the register, + update, unregister, + expose, and hide + commands. + + + + + + + + + + + + + + Outputs the command-line syntax. + + + + + + + + + + Operate on the current user's local package database. + This flag affects the register, + update, unregister, + expose, and hide + commands. + + + + + + + + + + + + + + Output the ghc-pkg version number. + + + + + When modifying the package database + file, a copy of the original file is + saved in file.old, + so in an emergency you can always restore the old settings by + copying the old file back again. + + + + + + <literal>InstalledPackageInfo</literal>: a package specification + + + A package specification is a Haskell record; in particular, it is the + record InstalledPackageInfo in the module Distribution.InstalledPackageInfo, which is part of the Cabal package distributed with GHC. + + An InstalledPackageInfo has a human + readable/writable syntax. The functions + parseInstalledPackageInfo and + showInstalledPackageInfo read and write this syntax + respectively. Here's an example of the + InstalledPackageInfo for the unix package: + + +$ ghc-pkg describe unix +name: unix +version: 1.0 +license: BSD3 +copyright: +maintainer: libraries@haskell.org +stability: +homepage: +package-url: +description: +category: +author: +exposed: True +exposed-modules: System.Posix, + System.Posix.DynamicLinker.Module, + System.Posix.DynamicLinker.Prim, + System.Posix.Directory, + System.Posix.DynamicLinker, + System.Posix.Env, + System.Posix.Error, + System.Posix.Files, + System.Posix.IO, + System.Posix.Process, + System.Posix.Resource, + System.Posix.Temp, + System.Posix.Terminal, + System.Posix.Time, + System.Posix.Unistd, + System.Posix.User, + System.Posix.Signals.Exts +import-dirs: /usr/lib/ghc-6.4/libraries/unix +library-dirs: /usr/lib/ghc-6.4/libraries/unix +hs-libraries: HSunix +extra-libs: HSunix_cbits, dl +include-dirs: /usr/lib/ghc-6.4/libraries/unix/include +includes: HsUnix.h +depends: base-1.0 + + + The full Cabal documentation is still in preparation (at time of + writing), so in the meantime here is a brief description of the syntax of + this file: + + A package description consists of a number of field/value pairs. A + field starts with the field name in the left-hand column followed by a + “:”, and the value continues until the next line that begins in the + left-hand column, or the end of file. + + The syntax of the value depends on the field. The various field + types are: + + + + freeform + + Any arbitrary string, no interpretation or parsing is + done. + + + + string + + A sequence of non-space characters, or a sequence of arbitrary + characters surrounded by quotes "....". + + + + string list + + A sequence of strings, separated by commas. The sequence may + be empty. + + + + + In addition, there are some fields with special syntax (e.g. package + names, version, dependencies). + + The allowed fields, with their types, are: + + + + + name + namepackage specification + + + The package's name (without the version). + + + + + + version + versionpackage specification + + + The package's version, usually in the form + A.B (any number of components are allowed). + + + + + + license + autopackage specification + + + (string) The type of license under which this package is distributed. + This field is a value of the License type. + + hunk ./ghc/docs/users_guide/packages.xml 704 - - + license-file + license-filepackage specification hunk ./ghc/docs/users_guide/packages.xml 707 + + (optional string) The name of a file giving detailed license + information for this package. + + + + hunk ./ghc/docs/users_guide/packages.xml 715 - + copyright + copyrightpackage specification hunk ./ghc/docs/users_guide/packages.xml 719 - Use file as an additional - package configuration file. This is used to modify - configuration files for use with GHC's - option. - - There may be any number of configuration files named - on the command line; files mentioned later on the - command-line override those mentioned earlier. The - last configuration file mentioned on - the command-line is the only one that is actually modified - by ghc-pkg. - + (optional freeform) The copyright string. hunk ./ghc/docs/users_guide/packages.xml 725 - - + maintainer + maintainerpackage specification hunk ./ghc/docs/users_guide/packages.xml 728 + + (optinoal freeform) The email address of the package's maintainer. + + + + hunk ./ghc/docs/users_guide/packages.xml 735 - + stability + stabilitypackage specification hunk ./ghc/docs/users_guide/packages.xml 739 - This option displays the list of currently installed - packages, including those in extra configuration files - specified with the - option. - - - $ ghc-pkg ––list-packages - /usr/local/lib/ghc-5.05/package.conf: - hdirect, readline, lang, concurrent, posix, util, data, text, net, - hssource, rts, haskell98, network, haskell-src, unix, base - - - Note that your GHC installation might have a - slightly different set of packages installed. - - The rts package is always - present, and represents the runtime system library. The - base package contains the Haskell - prelude and basic hierarchical libraries, and the - haskell98 package contains the Haskell - 98 standard libraries. The rest of the packages are - optional libraries. + (optional freeform) A string describing the stability of the package + (eg. stable, provisional or experimental). hunk ./ghc/docs/users_guide/packages.xml 746 - - + homepage + homepagepackage specification hunk ./ghc/docs/users_guide/packages.xml 749 - - + + (optional freeform) URL of the package's home page. + + + + + + package-url + package-urlpackage specification hunk ./ghc/docs/users_guide/packages.xml 760 - Displays the list of packages installed in the - topmost configuration file only: that will be the - configuration file specified using on - the command line, or the system configuration file - otherwise. - - This option may be more convenient than - when the output needs to be parsed by - a script. + (optional freeform) URL of a downloadable distribution for this + package. The distribution should be a Cabal package. hunk ./ghc/docs/users_guide/packages.xml 767 - - + description + descriptionpackage specification hunk ./ghc/docs/users_guide/packages.xml 770 + + (optional freeform) Description of the package. + + + + hunk ./ghc/docs/users_guide/packages.xml 777 - + category + categorypackage specification hunk ./ghc/docs/users_guide/packages.xml 781 - Removes the specified package from the installed - configuration. + (optinoal freeform) Which category the package belongs to. This field + is for use in conjunction with a future centralised package + distribution framework, tentatively titled Hackage. hunk ./ghc/docs/users_guide/packages.xml 786 + hunk ./ghc/docs/users_guide/packages.xml 789 - - - - - + author + authorpackage specification hunk ./ghc/docs/users_guide/packages.xml 793 - Reads package specification from the input, and - adds it to the database of installed packages. If a package - with the same name is already installed, its configuration - data is replaced with the new information. If the package - doesn't already exist, it's added. - + (optional freeform) Author of the package. hunk ./ghc/docs/users_guide/packages.xml 796 + hunk ./ghc/docs/users_guide/packages.xml 799 - - + exposed + exposedpackage specification hunk ./ghc/docs/users_guide/packages.xml 803 - Causes ghc-pkg to ignore missing - directories and libraries when adding a package, and just - go ahead and add it anyway. This might be useful if your - package installation system needs to add the package to - GHC before building and installing the files. + (bool) Whether the package is exposed or not. hunk ./ghc/docs/users_guide/packages.xml 806 - - - When modifying the configuration file - file, a copy of the original file is - saved in file.old, - so in an emergency you can always restore the old settings by - copying the old file back again. - - A package specification looks like this: - - - Package { - name = "mypkg", - auto = True, - import_dirs = ["${installdir}/imports/mypkg"], - source_dirs = [], - library_dirs = ["${installdir}"], - hs_libraries = ["HSmypkg" ], - extra_libraries = ["HSmypkg_cbits"], - include_dirs = [], - c_includes = ["HsMyPkg.h"], - package_deps = ["text", "data"], - extra_ghc_opts = [], - extra_cc_opts = [], - extra_ld_opts = ["-lmy_clib"] - } - hunk ./ghc/docs/users_guide/packages.xml 807 - Components of a package specification may be specified in - any order, and are: - - hunk ./ghc/docs/users_guide/packages.xml 809 - name - namepackage specification + exposed-modules + exposed-modulespackage specification hunk ./ghc/docs/users_guide/packages.xml 813 - The package's name, for use with - the -package flag and as listed in the - ––list-packages list. - + (string list) modules exposed by this package. hunk ./ghc/docs/users_guide/packages.xml 819 - auto - autopackage specification + hidden-modules + hidden-modulespackage specification hunk ./ghc/docs/users_guide/packages.xml 823 - Set to True if the package should - be automatically available (see ). This is normally set to - True for packages which contain - hierarchical libraries, because in that case there is no - danger of polluting the module namespace. - + (string list) modules provided by this package, + but not exposed to the programmer. These modules cannot be + imported, but they are still subject to the overlapping constraint: + no other package in the same program may provide a module of the + same name. + hunk ./ghc/docs/users_guide/packages.xml 833 - import_dirs - import_dirspackage specification + import-dirs + import-dirspackage specification hunk ./ghc/docs/users_guide/packages.xml 837 - A list of directories containing interface files + (string list) A list of directories containing interface files hunk ./ghc/docs/users_guide/packages.xml 851 - source_dirs - source_dirspackage specification + library-dirs + library-dirspackage specification hunk ./ghc/docs/users_guide/packages.xml 855 - A list of directories containing Haskell source - files for this package. This field isn't used by GHC, but - could potentially be used by an all-interpreted system - like Hugs. - - - - - - library_dirs - library_dirspackage specification - - - A list of directories containing libraries for this + (string list) A list of directories containing libraries for this hunk ./ghc/docs/users_guide/packages.xml 862 - hs_libraries - hs_librariespackage specification + hs-libraries + hs-librariespackage specification hunk ./ghc/docs/users_guide/packages.xml 866 - A list of libraries containing Haskell code for this + (string list) A list of libraries containing Haskell code for this hunk ./ghc/docs/users_guide/packages.xml 908 - hunk ./ghc/docs/users_guide/packages.xml 913 - extra_libraries - extra_librariespackage specification + extra-libs + extra-libspackage specification hunk ./ghc/docs/users_guide/packages.xml 917 - A list of extra libraries for this package. The - difference between hs_libraries and - extra_libraries is that - hs_libraries normally have several + (string list) A list of extra libraries for this package. The + difference between hs-libraries and + extra-libs is that + hs-libraries normally have several hunk ./ghc/docs/users_guide/packages.xml 925 - libHSstd_p.a, with the + libHSbase_p.a, with the hunk ./ghc/docs/users_guide/packages.xml 928 - hs_libraries only, no suffix is added + hs-libraries only, no suffix is added hunk ./ghc/docs/users_guide/packages.xml 930 - extra_libraries. + extra-libs. hunk ./ghc/docs/users_guide/packages.xml 933 - extra_libraries may be any libraries + extra-libs may be any libraries hunk ./ghc/docs/users_guide/packages.xml 938 - Also, extra_libraries are placed + Also, extra-libs are placed hunk ./ghc/docs/users_guide/packages.xml 940 - hs_libraries for the same package. If + hs-libraries for the same package. If hunk ./ghc/docs/users_guide/packages.xml 942 - extra_libraries depends on - hs_libraries), and the libraries are + extra-libs depends on + hs-libraries), and the libraries are hunk ./ghc/docs/users_guide/packages.xml 951 - include_dirs - include_dirspackage specification + include-dirs + include-dirspackage specification hunk ./ghc/docs/users_guide/packages.xml 955 - A list of directories containing C includes for this - package (maybe the empty list). + (string list) A list of directories containing C includes for this + package. hunk ./ghc/docs/users_guide/packages.xml 962 - c_includes - c_includespackage specification + includes + includespackage specification hunk ./ghc/docs/users_guide/packages.xml 966 - A list of files to include for via-C compilations - using this package. Typically this include file will + (string list) A list of files to include for via-C compilations + using this package. Typically the include file(s) will hunk ./ghc/docs/users_guide/packages.xml 977 - package_deps - package_depspackage specification + depends + dependspackage specification hunk ./ghc/docs/users_guide/packages.xml 981 - A list of packages which this package depends - on. + (package name list) Packages on which this package depends. This field contains + packages with explicit versions are required, except that when + submitting a package to ghc-pkg register, the + versions will be filled in if they are unambiguous. hunk ./ghc/docs/users_guide/packages.xml 990 - extra_ghc_opts - extra_ghc_optspackage specification + extra-hugs-opts + extra-hugs-optspackage specification hunk ./ghc/docs/users_guide/packages.xml 994 - Extra arguments to be added to the GHC command line - when this package is being used. + (string list) Options to pass to Hugs for this package. hunk ./ghc/docs/users_guide/packages.xml 1000 - extra_cc_opts - extra_cc_optspackage specification + extra-cc-opts + extra-cc-optspackage specification hunk ./ghc/docs/users_guide/packages.xml 1004 - Extra arguments to be added to the gcc command line + (string list) Extra arguments to be added to the gcc command line hunk ./ghc/docs/users_guide/packages.xml 1012 - extra_ld_opts - extra_ld_optspackage specification + extra-ld-opts + extra-ld-optspackage specification hunk ./ghc/docs/users_guide/packages.xml 1016 - Extra arguments to be added to the + (string list) Extra arguments to be added to the hunk ./ghc/docs/users_guide/packages.xml 1024 - framework_dirs - framework_dirspackage specification + framework-dirs + framework-dirspackage specification + + + (string list) On Darwin/MacOS X, a list of directories containing + frameworks for this package. This corresponds to the + option. It is ignored on all other + platforms. + + + + + + extra-frameworks + extra-frameworkspackage specification hunk ./ghc/docs/users_guide/packages.xml 1041 - On Darwin/MacOS X, a list of directories containing frameworks for this - package. This corresponds to the option. - It is ignored on all other platforms. + (string list) On Darwin/MacOS X, a list of frameworks to link to. This + corresponds to the option. Take a look + at Apple's developer documentation to find out what frameworks + actually are. This entry is ignored on all other platforms. hunk ./ghc/docs/users_guide/packages.xml 1050 - extra_frameworks - extra_frameworkspackage specification + haddock-interfaces + haddock-interfacespackage specification hunk ./ghc/docs/users_guide/packages.xml 1054 - On Darwin/MacOS X, a list of frameworks to link to. This corresponds to the - option. Take a look at Apple's developer documentation - to find out what frameworks actually are. This entry is ignored on all other platforms. + (string list) A list of filenames containing Haddock interface + files (.haddock files) for this package. + + + + + + haddock-html + haddock-htmlpackage specification + + + (optional string) The directory containing the Haddock-generated HTML + for this package. hunk ./ghc/docs/users_guide/packages.xml 1072 + + }