[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
09/10: gnu: Add bap.
From: |
julien lepiller |
Subject: |
09/10: gnu: Add bap. |
Date: |
Wed, 27 Sep 2017 15:28:12 -0400 (EDT) |
roptat pushed a commit to branch master
in repository guix.
commit cd1562ef8ec877ebe02848a2f9a2c73589f78a36
Author: Julien Lepiller <address@hidden>
Date: Thu Sep 21 20:49:29 2017 +0200
gnu: Add bap.
* gnu/packages/ocaml.scm (bap): New variable.
---
gnu/packages/ocaml.scm | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 69 insertions(+)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 0c32e47..8151044 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -41,6 +41,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libevent)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages m4)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
@@ -3451,6 +3452,74 @@ It provides a uniform interface for serializing OCaml
data structures to JSON,
XML and Protocol Buffers formats.")
(license license:asl2.0)))
+(define-public bap
+ (package
+ (name "bap")
+ (version "1.1.0")
+ (home-page "https://github.com/BinaryAnalysisPlatform/bap")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append home-page "/archive/v" version ".tar.gz"))
+ (sha256
+ (base32
+ "1ms95m4j1qrmy7zqmsn2izh7gq68lnmssl7chyhk977kd3sxj66m"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system ocaml-build-system)
+ (native-inputs
+ `(("oasis" ,ocaml-oasis)
+ ("clang" ,clang)
+ ("ounit" ,ocaml-ounit)))
+ (propagated-inputs
+ `(("core-kernel" ,ocaml-core-kernel)
+ ("ppx-driver" ,ocaml-ppx-driver)
+ ("uri" ,ocaml-uri)
+ ("llvm" ,llvm)
+ ("gmp" ,gmp)
+ ("clang-runtime" ,clang-runtime)
+ ("fileutils" ,ocaml-fileutils)
+ ("cmdliner" ,ocaml-cmdliner)
+ ("zarith" ,ocaml-zarith)
+ ("uuidm" ,ocaml-uuidm)
+ ("camlzip" ,camlzip)
+ ("frontc" ,ocaml-frontc)
+ ("ezjsonm" ,ocaml-ezjsonm)
+ ("ocurl" ,ocaml-ocurl)
+ ("piqi" ,ocaml-piqi)
+ ("ocamlgraph" ,ocaml-graph)
+ ("bitstring" ,ocaml-bitstring)
+ ("ppx-jane" ,ocaml-ppx-jane)
+ ("re" ,ocaml-re)))
+ (inputs `(("llvm" ,llvm)))
+ (arguments
+ `(#:use-make? #t
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (zero? (system* "./configure" "--prefix"
+ (assoc-ref outputs "out")
+ "--libdir"
+ (string-append
+ (assoc-ref outputs "out")
+ "/lib/ocaml/site-lib")
+ "--with-llvm-version=3.8"
+ "--with-llvm-config=llvm-config"
+ "--enable-everything"))))
+ (add-after 'install 'link-stubs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (stubs (string-append out "/lib/ocaml/site-lib/stubslibs"))
+ (lib (string-append out
"/lib/ocaml/site-lib/bap-plugin-llvm")))
+ (mkdir-p stubs)
+ (symlink (string-append lib "/dllllvm_plugin_stubs.so")
+ (string-append stubs "/dllllvm_plugin_stubs.so"))))))))
+ (synopsis "Binary Analysis Platform")
+ (description "Binary Analysis Platform is a framework for writing program
+analysis tools, that target binary files. The framework consists of a plethora
+of libraries, plugins, and frontends. The libraries provide code reusability,
+the plugins facilitate extensibility, and the frontends serve as entry
points.")
+ (license license:expat)))
+
(define-public coq-flocq
(package
(name "coq-flocq")
- branch master updated (cb1e0cf -> 408091d), julien lepiller, 2017/09/27
- 01/10: gnu: Add ocaml-ezjsonm., julien lepiller, 2017/09/27
- 02/10: gnu: Add ocaml-uri., julien lepiller, 2017/09/27
- 05/10: gnu: Add ocaml-piqilib., julien lepiller, 2017/09/27
- 06/10: gnu: Add ocaml-uuidm., julien lepiller, 2017/09/27
- 03/10: gnu: Add ocaml-easy-format., julien lepiller, 2017/09/27
- 08/10: gnu: Add ocaml-piqi., julien lepiller, 2017/09/27
- 09/10: gnu: Add bap.,
julien lepiller <=
- 10/10: gnu: Add ocaml-camomile., julien lepiller, 2017/09/27
- 07/10: gnu: Add ocaml-graph., julien lepiller, 2017/09/27
- 04/10: gnu: Add ocaml-optcomp., julien lepiller, 2017/09/27