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-stub-resolver"]
  [make]
]

install: [[make "install"]]

remove: [
        ["ocamlfind" "remove" "bap-plugin-stub_resolver"]
        ["bapbundle" "remove" "stub_resolver.plugin"]
        ]

depends: [
  "core_kernel" {>= "v0.14" & < "v0.15"}
  "ocaml" {>= "4.08.0" }
  "ppx_bap" {>= "v0.14" & < "v0.15"}
  "ounit"
  "bap-abi" {= "2.2.0"}
  "bap-core-theory" {= "2.2.0"}
  "bap-knowledge" {= "2.2.0"}
  "bap-main" {= "2.2.0"}
  "bap-relation" {= "2.2.0"}
  "bap-std" {= "2.2.0"}
  "bitvec" {= "2.2.0"}
  "bitvec-order" {= "2.2.0"}
  "bitvec-sexp" {= "2.2.0"}
  "ogre" {= "2.2.0"}
]
synopsis: "Identifies and manages stub functions in a binary"
description: """
Identifies functions that are stubs and redirects calls to stubs to
the calls to the implemenations, in case if the latter is present in
the binary.

A stub is piece of binary code that is used to call a function
implementation. Most commonly stubs are employed for external
functions, whose implementation is later loaded from some library,
however some ABIs are using stubs for internal functions, in case if
they have external linkage.
"""

url {
  src: "https://github.com/BinaryAnalysisPlatform/bap/archive/v2.2.0.tar.gz"
  checksum: "md5=5dbc6677d646bec59fd7414f23e88cf8"
  mirrors: "https://mirrors.aegis.cylab.cmu.edu/bap/2.2.0/v2.2.0.tar.gz"
}
