1{ stdenv, fetchurl, cpio, rsync, makeWrapper }:
2
3stdenv.mkDerivation rec {
4 name = "smlnj-bootstrap-${version}";
5
6 version = "110.76";
7
8 src = fetchurl {
9 url = "http://smlnj.cs.uchicago.edu/dist/working/${version}/smlnj-x86-${version}.pkg";
10 sha256 = "0n3kdlqffqw97piya7i4lddrhjml2dp1q9hfq2jrd2hbzln8vdjf";
11 };
12
13 buildInputs = [ cpio rsync makeWrapper ];
14
15 unpackPhase = ''
16 /usr/bin/xar -xf $src
17 cd smlnj.pkg
18 '';
19
20 buildPhase = ''
21 cat Payload | gunzip -dc | cpio -i
22 '';
23
24 installPhase = ''
25 mkdir -p $out/bin
26 rsync -av bin/ $out/bin/
27
28 mkdir -p $out/lib
29 rsync -av lib/ $out/lib/
30 '';
31
32 postInstall = ''
33 wrapProgram "$out/bin/sml" --set "SMLNJ_HOME" "$out"
34 '';
35
36 meta = {
37 description = "Compiler for the Standard ML '97 programming language";
38 homepage = http://www.smlnj.org;
39 license = stdenv.lib.licenses.free;
40 platforms = stdenv.lib.platforms.darwin;
41 maintainers = [ stdenv.lib.maintainers.jwiegley ];
42 };
43}