at v192 78 lines 3.9 kB view raw
1{ stdenv, fetchurl, darwin }: 2let 3 version = "110.78"; 4 baseurl = "http://smlnj.cs.uchicago.edu/dist/working/${version}"; 5 6 sources = map fetchurl [ 7 { url = "${baseurl}/config.tgz"; sha256 = "018c6iflpm3im6679via1wshw2sls4jgiqrc30pqkb80kfrh1pg2"; } 8 { url = "${baseurl}/cm.tgz"; sha256 = "0id37j6lj4b3qczn4949gvc8hys9j3h7nk9kc9fxv4rv1g7i328x"; } 9 { url = "${baseurl}/compiler.tgz"; sha256 = "1m299lzc8l9mixb2l9scvilz27v16db3igzwca19alsrvldnmpg2"; } 10 { url = "${baseurl}/runtime.tgz"; sha256 = "1pwbv1bnh8dz4w62cx19c56z4y57krbpr1ziayyycg7lj44pb7sy"; } 11 { url = "${baseurl}/system.tgz"; sha256 = "1jdilm3wcjxcnnbd3g8rcd1f5nsb5ffzfjqcsdcpqd9mnx81fca9"; } 12 { url = "${baseurl}/MLRISC.tgz"; sha256 = "0ibqwkkqd4c62p3q1jbgqyh7k78sms01igl7ibk6jyrhy9n7vw0v"; } 13 { url = "${baseurl}/smlnj-lib.tgz"; sha256 = "1lxnwp8q3xw0wqqrv3hlk3fjancrfz862fy9j504s38ljhdjc3jr"; } 14 { url = "${baseurl}/ckit.tgz"; sha256 = "1nqw40vjxy40ckif5d480g5mf7b91lmwcs7m689gs9n2dj3gbwnp"; } 15 { url = "${baseurl}/nlffi.tgz"; sha256 = "1cks1xifb32wya2flw7h7cvcdnkxv7ngk8y7xv29888r7xbdr3h0"; } 16 { url = "${baseurl}/cml.tgz"; sha256 = "0qfaj6vsagsnh9di94cxvn77f91zfwsnn95rz8ig5dz5zmq77ghz"; } 17 { url = "${baseurl}/eXene.tgz"; sha256 = "1nlkb2y48m702qplxkqphvb9nbj433300j7yrdbsj39j6vvp8pmw"; } 18 { url = "${baseurl}/ml-lpt.tgz"; sha256 = "02b2gdl1qdwilhls3ssa04wcyg3aswndn1bh85008rqj85ppddiq"; } 19 { url = "${baseurl}/ml-lex.tgz"; sha256 = "0l1sddd5wfpqgmyw1g3iwv2p27fbkpjkm10db2qd2pid9r95dxz5"; } 20 { url = "${baseurl}/ml-yacc.tgz"; sha256 = "0ln790ydb43sxbjjymbd6jnnzfygrc0lr50k81p5cazzzy1yfim6"; } 21 { url = "${baseurl}/ml-burg.tgz"; sha256 = "03anyy2gdkgfprmahx489hxg9zjh9lydq3gkzrlyw51yzvgp3f92"; } 22 { url = "${baseurl}/pgraph.tgz"; sha256 = "19hbcav11a6fv0xmzgin0v5dl4m08msk1vsmw26kpqiqkvkh7j39"; } 23 { url = "${baseurl}/trace-debug-profile.tgz"; sha256 = "0awssg3vgj3sp85kdfjcp28zaq815zr55k9z6v79zs9gll02ghlk"; } 24 { url = "${baseurl}/heap2asm.tgz"; sha256 = "1vkmxbm6x37l1wqvilvvw662pdvg6mkbvcfvya8ggsihz4c1z0jg"; } 25 { url = "${baseurl}/smlnj-c.tgz"; sha256 = "08b8acd5vwhz1gg7960rha00qhwk7l7p01vvgwzmdiqlcd3fcj1d"; } 26 { url = "${baseurl}/doc.tgz"; sha256 = "1pbsvc8nmnjwq239wrylb209drr4xv9a66r0fjm126b6nw1slrbq"; } 27 { url = "${baseurl}/boot.x86-unix.tgz"; sha256 = "19wd273k4ldnxndq6cqr7xv387ynbviz6jlgxmlld7nxf549kn5a"; } 28 ]; 29in stdenv.mkDerivation { 30 name = "smlnj-${version}"; 31 32 inherit sources; 33 34 patchPhase = '' 35 sed -i '/PATH=/d' config/_arch-n-opsys base/runtime/config/gen-posix-names.sh 36 echo SRCARCHIVEURL="file:/$TMP" > config/srcarchiveurl 37 '' + stdenv.lib.optionalString stdenv.isDarwin (with darwin; '' 38 sed -i '/^[[:space:]]*\*x86-darwin\*)$/,/^[[:space:]]*\*) ;;/ c\ 39\ \*x86-darwin\*)\ 40\ INCLFILE=${osx_sdk}/Developer/SDKs/${osx_sdk.name}/usr/include/unistd.h\ 41\ ;;\ 42\ \*) ;; 43' base/runtime/config/gen-posix-names.sh 44 sed -i 's|^AS =\([[:space:]]*\)/usr/bin/as|AS =\1as|' base/runtime/objs/mk.x86-darwin 45 ''); 46 47 unpackPhase = '' 48 for s in $sources; do 49 b=$(basename $s) 50 cp $s ''${b#*-} 51 done 52 unpackFile config.tgz 53 mkdir base 54 ./config/unpack $TMP runtime 55 ''; 56 57 buildPhase = '' 58 ./config/install.sh 59 ''; 60 61 installPhase = '' 62 mkdir -pv $out 63 cp -rv bin lib $out 64 65 cd $out/bin 66 for i in *; do 67 sed -i "2iSMLNJ_HOME=$out/" $i 68 done 69 ''; 70 71 meta = with stdenv.lib; { 72 description = "Standard ML of New Jersey, a compiler"; 73 homepage = http://smlnj.org; 74 license = licenses.bsd3; 75 platforms = [ "i686-linux" ] ++ platforms.darwin; 76 maintainers = with maintainers; [ thoughtpolice ]; 77 }; 78}