name:                long-double
version:             0.1
synopsis:            FFI bindings for C long double
description:
  This package provides a LongDouble type, being 80bits of x87 data taking up
  96bits on i386 and 128bits on x86_64.  On arm it is an alias for 64bit double.
  It does not provide a CLDouble type usable for FFI without wrapping in Ptr,
  this needs to be done by the compiler.
  See <https://ghc.haskell.org/trac/ghc/ticket/3353>.

homepage:            https://code.mathr.co.uk/long-double
license:             BSD3
license-file:        LICENSE
author:              Claude Heiland-Allen
maintainer:          claude@mathr.co.uk
copyright:           (c) 2018 Claude Heiland-Allen
category:            Math
build-type:          Simple
extra-source-files:
  ChangeLog.md
  i386/Numeric/LongDouble.hs
  x86_64/Numeric/LongDouble.hs
  arm/Numeric/LongDouble.hs
  hs/Numeric/LongDouble/ARM_64.hs
  hs/Numeric/LongDouble/X87.hs
  hs/Numeric/LongDouble/X87_96.hs
  hs/Numeric/LongDouble/X87_128.hs

cabal-version:       >=1.10

source-repository head
  type: git
  location: https://code.mathr.co.uk/long-double.git

source-repository this
  type: git
  location: https://code.mathr.co.uk/long-double.git
  tag: long-double-0.1

library
  exposed-modules:
    Numeric.LongDouble
  build-depends:
    base >=4.6 && <4.12,
    integer-gmp >=0.5 && <1.1
  c-sources: c/longdouble.c
  hs-source-dirs: hs
  if arch(i386)
    hs-source-dirs: i386
    other-modules: Numeric.LongDouble.X87_96
  else
    if arch(x86_64)
      hs-source-dirs: x86_64
      other-modules: Numeric.LongDouble.X87_128
    else
      if arch(arm)
        hs-source-dirs: arm
        other-modules: Numeric.LongDouble.ARM_64
      else
        buildable: False
  default-language: Haskell2010
  other-extensions:
    CPP,
    ForeignFunctionInterface,
    GeneralizedNewtypeDeriving,
    MagicHash