packages feed

entropy-0.3.4.1: entropy.cabal

name:           entropy
version:        0.3.4.1
description:    A platform independent method to obtain cryptographically strong entropy 
                (RDRAND when available anywhere, urandom on nix, CryptAPI on Windows, patches welcome).
                Users looking for cryptographically strong (number-theoretically
                sound) PRNGs should see the 'DRBG' package too.
synopsis:       A platform independent entropy source
license:        BSD3
license-file:   LICENSE
copyright:      Thomas DuBuisson <thomas.dubuisson@gmail.com>
author:         Thomas DuBuisson <thomas.dubuisson@gmail.com>
maintainer:     Thomas DuBuisson <thomas.dubuisson@gmail.com>
category:       Data, Cryptography
homepage:       https://github.com/TomMD/entropy
bug-reports:    https://github.com/TomMD/entropy/issues
stability:      stable
-- build-type:  Simple
-- ^^ Used for HaLVM
build-type:        Custom
-- ^^ Test for RDRAND support using 'ghc'
cabal-version:  >=1.10
tested-with:    GHC == 7.8.2
-- data-files:
extra-source-files:   ./cbits/rdrand.c, ./cbits/rdrand.h, README.md

-- Notice to compile  with HaLVM the above 'build-type' must be changed
-- to 'Simple' instead of 'Custom'.  The current build system naively
-- runs GHC to determine if the compiler supports RDRAND before proceeding.
flag halvm
    description:        Build for the HaLVM
    default:            False

library
  ghc-options:  -O2
  exposed-modules: System.Entropy
  if os(windows)
    other-modules: System.EntropyWindows
  else {
       if os(halvm)
         other-modules: System.EntropyXen
       else
         other-modules: System.EntropyNix
  }
  other-extensions:    CPP, ForeignFunctionInterface, BangPatterns, ScopedTypeVariables
  build-depends: base == 4.*, bytestring
  default-language:    Haskell2010
  if(os(halvm))
    cpp-options: -DXEN -DHAVE_RDRAND
    cc-options:  -DXEN -DHAVE_RDRAND
  if arch(x86_64)
    cpp-options: -Darch_x86_64
    cc-options:  -Darch_x86_64
    -- gcc 4.8.2 on i386 fails to compile rdrand.c when using -fPIC!
    c-sources:    cbits/rdrand.c
    include-dirs: cbits
  if arch(i386)
    cpp-options: -Darch_i386
    cc-options:  -Darch_i386
  if os(windows)
    cpp-options: -DisWindows
    cc-options:  -DisWindows
    extra-libraries: advapi32
  else
    if !os(halvm)
       Build-Depends: unix

source-repository head
    type:       git
    location:   https://github.com/TomMD/entropy