48 lines
1.4 KiB
Nix
48 lines
1.4 KiB
Nix
|
{ stdenv, fetchurl, fetchpatch, ocaml, findlib, ocamlbuild, camlp4 }:
|
||
|
|
||
|
stdenv.mkDerivation {
|
||
|
name = "ocaml-optcomp-1.6";
|
||
|
src = fetchurl {
|
||
|
url = "https://github.com/diml/optcomp/archive/1.6.tar.gz";
|
||
|
sha256 = "0hhhb2gisah1h22zlg5iszbgqxdd7x85cwd57bd4mfkx9l7dh8jh";
|
||
|
};
|
||
|
|
||
|
patches =
|
||
|
let inherit (stdenv.lib) optional versionAtLeast; in
|
||
|
optional (versionAtLeast ocaml.version "4.02") (fetchpatch {
|
||
|
url = "https://github.com/diml/optcomp/commit/b7f809360c9794b383a4bc0492f6df381276b429.patch";
|
||
|
sha256 = "1n095lk94jq1rwi0l24g2wbgms7249wdd31n0ji895dr6755s93y";
|
||
|
})
|
||
|
;
|
||
|
|
||
|
createFindlibDestdir = true;
|
||
|
|
||
|
buildInputs = [ ocaml findlib ocamlbuild camlp4 ];
|
||
|
|
||
|
configurePhase = ''
|
||
|
cp ${./META} META
|
||
|
'';
|
||
|
|
||
|
buildPhase = ''
|
||
|
ocamlbuild src/optcomp.cmxs src/optcomp.cma src/optcomp_o.native src/optcomp_r.native
|
||
|
'';
|
||
|
|
||
|
installPhase = ''
|
||
|
mkdir -p $out/bin
|
||
|
cp _build/src/optcomp_o.native $out/bin/optcomp-o
|
||
|
cp _build/src/optcomp_r.native $out/bin/optcomp-r
|
||
|
ocamlfind install optcomp META _build/src/optcomp.{a,cma,cmxa,cmxs} _build/src/pa_optcomp.{cmi,cmx,mli}
|
||
|
'';
|
||
|
|
||
|
meta = {
|
||
|
homepage = "https://github.com/diml/optcomp";
|
||
|
description = "Optional compilation for OCaml with cpp-like directives";
|
||
|
license = stdenv.lib.licenses.bsd3;
|
||
|
platforms = ocaml.meta.platforms or [];
|
||
|
maintainers = [
|
||
|
stdenv.lib.maintainers.gal_bolle
|
||
|
];
|
||
|
};
|
||
|
|
||
|
}
|