opam-version: "2.0"
maintainer: "Ivan Gotovchits <ivg@ieee.org>"
authors: "BAP Team"
homepage: "https://github.com/BinaryAnalysisPlatform/bap/"
bug-reports: "https://github.com/BinaryAnalysisPlatform/bap/issues"
dev-repo: "git://github.com/BinaryAnalysisPlatform/bap/"
license: "MIT"
build: [
  ["./configure" "--prefix=%{prefix}%" "--enable-primus"]
  [make]
]

install: [[make "install"]]

remove: [["ocamlfind" "remove" "bap-primus"]]

depends: [
  "ocaml" {>= "4.04.1" & < "4.08.0"}
  "bap-std" {= "1.6.0"}
  "bap-abi" {= "1.6.0"}
  "bap-c" {= "1.6.0"}
  "bap-future" {= "1.6.0"}
  "bap-strings" {= "1.6.0"}
  "monads"
  "uuidm"
  "graphlib" {> "1.3.0"}
  "parsexp"  {>= "v0.11" & < "v0.12"}
]
synopsis: "The BAP Microexecution Framework"
description: """
BAP Primus is a Microexecutuin Framework. The Microexecution technique
was pioneered by Patrice Godefroid from Microsoft Research. The idea
is to execute a binary from any point, using random inputs for
undefined values.

The idea of Primus is very similiar. A program is lifted into the
Intermediate Representation, that is interpreted using the Primus
interpreter. The Framework allows users to customize the interpreter
by implementing different machine components."""
flags: light-uninstall
url {
  src: "https://github.com/BinaryAnalysisPlatform/bap/archive/v1.6.0.tar.gz"
  checksum: "md5=0ccf6571613c0666a37d154c7f70af4f"
  mirrors: "https://mirrors.aegis.cylab.cmu.edu/bap/1.6.0/v1.6.0.tar.gz"
}
