summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorJoseph Koshy <jkoshy@FreeBSD.org>2001-08-24 09:12:43 +0000
committerJoseph Koshy <jkoshy@FreeBSD.org>2001-08-24 09:12:43 +0000
commit924e43a6460aa76124ff140d3e8dc0d112d668c7 (patch)
tree27ae57ccd4d01467676beb1b3592d31a111598f9 /lang
parentadd vm-pop3d (diff)
Upgrade to SML/NJ v110.34. Add a number of nifty configurability options.
PR: ports/29656 Submitted by: Johannes 5 Joemann <joemann@beefree.free.de>
Notes
Notes: svn path=/head/; revision=46771
Diffstat (limited to 'lang')
-rw-r--r--lang/sml-nj-devel/Makefile164
-rw-r--r--lang/sml-nj-devel/distinfo29
-rw-r--r--lang/sml-nj-devel/files/do-patch-src-installml48
-rw-r--r--lang/sml-nj-devel/files/do-patch-src-makeml31
-rw-r--r--lang/sml-nj-devel/files/extra-patch-global-names11
-rw-r--r--lang/sml-nj-devel/files/optional-patch-flint-access29
-rw-r--r--lang/sml-nj-devel/files/patch-ab30
-rw-r--r--lang/sml-nj-devel/files/plist-cml12
-rw-r--r--lang/sml-nj-devel/files/plist-eXene4
-rw-r--r--lang/sml-nj-devel/files/targets.customized98
-rw-r--r--lang/sml-nj-devel/pkg-plist82
11 files changed, 352 insertions, 186 deletions
diff --git a/lang/sml-nj-devel/Makefile b/lang/sml-nj-devel/Makefile
index aa044a6576b0..48f5bb5c4951 100644
--- a/lang/sml-nj-devel/Makefile
+++ b/lang/sml-nj-devel/Makefile
@@ -6,21 +6,64 @@
#
PORTNAME= smlnj
-PORTVERSION= 110.33
+PORTVERSION= 110.34
CATEGORIES= lang
-MASTER_SITES= ftp://ftp.research.bell-labs.com/dist/smlnj/working/110.33/ \
- ftp://ftp.diku.dk/pub/smlnj/working/110.33/ \
- ftp://sunsite.doc.ic.ac.uk/computing/programming/languages/ml/smlnj/working/110.33/ \
- ftp://compiler.kaist.ac.kr/pub/sml/working/110.33/
-DISTFILES= boot.x86-unix.tgz compiler.tgz cm.tgz ckit.tgz config.tgz \
+MASTER_SITES= ftp://ftp.research.bell-labs.com/dist/smlnj/working/${PORTVERSION}/ \
+ ftp://flint.cs.yale.edu/pub/smlnj/working/${PORTVERSION}/ \
+ ftp://sunsite.doc.ic.ac.uk/computing/programming/languages/ml/smlnj/working/${PORTVERSION}/ \
+ ftp://ftp.diku.dk/pub/smlnj/working/${PORTVERSION}/
+.if (${MACHINE_ARCH} == "i386")
+DISTFILES= boot.x86-unix.tgz
+.elif (${MACHINE_ARCH} == "alpha")
+DISTFILES= boot.alpha32-unix.tgz
+.endif
+DISTFILES+= config.tgz runtime.tgz cm.tgz ckit.tgz \
ml-burg.tgz ml-lex.tgz \
ml-nlffi-lib.tgz ml-nlffigen.tgz \
- ml-yacc.tgz runtime.tgz \
- smlnj-lib.tgz system.tgz
+ ml-yacc.tgz smlnj-lib.tgz
+.if defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
+DISTFILES+= compiler.tgz system.tgz MLRISC.tgz
+.endif
+.if defined(WITH_CML) || defined(WITH_EXENE)
+DISTFILES+= cml.tgz
+.endif
+.if defined(WITH_EXENE)
+DISTFILES+= eXene.tgz
+.endif
EXTRACT_ONLY= config.tgz
MAINTAINER= jkoshy@freebsd.org
+.if (${MACHINE_ARCH} == "i386")
+MLARCH= x86
+.elif (${MACHINE_ARCH} == "alpha")
+MLARCH= alpha32
+.else
+BROKEN= not ported to ${MLARCH}
+.endif
+
+MLTARGETS= ml-burg ckit ml-nlffi-lib ml-nlffigen
+MLEXE= ml-build ml-makedepend sml ml-yacc ml-lex ml-burg ml-nlffigen
+.if defined(WITH_CML) || defined(WITH_EXENE) || defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
+PLIST= ${WRKDIR}/.PLIST
+MLPLISTFILES= ${.CURDIR}/pkg-plist
+MLSRCPLIST= ${WRKDIR}/.PLIST.src
+.endif
+
+.if defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
+# the pkg-plist for sources is large, so we'll generate it on the fly (during do-install)
+MLPLISTFILES+= ${MLSRCPLIST}
+MLTARGETS+= src-smlnj
+.endif
+.if defined(WITH_CML) || defined(WITH_EXENE)
+MLPLISTFILES+= ${FILESDIR}/plist-cml
+MLTARGETS+= cml cml-lib
+.endif
+.if defined(WITH_EXENE)
+MLPLISTFILES+= ${FILESDIR}/plist-eXene
+MLTARGETS+= eXene
+.endif
+
# Other mirror sites that generally carry only released versions of SML
# ftp://rodin.stanford.edu/pub/smlnj/release/
# ftp://ftp.cl.cam.ac.uk/MIRRORED/smlnj/release/
@@ -31,25 +74,120 @@ MAINTAINER= jkoshy@freebsd.org
DIST_SUBDIR= sml-nj/${PORTVERSION}
NO_WRKSUBDIR= yes
USE_GMAKE= yes
-NO_BUILD= yes
NO_LATEST_LINK= yes
-MLEXE= ml-build ml-makedepend sml ml-yacc ml-lex ml-burg ml-nlffigen
+pre-fetch:
+ @${ECHO}
+.if !defined(WITH_EXENE)
+.if !defined(WITH_CML)
+ @${ECHO} 'Use make WITH_CML=yes to build CML (Concurrent ML).'
+.endif
+ @${ECHO} 'Use make WITH_EXENE=yes to build eXene (X Windows toolkit),'
+ @${ECHO} ' this implies WITH_CML.'
+.endif
+.if !defined(WITH_FLINT)
+.if !defined(WITH_RECOMPILE)
+.if !defined(WITH_SRC)
+ @${ECHO} 'Use make WITH_SRC=yes to have the sources installed.'
+.endif
+ @${ECHO} 'Use make WITH_RECOMPILE=yes to recompile the compiler,'
+ @${ECHO} ' this implies WITH_SRC.'
+.endif
+ @${ECHO} 'Use make WITH_FLINT=yes to build sml with the FLINT'
+ @${ECHO} ' structures accessible (see http://flint.cs.yale.edu),'
+ @${ECHO} ' this implies WITH_RECOMPILE.'
+.endif
+ @${ECHO}
# make symlinks to the dist files
+
post-extract:
cd ${WRKDIR} && ${LN} -sf ${_DISTDIR}/* .
- ${CP} ${FILESDIR}/targets.customized ${WRKDIR}/config/targets.customized
-# The install target attempts to build and install the system
+# Configuring is done by uncommenting the appropriate #TARGETS="$TARGETS xxx"
+# lines of config/targets
+
+do-configure:
+ test -f "${WRKDIR}/config/targets.orig" || \
+ ${MV} "${WRKDIR}/config/targets" "${WRKDIR}/config/targets.orig"
+ ${ECHO} -n > ${WRKDIR}/.tmp.sed
+.for t in ${MLTARGETS}
+ ${ECHO} '/^#TARGETS="\$$TARGETS[ ]+${t}"$$/s/#//' >> ${WRKDIR}/.tmp.sed
+.endfor
+ ${SED} -E -f ${WRKDIR}/.tmp.sed "${WRKDIR}/config/targets.orig" \
+ > "${WRKDIR}/config/targets"
+
+# The build target builds and installs the system within the WRKDIR.
+# The src/runtime is not cleaned afterwards to avoid recompilation during
+# a subsequent make install.
+# See src/system/README for information on recompiling the compiler.
+
+.if defined(WITH_FLINT)
+MLFLINTPATCH= optional-patch-flint-access
+.endif
+
+do-build:
+ cd ${WRKDIR} && unset PWD && \
+ FILESDIR="$(FILESDIR)" PATCH="$(PATCH)" PATCH_ARGS="$(PATCH_ARGS)" \
+ MLNORUNTIMECLEAN=yes ./config/install.sh
+.if defined(WITH_FLINT)
+ test -f "${WRKDIR}/.patch.${MLFLINTPATCH}" || \
+ ( cd ${WRKDIR} && \
+ ${PATCH} < "${FILESDIR}/${MLFLINTPATCH}" && \
+ ${TOUCH} "${WRKDIR}/.patch.${MLFLINTPATCH}" )
+.endif
+.if defined(WITH_RECOMPILE) || defined(WITH_FLINT)
+ cd ${WRKDIR}/src/system && ( \
+ ${ECHO} 'CM.autoload "$$smlnj/cmb.cm";' ; \
+ ${ECHO} 'CMB.make ();' ) | \
+ ../../bin/sml && \
+ ./makeml && \
+ ./installml &&
+.endif
+
+# The install target installs the heaps and libraries to their final
+# location in ${PREFIX}/smlnj.
+# In case of recompilation, installml installs the sml heap and the
+# libraries built during compiler bootstrap to ${PREFIX}/smlnj.
+
+.if defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
+MLNOINSTALL= CM
+.if defined(WITH_RECOMPILE) || defined(WITH_FLINT)
+MLNOINSTALL+= sml.boot.${MLARCH}-unix sml.bin.${MLARCH}-unix
+.endif
+MLSRCEXCLUDES=
+.for excl in ${MLNOINSTALL}
+MLSRCEXCLUDES+= --exclude "${excl}"
+.endfor
+.endif
+
do-install:
- ${MKDIR} ${PREFIX}/smlnj
+ ${MKDIR} "${PREFIX}/smlnj"
cd ${WRKDIR} && unset PWD && \
FILESDIR="$(FILESDIR)" PATCH="$(PATCH)" PATCH_ARGS="$(PATCH_ARGS)" \
INSTALLDIR="$(PREFIX)/smlnj" ./config/install.sh
+.if defined(WITH_RECOMPILE) || defined(WITH_FLINT)
+ cd ${WRKDIR}/src/system && \
+ INSTALLROOT="${PREFIX}/smlnj" ./makeml && \
+ INSTALLROOT="${PREFIX}/smlnj" ./installml
+.endif
+.if defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
+ cd ${WRKDIR}/src/runtime/objs && ${GMAKE} clean
+ @${ECHO} -n 'Installing sources into ${PREFIX}/smlnj ...'
+ @cd ${WRKDIR} && tar -cf - ${MLSRCEXCLUDES} ckit src | tar -xf - -C "${PREFIX}/smlnj"
+ @${ECHO} ' done.'
+ cd "${PREFIX}" && ( find -s -d smlnj/src smlnj/ckit \! -type d ; \
+ ( find -s -d smlnj/src smlnj/ckit -type d | ${AWK} '{ printf "@dirrm "; print }' ) \
+ ) > ${MLSRCPLIST}
+.endif
+.if defined(WITH_CML) || defined(WITH_EXENE) || defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
+ ${GREP} -h ^[^@] ${MLPLISTFILES} | sort -u > ${PLIST}
+ ${GREP} -h ^@dirrm ${MLPLISTFILES} | sort -r -u >> ${PLIST}
+.endif
post-install:
+ ${MKDIR} $(PREFIX)/bin
.for f in $(MLEXE)
${LN} -s $(PREFIX)/smlnj/bin/$f $(PREFIX)/bin/$f
.endfor
diff --git a/lang/sml-nj-devel/distinfo b/lang/sml-nj-devel/distinfo
index 20753ce97073..a1386ccf1033 100644
--- a/lang/sml-nj-devel/distinfo
+++ b/lang/sml-nj-devel/distinfo
@@ -1,13 +1,16 @@
-MD5 (sml-nj/110.33/boot.x86-unix.tgz) = 8ca6ca8b5981fbfb55fb1ed4a10a87a3
-MD5 (sml-nj/110.33/compiler.tgz) = e90432d37da70ab391df70292797909a
-MD5 (sml-nj/110.33/cm.tgz) = 94cfe559204fc783dad5b893ce956f3b
-MD5 (sml-nj/110.33/ckit.tgz) = 61b8c2c05ead8a58860ed4c5f80cf0cf
-MD5 (sml-nj/110.33/config.tgz) = febbec9ae82ad5dae2648b3bf6b28ab3
-MD5 (sml-nj/110.33/ml-burg.tgz) = 395ac54fa03a15df0564865b7854069f
-MD5 (sml-nj/110.33/ml-lex.tgz) = 3da0a002f667e29d2781aa99fdd99122
-MD5 (sml-nj/110.33/ml-nlffi-lib.tgz) = 6edd48687ceb3cfdcfc7cae832f9b24a
-MD5 (sml-nj/110.33/ml-nlffigen.tgz) = 9cb4b36ddf6d50c280267d964c17ebad
-MD5 (sml-nj/110.33/ml-yacc.tgz) = 4e440198a7db006fd76cbad72e699149
-MD5 (sml-nj/110.33/runtime.tgz) = 94294f70cc2e6c27edf3705925aff291
-MD5 (sml-nj/110.33/smlnj-lib.tgz) = 99080e52a31b197cd08e6fb807089871
-MD5 (sml-nj/110.33/system.tgz) = f9144d57279853f60163c1c8ce850120
+MD5 (sml-nj/110.34/boot.x86-unix.tgz) = 419904d21e9bba8931697179aed7854e
+MD5 (sml-nj/110.34/config.tgz) = f81d3edd47f7a90e22bda437f097d106
+MD5 (sml-nj/110.34/runtime.tgz) = 518ba48de2d611af1d00e2e60a045e1e
+MD5 (sml-nj/110.34/cm.tgz) = c5db753384209b6329b170d800457315
+MD5 (sml-nj/110.34/ckit.tgz) = c0ea9ce9fc6b05aca87d6acd75870bf3
+MD5 (sml-nj/110.34/ml-burg.tgz) = 2dd6317954e2e1bac4ae509d8aa335bc
+MD5 (sml-nj/110.34/ml-lex.tgz) = dcf53a5f50cd0522c88ae81e81f23d0b
+MD5 (sml-nj/110.34/ml-nlffi-lib.tgz) = c29f3a603570f9fba1cf6bb892050718
+MD5 (sml-nj/110.34/ml-nlffigen.tgz) = e2dec108191b4ccb563aa320534d5097
+MD5 (sml-nj/110.34/ml-yacc.tgz) = dafc62097309b63c108b25a1bb499eb2
+MD5 (sml-nj/110.34/smlnj-lib.tgz) = 44049319612188dc026745f0ee3b7f89
+MD5 (sml-nj/110.34/compiler.tgz) = ab17f4dee4504bb0239f9d378e024bbb
+MD5 (sml-nj/110.34/system.tgz) = 3c10db33bf5d1ea06081d5eb7aa6758b
+MD5 (sml-nj/110.34/MLRISC.tgz) = 57c6f8868baa3d7f4efead0734eeeeeb
+MD5 (sml-nj/110.34/cml.tgz) = c32e6801d7bad2ca5ea0b10bc4a12a18
+MD5 (sml-nj/110.34/eXene.tgz) = 96f4e89eec9ab01eaa873a2b3ebd11fc
diff --git a/lang/sml-nj-devel/files/do-patch-src-installml b/lang/sml-nj-devel/files/do-patch-src-installml
new file mode 100644
index 000000000000..542d987ece6a
--- /dev/null
+++ b/lang/sml-nj-devel/files/do-patch-src-installml
@@ -0,0 +1,48 @@
+--- src/system/installml.orig Thu Jun 1 20:33:57 2000
++++ src/system/installml Wed Aug 15 18:49:56 2001
+@@ -3,7 +3,7 @@
+ # The tmpfile is for pathconfig editing (see below).
+ tmpfile=pathconfig.tmp.$$
+
+-trap 'rm -f $tmpfile; exit 1' 0 1 2 3 15
++trap 'rm -f $tmpfile; exit 1' 1 2 3 15
+
+ this=$0
+ here=`pwd`
+@@ -11,8 +11,10 @@
+ twoup=`pwd`
+ cd $here
+
+-MAIN_HEAP_DIR=$twoup/bin/.heap
+-MAIN_LIB_DIR=$twoup/lib
++INSTALLROOT=${INSTALLROOT:-$twoup}
++
++MAIN_HEAP_DIR=$INSTALLROOT/bin/.heap
++MAIN_LIB_DIR=$INSTALLROOT/lib
+
+ if [ $# -gt 0 ] ; then
+ STEM=$1
+@@ -54,7 +56,7 @@
+ fi
+ }
+
+-HEAP_FILE=$STEM.$ARCH-$OPSYS
++HEAP_FILE=$STEM.$HEAP_SUFFIX
+ LIB_DIR=$STEM.lib
+
+ if [ ! -f $HEAP_FILE ] ; then
+@@ -68,7 +70,7 @@
+ fi
+
+ # Moving the heap image to its place
+-mv $HEAP_FILE $MAIN_HEAP_DIR/sml.$ARCH-$OPSYS
++mv $HEAP_FILE $MAIN_HEAP_DIR/sml.$HEAP_SUFFIX
+
+ # Moving each individual library...
+ cd $LIB_DIR
+@@ -94,4 +96,5 @@
+ END { for (i in mapping) print i, mapping[i] }' \
+ | sort >$pcfile
+
++rm -f $tmpfile
+ rm -r $LIB_DIR
diff --git a/lang/sml-nj-devel/files/do-patch-src-makeml b/lang/sml-nj-devel/files/do-patch-src-makeml
new file mode 100644
index 000000000000..bdc33ed2951d
--- /dev/null
+++ b/lang/sml-nj-devel/files/do-patch-src-makeml
@@ -0,0 +1,31 @@
+--- src/system/makeml.orig Wed Apr 18 17:43:09 2001
++++ src/system/makeml Wed Aug 15 18:36:30 2001
+@@ -6,7 +6,9 @@
+ twoup=`pwd`
+ cd $here
+
+-LINK=$twoup/bin/.link-sml
++INSTALLROOT=${INSTALLROOT:-$twoup}
++
++LINK=$INSTALLROOT/bin/.link-sml
+
+ if [ ! -x $LINK ] ; then
+ echo $this: link script $LINK is not operational.
+@@ -47,14 +49,14 @@
+ # ... unless it was already set at the time we run this script.
+ #
+
+-CM_PATHCONFIG_DEFAULT=${CM_PATHCONFIG_DEFAULT:-$twoup/lib/pathconfig}
++CM_PATHCONFIG_DEFAULT=${CM_PATHCONFIG_DEFAULT:-$INSTALLROOT/lib/pathconfig}
+ export CM_PATHCONFIG_DEFAULT
+
+ #
+ # use the arch-n-opsys script to determine the ARCH/OS if possible
+ #
+-if [ -f $twoup/bin/.arch-n-opsys ]; then
+- ARCH_N_OPSYS=`$twoup/bin/.arch-n-opsys`
++if [ -f $INSTALLROOT/bin/.arch-n-opsys ]; then
++ ARCH_N_OPSYS=`$INSTALLROOT/bin/.arch-n-opsys`
+ if [ "$?" = "0" ]; then
+ eval $ARCH_N_OPSYS
+ echo $this: architecture = $ARCH
diff --git a/lang/sml-nj-devel/files/extra-patch-global-names b/lang/sml-nj-devel/files/extra-patch-global-names
deleted file mode 100644
index 9b5ec3ce29e9..000000000000
--- a/lang/sml-nj-devel/files/extra-patch-global-names
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/runtime/include/asm-base.h-- Fri Apr 20 18:56:45 2001
-+++ src/runtime/include/asm-base.h Thu Jun 14 12:49:34 2001
-@@ -16,7 +16,7 @@
- #define FALSE 0
- #define TRUE 1
-
--#if (!defined(GLOBALS_HAVE_UNDERSCORE)) && (defined(OPSYS_SUNOS) || defined(OPSYS_FREEBSD) || defined(OPSYS_NETBSD) || defined(OPSYS_NEXTSTEP) || defined(OPSYS_WIN32) || defined(OPSYS_DARWIN))
-+#if (!defined(GLOBALS_HAVE_UNDERSCORE)) && (defined(OPSYS_SUNOS) || (defined(OPSYS_FREEBSD) && !defined(__ELF__)) || defined(OPSYS_NETBSD) || defined(OPSYS_NEXTSTEP) || defined(OPSYS_WIN32) || defined(OPSYS_DARWIN))
- # define GLOBALS_HAVE_UNDERSCORE
- #endif
-
diff --git a/lang/sml-nj-devel/files/optional-patch-flint-access b/lang/sml-nj-devel/files/optional-patch-flint-access
new file mode 100644
index 000000000000..890534cfb661
--- /dev/null
+++ b/lang/sml-nj-devel/files/optional-patch-flint-access
@@ -0,0 +1,29 @@
+--- src/compiler/viscomp-core.cm.orig Tue May 8 23:25:14 2001
++++ src/compiler/viscomp-core.cm Thu Aug 9 00:06:53 2001
+@@ -69,6 +69,26 @@
+
+ functor DummyCCallsFn
+ structure ClusterAnnotation
++
++ (* export of structures required to use FLINT directly -5- *)
++ structure Types
++ structure Translate
++ (* in 110.27 already exported above: structure FLINT *)
++ structure LtyKernel
++ structure PrimTyc
++ structure LtyDef
++ structure LtyExtern
++ structure PPFlint
++ structure LContract
++ (* currently unused?: structure FContract *)
++ structure Specialize
++ structure PrimOp
++ structure LambdaVar
++ structure ChkFlint
++ (* accessible via GenericVC: structure Symbol *)
++ structure Access
++ structure DebIndex
++
+ is
+
+ TopLevel/batch/batchconfig.sml
diff --git a/lang/sml-nj-devel/files/patch-ab b/lang/sml-nj-devel/files/patch-ab
index cacfce583402..fe93cf1d434b 100644
--- a/lang/sml-nj-devel/files/patch-ab
+++ b/lang/sml-nj-devel/files/patch-ab
@@ -1,5 +1,5 @@
---- config/install.sh.orig Wed May 23 03:36:12 2001
-+++ config/install.sh Mon Jun 18 14:40:02 2001
+--- config/install.sh.orig Wed Jun 20 22:39:12 2001
++++ config/install.sh Wed Aug 15 19:16:18 2001
@@ -408,6 +408,28 @@
}
@@ -29,11 +29,21 @@
# create the various sub directories
#
for dir in $BINDIR $HEAPDIR $RUNDIR $LIBDIR $SRCDIR ; do
-@@ -519,6 +541,7 @@
- # build the run-time system
- #
- unpack "run-time" $SRCDIR runtime runtime
-+do_patch extra-patch-global-names
- if [ -x $RUNDIR/run.$ARCH-$OPSYS ]; then
- echo $this: Run-time system already exists.
- else
+@@ -527,7 +549,7 @@
+ $MAKE -f mk.$ARCH-$OPSYS $EXTRA_DEFS
+ if [ -x run.$ARCH-$OPSYS ]; then
+ mv run.$ARCH-$OPSYS $RUNDIR
+- $MAKE MAKE=$MAKE clean
++ [ "$MLNORUNTIMECLEAN" ] || $MAKE MAKE=$MAKE clean
+ else
+ echo "$this: !!! Run-time system build failed for some reason."
+ exit 1
+@@ -594,6 +616,8 @@
+ do
+ unpack $src $ROOT/src $src $src
+ done
++ do_patch do-patch-src-makeml
++ do_patch do-patch-src-installml
+ ;;
+ ml-yacc)
+ standalone ml-yacc ML-Yacc src
diff --git a/lang/sml-nj-devel/files/plist-cml b/lang/sml-nj-devel/files/plist-cml
new file mode 100644
index 000000000000..77c1791b46b4
--- /dev/null
+++ b/lang/sml-nj-devel/files/plist-cml
@@ -0,0 +1,12 @@
+smlnj/lib/cml/CM/x86-unix/basis.cm
+smlnj/lib/cml/CM/x86-unix/cml-internal.cm
+smlnj/lib/cml/CM/x86-unix/cml.cm
+smlnj/lib/cml/CM/x86-unix/core-cml.cm
+smlnj/lib/cml-lib/CM/x86-unix/smlnj-lib.cm
+smlnj/lib/cml-lib/CM/x86-unix/trace-cml.cm
+@dirrm smlnj/lib/cml/CM/x86-unix
+@dirrm smlnj/lib/cml/CM
+@dirrm smlnj/lib/cml
+@dirrm smlnj/lib/cml-lib/CM/x86-unix
+@dirrm smlnj/lib/cml-lib/CM
+@dirrm smlnj/lib/cml-lib
diff --git a/lang/sml-nj-devel/files/plist-eXene b/lang/sml-nj-devel/files/plist-eXene
new file mode 100644
index 000000000000..a6d10eb14d71
--- /dev/null
+++ b/lang/sml-nj-devel/files/plist-eXene
@@ -0,0 +1,4 @@
+smlnj/lib/eXene.cm/CM/x86-unix/eXene.cm
+@dirrm smlnj/lib/eXene.cm/CM/x86-unix
+@dirrm smlnj/lib/eXene.cm/CM
+@dirrm smlnj/lib/eXene.cm
diff --git a/lang/sml-nj-devel/files/targets.customized b/lang/sml-nj-devel/files/targets.customized
deleted file mode 100644
index 2857f74eca80..000000000000
--- a/lang/sml-nj-devel/files/targets.customized
+++ /dev/null
@@ -1,98 +0,0 @@
-# targets
-#
-# the following is a list of the targets (in addition to sml) that
-# this shell script can install. Comment out those that you do not
-# want. Note that cml-lib requires cml.
-
-#
-# But first, decide where you want to have stable libraries stored.
-# If you set $MOVE_LIBRARIES to true, then the install script will
-# move all libraries out of the source tree and into the $LIBDIR
-# directory. Thus, you can then delete the entire source tree without
-# losing functionality. So choose one of these two:
-
-MOVE_LIBRARIES=true
-#MOVE_LIBRARIES=false
-
-# Now let's get started with the target list...
-
-TARGETS=""
-
-# (Always: build the basic sml compiler. This is not reflected in $TARGETS.)
-
-
-# unpack the source code for the SML/NJ compiler; this is not required,
-# unless you are doing compiler hacking, but it may be interesting to look at.
-#
-#TARGETS="$TARGETS src-smlnj"
-
-# build ML-Yacc
-#
-TARGETS="$TARGETS ml-yacc"
-
-# Always: install the pre-compiled ML-Yacc Library; this is necessary
-# to use parsers produced by ML-Yacc, but also to bootstrap the system
-# in the first place.
-
-
-# build ML-Lex
-#
-TARGETS="$TARGETS ml-lex"
-
-# Always: install the pre-compiled SML/NJ Library (necessary to bootstrap).
-
-
-# build ML-Burg
-#
-TARGETS="$TARGETS ml-burg"
-
-# pre-compile and install the remaining components of the SML/NJ library
-# (everything except smlnj-lib.cm, aka Util, itself)
-TARGETS="$TARGETS smlnj-lib"
-
-# pre-compile and install Concurrent ML, which is a library for message-passing
-# concurrency.
-#
-#TARGETS="$TARGETS cml"
-
-# pre-compile and install the CML Library, which provides some useful CML
-# modules.
-#
-#TARGETS="$TARGETS cml-lib"
-
-# pre-compile and install eXene, which is a library for X-Windows programming.
-# EXene requires CML.
-#
-#TARGETS="$TARGETS eXene"
-
-# pre-compile and install the C-Kit, which is a library for parsing and
-# type-checking C programs
-#
-TARGETS="$TARGETS ckit"
-
-# pre-compile and install the ML-NLFFI Library, which is the core of
-# a new foreign function interface (where "foreign" functions are
-# "no longer foreign")
-# This library is necessary to compile and/or run programs that use
-# the new FFI.
-# This preview release currently works only under X86/Linux.
-#
-TARGETS="$TARGETS ml-nlffi-lib"
-
-# build ML-NLFFI-Gen, a program generator tool used in conjunction with
-# the new "NLFFI" foreign function interface. The tool generates ML
-# glue code from C source code.
-# (Requires ckit!)
-# This preview release currently works only under X86/Linux.
-#
-TARGETS="$TARGETS ml-nlffigen"
-
-# unpack and install the documentation directory.
-#
-#TARGETS="$TARGETS doc"
-
-# Note: autoloading is always enabled.
-# In order to customize what is being pre-registered for autoloading
-# edit file "preloads". You should make sure that it contains at least
-# "$smlnj/cm.cm".
-# Also, it is a good idea to have "$/basis.cm" pre-loaded.
diff --git a/lang/sml-nj-devel/pkg-plist b/lang/sml-nj-devel/pkg-plist
index 6dbeb17f92e7..0c8eab9c43b6 100644
--- a/lang/sml-nj-devel/pkg-plist
+++ b/lang/sml-nj-devel/pkg-plist
@@ -1,27 +1,26 @@
bin/ml-build
-bin/ml-makedepend
-bin/ml-yacc
-bin/ml-lex
bin/ml-burg
+bin/ml-lex
+bin/ml-makedepend
bin/ml-nlffigen
+bin/ml-yacc
bin/sml
-smlnj/bin/.heap/sml.x86-bsd
-smlnj/bin/.heap/ml-yacc.x86-bsd
-smlnj/bin/.heap/ml-lex.x86-bsd
+smlnj/bin/.arch-n-opsys
smlnj/bin/.heap/ml-burg.x86-bsd
+smlnj/bin/.heap/ml-lex.x86-bsd
smlnj/bin/.heap/ml-nlffigen.x86-bsd
+smlnj/bin/.heap/ml-yacc.x86-bsd
+smlnj/bin/.heap/sml.x86-bsd
+smlnj/bin/.link-sml
smlnj/bin/.run/run.x86-freebsd
-smlnj/bin/.arch-n-opsys
smlnj/bin/.run-sml
-smlnj/bin/.link-sml
smlnj/bin/ml-build
-smlnj/bin/ml-makedepend
-smlnj/bin/sml
-smlnj/bin/ml-yacc
-smlnj/bin/ml-lex
smlnj/bin/ml-burg
+smlnj/bin/ml-lex
+smlnj/bin/ml-makedepend
smlnj/bin/ml-nlffigen
-smlnj/lib/pathconfig
+smlnj/bin/ml-yacc
+smlnj/bin/sml
smlnj/lib/SMLNJ-MLRISC/CM/x86-unix/ALPHA.cm
smlnj/lib/SMLNJ-MLRISC/CM/x86-unix/Control.cm
smlnj/lib/SMLNJ-MLRISC/CM/x86-unix/HPPA.cm
@@ -33,19 +32,27 @@ smlnj/lib/SMLNJ-MLRISC/CM/x86-unix/PPC.cm
smlnj/lib/SMLNJ-MLRISC/CM/x86-unix/SPARC.cm
smlnj/lib/basis.cm/CM/x86-unix/basis.cm
smlnj/lib/burg-ext.cm/CM/x86-unix/burg-ext.cm
+smlnj/lib/c-int.cm/CM/x86-unix/c-int.cm
+smlnj/lib/c.cm/CM/x86-unix/c.cm
+smlnj/lib/ckit-lib.cm/CM/x86-unix/ckit-lib.cm
smlnj/lib/dir-tool.cm/CM/x86-unix/dir-tool.cm
smlnj/lib/grm-ext.cm/CM/x86-unix/grm-ext.cm
smlnj/lib/html-lib.cm/CM/x86-unix/html-lib.cm
+smlnj/lib/inet-lib.cm/CM/x86-unix/inet-lib.cm
smlnj/lib/lex-ext.cm/CM/x86-unix/lex-ext.cm
smlnj/lib/make-tool.cm/CM/x86-unix/make-tool.cm
+smlnj/lib/memory.cm/CM/x86-unix/memory.cm
smlnj/lib/ml-yacc-lib.cm/CM/x86-unix/ml-yacc-lib.cm
smlnj/lib/mlburg-tool.cm/CM/x86-unix/mlburg-tool.cm
smlnj/lib/mllex-tool.cm/CM/x86-unix/mllex-tool.cm
smlnj/lib/mlyacc-tool.cm/CM/x86-unix/mlyacc-tool.cm
smlnj/lib/noweb-tool.cm/CM/x86-unix/noweb-tool.cm
smlnj/lib/nw-ext.cm/CM/x86-unix/nw-ext.cm
+smlnj/lib/pathconfig
smlnj/lib/pickle-lib.cm/CM/x86-unix/pickle-lib.cm
smlnj/lib/pp-lib.cm/CM/x86-unix/pp-lib.cm
+smlnj/lib/reactive-lib.cm/CM/x86-unix/reactive-lib.cm
+smlnj/lib/regexp-lib.cm/CM/x86-unix/regexp-lib.cm
smlnj/lib/shell-tool.cm/CM/x86-unix/shell-tool.cm
smlnj/lib/smlnj/CM/x86-unix/cm.cm
smlnj/lib/smlnj/CM/x86-unix/cmb.cm
@@ -90,13 +97,6 @@ smlnj/lib/smlnj/viscomp/CM/x86-unix/sparc.cm
smlnj/lib/smlnj/viscomp/CM/x86-unix/x86.cm
smlnj/lib/smlnj-lib.cm/CM/x86-unix/smlnj-lib.cm
smlnj/lib/unix-lib.cm/CM/x86-unix/unix-lib.cm
-smlnj/lib/inet-lib.cm/CM/x86-unix/inet-lib.cm
-smlnj/lib/regexp-lib.cm/CM/x86-unix/regexp-lib.cm
-smlnj/lib/reactive-lib.cm/CM/x86-unix/reactive-lib.cm
-smlnj/lib/ckit-lib.cm/CM/x86-unix/ckit-lib.cm
-smlnj/lib/memory.cm/CM/x86-unix/memory.cm
-smlnj/lib/c-int.cm/CM/x86-unix/c-int.cm
-smlnj/lib/c.cm/CM/x86-unix/c.cm
@dirrm smlnj/bin/.heap
@dirrm smlnj/bin/.run
@dirrm smlnj/bin
@@ -109,6 +109,15 @@ smlnj/lib/c.cm/CM/x86-unix/c.cm
@dirrm smlnj/lib/burg-ext.cm/CM/x86-unix
@dirrm smlnj/lib/burg-ext.cm/CM
@dirrm smlnj/lib/burg-ext.cm
+@dirrm smlnj/lib/c-int.cm/CM/x86-unix
+@dirrm smlnj/lib/c-int.cm/CM
+@dirrm smlnj/lib/c-int.cm
+@dirrm smlnj/lib/c.cm/CM/x86-unix
+@dirrm smlnj/lib/c.cm/CM
+@dirrm smlnj/lib/c.cm
+@dirrm smlnj/lib/ckit-lib.cm/CM/x86-unix
+@dirrm smlnj/lib/ckit-lib.cm/CM
+@dirrm smlnj/lib/ckit-lib.cm
@dirrm smlnj/lib/dir-tool.cm/CM/x86-unix
@dirrm smlnj/lib/dir-tool.cm/CM
@dirrm smlnj/lib/dir-tool.cm
@@ -118,12 +127,18 @@ smlnj/lib/c.cm/CM/x86-unix/c.cm
@dirrm smlnj/lib/html-lib.cm/CM/x86-unix
@dirrm smlnj/lib/html-lib.cm/CM
@dirrm smlnj/lib/html-lib.cm
+@dirrm smlnj/lib/inet-lib.cm/CM/x86-unix
+@dirrm smlnj/lib/inet-lib.cm/CM
+@dirrm smlnj/lib/inet-lib.cm
@dirrm smlnj/lib/lex-ext.cm/CM/x86-unix
@dirrm smlnj/lib/lex-ext.cm/CM
@dirrm smlnj/lib/lex-ext.cm
@dirrm smlnj/lib/make-tool.cm/CM/x86-unix
@dirrm smlnj/lib/make-tool.cm/CM
@dirrm smlnj/lib/make-tool.cm
+@dirrm smlnj/lib/memory.cm/CM/x86-unix
+@dirrm smlnj/lib/memory.cm/CM
+@dirrm smlnj/lib/memory.cm
@dirrm smlnj/lib/ml-yacc-lib.cm/CM/x86-unix
@dirrm smlnj/lib/ml-yacc-lib.cm/CM
@dirrm smlnj/lib/ml-yacc-lib.cm
@@ -148,6 +163,12 @@ smlnj/lib/c.cm/CM/x86-unix/c.cm
@dirrm smlnj/lib/pp-lib.cm/CM/x86-unix
@dirrm smlnj/lib/pp-lib.cm/CM
@dirrm smlnj/lib/pp-lib.cm
+@dirrm smlnj/lib/reactive-lib.cm/CM/x86-unix
+@dirrm smlnj/lib/reactive-lib.cm/CM
+@dirrm smlnj/lib/reactive-lib.cm
+@dirrm smlnj/lib/regexp-lib.cm/CM/x86-unix
+@dirrm smlnj/lib/regexp-lib.cm/CM
+@dirrm smlnj/lib/regexp-lib.cm
@dirrm smlnj/lib/shell-tool.cm/CM/x86-unix
@dirrm smlnj/lib/shell-tool.cm/CM
@dirrm smlnj/lib/shell-tool.cm
@@ -181,26 +202,5 @@ smlnj/lib/c.cm/CM/x86-unix/c.cm
@dirrm smlnj/lib/unix-lib.cm/CM/x86-unix
@dirrm smlnj/lib/unix-lib.cm/CM
@dirrm smlnj/lib/unix-lib.cm
-@dirrm smlnj/lib/inet-lib.cm/CM/x86-unix
-@dirrm smlnj/lib/inet-lib.cm/CM
-@dirrm smlnj/lib/inet-lib.cm
-@dirrm smlnj/lib/regexp-lib.cm/CM/x86-unix
-@dirrm smlnj/lib/regexp-lib.cm/CM
-@dirrm smlnj/lib/regexp-lib.cm
-@dirrm smlnj/lib/reactive-lib.cm/CM/x86-unix
-@dirrm smlnj/lib/reactive-lib.cm/CM
-@dirrm smlnj/lib/reactive-lib.cm
-@dirrm smlnj/lib/ckit-lib.cm/CM/x86-unix
-@dirrm smlnj/lib/ckit-lib.cm/CM
-@dirrm smlnj/lib/ckit-lib.cm
-@dirrm smlnj/lib/memory.cm/CM/x86-unix
-@dirrm smlnj/lib/memory.cm/CM
-@dirrm smlnj/lib/memory.cm
-@dirrm smlnj/lib/c-int.cm/CM/x86-unix
-@dirrm smlnj/lib/c-int.cm/CM
-@dirrm smlnj/lib/c-int.cm
-@dirrm smlnj/lib/c.cm/CM/x86-unix
-@dirrm smlnj/lib/c.cm/CM
-@dirrm smlnj/lib/c.cm
@dirrm smlnj/lib
@dirrm smlnj