# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 # $Id$ PortSystem 1.0 name smlnj version 110.79 categories lang ml license BSD maintainers bfulgham description Standard ML of New Jersey long_description \ Standard ML of New Jersey (abbreviated SML/NJ) is a \ compiler for the Standard ML '97 programming language \ with associated libraries, tools, and documentation. \ SML/NJ is free, open source software. homepage http://www.smlnj.org/ platforms darwin master_sites http://smlnj.cs.uchicago.edu/dist/working/${version}/ dist_subdir ${name}/${version}_${revision} distfiles checksums # Files needed for basic distribution. set srcs [list \ ckit.tgz bb39f5029531db138e408504259c16158884b782 \ cml.tgz 1ee263ca8da2147ebc3e6d318d8fa1cd26d59f06 \ cm.tgz 5779b26a500cf258ab5fc803f40ed41a9d177481 \ compiler.tgz 8e4ce5bd8f6605d4ef1d1b9db52dda68c6b3cc7d \ config.tgz 945a0ecd97365188f4c23d33c4d38e9bc073cb1a \ doc.tgz bf833b64029612d1c59864106894f78a0a4ba6aa \ eXene.tgz 53ea8dd1d930a1537a9a81c2d12032c2c98de501 \ heap2asm.tgz 0ba4d8c91dd8e1ed4f0543980757f29ab286241e \ ml-burg.tgz 0cfc5665b8b05e1249432330936357236f46cbb3 \ ml-lex.tgz f6e99b672be6bc689dbc24532ea8068a73c87fc2 \ ml-lpt.tgz 97e7d95718eec2d0fafc7dca9e3bd4c025171958 \ MLRISC.tgz 148b4256f6c7c6978355126cb38d6447c727a779 \ ml-yacc.tgz b28f3f06bf1494a9acabb2e8e463669b29693e54 \ nlffi.tgz 802e28b56fbb7d6dae039237144eb0a3286334b5 \ old-basis.tgz d79f72ad9b6e55c4df47fe73646700310d10b954 \ pgraph.tgz 0b9c1a9f08d3df618a4f374c493252c8b30d8c12 \ runtime.tgz f196e3b3568081e8666bc92ed5025f7738d9a6c5 \ smlnj-c.tgz d8fd5771f0c7d4baf6f4c25ebb17f0e4ccef0298 \ smlnj-lib.tgz 7cdeacf3fb2c45e7768efdcb716614261fff270f \ system.tgz 184ef6a6414e3b6f9bdc5ed5d523721d84dc3981 \ trace-debug-profile.tgz ab761a6480f00225e91dd40dd59d1f511e50d591 \ ] foreach {tarball checksum} $srcs { distfiles-append $tarball checksums-append $tarball sha1 $checksum } # Platform-specific boot code (omitted: sparc-unix, x86-win32) platform powerpc { distfiles-append boot.ppc-unix.tgz checksums-append boot.ppc-unix.tgz sha1 1f519ef4e31329cc1fe52e34fe927e54fe688815 } platform i386 { distfiles-append boot.x86-unix.tgz checksums-append boot.x86-unix.tgz sha1 c2ab5569be827afea10e8b8bb07a597845d3d201 } ### extract ### extract.mkdir yes extract.only config.tgz ### patch ### patchfiles patch-config__install.sh-correct-compiler.diff post-patch { reinplace "s|@CC@|${configure.cc}|" ${worksrcpath}/config/install.sh reinplace "s|@CPP@|${configure.cc}|" ${worksrcpath}/config/install.sh reinplace "s|@CFLAGS@|${configure.cflags}|" ${worksrcpath}/config/install.sh reinplace "s|@LDFLAGS@|${configure.ldflags}|" ${worksrcpath}/config/install.sh } ### configure ### configure { reinplace "s|SRCARCHIVEURL=.*|SRCARCHIVEURL=file://${distpath}|" \ ${worksrcpath}/config/srcarchiveurl reinplace "s|#request src-smlnj|request src-smlnj|" \ ${worksrcpath}/config/targets reinplace "s|#request eXene|request eXene|" \ ${worksrcpath}/config/targets reinplace "s|#request mlrisc-tools|request mlrisc-tools|" \ ${worksrcpath}/config/targets reinplace "s|#request heap2asm |request heap2asm|" \ ${worksrcpath}/config/targets } ### build ### build.env URLGETTER=curl build.cmd ${worksrcpath}/config/install.sh build.target ### destroot ### destroot { set smlnj_home ${prefix}/share/smlnj file mkdir ${destroot}${smlnj_home} file copy ${worksrcpath}/bin ${destroot}${smlnj_home} file copy ${worksrcpath}/lib ${destroot}${smlnj_home} xinstall -m 555 ${filespath}/sml.sh ${destroot}${prefix}/bin/sml reinplace "s|__SMLNJ_HOME__|${smlnj_home}|g" \ ${destroot}${prefix}/bin/sml foreach prog [glob -directory ${worksrcpath}/bin *] { set progname [file tail $prog] if {![string equal $progname sml]} { ln -s sml ${destroot}${prefix}/bin/${progname} } } } livecheck.type regex livecheck.regex {/working/([0-9.]+)/}