synopsis: "Preprocessor-pretty-printer of OCaml"
description:
"""
Camlp5 is a preprocessor and pretty-printer for OCaml programs. It also provides parsing and printing tools.

As a preprocessor, it allows to:

extend the syntax of OCaml,
redefine the whole syntax of the language.
As a pretty printer, it allows to:

display OCaml programs in an elegant way,
convert from one syntax to another,
check the results of syntax extensions.
Camlp5 also provides some parsing and pretty printing tools:

extensible grammars
extensible printers
stream parsers and lexers
pretty print module
It works as a shell command and can also be used in the OCaml toplevel.
"""
opam-version: "2.0"
maintainer: "https://github.com/ocaml/opam-repository/issues"
authors: ["Daniel de Rauglaudre"]
homepage: "https://camlp5.github.io"
license: "BSD-3-Clause"
bug-reports: "https://github.com/camlp5/camlp5/issues"
dev-repo: "git+https://github.com/camlp5/camlp5.git"
doc: "https://camlp5.github.io/doc/html"

depends: [
  "ocaml"       { >= "4.02" & < "4.10.0" & != "4.09.1" }
]

build: [
  ["./configure" "--prefix" prefix "-libdir" lib "-mandir" man]
  [make "world.opt"]
]
install: [make "install"]
remove: [
  ["sh" "-ecx" "./configure --prefix '%{prefix}%' -libdir '%{lib}%' -mandir '%{man}%' && %{make}% uninstall"]
  [ "rm" "-rf" "%{lib}%/camlp5" ]
  [ "rm" "-f" "%{man}%/man1/camlp5.1" "%{man}%/man1/camlp5o.1" "%{man}%/man1/camlp5o.opt.1" "%{man}%/man1/camlp5r.1" "%{man}%/man1/camlp5r.opt.1" "%{man}%/man1/camlp5sch.1" "%{man}%/man1/mkcamlp5.1" "%{man}%/man1/mkcamlp5.opt.1" "%{man}%/man1/ocpp5.1" ]
]
url {
  src: "https://github.com/camlp5/camlp5/archive/rel710.tar.gz"
  checksum: [
    "md5=1c396142b981c5af1af7470bb23bf0ce"
    "sha512=faa9e88f56477162038fc80429d5839c93b3e38aec90366730babe737e2e6bb260dc39975947a6601212cc0c68f465bdbccb6337da23c07181909dfb11cf8640"
  ]
}
