2021-02-05 17:12:51 +00:00
|
|
|
{ lib, stdenv, fetchurl, fetchpatch, m4, ncurses, ocaml, writeText }:
|
2020-04-24 23:36:52 +00:00
|
|
|
|
|
|
|
stdenv.mkDerivation rec {
|
|
|
|
pname = "ocaml-findlib";
|
2021-04-12 18:23:04 +00:00
|
|
|
version = "1.9.1";
|
2020-04-24 23:36:52 +00:00
|
|
|
|
|
|
|
src = fetchurl {
|
|
|
|
url = "http://download.camlcity.org/download/findlib-${version}.tar.gz";
|
2021-04-12 18:23:04 +00:00
|
|
|
sha256 = "sha256-K0K4vVRIjWTEvzy3BUtLN70wwdwSvUMeoeTXrYqYD+I=";
|
2020-04-24 23:36:52 +00:00
|
|
|
};
|
|
|
|
|
2021-09-18 10:52:07 +00:00
|
|
|
nativeBuildInputs = [m4 ocaml];
|
|
|
|
buildInputs = [ ncurses ];
|
2020-04-24 23:36:52 +00:00
|
|
|
|
|
|
|
patches = [ ./ldconf.patch ./install_topfind.patch ];
|
|
|
|
|
|
|
|
dontAddPrefix=true;
|
2021-09-18 10:52:07 +00:00
|
|
|
dontAddStaticConfigureFlags = true;
|
|
|
|
configurePlatforms = [];
|
2020-04-24 23:36:52 +00:00
|
|
|
|
2021-09-18 10:52:07 +00:00
|
|
|
configureFlags = [
|
|
|
|
"-bindir" "${placeholder "out"}/bin"
|
|
|
|
"-mandir" "${placeholder "out"}/share/man"
|
|
|
|
"-sitelib" "${placeholder "out"}/lib/ocaml/${ocaml.version}/site-lib"
|
|
|
|
"-config" "${placeholder "out"}/etc/findlib.conf"
|
|
|
|
];
|
2020-04-24 23:36:52 +00:00
|
|
|
|
2021-09-18 10:52:07 +00:00
|
|
|
buildFlags = [ "all" "opt" ];
|
2020-04-24 23:36:52 +00:00
|
|
|
|
|
|
|
setupHook = writeText "setupHook.sh" ''
|
|
|
|
addOCamlPath () {
|
|
|
|
if test -d "''$1/lib/ocaml/${ocaml.version}/site-lib"; then
|
|
|
|
export OCAMLPATH="''${OCAMLPATH-}''${OCAMLPATH:+:}''$1/lib/ocaml/${ocaml.version}/site-lib/"
|
|
|
|
fi
|
|
|
|
if test -d "''$1/lib/ocaml/${ocaml.version}/site-lib/stublibs"; then
|
|
|
|
export CAML_LD_LIBRARY_PATH="''${CAML_LD_LIBRARY_PATH-}''${CAML_LD_LIBRARY_PATH:+:}''$1/lib/ocaml/${ocaml.version}/site-lib/stublibs"
|
|
|
|
fi
|
2021-09-18 10:52:07 +00:00
|
|
|
}
|
2022-02-10 20:34:41 +00:00
|
|
|
exportOcamlDestDir () {
|
2020-04-24 23:36:52 +00:00
|
|
|
export OCAMLFIND_DESTDIR="''$out/lib/ocaml/${ocaml.version}/site-lib/"
|
2022-02-10 20:34:41 +00:00
|
|
|
}
|
|
|
|
createOcamlDestDir () {
|
2020-04-24 23:36:52 +00:00
|
|
|
if test -n "''${createFindlibDestdir-}"; then
|
|
|
|
mkdir -p $OCAMLFIND_DESTDIR
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2022-02-10 20:34:41 +00:00
|
|
|
# run for every buildInput
|
2020-04-24 23:36:52 +00:00
|
|
|
addEnvHooks "$targetOffset" addOCamlPath
|
2022-02-10 20:34:41 +00:00
|
|
|
# run before installPhase, even without buildInputs, and not in nix-shell
|
|
|
|
preInstallHooks+=(createOcamlDestDir)
|
|
|
|
# run even in nix-shell, and even without buildInputs
|
|
|
|
addEnvHooks "$hostOffset" exportOcamlDestDir
|
2020-04-24 23:36:52 +00:00
|
|
|
'';
|
|
|
|
|
|
|
|
meta = {
|
|
|
|
homepage = "http://projects.camlcity.org/projects/findlib.html";
|
|
|
|
description = "O'Caml library manager";
|
2021-02-05 17:12:51 +00:00
|
|
|
license = lib.licenses.mit;
|
2020-04-24 23:36:52 +00:00
|
|
|
platforms = ocaml.meta.platforms or [];
|
|
|
|
maintainers = [
|
2021-02-05 17:12:51 +00:00
|
|
|
lib.maintainers.maggesi
|
|
|
|
lib.maintainers.vbmithr
|
2020-04-24 23:36:52 +00:00
|
|
|
];
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
|