Difference between revisions of "Cabal"

From HaskellWiki
Jump to navigation Jump to search
(move DLL hints to Developer-FAQ)
(6 intermediate revisions by 3 users not shown)
Line 4: Line 4:
 
http://www.haskell.org/cabal/
 
http://www.haskell.org/cabal/
   
== Information for users ==
+
== Summary ==
  +
* Cabal is a package and build system. Cabal is only involved in the creation of packages and the building of their contents. It does not manage packages.
  +
* Cabal-Install installs cabal packages. It is distinct from Cabal (the build system). This often confuses new users. Furthermore, Cabal-Install is not a fully featured package manager. For example, it cannot install non cabal packaged dependencies, it cannot uninstall packages, nor can it automatically upgrade installations.
  +
  +
== Information for package users ==
 
*[[Cabal/How to install a Cabal package | How to install a Cabal package]]
 
*[[Cabal/How to install a Cabal package | How to install a Cabal package]]
 
*[[Cabal/FAQ|FAQ: Frequently Asked Questions]]
 
*[[Cabal/FAQ|FAQ: Frequently Asked Questions]]
 
*[[Cabal-Install]] - tool that greatly simplifies installation of Cabal packages
 
*[[Cabal-Install]] - tool that greatly simplifies installation of Cabal packages
  +
*[http://hackage.haskell.org/package/cabal-sort Cabal-Sort] - assistance with compilation of multiple cabal packages
 
*[[CabalFind]] - finding Cabal packages on the web (now superseded by [http://hackage.haskell.org/ Hackage])
  +
* [http://www.vex.net/~trebla/haskell/sicp.xhtml Storage and Identification of Cabalized Packages]
  +
* [http://hackage.haskell.org/package/cabal-dev cabal-dev], a tool for managing development builds of Haskell projects. It supports maintaining sandboxed cabal-install repositories, and sandboxed ghc package databases. See [http://www.reddit.com/r/haskell/comments/f3ykj/psa_use_cabaldev_to_solve_dependency_problems/ PSA: Use cabal-dev to solve dependency problems] for an extensive description.
  +
* Blog article: [http://ivanmiljenovic.wordpress.com/2010/03/15/repeat-after-me-cabal-is-not-a-package-manager/ Repeat after me: “Cabal is not a Package Manager”]
   
== Information for developers ==
+
== Information for package developers ==
 
*[[How to write a Haskell program]]
 
*[[How to write a Haskell program]]
 
*[[Cabal/Developer-FAQ|FAQ: Frequently Asked Questions of package authors]]
 
*[[Cabal/Developer-FAQ|FAQ: Frequently Asked Questions of package authors]]
Line 17: Line 26:
 
*[http://neilmitchell.blogspot.com/2008/02/adding-data-files-using-cabal.html Adding data files using Cabal]
 
*[http://neilmitchell.blogspot.com/2008/02/adding-data-files-using-cabal.html Adding data files using Cabal]
 
*[http://www.moonloop.net/haskell/docs/cbs-custom.html Cabal Setup file examples]
 
*[http://www.moonloop.net/haskell/docs/cbs-custom.html Cabal Setup file examples]
 
=== Related contributed tools ===
 
 
*[[CabalFind]] - finding Cabal packages on the web (now superseded by [http://hackage.haskell.org/ Hackage])
 
 
*[[Cabal-make]] - automation based on makefiles
 
*[[Cabal-make]] - automation based on makefiles
  +
*[http://blog.ezyang.com/2010/06/setting-up-cabal-the-ffi-and-c2hs/ Setting up Cabal, the FFI and c2hs]
   
 
[[Category:Tools]]
 
[[Category:Tools]]

Revision as of 01:28, 25 August 2011

The Haskell Cabal:

The Common Architecture for Building Applications and Libraries

http://www.haskell.org/cabal/

Summary

  • Cabal is a package and build system. Cabal is only involved in the creation of packages and the building of their contents. It does not manage packages.
  • Cabal-Install installs cabal packages. It is distinct from Cabal (the build system). This often confuses new users. Furthermore, Cabal-Install is not a fully featured package manager. For example, it cannot install non cabal packaged dependencies, it cannot uninstall packages, nor can it automatically upgrade installations.

Information for package users

Information for package developers