name:                   accelerate-llvm-native
version:                1.3.0.0
cabal-version:          >= 1.10
tested-with:            GHC >= 8.6
build-type:             Simple

synopsis:               Accelerate backend for multicore CPUs
description:
    This library implements a backend for the /Accelerate/ language which
    generates LLVM-IR targeting multicore CPUs. For further information, refer
    to the main <http://hackage.haskell.org/package/accelerate accelerate>
    package.
    .
    [/Dependencies/]
    .
    Haskell dependencies are available from Hackage. The following external
    libraries are alse required:
    .
      * <http://llvm.org LLVM>
    .
      * <http://sourceware.org/libffi/ libFFI>
    .
    [/Installing LLVM/]
    .
    /Homebrew/
    .
    Example using Homebrew on macOS:
    .
    > brew install llvm-hs/llvm/llvm-9
    .
    /Debian & Ubuntu/
    .
    For Debian/Ubuntu based Linux distributions, the LLVM.org website provides
    binary distribution packages. Check <http://apt.llvm.org apt.llvm.org> for
    instructions for adding the correct package database for your OS version,
    and then:
    .
    > apt-get install llvm-9-dev
    .
    /Building from source/
    .
    If your OS does not have an appropriate LLVM distribution available, you can
    also build from source. Detailed build instructions are available on
    <http://releases.llvm.org/9.0.0/docs/CMake.html LLVM.org>. Make sure to
    include the cmake build options
    @-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON@ so that the @libLLVM@
    shared library will be built.
    .

license:                BSD3
license-file:           LICENSE
author:                 Trevor L. McDonell
maintainer:             Trevor L. McDonell <trevor.mcdonell@gmail.com>
bug-reports:            https://github.com/AccelerateHS/accelerate/issues
category:               Accelerate, Compilers/Interpreters, Concurrency, Data, Parallelism

extra-source-files:
    CHANGELOG.md
    README.md


-- Build configuration
-- -------------------

Library
  exposed-modules:
    Data.Array.Accelerate.LLVM.Native
    Data.Array.Accelerate.LLVM.Native.Plugin
    Data.Array.Accelerate.LLVM.Native.Foreign

  other-modules:
    Data.Array.Accelerate.LLVM.Native.Array.Data
    Data.Array.Accelerate.LLVM.Native.Debug
    Data.Array.Accelerate.LLVM.Native.State
    Data.Array.Accelerate.LLVM.Native.Target

    Data.Array.Accelerate.LLVM.Native.CodeGen
    Data.Array.Accelerate.LLVM.Native.CodeGen.Base
    Data.Array.Accelerate.LLVM.Native.CodeGen.Fold
    Data.Array.Accelerate.LLVM.Native.CodeGen.FoldSeg
    Data.Array.Accelerate.LLVM.Native.CodeGen.Generate
    Data.Array.Accelerate.LLVM.Native.CodeGen.Loop
    Data.Array.Accelerate.LLVM.Native.CodeGen.Map
    Data.Array.Accelerate.LLVM.Native.CodeGen.Permute
    Data.Array.Accelerate.LLVM.Native.CodeGen.Scan
    Data.Array.Accelerate.LLVM.Native.CodeGen.Stencil
    Data.Array.Accelerate.LLVM.Native.CodeGen.Transform

    Data.Array.Accelerate.LLVM.Native.Compile
    Data.Array.Accelerate.LLVM.Native.Compile.Cache
    Data.Array.Accelerate.LLVM.Native.Compile.Optimise

    Data.Array.Accelerate.LLVM.Native.Link
    Data.Array.Accelerate.LLVM.Native.Link.Cache
    Data.Array.Accelerate.LLVM.Native.Link.Object

    Data.Array.Accelerate.LLVM.Native.Embed

    Data.Array.Accelerate.LLVM.Native.Execute
    Data.Array.Accelerate.LLVM.Native.Execute.Async
    Data.Array.Accelerate.LLVM.Native.Execute.Divide
    Data.Array.Accelerate.LLVM.Native.Execute.Environment
    Data.Array.Accelerate.LLVM.Native.Execute.Marshal
    Data.Array.Accelerate.LLVM.Native.Execute.Scheduler

    Data.Array.Accelerate.LLVM.Native.Plugin.Annotation
    Data.Array.Accelerate.LLVM.Native.Plugin.BuildInfo

    Paths_accelerate_llvm_native

  build-depends:
          base                          >= 4.10 && < 5
        , accelerate                    == 1.3.*
        , accelerate-llvm               == 1.3.*
        , bytestring                    >= 0.10.4
        , cereal                        >= 0.4
        , containers                    >= 0.5 && < 0.7
        , deepseq                       >= 1.4
        , directory                     >= 1.0
        , dlist                         >= 0.6
        , filepath                      >= 1.0
        , ghc
        , hashable                      >= 1.0
        , libffi                        >= 0.1
        , llvm-hs                       >= 4.1 && < 9.1
        , llvm-hs-pure                  >= 4.1 && < 9.1
        , lockfree-queue                >= 0.2
        , mtl                           >= 2.2.1
        , template-haskell
        , unique
        , vector                        >= 0.11

  hs-source-dirs:
        src

  default-language:
        Haskell2010

  ghc-options:
        -O2
        -Wall
        -fwarn-tabs

  ghc-prof-options:
        -caf-all
        -auto-all

  if impl(ghc >= 8.0)
    ghc-options:
        -Wmissed-specialisations

  if os(darwin)
    other-modules:
      Data.Array.Accelerate.LLVM.Native.Link.MachO

    build-depends:
          ghc-prim
        , unix                          >= 2.7

    build-tools:
          c2hs                          >= 0.25

  if os(linux)
    other-modules:
      Data.Array.Accelerate.LLVM.Native.Link.ELF

    build-depends:
          ghc-prim
        , unix                          >= 2.7

    build-tools:
          c2hs                          >= 0.25

  if os(windows)
    other-modules:
      Data.Array.Accelerate.LLVM.Native.Link.COFF

    -- build-depends:


test-suite nofib-llvm-native
  type:                 exitcode-stdio-1.0
  hs-source-dirs:       test/nofib
  main-is:              Main.hs

  build-depends:
          base                          >= 4.10
        , accelerate
        , accelerate-llvm-native

  default-language:
        Haskell2010

  ghc-options:
        -Wall
        -O2
        -threaded
        -rtsopts
        -with-rtsopts=-A128M
        -with-rtsopts=-n4M
        -with-rtsopts=-N


source-repository head
  type:                 git
  location:             https://github.com/AccelerateHS/accelerate-llvm.git

source-repository this
  type:                 git
  tag:                  v1.3.0.0
  location:             https://github.com/AccelerateHS/accelerate-llvm.git

-- vim: nospell