mlton: adds binary release package for mlton version 20180207

This works the same as the binary package in the old derivation, by
patching the release binary. The difference is that this derivation
is also exposed at the top level.
This commit is contained in:
Sophia Donataccio 2018-10-12 00:21:49 -04:00
parent 4845d9324f
commit 30da2b5659
3 changed files with 63 additions and 1 deletions

View file

@ -0,0 +1,57 @@
{ stdenv, fetchurl, patchelf, gmp }:
let
dynamic-linker = stdenv.cc.bintools.dynamicLinker;
in
stdenv.mkDerivation rec {
name = "mlton-${version}";
version = "20180207";
src = if stdenv.hostPlatform.system == "x86_64-linux" then (fetchurl {
url = "https://github.com/MLton/mlton/releases/download/on-${version}-release/${name}-1.amd64-linux.tgz";
sha256 = "0f4q575yfm5dpg4a2wsnqn4l2zrar96p6rlsk0dw10ggyfwvsjlf";
})
else if stdenv.hostPlatform.system == "x86_64-darwin" then (fetchurl {
url = "https://github.com/MLton/mlton/releases/download/on-${version}-release/${name}-1.amd64-darwin.gmp-static.tgz";
sha256 = "1cw7yhw48qp12q0adwf8srpjzrgkp84kmlkqw3pz8vkxz4p9hbdv";
})
else
throw "Architecture not supported";
buildInputs = [ gmp ];
nativeBuildInputs = stdenv.lib.optional stdenv.isLinux patchelf;
buildPhase = ''
make update \
CC="$(type -p cc)" \
WITH_GMP_INC_DIR="${gmp.dev}/include" \
WITH_GMP_LIB_DIR="${gmp}/lib"
'';
installPhase = ''
make install PREFIX=$out
'';
postFixup = stdenv.lib.optionalString stdenv.isLinux ''
patchelf --set-interpreter ${dynamic-linker} $out/lib/mlton/mlton-compile
patchelf --set-rpath ${gmp}/lib $out/lib/mlton/mlton-compile
for e in mllex mlnlffigen mlprof mlyacc; do
patchelf --set-interpreter ${dynamic-linker} $out/bin/$e
patchelf --set-rpath ${gmp}/lib $out/bin/$e
done
'' + stdenv.lib.optionalString stdenv.isDarwin ''
install_name_tool -change \
/opt/local/lib/libgmp.10.dylib \
${gmp}/lib/libgmp.10.dylib \
$out/lib/mlton/mlton-compile
for e in mllex mlnlffigen mlprof mlyacc; do
install_name_tool -change \
/opt/local/lib/libgmp.10.dylib \
${gmp}/lib/libgmp.10.dylib \
$out/bin/$e
done
'';
meta = import ./meta.nix;
}

View file

@ -3,4 +3,8 @@ rec {
mlton20130715 = import ./20130715.nix {
inherit stdenv fetchurl patchelf gmp;
};
mlton20180207Binary = import ./20180207-binary.nix {
inherit stdenv fetchurl patchelf gmp;
};
}

View file

@ -7163,7 +7163,8 @@ with pkgs;
mkcl = callPackage ../development/compilers/mkcl {};
inherit (callPackage ../development/compilers/mlton {})
mlton20130715;
mlton20130715
mlton20180207Binary;
mlton = mlton20130715;