Cabal-Version: 2.2 Name: llvm-ffi Version: 3.9.1 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 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.1 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