name:                 haddock
version:              2.5.0
cabal-version:        >= 1.6
license:              BSD3
build-type:           Simple
license-file:         LICENSE
copyright:            (c) Simon Marlow, David Waern
author:               Simon Marlow, David Waern
maintainer:           David Waern <david.waern@gmail.com>
stability:            experimental
homepage:             http://www.haskell.org/haddock/
synopsis:             A documentation-generation tool for Haskell libraries
description:          Haddock is a documentation-generation tool for Haskell
                      libraries
category:             Development

extra-source-files:
  CHANGES
  README
  doc/Makefile
  doc/README
  doc/aclocal.m4
  doc/config.mk.in
  doc/configure.ac
  doc/docbook-xml.mk
  doc/fptools.css
  doc/haddock.xml
  examples/A.hs
  examples/B.hs
  examples/Bug1.hs
  examples/Bug2.hs
  examples/Bug3.hs
  examples/Bug4.hs
  examples/Bug6.hs
  examples/Bug7.hs
  examples/Bug8.hs
  examples/Bug9.hs
  examples/Hash.hs
  examples/Hidden.hs
  examples/Makefile
  examples/NoLayout.hs
  examples/Test.hs
  examples/Visible.hs
  examples/hide-bug/A.hs
  examples/hide-bug/B.hs
  examples/hide-bug/C.hs
  examples/hide-bug/D.hs
  haddock.spec
  haskell.vim
  src/haddock.sh

data-files:
  html/haddock-DEBUG.css
  html/haddock.css
  html/haddock-util.js
  html/haskell_icon.gif
  html/minus.gif
  html/plus.gif
  html/frames.html

flag in-ghc-tree
  description: Are we in a GHC tree?
  default: False
  manual: True

executable haddock
  build-depends:
    base >= 4.0.0.0 && < 4.2.0.0,
    filepath,
    directory,
    pretty,
    containers,
    array,
    Cabal >= 1.5,
    ghc == 6.10.* || == 6.11.*

  if flag(in-ghc-tree)
    cpp-options: -DIN_GHC_TREE
    extensions: ForeignFunctionInterface
  else
    build-depends: ghc-paths

  main-is:              Main.hs
  hs-source-dirs:       src
  extensions:           CPP, PatternGuards, DeriveDataTypeable,
                        ScopedTypeVariables, MagicHash
  ghc-options:          -funbox-strict-fields -O2 -Wall

  other-modules:
    Haddock.Interface
    Haddock.Interface.Rename
    Haddock.Interface.Create
    Haddock.Interface.ExtractFnArgDocs
    Haddock.Interface.AttachInstances
    Haddock.Interface.Lex
    Haddock.Interface.Parse
    Haddock.Interface.Rn
    Haddock.Interface.LexParseRn
    Haddock.Interface.ParseModuleHeader
    Haddock.Utils.FastMutInt2
    Haddock.Utils.BlockTable
    Haddock.Utils.Html
    Haddock.Utils
    Haddock.Backends.Html
    Haddock.Backends.HaddockDB
    Haddock.Backends.DevHelp
    Haddock.Backends.HH
    Haddock.Backends.HH2
    Haddock.Backends.Hoogle
    Haddock.ModuleTree
    Haddock.Types
    Haddock.HsDoc
    Haddock.Version
    Haddock.InterfaceFile        
    Haddock.Options
    Haddock.GhcUtils
    Haddock.Convert
   
  -- Cabal doesn't define __GHC_PATCHLEVEL__
  if impl(ghc == 6.10.1)
    cpp-options: -D__GHC_PATCHLEVEL__=1
  if impl(ghc == 6.10.2)
    cpp-options: -D__GHC_PATCHLEVEL__=2
  if impl(ghc == 6.10.3)
    cpp-options: -D__GHC_PATCHLEVEL__=3
  if impl(ghc == 6.10.4)
    cpp-options: -D__GHC_PATCHLEVEL__=4

library
  hs-source-dirs:       src
  extensions:           CPP, PatternGuards, DeriveDataTypeable,
                        ScopedTypeVariables, MagicHash
  exposed-modules:      Distribution.Haddock
  other-modules:
    Haddock.Types
    Haddock.InterfaceFile
    Haddock.Utils
    Haddock.GhcUtils
  
  -- Cabal doesn't define __GHC_PATCHLEVEL__
  if impl(ghc == 6.10.1)
    cpp-options: -D__GHC_PATCHLEVEL__=1
  if impl(ghc == 6.10.2)
    cpp-options: -D__GHC_PATCHLEVEL__=2
  if impl(ghc == 6.10.3)
    cpp-options: -D__GHC_PATCHLEVEL__=3
  if impl(ghc == 6.10.4)
    cpp-options: -D__GHC_PATCHLEVEL__=4

  if flag(in-ghc-tree)
    buildable: False