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.
wip/yesman
Sophia Donataccio 6 years ago
parent 4845d9324f
commit 30da2b5659
  1. 57
      pkgs/development/compilers/mlton/20180207-binary.nix
  2. 4
      pkgs/development/compilers/mlton/default.nix
  3. 3
      pkgs/top-level/all-packages.nix

@ -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;
}

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

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

Loading…
Cancel
Save