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.03" & < "4.06"}
  "bap-std" {= "1.4.0"}
  "bap-abi" {= "1.4.0"}
  "bap-c" {= "1.4.0"}
  "bap-future" {= "1.4.0"}
  "bap-strings" {= "1.4.0"}
  "monads"
  "uuidm"
  "graphlib" {> "1.3.0"}
  "parsexp" {>= "v0.9.0" & < "v0.10"}
]
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.4.0.tar.gz"
  checksum: "md5=b7785715c24645e8e69a8091427d090e"
  mirrors: "https://mirrors.aegis.cylab.cmu.edu/bap/1.4.0/v1.4.0.tar.gz"
}
