llvm-ffi-3.9.0: llvm-ffi.cabal
Cabal-Version: 2.2
Name: llvm-ffi
Version: 3.9.0
License: BSD-3-Clause
License-File: LICENSE
Synopsis: FFI bindings to the LLVM compiler toolkit.
Description:
FFI bindings to the LLVM compiler toolkit.
.
Installation cannot be done fully automatically.
It would require Cabal code that is bound to certain Cabal versions
and is prone to fail.
We give several non-automatic ways
that also allow you to choose a particular LLVM version.
.
First possibility is to point Cabal
to the LLVM installation directories manually.
On Ubuntu this would look like this:
.
> cabal install --extra-include-dirs=/usr/lib/llvm-3.9/include --extra-lib-dirs=/usr/lib/llvm-3.9/lib llvm-ffi
.
You can store such paths permanently in a @pkg-config@ file like @llvm.pc@.
The optimal way would be if LLVM installations or GNU/Linux distributions
would contain such a file, but they don't.
Instead, you may generate it using the @llvm-pkg-config@ package
or write one manually.
Then you run
.
> cabal install -fpkgConfig
.
We try to stay up to date with LLVM releases.
The current version of this package is compatible with LLVM 3.4-3.9.
Please understand that the package may or may not work
against older LLVM releases.
.
Warning for inplace builds:
Re-configuring the package using, say -fllvm307,
and re-buildung it might result in corrupt code.
You must make sure that the stuff in @cbits@ is re-compiled.
Cabal or GHC may forget about that.
You are safe if you run @cabal clean@.
Author: Henning Thielemann, Bryan O'Sullivan, Lennart Augustsson
Maintainer: Henning Thielemann <llvm@henning-thielemann.de>
Homepage: http://haskell.org/haskellwiki/LLVM
Stability: experimental
Category: Compilers/Interpreters, Code Generation
Tested-With: GHC==7.4.2, GHC==7.6.3, GHC==7.8.4, GHC==8.0.2, GHC==8.2.2
Build-Type: Simple
Extra-Source-Files:
include/support.h
tool/ltrace.config
tool/ltrace.readme
flatpak/llvm-3.8.1.json
flatpak/llvm-3.9.1.json
Flag developer
Description: developer mode - warnings let compilation fail
Manual: True
Default: False
Flag buildExamples
Description: Build example executables
Manual: True
Default: False
Flag pkgConfig
Description: use pkgconfig (llvm.pc) instead of extra-libraries
Default: False
Flag specificPkgConfig
Description: use llvm-3.x.pc instead of llvm.pc
Default: True
Flag llvm304
Description: use LLVM-3.4 instead of latest supported LLVM
Default: False
Flag llvm305
Description: use LLVM-3.5 instead of latest supported LLVM
Default: False
Flag llvm306
Description: use LLVM-3.6 instead of latest supported LLVM
Default: False
Flag llvm307
Description: use LLVM-3.7 instead of latest supported LLVM
Default: False
Flag llvm308
Description: use LLVM-3.8 instead of latest supported LLVM
Default: False
Source-Repository head
Type: darcs
Location: http://hub.darcs.net/thielema/llvm-ffi/
Source-Repository this
Tag: 3.9.0
Type: darcs
Location: http://hub.darcs.net/thielema/llvm-ffi/
Library
Build-Depends:
enumset >=0.0.5 && <0.1,
base >= 3 && < 5
Hs-Source-Dirs: src
GHC-Options: -Wall -fwarn-missing-import-lists
Default-Language: Haskell2010
If flag(developer)
GHC-Options: -Werror
Exposed-Modules:
LLVM.FFI.Analysis
LLVM.FFI.BitReader
LLVM.FFI.BitWriter
LLVM.FFI.Core
LLVM.FFI.ExecutionEngine
LLVM.FFI.Support.Host
LLVM.FFI.Target
LLVM.FFI.Transforms.IPO
LLVM.FFI.Transforms.PassManagerBuilder
LLVM.FFI.Transforms.Scalar
LLVM.FFI.Transforms.Vectorize
LLVM.Target.Native
Other-modules:
LLVM.FFI.Base
LLVM.Target.ARM
LLVM.Target.CppBackend
LLVM.Target.Hexagon
LLVM.Target.MSP430
LLVM.Target.Mips
LLVM.Target.NVPTX
LLVM.Target.PowerPC
LLVM.Target.Sparc
LLVM.Target.X86
LLVM.Target.XCore
If flag(llvm304)
If flag(pkgConfig)
If flag(specificPkgConfig)
PkgConfig-Depends: llvm-3.4
Else
PkgConfig-Depends: llvm == 3.4.*
Else
Extra-Libraries: LLVM-3.4
CC-Options: -DHS_LLVM_VERSION=304
Cxx-Options: -DHS_LLVM_VERSION=304
CPP-Options: -DHS_LLVM_VERSION=304
Else
If flag(llvm305)
If flag(pkgConfig)
If flag(specificPkgConfig)
PkgConfig-Depends: llvm-3.5
Else
PkgConfig-Depends: llvm == 3.5.*
Else
Extra-Libraries: LLVM-3.5
CC-Options: -DHS_LLVM_VERSION=305
Cxx-Options: -DHS_LLVM_VERSION=305
CPP-Options: -DHS_LLVM_VERSION=305
Else
If flag(llvm306)
If flag(pkgConfig)
If flag(specificPkgConfig)
PkgConfig-Depends: llvm-3.6
Else
PkgConfig-Depends: llvm == 3.6.*
Else
Extra-Libraries: LLVM-3.6
CC-Options: -DHS_LLVM_VERSION=306
Cxx-Options: -DHS_LLVM_VERSION=306
CPP-Options: -DHS_LLVM_VERSION=306
Else
If flag(llvm307)
If flag(pkgConfig)
If flag(specificPkgConfig)
PkgConfig-Depends: llvm-3.7
Else
PkgConfig-Depends: llvm == 3.7.*
Else
Extra-Libraries: LLVM-3.7
CC-Options: -DHS_LLVM_VERSION=307
Cxx-Options: -DHS_LLVM_VERSION=307
CPP-Options: -DHS_LLVM_VERSION=307
Else
If flag(llvm308)
If flag(pkgConfig)
If flag(specificPkgConfig)
PkgConfig-Depends: llvm-3.8
Else
PkgConfig-Depends: llvm == 3.8.*
Else
Extra-Libraries: LLVM-3.8
CC-Options: -DHS_LLVM_VERSION=308
Cxx-Options: -DHS_LLVM_VERSION=308
CPP-Options: -DHS_LLVM_VERSION=308
Else
If flag(pkgConfig)
If flag(specificPkgConfig)
PkgConfig-Depends: llvm-3.9
Else
PkgConfig-Depends: llvm == 3.9.*
Else
Extra-Libraries: LLVM-3.9
CC-Options: -DHS_LLVM_VERSION=309
Cxx-Options: -DHS_LLVM_VERSION=309
CPP-Options: -DHS_LLVM_VERSION=309
CC-Options: -DHAVE_LLVM_SUPPORT_DYNAMICLIBRARY_H=1
CPP-Options: -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS
CPP-Options: -D__STDC_LIMIT_MACROS
Include-Dirs: include
Extra-Libraries: stdc++
Cxx-Options: -std=c++0x -std=c++11
Cxx-Sources:
cbits/support.cpp
Executable llvm-ffi-example
If flag(buildExamples)
Build-Depends:
llvm-ffi,
utility-ht >=0.0.9 && <0.1,
base
Else
Buildable: False
If flag(developer)
GHC-Options: -Werror
Hs-Source-Dirs: example
GHC-Options: -Wall
Default-Language: Haskell2010
Main-Is: JIT.hs