package ocb-stubblr

  1. Overview
  2. Docs

Description

Do you get excited by C stubs? Do they sometimes make you swoon, and even faint, and in the end no cmxas get properly linked -- not to mention correct multi-lib support?

Do you wish that the things that excite you the most, would excite you just a little less? Then ocb-stubblr is just the library for you.

ocb-stubblr is about ten lines of code that you need to repeat over, over, over and over again if you are using ocamlbuild to build OCaml projects that contain C stubs -- now with 100% more lib!

It does what everyone wants to do with .clib files in their project directories. It can also clone the .clib and arrange for multiple compilations with different sets of discovered cflags.

ocb-stubblr is distributed under the ISC license.

Tags

ocamlbuild

Published: 13 Oct 2018

README

ocb-stubblr — OCamlbuild plugin for C stubs

v0.1.1

Do you get excited by C stubs? Do they sometimes make you swoon, and even faint, and in the end no cmxas get properly linked -- not to mention correct multi-lib support?

Do you wish that the things that excite you the most, would excite you just a little less? Then ocb-stubblr is just the library for you.

ocb-stubblr is about ten lines of code that you need to repeat over, over, over and over again if you are using ocamlbuild to build OCaml projects that contain C stubs -- now with 100% more lib!

It does what everyone wants to do with .clib files in their project directories. It can also clone the .clib and arrange for multiple compilations with different sets of discovered cflags.

ocb-stubblr is distributed under the ISC license.

Set it up

pkg/pkg.ml:

#require "ocb-stubblr.topkg"
open Ocb_stubblr_topkg

let () =
  Pkg.describe ~build:(Pkg.build ~cmd ()) ...

myocamlbuild.ml:

open Ocamlbuild_plugin

let () = dispatch Ocb_stubblr.init

opam:

depends: [
  "ocamlfind"   {build}
  "ocamlbuild"  {build}
  "topkg"       {build}
  "ocb-stubblr" {build}
  ...
]

Documentation

Interfaces are documented. Online too.

Development

Feel free to pitch in with ideas, especially if you have work-flows that are not, but could almost be supported.

Dependencies (5)

  1. astring
  2. topkg >= "0.8.1"
  3. ocamlbuild >= "0.9.3" | < "0.9.0"
  4. ocamlfind build
  5. ocaml >= "4.01.0"

Dev Dependencies

None

Used by (14)

  1. cpuid >= "0.1.0" & < "0.1.2"
  2. dtoa < "0.3.0"
  3. ipv6-multicast < "0.9"
  4. irmin-watcher = "0.2.0"
  5. mirage-entropy < "0.5.1"
  6. mirage-solo5 >= "0.2.0" & < "0.6.2"
  7. mirage-xen >= "3.0.6" & < "3.2.0"
  8. named-pipe >= "0.4.0"
  9. nocrypto >= "0.5.4"
  10. notty >= "0.2.0" & < "0.2.3"
  11. papi < "0.1.1"
  12. salsa20-core >= "0.2.0" & < "1.0.0"
  13. sendmsg
  14. tsdl >= "0.9.2" & < "0.9.7"

Conflicts

None