aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKurt Jaeger <pi@FreeBSD.org>2014-07-30 19:42:50 +0000
committerKurt Jaeger <pi@FreeBSD.org>2014-07-30 19:42:50 +0000
commite49a2b510bb92aad6ed9c13ba726e27d72c58550 (patch)
treec10fde69e14ac19ce1d4153f198c2cbaeec7234d
parent460a00fdfda6713fb5c5067f7d20943448c8ffe8 (diff)
downloadports-e49a2b510bb92aad6ed9c13ba726e27d72c58550.tar.gz
ports-e49a2b510bb92aad6ed9c13ba726e27d72c58550.zip
Notes
-rw-r--r--MOVED2
-rw-r--r--lang/Makefile3
-rw-r--r--lang/sml-nj-devel/distinfo40
-rw-r--r--lang/sml-nj-devel/files/patch-config_install.sh116
-rw-r--r--lang/sml-nj-devel/files/pkg-install.in577
-rw-r--r--lang/sml-nj-devel/files/plist-everything47
-rw-r--r--lang/sml-nj-devel/pkg-descr7
-rw-r--r--lang/sml-nj/Makefile105
-rw-r--r--lang/sml-nj/distinfo22
-rw-r--r--lang/sml-nj/files/extra-patch-cpp11
-rw-r--r--lang/sml-nj/files/extra-patch-genposixnames33
-rw-r--r--lang/sml-nj/files/extra-patch-global-names11
-rw-r--r--lang/sml-nj/files/extra-patch-signals21
-rw-r--r--lang/sml-nj/files/patch-ab38
-rw-r--r--lang/sml-nj/pkg-descr7
-rw-r--r--lang/sml-nj/pkg-plist624
-rw-r--r--lang/sml-nj/scripts/get-cm81
-rw-r--r--lang/smlnj/Makefile (renamed from lang/sml-nj-devel/Makefile)233
-rw-r--r--lang/smlnj/distinfo40
-rw-r--r--lang/smlnj/files/do-patch-base_runtime_objs_makefile43
-rw-r--r--lang/smlnj/files/do-patch-base_runtime_objs_mk.x86-freebsd37
-rw-r--r--lang/smlnj/files/extra-patch-base_runtime_c-libs_smlnj-math_ctlrndmode.c22
-rw-r--r--lang/smlnj/files/extra-patch-base_runtime_include_freebsd-8-i386-__types.h137
-rw-r--r--lang/smlnj/files/extra-patch-base_runtime_include_freebsd-8-i386-endian.h139
-rw-r--r--lang/smlnj/files/extra-patch-base_runtime_include_freebsd-8-i386-ieeefp.h262
-rw-r--r--lang/smlnj/files/extra-patch-base_runtime_include_freebsd-8-i386-signal.h137
-rw-r--r--lang/smlnj/files/extra-patch-base_runtime_include_freebsd-9-i386-__types.h131
-rw-r--r--lang/smlnj/files/extra-patch-base_runtime_include_freebsd-9-i386-endian.h148
-rw-r--r--lang/smlnj/files/extra-patch-base_runtime_include_ml-unixdep.h18
-rw-r--r--lang/smlnj/files/patch-config___arch-n-opsys11
-rw-r--r--lang/smlnj/files/patch-config___heap2exec33
-rw-r--r--lang/smlnj/files/patch-config_install.sh180
-rw-r--r--lang/smlnj/files/pkg-install.in (renamed from lang/sml-nj/files/pkg-install.in)26
-rw-r--r--lang/smlnj/pkg-descr12
-rw-r--r--lang/smlnj/pkg-plist (renamed from lang/sml-nj-devel/pkg-plist)60
35 files changed, 1587 insertions, 1827 deletions
diff --git a/MOVED b/MOVED
index aeb4ff652ef2..4c568289a77a 100644
--- a/MOVED
+++ b/MOVED
@@ -6353,3 +6353,5 @@ devel/cl-trivial-gray-streams-clisp||2014-07-28|Has expired: Depends on deprecat
lang/clisp||2014-07-28|Has expired: development has ceased, not staged
print/texpower|print/texlive-texmf|2014-07-28|Has been incorporated in TeXLive
print/tex-mfpic|print/texlive-texmf|2014-07-28|Has been incorporated in TeXLive
+lang/sml-nj-devel|lang/smlnj|2014-07-30|The -devel was updated and is now production-ready
+lang/sml-nj|lang/smlnj|2014-07-30|Use lang/smlnj as newer version
diff --git a/lang/Makefile b/lang/Makefile
index 5d448ca03548..f358a48a91b7 100644
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -305,8 +305,7 @@
SUBDIR += slisp
SUBDIR += smalltalk
SUBDIR += sml-mode.el
- SUBDIR += sml-nj
- SUBDIR += sml-nj-devel
+ SUBDIR += smlnj
SUBDIR += snobol4
SUBDIR += spidermonkey17
SUBDIR += spidermonkey170
diff --git a/lang/sml-nj-devel/distinfo b/lang/sml-nj-devel/distinfo
deleted file mode 100644
index b1f8e9f103ff..000000000000
--- a/lang/sml-nj-devel/distinfo
+++ /dev/null
@@ -1,40 +0,0 @@
-SHA256 (sml-nj/110.71/MLRISC.tgz) = fe86100738b12fb7edbbddf66626b96d4d13c149dd71e0cfb8132a92a7522ae1
-SIZE (sml-nj/110.71/MLRISC.tgz) = 1435231
-SHA256 (sml-nj/110.71/boot.x86-unix.tgz) = 2f1a41e6639963a5c09b453d941c4ac7c62d5043e2cc2b25d2a18feb7517bc04
-SIZE (sml-nj/110.71/boot.x86-unix.tgz) = 5849700
-SHA256 (sml-nj/110.71/ckit.tgz) = fc8320898b17106bf759bc813c69aecfe1732d0c13e9b54ed5522920bbd562a7
-SIZE (sml-nj/110.71/ckit.tgz) = 199404
-SHA256 (sml-nj/110.71/cm.tgz) = 40bb024769f28a70b45e4ad87bb781c1277c4fa0de7ae1b5109263ed073c0300
-SIZE (sml-nj/110.71/cm.tgz) = 202311
-SHA256 (sml-nj/110.71/cml.tgz) = 469f013db2e6abae40db34f4e78c0ce556a730c6b9a567eea35df7aa2f6b1f96
-SIZE (sml-nj/110.71/cml.tgz) = 104707
-SHA256 (sml-nj/110.71/compiler.tgz) = 3040cc3fed1f2b00f33d290bd52e999a8ea73d2ba847bbe5b16165276c07afaf
-SIZE (sml-nj/110.71/compiler.tgz) = 825457
-SHA256 (sml-nj/110.71/config.tgz) = accafba082cb3b7e2bbfff3221bbe49dcfb8029a5d6f8002f98597890870a3be
-SIZE (sml-nj/110.71/config.tgz) = 512911
-SHA256 (sml-nj/110.71/eXene.tgz) = 23b12302c8fdeb4c94918cf1c24739c72f01114597b3bfef817c58943ec2c467
-SIZE (sml-nj/110.71/eXene.tgz) = 714564
-SHA256 (sml-nj/110.71/heap2asm.tgz) = 01cae1f1d5217405e367d0efd1385161602d3f0828f54e794190baa13d733d0f
-SIZE (sml-nj/110.71/heap2asm.tgz) = 1326
-SHA256 (sml-nj/110.71/ml-burg.tgz) = 429f2e974db4131c74eea141902491af9df1d55bc2c0767356434bab13b90dd5
-SIZE (sml-nj/110.71/ml-burg.tgz) = 36670
-SHA256 (sml-nj/110.71/ml-lex.tgz) = 0a951e91caa43e025eeaa03879764e93519e82ace817eaf86d5c0f469360322b
-SIZE (sml-nj/110.71/ml-lex.tgz) = 33060
-SHA256 (sml-nj/110.71/ml-lpt.tgz) = e5c3489a9d60d4d45a266240e380a497b05f8f45ba44da83a704c4388cf664d1
-SIZE (sml-nj/110.71/ml-lpt.tgz) = 254684
-SHA256 (sml-nj/110.71/ml-yacc.tgz) = 3e5b9ec0af3704c7045a43d974902abddecefd8d25a41225b06b7390dcf29453
-SIZE (sml-nj/110.71/ml-yacc.tgz) = 102023
-SHA256 (sml-nj/110.71/nlffi.tgz) = dc23c4ea4101f918fe5f92622c9b34b88cb91c62c2c41911e7117a7aa389f44a
-SIZE (sml-nj/110.71/nlffi.tgz) = 75182
-SHA256 (sml-nj/110.71/pgraph.tgz) = e9514a3c8c002627bf2297bca020028d6d27a6a3c31f940db1dcf2dc3941885b
-SIZE (sml-nj/110.71/pgraph.tgz) = 5454
-SHA256 (sml-nj/110.71/runtime.tgz) = ec6d38c782876db979a7b03444ded0bfaa0154d8e88c0a7befa6836f9b235763
-SIZE (sml-nj/110.71/runtime.tgz) = 334109
-SHA256 (sml-nj/110.71/smlnj-c.tgz) = 1ae91e81e77b422367f34fa1bedced1235ba0da5363b075e62bc0d39a55e8fde
-SIZE (sml-nj/110.71/smlnj-c.tgz) = 10625
-SHA256 (sml-nj/110.71/smlnj-lib.tgz) = 3dd4cbe21bd9d2917d22d8b793776e6c519f175ddb96f6339f890f69d54feda9
-SIZE (sml-nj/110.71/smlnj-lib.tgz) = 259309
-SHA256 (sml-nj/110.71/system.tgz) = 6279962f447ce17df64a3c52e8c10f98f0e09b41d5418077d5880a9445eb3ad3
-SIZE (sml-nj/110.71/system.tgz) = 239973
-SHA256 (sml-nj/110.71/trace-debug-profile.tgz) = 3b4db9f3546c02ce5c4510e070ee304b768914914e47acdbae3a82397df1ac28
-SIZE (sml-nj/110.71/trace-debug-profile.tgz) = 3935
diff --git a/lang/sml-nj-devel/files/patch-config_install.sh b/lang/sml-nj-devel/files/patch-config_install.sh
deleted file mode 100644
index b73747a51a73..000000000000
--- a/lang/sml-nj-devel/files/patch-config_install.sh
+++ /dev/null
@@ -1,116 +0,0 @@
---- config/install.sh.orig Tue May 22 18:48:30 2007
-+++ config/install.sh Sun Sep 16 02:56:22 2007
-@@ -18,6 +18,8 @@
- nolib=false
- fi
-
-+[ -n "$RECOMPILEDIR" ] && echo "RECOMPILEDIR=$RECOMPILEDIR"
-+
- if [ x${INSTALL_QUIETLY} = xtrue ] ; then
- export CM_VERBOSE
- CM_VERBOSE=false
-@@ -38,6 +40,28 @@
- exit 1
- }
-
-+#
-+# do_patch patch-file
-+# apply a patch file
-+do_patch() {
-+ patchfile=$FILESDIR/$1
-+
-+ if [ ! -r $patchfile ]; then
-+ echo "$this: !!! patch file $patchfile not found."
-+ exit 1;
-+ fi
-+
-+ if [ ! -f $CONFIGDIR/.patch_$1 ]; then
-+ $PATCH $PATCH_ARGS < $patchfile || {\
-+ echo "$this: !!! patch file $patchfile failed to patch."
-+ exit 1;
-+ }
-+ echo > $CONFIGDIR/.patch_$1
-+ else
-+ echo "$this: patch $patchfile already installed."
-+ fi
-+}
-+
- this=$0
-
-
-@@ -308,7 +332,12 @@
- # the name of the bin files directory
- #
- BOOT_ARCHIVE=boot.$ARCH-unix
--BOOT_FILES=sml.$BOOT_ARCHIVE
-+if [ -z "$RECOMPILEDIR" ]
-+then
-+ BOOT_FILES=sml.$BOOT_ARCHIVE
-+else
-+ BOOT_FILES=$RECOMPILEDIR/sml.$BOOT_ARCHIVE
-+fi
-
- #
- # build the run-time system
-@@ -317,6 +346,11 @@
- vsay $this: Run-time system already exists.
- else
- "$CONFIGDIR"/unpack "$ROOT" runtime
-+ [ -n "$MLRUNTIMEPATCHES" ] && \
-+ for p in $MLRUNTIMEPATCHES
-+ do
-+ do_patch $p
-+ done
- cd "$BASEDIR"/runtime/objs
- echo $this: Compiling the run-time system.
- $MAKE -f mk.$ARCH-$OPSYS $EXTRA_DEFS
-@@ -331,7 +365,7 @@
- if [ -f run.$ARCH-$OPSYS.a ]; then
- mv run.$ARCH-$OPSYS.a "$RUNDIR"
- fi
-- $MAKE MAKE=$MAKE clean
-+ [ "$MLNORUNTIMECLEAN" ] || $MAKE MAKE=$MAKE clean
- else
- complain "$this: !!! Run-time system build failed for some reason."
- fi
-@@ -357,7 +391,7 @@
- complain "$this !!! Unable to re-create heap image (sml.$HEAP_SUFFIX)."
- fi
- else
-- "$CONFIGDIR"/unpack "$ROOT" "$BOOT_ARCHIVE"
-+ [ -n "$RECOMPILEDIR" ] || "$CONFIGDIR"/unpack "$ROOT" "$BOOT_ARCHIVE"
-
- fish "$ROOT"/"$BOOT_FILES"/smlnj/basis
-
-@@ -415,6 +449,18 @@
-
- cd "$ROOT"
-
-+# apply source patches for standard targets
-+[ -n "$MLSTANDARDPATCHDIRS" ] && \
-+for d in $MLSTANDARDPATCHDIRS
-+do
-+ "$CONFIGDIR"/unpack "$ROOT" "$d"
-+done
-+[ -n "$MLSTANDARDPATCHES" ] && \
-+for p in $MLSTANDARDPATCHES
-+do
-+ do_patch $p
-+done
-+
- #
- # Now do all the rest using the precompiled installer:
- #
-@@ -430,5 +476,12 @@
- complain "$this: !!! Installation of libraries and programs failed."
- fi
- fi
-+
-+# apply all source patches
-+[ -n "$MLSOURCEPATCHES" ] && \
-+for p in $MLSOURCEPATCHES
-+do
-+ do_patch $p
-+done
-
- exit 0
diff --git a/lang/sml-nj-devel/files/pkg-install.in b/lang/sml-nj-devel/files/pkg-install.in
deleted file mode 100644
index cdc3840a86c7..000000000000
--- a/lang/sml-nj-devel/files/pkg-install.in
+++ /dev/null
@@ -1,577 +0,0 @@
-#!/bin/sh
-# This file was automatically created - don't modify it!
-#%%SOURCEINFO-START%%
-# source version: $Id: pkg-install.in,v 1.17 2007/08/30 13:09:47 joemann Exp $
-# installed by port/package: %%SOURCEINFO-PACKAGE%%
-# installed from file: %%SOURCEINFO-FILE%%
-#%%SOURCEINFO-END%%
-if [ -n "$MULTIEXEC_WRAPPER_VERBOSE" ]
-then
- QUIET=0
-else
- QUIET=1
-fi
-#%%PKG-INSTALL-START%%
-# ===== IMPORTANT =====
-# If you modify any byte of this script outside of the
-# %%SOURCEINFO-*%% and #%%PKG-INSTALL-*%% sections, then
-# don't forget to bump the MINOR version variable below!
-#
-case "$2" in
- # no-op cases if called as port/package de/installation script
- PRE-INSTALL|POST-DEINSTALL)
- exit 0
- ;;
-esac
-#%%PKG-INSTALL-END%%
-
-ME=multiexec-wrapper
-CALLED_NAME="`basename $0`"
-PREFIX=%%PREFIX%%
-CONFIG="$PREFIX/etc/$ME.conf"
-
-lookup_executable() {
- local calledname pkgname name executable rest \
- portname version envvarname envvarversion result
- # use global variable for the result to avoid subshell
- lookup_executable_result=
- [ -r "$CONFIG" ] || return 1
- calledname="$1"
- result=
- while read pkgname name executable rest
- do
- if [ "$name" = "$calledname" -a -n "$executable" ]
- then
- result="$executable"
- portname=`expr "$pkgname" : "\(.*\)-"`
- envvarname="`echo -n "$portname" | \
- tr "[:lower:]" "[:upper:]" | \
- tr -cs "[:alnum:]" "_"`"
- # <PORTNAME> variable selects package if name matches
- eval envvarvalue='$'"$envvarname"
- if [ -n "$envvarvalue" ]
- then
- break
- fi
- # <PORTNAME>_VERSION variable selects package version
- version=`expr "$pkgname" : ".*-\([^-_,]*\)"`
- eval envvarversion='$'"$envvarname"_VERSION
- if [ "$envvarversion" = "$version" ]
- then
- break
- fi
- fi
- done < "$CONFIG"
- lookup_executable_result="$result"
-}
-
-warn () {
- echo "${ME}: $1" 1>&2
-}
-
-die () {
- warn "$1"
- exit 1
-}
-
-# Normal usage: if called through a symlink,
-# lookup and exec a registered executable.
-
-if [ -L "$0" -a "$CALLED_NAME" != "$ME" ]
-then
- lookup_executable "$CALLED_NAME"
- executable="$lookup_executable_result"
- if [ -x "$executable" ]
- then
- exec "$executable" "$@"
- elif [ -z "$executable" ]
- then
- die "no executable registered for '$CALLED_NAME'."
- elif [ ! -e "$executable" ]
- then
- die "$executable does not exist."
- else
- die "$executable is not executable."
- fi
-fi
-
-EPOCH=1
-CONFIG_FORMAT=1
-MAJOR=1
-MINOR=1
-VERSION=$EPOCH.$CONFIG_FORMAT.$MAJOR.$MINOR
-
-usage() {
- echo "usage: $ME <cmd> <arg> ..."
- echo " with one of the following <cmd>s:"
-#%%PKG-INSTALL-START%%
- echo " install-self-to <prefix> <pkgname>"
- echo " deinstall-self-from <prefix>"
-#%%PKG-INSTALL-END%%
- echo " deinstall-pkg <pkgname>"
- echo " register <pkgname> <name> <executable>"
- echo " unregister <pkgname> <name> <executable>"
- echo " version"
- echo " which <name>"
- echo " list-all-packages"
- echo " list-packages-for-name <name>"
- exit 1
-}
-
-say () {
- [ $QUIET -gt 0 ] || echo "${ME}: $1"
-}
-
-version() {
- echo "$VERSION"
- exit 0
-}
-
-which() {
- local name executable
- name="$1"
- lookup_executable "$name"
- executable="$lookup_executable_result"
- [ -z "$executable" ] && return 1
- echo "$executable"
-}
-
-#%%PKG-INSTALL-START%%
-install_self_to() {
- local pkgname myself target oldversion
- PREFIX="$1"
- pkgname="$2"
- myself=`realpath "$0"`
- target="$PREFIX/bin/$ME"
- MYSELF_INSTALLED="$target"
- if [ -e "$target" ]
- then
- if [ ! -x "$target" ]
- then
- die "$target already exists but is not executable."
- else
- oldversion=`$target version 2>/dev/null`
- if [ $? -ne 0 ]
- then
- die "bogus $target already exists."
- elif [ "$oldversion" = "$VERSION" ]
- then
- oldmd5=`sed -e '/^#%%PKG-INSTALL-START%%$/,/^#%%PKG-INSTALL-END%%$/d' \
- -e '/^#%%SOURCEINFO-START%%$/,/^#%%SOURCEINFO-END%%$/d' \
- -e 's?%%PREFIX%%?'"$PREFIX"'?g' "$target" | \
- md5 -q`
- newmd5=`sed -e '/^#%%PKG-INSTALL-START%%$/,/^#%%PKG-INSTALL-END%%$/d' \
- -e '/^#%%SOURCEINFO-START%%$/,/^#%%SOURCEINFO-END%%$/d' \
- -e 's?%%PREFIX%%?'"$PREFIX"'?g' "$myself" | \
- md5 -q`
- if [ "$newmd5" = "$oldmd5" ]
- then
- say "$myself (version $VERSION) already installed as $target."
- return
- else
- die "$myself and $target have same version ($VERSION) but differ."
- fi
- elif [ `pkg_version -t "$oldversion" "$VERSION"` != "<" ]
- then
- say "$myself (version $VERSION) is not newer than $target (version $oldversion)."
- fi
- fi
- fi
- if sed -e '/^#%%PKG-INSTALL-START%%$/,/^#%%PKG-INSTALL-END%%$/d' \
- -e 's?%%SOURCEINFO-PACKAGE%%?'"$pkgname"'?g' \
- -e 's?%%SOURCEINFO-FILE%%?'"$myself"'?g' \
- -e 's?%%PREFIX%%?'"$PREFIX"'?g' "$0" > "$target" && \
- chmod +x "$target"
- then
- say "$0 (version $VERSION) installed as $target."
- return
- else
- die "failed to install $ME (version $VERSION) as $target."
- fi
-}
-
-deinstall_self_from() {
- local config_empty=1
- PREFIX="$1"
- MYSELF_INSTALLED="$PREFIX/bin/$ME"
- CONFIG="$PREFIX/etc/$ME.conf"
- if [ ! -e "$CONFIG" ]
- then
- say "$CONFIG does not exist."
- elif grep -v -q "^/SELF/" "$CONFIG"
- then
- say "$CONFIG is not empty."
- config_empty=0
- elif rm -f "$CONFIG"
- then
- say "$CONFIG removed."
- else
- warn "failed to remove $CONFIG."
- fi
- if [ "$config_empty" -eq 1 ]
- then
- if [ ! -e "$MYSELF_INSTALLED" ]
- then
- warn "$MYSELF_INSTALLED does not exist."
- elif rm -f "$MYSELF_INSTALLED"
- then
- say "$MYSELF_INSTALLED removed."
- else
- warn "failed to remove $MYSELF_INSTALLED."
- fi
- fi
-}
-
-#%%PKG-INSTALL-END%%
-
-config_init() {
- local format oldformat pkgname name executable rest
- format="$EPOCH.$CONFIG_FORMAT"
- if [ -r "$CONFIG" -a -s "$CONFIG" ]
- then
- oldformat=`cat "$CONFIG" | \
- while read pkgname name executable rest
- do
- if [ "$pkgname" = "/SELF/" -a "$name" = "/FORMAT/" ]
- then
- echo "$executable"
- break
- fi
- done`
- if [ -z "$oldformat" ]
- then
- say "old $CONFIG has no format information - backing up ..."
- if mv "$CONFIG" "$CONFIG.bak"
- then
- say "... done"
- else
- die "failed to backup old $CONFIG."
- fi
- elif [ "$oldformat" = "$format" ]
- then
- say "matching format statement found in $CONFIG."
- else
- # XXX compare versions and try to upgrade if appropriate
- die "differing format statement found in $CONFIG ($executable instead of $format)."
- fi
- elif echo "/SELF/ /FORMAT/ $format" > "$CONFIG"
- then
- say "$CONFIG initialized."
- else
- die "failed to initialize $CONFIG"
- fi
-}
-
-lookup_matches() {
- local pkgname name executable rest p n e r
- pkgname="$1"
- name="$2"
- executable="$3"
- [ -r "$CONFIG" ] || return 1
- cat "$CONFIG" | \
- while read p n e r
- do
- [ "$pkgname" = "" -o "$p" = "$pkgname" ] && \
- [ "$name" = "" -o "$n" = "$name" ] && \
- [ "$executable" = "" -o "$e" = "$executable" ] && \
- echo "$p $n $e"
- done
- return 0
-}
-
-config_add() {
- local pkgname name executable matches
- pkgname="$1"
- name="$2"
- executable="$3"
- if [ ! -e "$CONFIG" ]
- then
- config_init
- fi
- if [ ! -r "$CONFIG" ]
- then
- die "$CONFIG not readable."
- else
- matches=`lookup_matches "$pkgname" "$name" "$executable"`
- if [ -n "$matches" ]
- then
- say "already registered in $CONFIG: $pkgname $name $executable"
- return
- elif [ ! -w "$CONFIG" ]
- then
- die "$CONFIG is not writeable"
- fi
- fi
- if echo "$pkgname $name $executable" >> "$CONFIG"
- then
- say "now added to config: $pkgname $name $executable"
- else
- die "write failed while trying to add to $CONFIG: $pkgname $name $executable"
- fi
-}
-
-config_delete() {
- local pkgname name executable matches
- pkgname="$1"
- name="$2"
- executable="$3"
- if [ ! -e "$CONFIG" ]
- then
- die "failed to delete from config: $CONFIG does not exist."
- elif [ ! -r "$CONFIG" ]
- then
- die "$CONFIG not readable."
- else
- matches=`lookup_matches "$pkgname" "$name" "$executable"`
- if [ -z "$matches" ]
- then
- say "no entry found in config for: $pkgname $name $executable."
- elif [ ! -w "$CONFIG" ]
- then
- die "$CONFIG is not writeable."
- elif [ ! -w `dirname "$CONFIG"` ]
- then
- die "config directory `dirname $CONFIG` is not writeable."
- elif awk '$1 != "'"$pkgname"'" || \
- $2 != "'"$name"'" || \
- $3 != "'"$executable"'"' \
- "$CONFIG" > "$CONFIG.new"
- then
- if diff -q "$CONFIG" "$CONFIG.new" >/dev/null
- then
- say "failed to delete from config (match problem): $pkgname $name $executable."
- rm "$CONFIG.new"
- elif mv -f "$CONFIG.new" "$CONFIG"
- then
- say "deleted from config: $pkgname $name $executable."
- else
- die "failed to update $CONFIG."
- fi
- else
- die "failed to create new config $CONFIG.new."
- fi
- fi
-}
-
-register() {
- local pkgname name executable savedwd
- pkgname="$1"
- name="$2"
- executable="$3"
- savedwd=$PWD
- if [ ! -e "$executable" ]
- then
- die "won't register ${name}: $executable does not exist"
- elif [ ! -x "$executable" ]
- then
- die "won't register ${name}: $executable is not executable"
- elif cd "$PREFIX/bin"
- then
- if [ -e "$name" ]
- then
- if [ -L "$name" ]
- then
- target=`readlink $name`
- if [ "$target" = "$ME" ]
- then
- say "symlink $name -> $ME already exists."
- else
- die "symlink $name already exists, but does not point to $ME (instead to $target)."
- fi
- else
- die "$name already exists, but is not a symlink."
- fi
- else
- if ln -s "$ME" "$name"
- then
- say "symlink $name -> $ME created."
- else
- die "failed to create symlink $name -> $ME."
- fi
- fi
- config_add "$pkgname" "$name" "$executable"
- else
- die "can't cd to $PREFIX/bin."
- fi
- cd "$savedwd"
-}
-
-unregister() {
- local pkgname name executable savedwd matches count
- pkgname="$1"
- name="$2"
- executable="$3"
- savedwd=$PWD
- if [ ! -e "$executable" ]
- then
- say "while unregistering ${name}: $executable does not exist"
- elif [ ! -x "$executable" ]
- then
- say "while unregistering ${name}: $executable is not executable"
- fi
- if cd "$PREFIX/bin"
- then
- if [ ! -e "$name" ]
- then
- say "symlink $name does not exist."
- elif [ ! -L "$name" ]
- then
- say "$name exists, but is not a symlink."
- else
- target=`readlink $name`
- if [ "$target" != "$ME" ]
- then
- say "symlink $name exists, but does not point to $ME (instead to $target)."
- else
- matches=`lookup_matches "" "$name"`
- count=`printf "%s" "$matches" | wc -l`
- if [ "$count" -eq 0 -o \
- \( "$count" -eq 1 -a \
- `expr "$matches" : "${pkgname}-"` -gt 0 \) ]
- then
- if rm -f "$name"
- then
- say "symlink $name removed."
- else
- die "failed to remove symlink $name -> $ME."
- fi
- else
- say "not removing symlink $name because of further config entries."
- fi
- fi
- fi
- config_delete "$pkgname" "$name" "$executable"
- else
- die "can't cd to $PREFIX/bin."
- fi
- cd "$savedwd"
-}
-
-deinstall_pkg() {
- local pkgname matches count p n e r
- pkgname="$1"
- matches=`lookup_matches "$pkgname"`
- if [ $? -ne 0 ]
- then
- die "reading $CONFIG failed."
- elif [ -z "$matches" ]
- then
- say "no entries for package $package in $CONFIG."
- else
- count=`printf "%s" "$matches" | wc -l`
- say "trying to unregister $count entries for package $pkgname."
- cat "$CONFIG" | \
- while read p n e r
- do
- if [ "$p" = "$pkgname" ]
- then
- if [ -z "$n" ]
- then
- warn "in $CONFIG: incomplete config entry (no name) found for package $pkgname."
- elif [ -z "$e" ]
- then
- warn "in $CONFIG: incomplete config entry (no executable) found for package $pkgname, name $name."
- else
- unregister "$pkgname" "$n" "$e"
- fi
- fi
- done
- fi
-}
-
-
-#%%PKG-INSTALL-START%%
-case "$2" in
- POST-INSTALL)
- PKGNAME="$1"
- install_self_to "$PKG_PREFIX" "$PKGNAME"
- "$MYSELF_INSTALLED" config-init || die "config-init of $CONFIG failed."
- for exename in %%EXENAMES%%
- do
- exepath="$PKG_PREFIX/%%EXEBINDIR%%/$exename"
- if [ -x "$exepath" ]
- then
- "$MYSELF_INSTALLED" register "$PKGNAME" "$exename" "$exepath" \
- || die "failure during registration - aborting."
- else
- die "not an executable: $exepath."
- fi
- done
- ;;
- DEINSTALL)
- PKGNAME="$1"
- PREFIX="$PKG_PREFIX"
- CONFIG="$PREFIX/etc/$ME.conf"
- MYSELF_INSTALLED="$PREFIX/bin/$ME"
- doitmyself=0
- if [ ! -e "$MYSELF_INSTALLED" ]
- then
- say "$ME was not (or is no longer) installed as $MYSELF_INSTALLED."
- doitmyself=1
- elif [ ! -x "$MYSELF_INSTALLED" ]
- then
- say "$MYSELF_INSTALLED is not executable."
- doitmyself=1
- fi
- if [ "$doitmyself" -eq 0 ]
- then
- "$MYSELF_INSTALLED" deinstall-pkg "$PKGNAME"
- else
- deinstall_pkg "$PKGNAME"
- fi
- deinstall_self_from "$PKG_PREFIX"
- ;;
-esac
-#%%PKG-INSTALL-END%%
-
-list_all_packages() {
- grep -v "^/" "$CONFIG" | \
- awk '{ print $1 }' | \
- uniq
-}
-
-list_packages_for_name() {
- local name="$1"
- lookup_matches "" "$name" "" | \
- awk '{ print $1 }'
-}
-
-# main
-
-case "$1" in
-""|-h|--help)
- usage
- ;;
-#%%PKG-INSTALL-START%%
-install-self-to)
- install_self_to "$2" "$3"
- ;;
-deinstall-self-from)
- deinstall_self_from "$2"
- ;;
-#%%PKG-INSTALL-END%%
-version)
- version
- ;;
-which)
- which "$2"
- ;;
-config-init)
- config_init
- ;;
-register)
- register "$2" "$3" "$4"
- ;;
-unregister)
- unregister "$2" "$3" "$4"
- ;;
-deinstall-pkg)
- deinstall_pkg "$2"
- ;;
-list-all-packages)
- list_all_packages "$2"
- ;;
-list-packages-for-name)
- list_packages_for_name "$2"
- ;;
-esac
diff --git a/lang/sml-nj-devel/files/plist-everything b/lang/sml-nj-devel/files/plist-everything
deleted file mode 100644
index 2cffca4b899e..000000000000
--- a/lang/sml-nj-devel/files/plist-everything
+++ /dev/null
@@ -1,47 +0,0 @@
-smlnj/bin/.heap/ml-burg.%%MLARCH%%-bsd
-smlnj/bin/.heap/ml-nlffigen.%%MLARCH%%-bsd
-smlnj/bin/.heap/nowhere.%%MLARCH%%-bsd
-smlnj/bin/ml-burg
-smlnj/bin/ml-nlffigen
-smlnj/bin/nowhere
-smlnj/lib/burg-ext.cm/.cm/%%MLARCH%%-unix/burg-ext.cm
-smlnj/lib/c/.cm/%%MLARCH%%-unix/c.cm
-smlnj/lib/c/internals/.cm/%%MLARCH%%-unix/c-int.cm
-smlnj/lib/c/memory/.cm/%%MLARCH%%-unix/memory.cm
-smlnj/lib/ckit-lib.cm/.cm/%%MLARCH%%-unix/ckit-lib.cm
-smlnj/lib/eXene.cm/.cm/%%MLARCH%%-unix/eXene.cm
-smlnj/lib/mlburg-tool.cm/.cm/%%MLARCH%%-unix/mlburg-tool.cm
-smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/match-compiler.cm
-smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/parser.cm
-smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/pp.cm
-smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/prec-parser.cm
-smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/sml-ast.cm
-smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/source-map.cm
-smlnj/lib/pgraph-util.cm/.cm/%%MLARCH%%-unix/pgraph-util.cm
-@dirrm smlnj/lib/burg-ext.cm/.cm/%%MLARCH%%-unix
-@dirrm smlnj/lib/burg-ext.cm/.cm
-@dirrm smlnj/lib/burg-ext.cm
-@dirrm smlnj/lib/c/memory/.cm/%%MLARCH%%-unix
-@dirrm smlnj/lib/c/memory/.cm
-@dirrm smlnj/lib/c/memory
-@dirrm smlnj/lib/c/internals/.cm/%%MLARCH%%-unix
-@dirrm smlnj/lib/c/internals/.cm
-@dirrm smlnj/lib/c/internals
-@dirrm smlnj/lib/c/.cm/%%MLARCH%%-unix
-@dirrm smlnj/lib/c/.cm
-@dirrm smlnj/lib/c
-@dirrm smlnj/lib/ckit-lib.cm/.cm/%%MLARCH%%-unix
-@dirrm smlnj/lib/ckit-lib.cm/.cm
-@dirrm smlnj/lib/ckit-lib.cm
-@dirrm smlnj/lib/eXene.cm/.cm/%%MLARCH%%-unix
-@dirrm smlnj/lib/eXene.cm/.cm
-@dirrm smlnj/lib/eXene.cm
-@dirrm smlnj/lib/mlburg-tool.cm/.cm/%%MLARCH%%-unix
-@dirrm smlnj/lib/mlburg-tool.cm/.cm
-@dirrm smlnj/lib/mlburg-tool.cm
-@dirrm smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix
-@dirrm smlnj/lib/mlrisc-tools/.cm
-@dirrm smlnj/lib/mlrisc-tools
-@dirrm smlnj/lib/pgraph-util.cm/.cm/%%MLARCH%%-unix
-@dirrm smlnj/lib/pgraph-util.cm/.cm
-@dirrm smlnj/lib/pgraph-util.cm
diff --git a/lang/sml-nj-devel/pkg-descr b/lang/sml-nj-devel/pkg-descr
deleted file mode 100644
index ef4aa3ed92ec..000000000000
--- a/lang/sml-nj-devel/pkg-descr
+++ /dev/null
@@ -1,7 +0,0 @@
-A Standard ML implementation from Bell-Labs. Implements the SML '97 definition
-including the new Basis library with a few minor omissions and discrepancies.
-
-WWW: http://www.smlnj.org/
-
-If you are interested in a lighter weight implementation of ML,
-the Moscow-ML port is recommended.
diff --git a/lang/sml-nj/Makefile b/lang/sml-nj/Makefile
deleted file mode 100644
index b846500fd83f..000000000000
--- a/lang/sml-nj/Makefile
+++ /dev/null
@@ -1,105 +0,0 @@
-# Created by: jkoshy
-# $FreeBSD$
-
-PORTNAME= smlnj
-PORTVERSION= 110.0.7
-PORTREVISION= 3
-CATEGORIES= lang
-MASTER_SITES= http://smlnj.cs.uchicago.edu/dist/release/110.0.7/ \
- ftp://flint.cs.yale.edu/pub/smlnj/release/110.0.7/ \
- SF/${PORTNAME}/${PORTNAME}-release/${PORTVERSION}
-
-DISTFILES= bin.x86-unix.tar.Z cm.tar.Z cml.tar.Z \
- config.tar.Z eXene.tar.Z \
- ml-burg.tar.Z ml-lex.tar.Z \
- ml-yacc.tar.Z runtime.tar.Z \
- smlnj-c.tar.Z smlnj-lib.tar.Z
-EXTRACT_ONLY= config.tar.Z
-
-MAINTAINER= joemann@beefree.free.de
-COMMENT= Popular functional language from Bell Labs
-
-BROKEN= Fails to build
-DEPRECATED= Broken for more than 6 months
-EXPIRATION_DATE= 2014-08-22
-
-# Other mirror sites that generally carry only released versions of SML
-# ftp://ftp.cl.cam.ac.uk/MIRRORED/smlnj/release/
-
-DIST_SUBDIR= sml-nj/${PORTVERSION}
-NO_WRKSUBDIR= yes
-USES= gmake
-
-ONLY_FOR_ARCHS= i386
-
-SUB_FILES= pkg-install
-SUB_LIST= EXEBINDIR=${SML_BASERELATIVE}/bin EXENAMES="${SML_EXES}"
-PKGDEINSTALL= ${PKGINSTALL}
-
-SML_BASERELATIVE= lib/sml-nj
-SML_BASE= ${PREFIX}/${SML_BASERELATIVE}
-SML_LIBDIR= ${SML_BASE}/lib
-SML_BINDIR= ${SML_BASE}/bin
-SML_SRCDIR= ${SML_BASE}/src
-SML_EXES= ml-burg ml-lex ml-yacc sml sml-cm
-
-# make symlinks to the dist files
-NO_STAGE= yes
-post-extract:
- cd ${WRKDIR} && ${LN} -sf ${_DISTDIR}/* .
-
-# The build target needs to run $WRKDIR/config/install.sh
-do-build:
- cd ${WRKDIR} && unset PWD && \
- FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="${PATCH_ARGS}" \
- ./config/install.sh
-
-# install target
-# 1. create installation directories
-# 2. copy the ./bin directory across
-# 3. edit bin/.run_sml to override BIN_DIR
-# 4. set up temporary symlinks from WRKDIR subdirs to SML_BASE
-# 5. run config/install.sh in SML_BASE in order to
-# 6. rebuild sml-cm with CM's paths pointing into SML_BASE
-# 7. remove the temporary symlinks
-# 8. copy all x86-unix directories
-# 9. find all .cm files reachable from $WRKDIR/lib and copy them across
-# 10. copy the aliases in ./lib changing WRKDIR to SML_LIBDIR
-# 11. install links to executables in $PREFIX/bin
-do-install:
- ${MKDIR} ${SML_BASE} ${SML_BINDIR} ${SML_LIBDIR}
- tar -C ${WRKDIR} -cf - bin | tar -C ${SML_BASE} -xf -
- ${RM} -f ${SML_BINDIR}/.run-sml
- ${SED} -e "s,^BIN_DIR=.*\$$,BIN_DIR=${SML_BINDIR}," \
- < ${WRKDIR}/bin/.run-sml > ${SML_BINDIR}/.run-sml
- ${CHMOD} 755 ${SML_BINDIR}/.run-sml
- ${LN} -s ${WRKDIR}/config ${SML_BASE}
- ${LN} -s ${WRKDIR}/bin.x86-unix ${SML_BASE}
- ${LN} -s ${WRKDIR}/src ${SML_BASE}
- ${RM} ${SML_BINDIR}/.heap/sml*
- cd ${SML_BASE} && config/install.sh
- ${RM} ${SML_BASE}/config
- ${RM} ${SML_BASE}/bin.x86-unix
- ${RM} ${SML_BASE}/src
- cd ${WRKDIR} && tar -cf - `${FIND} . -name x86-unix` | \
- tar -C ${SML_BASE} -xf -
- cd ${WRKDIR} && tar -cf - `${SCRIPTDIR}/get-cm ${WRKDIR}` | \
- tar -C ${SML_BASE} -xf -
- for f in ${WRKDIR}/lib/*; do\
- ${SED} -e "s,${WRKDIR},${SML_BASE}," < $$f > \
- ${SML_LIBDIR}/`${BASENAME} $$f`; \
- done
- @${CHOWN} -R ${BINOWN}:${BINGRP} ${SML_BINDIR}
- @${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${SML_SRCDIR}
-
-post-install:
- PKG_PREFIX=${PREFIX} MULTIEXEC_WRAPPER_VERBOSE=yes \
- ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
-
-.ifndef MULTIEXEC_WRAPPER_VERBOSE
-deinstall:
- export MULTIEXEC_WRAPPER_VERBOSE=yes && \
- cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} deinstall
-.endif
-
-.include <bsd.port.mk>
diff --git a/lang/sml-nj/distinfo b/lang/sml-nj/distinfo
deleted file mode 100644
index aa2780265cfb..000000000000
--- a/lang/sml-nj/distinfo
+++ /dev/null
@@ -1,22 +0,0 @@
-SHA256 (sml-nj/110.0.7/bin.x86-unix.tar.Z) = 17d0568ceb9c90b41c2a2f538fe336ee6c673ead7417e7a7ba489932e99e27b5
-SIZE (sml-nj/110.0.7/bin.x86-unix.tar.Z) = 3620350
-SHA256 (sml-nj/110.0.7/cm.tar.Z) = 4a0d068dfea62c40a6f4a8e76709e3a5f024de36de267c0282f80d8efc245ee2
-SIZE (sml-nj/110.0.7/cm.tar.Z) = 543905
-SHA256 (sml-nj/110.0.7/cml.tar.Z) = 9d541525c252ab9c313f8e7e9eb254b68f5edabbe8a9cd878805ff4c992b5b8c
-SIZE (sml-nj/110.0.7/cml.tar.Z) = 259665
-SHA256 (sml-nj/110.0.7/config.tar.Z) = c8f8fbc0276140297abf3cc95b876fbc4155d61d8fc41e80411c8cf53dc2ff01
-SIZE (sml-nj/110.0.7/config.tar.Z) = 10397
-SHA256 (sml-nj/110.0.7/eXene.tar.Z) = 3b8bcfc931dcd6589fb7493c9b396403db6d54aa2b1dd3c6b7d3460b511ef0f6
-SIZE (sml-nj/110.0.7/eXene.tar.Z) = 1118845
-SHA256 (sml-nj/110.0.7/ml-burg.tar.Z) = d79f63c1691e6662b5bac94d31315441c537a881016cf6b71e800bb1434cad83
-SIZE (sml-nj/110.0.7/ml-burg.tar.Z) = 99341
-SHA256 (sml-nj/110.0.7/ml-lex.tar.Z) = 53b2fcf130466be487ed2a5212d63dd7bb45f81626f16b29b69c1d31ed9b4124
-SIZE (sml-nj/110.0.7/ml-lex.tar.Z) = 46008
-SHA256 (sml-nj/110.0.7/ml-yacc.tar.Z) = ab1d6cfcf10e6bc4847debb446973966d08c5f0f6d9599f1f3275afa54181c84
-SIZE (sml-nj/110.0.7/ml-yacc.tar.Z) = 160157
-SHA256 (sml-nj/110.0.7/runtime.tar.Z) = 43805e80320c4532d342ebf967ef386aa1a90d8b6328777736a5676b605d72ed
-SIZE (sml-nj/110.0.7/runtime.tar.Z) = 615867
-SHA256 (sml-nj/110.0.7/smlnj-c.tar.Z) = 4ed05988cd3ab75ee2bf0c8f8f6162a1300edb7923798a443e73364b44d1e621
-SIZE (sml-nj/110.0.7/smlnj-c.tar.Z) = 106309
-SHA256 (sml-nj/110.0.7/smlnj-lib.tar.Z) = f189300515e6f36541aad61e1b01ec5d3a8f96ff40c2293b7fa031e0281269ab
-SIZE (sml-nj/110.0.7/smlnj-lib.tar.Z) = 417409
diff --git a/lang/sml-nj/files/extra-patch-cpp b/lang/sml-nj/files/extra-patch-cpp
deleted file mode 100644
index adb08fd8a575..000000000000
--- a/lang/sml-nj/files/extra-patch-cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/runtime/objs/mk.x86-freebsd.orig Fri Aug 15 11:39:43 2003
-+++ src/runtime/objs/mk.x86-freebsd Fri Aug 15 11:39:59 2003
-@@ -10,7 +10,7 @@
- ARFLAGS = Trcv
- CC = gcc -ansi
- CFLAGS = -O2
--CPP = gcc -x c -E -P -ansi
-+CPP = gcc -x assembler-with-cpp -E -P
- #CPP = /usr/bin/cpp -P
-
- XOBJS =
diff --git a/lang/sml-nj/files/extra-patch-genposixnames b/lang/sml-nj/files/extra-patch-genposixnames
deleted file mode 100644
index c1301b1b8b7b..000000000000
--- a/lang/sml-nj/files/extra-patch-genposixnames
+++ /dev/null
@@ -1,33 +0,0 @@
---- src/runtime/config/gen-posix-names.sh.orig Tue Oct 10 21:26:35 2000
-+++ src/runtime/config/gen-posix-names.sh Tue Mar 11 22:50:21 2003
-@@ -36,17 +36,20 @@
- /lib/cpp > $INCLFILE <<XXX
- #include <unistd.h>
- XXX
--elif [ -r "/usr/include/sys/unistd.h" ]; then
-- INCLFILE=/usr/include/sys/unistd.h
--elif [ -r "/usr/include/confname.h" ]; then
-- INCLFILE=/usr/include/confname.h
--elif [ -r "/usr/include/unistd.h" ]; then
-- INCLFILE=/usr/include/unistd.h
--elif [ -r "/usr/include/bsd/unistd.h" ]; then
-- INCLFILE=/usr/include/bsd/unistd.h
- else
-- echo "gen-posix-names.sh: unable to find <unistd.h>"
-- exit 1
-+ INCLFILE=""
-+ for f in "/usr/include/sys/unistd.h" \
-+ "/usr/include/confname.h" \
-+ "/usr/include/unistd.h" \
-+ "/usr/include/bsd/unistd.h"; do
-+ if [ -r "$f" ]; then
-+ INCLFILE="$INCLFILE $f"
-+ fi
-+ done
-+ if [ -z "$INCLFILE" ]; then
-+ echo "gen-posix-names.sh: unable to find <unistd.h>"
-+ exit 1
-+ fi
- fi
-
- echo "/* $OUTF" >> $OUTF
diff --git a/lang/sml-nj/files/extra-patch-global-names b/lang/sml-nj/files/extra-patch-global-names
deleted file mode 100644
index 5250f706c186..000000000000
--- a/lang/sml-nj/files/extra-patch-global-names
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/runtime/include/asm-base.h-- Wed Oct 11 16:31:09 2000
-+++ src/runtime/include/asm-base.h Wed Oct 11 16:31:52 2000
-@@ -16,7 +16,7 @@
- #define FALSE 0
- #define TRUE 1
-
--#if (!defined(GLOBALS_HAVE_UNDERSCORE)) && (defined(OPSYS_SUNOS) || defined(OPSYS_NEXTSTEP) || defined(OPSYS_WIN32))
-+#if (!defined(GLOBALS_HAVE_UNDERSCORE)) && (defined(OPSYS_SUNOS) || defined(OPSYS_NEXTSTEP) || (defined(OPSYS_FREEBSD) && !defined(__ELF__)) || defined(OPSYS_WIN32))
- # define GLOBALS_HAVE_UNDERSCORE
- #endif
-
diff --git a/lang/sml-nj/files/extra-patch-signals b/lang/sml-nj/files/extra-patch-signals
deleted file mode 100644
index 5546f0e4f7e8..000000000000
--- a/lang/sml-nj/files/extra-patch-signals
+++ /dev/null
@@ -1,21 +0,0 @@
-*** src.old/runtime/mach-dep/signal-sysdep.h Sat Jan 22 18:15:21 2000
---- src/runtime/mach-dep/signal-sysdep.h Sun Jan 23 01:46:53 2000
-***************
-*** 396,403 ****
- # elif defined(OPSYS_FREEBSD)
- /** x86, FreeBSD **/
- # define SIG_FAULT1 SIGFPE
-! # define INT_DIVZERO(s, c) (((s) == SIGFPE) && ((c) == FPE_INTDIV_TRAP))
-! # define INT_OVFLW(s, c) (((s) == SIGFPE) && ((c) == FPE_INTOVF_TRAP))
-
- # define SIG_GetCode(info, scp) (info)
- # define SIG_GetPC(scp) ((scp)->sc_pc)
---- 396,403 ----
- # elif defined(OPSYS_FREEBSD)
- /** x86, FreeBSD **/
- # define SIG_FAULT1 SIGFPE
-! # define INT_DIVZERO(s, c) (((s) == SIGFPE) && ((c) == FPE_INTDIV))
-! # define INT_OVFLW(s, c) (((s) == SIGFPE) && ((c) == FPE_INTOVF))
-
- # define SIG_GetCode(info, scp) (info)
- # define SIG_GetPC(scp) ((scp)->sc_pc)
diff --git a/lang/sml-nj/files/patch-ab b/lang/sml-nj/files/patch-ab
deleted file mode 100644
index 098fdcb823ff..000000000000
--- a/lang/sml-nj/files/patch-ab
+++ /dev/null
@@ -1,38 +0,0 @@
---- config/install.sh.orig Fri Oct 20 18:02:25 2000
-+++ config/install.sh Tue Dec 21 06:22:34 2004
-@@ -151,11 +151,34 @@
- #
- # build the run-time system
- #
-+if [ -x $RUNDIR/run.$ARCH-$OPSYS ]; then
-+ echo "$RUNDIR/run.$ARCH-$OPSYS already exists"
-+else
- $CONFIGDIR/unpack.sh "run-time" $SRCDIR runtime $ROOT/runtime.tar
- if [ "$?" != "0" ]; then
- exit $?
- fi
--if [ ! -x $RUNDIR/run.$ARCH-$OPSYS ]; then
-+# we need to patch just before build
-+echo "applying source patches"
-+patch_file="${FILESDIR}/extra-patch-cpp"
-+if [ -f $patch_file ]; then
-+ $PATCH $PATCH_ARGS < $patch_file
-+fi
-+patch_file="${FILESDIR}/extra-patch-global-names"
-+if [ -f $patch_file ]; then
-+ $PATCH $PATCH_ARGS < $patch_file
-+fi
-+patch_file="${FILESDIR}/extra-patch-genposixnames"
-+if [ -f $patch_file ]; then
-+ $PATCH $PATCH_ARGS < $patch_file
-+fi
-+if grep -w FPE_INTDIV /usr/include/machine/trap.h > /dev/null 2>&1; then
-+ patch_file="${FILESDIR}/extra-patch-signals"
-+ if [ -f $patch_file ]; then
-+ $PATCH $PATCH_ARGS < $patch_file
-+ fi
-+fi
-+#if [ ! -x $RUNDIR/run.$ARCH-$OPSYS ]; then
- cd $SRCDIR/runtime/objs
- echo "compiling the run-time system"
- $MAKE -f mk.$ARCH-$OPSYS $EXTRA_DEFS
diff --git a/lang/sml-nj/pkg-descr b/lang/sml-nj/pkg-descr
deleted file mode 100644
index cf950228c217..000000000000
--- a/lang/sml-nj/pkg-descr
+++ /dev/null
@@ -1,7 +0,0 @@
-A Standard ML implementation from Bell-Labs. Implements the SML '97 definition
-including the new Basis library with a few minor omissions and discrepancies.
-
-WWW: http://www.smlnj.org/
-
-If you are interested in a lighter weight implementation of ML,
-the Moscow-ML port is recommended.
diff --git a/lang/sml-nj/pkg-plist b/lang/sml-nj/pkg-plist
deleted file mode 100644
index 421ab022fade..000000000000
--- a/lang/sml-nj/pkg-plist
+++ /dev/null
@@ -1,624 +0,0 @@
-lib/sml-nj/bin/.arch-n-opsys
-lib/sml-nj/bin/.heap/ml-burg.x86-bsd
-lib/sml-nj/bin/.heap/ml-lex.x86-bsd
-lib/sml-nj/bin/.heap/ml-yacc.x86-bsd
-lib/sml-nj/bin/.heap/sml-cm.x86-bsd
-lib/sml-nj/bin/.heap/sml.x86-bsd
-lib/sml-nj/bin/.run/run.x86-freebsd
-lib/sml-nj/bin/.run-sml
-lib/sml-nj/bin/ml-burg
-lib/sml-nj/bin/ml-lex
-lib/sml-nj/bin/ml-yacc
-lib/sml-nj/bin/sml
-lib/sml-nj/bin/sml-cm
-lib/sml-nj/lib/cml-lib.cm
-lib/sml-nj/lib/cml.cm
-lib/sml-nj/lib/eXene.cm
-lib/sml-nj/lib/html-lib.cm
-lib/sml-nj/lib/inet-lib.cm
-lib/sml-nj/lib/ml-yacc-lib.cm
-lib/sml-nj/lib/pp-lib.cm
-lib/sml-nj/lib/reactive-lib.cm
-lib/sml-nj/lib/regexp-lib.cm
-lib/sml-nj/lib/smlnj-lib.cm
-lib/sml-nj/lib/unix-lib.cm
-lib/sml-nj/src/cml/cml-lib/CM/x86-unix/multicast-sig.sml.bin
-lib/sml-nj/src/cml/cml-lib/CM/x86-unix/multicast.sml.bin
-lib/sml-nj/src/cml/cml-lib/CM/x86-unix/simple-rpc-sig.sml.bin
-lib/sml-nj/src/cml/cml-lib/CM/x86-unix/simple-rpc.sml.bin
-lib/sml-nj/src/cml/cml-lib/CM/x86-unix/sources.cm.stable
-lib/sml-nj/src/cml/cml-lib/CM/x86-unix/trace-cml-sig.sml.bin
-lib/sml-nj/src/cml/cml-lib/CM/x86-unix/trace-cml.cm.stable
-lib/sml-nj/src/cml/cml-lib/CM/x86-unix/trace-cml.sml.bin
-lib/sml-nj/src/cml/cml-lib/SMLNJ-INet/CM/x86-unix/sock-util-sig.sml.bin
-lib/sml-nj/src/cml/cml-lib/SMLNJ-INet/CM/x86-unix/sock-util.sml.bin
-lib/sml-nj/src/cml/cml-lib/SMLNJ-INet/CM/x86-unix/unix-sock-util.sml.bin
-lib/sml-nj/src/cml/cml-lib/SMLNJ-Util/CM/x86-unix/atom-binary-map.sml.bin
-lib/sml-nj/src/cml/cml-lib/SMLNJ-Util/CM/x86-unix/atom-binary-set.sml.bin
-lib/sml-nj/src/cml/cml-lib/SMLNJ-Util/CM/x86-unix/atom-map.sml.bin
-lib/sml-nj/src/cml/cml-lib/SMLNJ-Util/CM/x86-unix/atom-redblack-map.sml.bin
-lib/sml-nj/src/cml/cml-lib/SMLNJ-Util/CM/x86-unix/atom-redblack-set.sml.bin
-lib/sml-nj/src/cml/cml-lib/SMLNJ-Util/CM/x86-unix/atom-set.sml.bin
-lib/sml-nj/src/cml/cml-lib/SMLNJ-Util/CM/x86-unix/atom-sig.sml.bin
-lib/sml-nj/src/cml/cml-lib/SMLNJ-Util/CM/x86-unix/atom-table.sml.bin
-lib/sml-nj/src/cml/cml-lib/SMLNJ-Util/CM/x86-unix/cml-atom.sml.bin
-lib/sml-nj/src/cml/cml-lib/SMLNJ-Util/CM/x86-unix/io-util-sig.sml.bin
-lib/sml-nj/src/cml/cml-lib/SMLNJ-Util/CM/x86-unix/io-util.sml.bin
-lib/sml-nj/src/cml/cml-lib/sources.cm
-lib/sml-nj/src/cml/cml-lib/trace-cml.cm
-lib/sml-nj/src/cml/src/CM/x86-unix/sources.cm.stable
-lib/sml-nj/src/cml/src/IO/CM/x86-unix/bin-io-fn.sml.bin
-lib/sml-nj/src/cml/src/IO/CM/x86-unix/bin-prim-io.sml.bin
-lib/sml-nj/src/cml/src/IO/CM/x86-unix/chan-io-fn.sml.bin
-lib/sml-nj/src/cml/src/IO/CM/x86-unix/clean-io.sml.bin
-lib/sml-nj/src/cml/src/IO/CM/x86-unix/cml-bin-io-sig.sml.bin
-lib/sml-nj/src/cml/src/IO/CM/x86-unix/cml-imperative-io-sig.sml.bin
-lib/sml-nj/src/cml/src/IO/CM/x86-unix/cml-stream-io-sig.sml.bin
-lib/sml-nj/src/cml/src/IO/CM/x86-unix/cml-text-io-sig.sml.bin
-lib/sml-nj/src/cml/src/IO/CM/x86-unix/cml-text-stream-io-sig.sml.bin
-lib/sml-nj/src/cml/src/IO/CM/x86-unix/os-prim-io-sig.sml.bin
-lib/sml-nj/src/cml/src/IO/CM/x86-unix/prim-io-fn.sml.bin
-lib/sml-nj/src/cml/src/IO/CM/x86-unix/prim-io-sig.sml.bin
-lib/sml-nj/src/cml/src/IO/CM/x86-unix/sources.cm.stable
-lib/sml-nj/src/cml/src/IO/CM/x86-unix/text-io-fn.sml.bin
-lib/sml-nj/src/cml/src/IO/CM/x86-unix/text-prim-io.sml.bin
-lib/sml-nj/src/cml/src/IO/sources.cm
-lib/sml-nj/src/cml/src/OS/CM/x86-unix/os-io-sig.sml.bin
-lib/sml-nj/src/cml/src/OS/CM/x86-unix/os-process-sig.sml.bin
-lib/sml-nj/src/cml/src/OS/CM/x86-unix/os-sig.sml.bin
-lib/sml-nj/src/cml/src/OS/CM/x86-unix/os-signatures.sml.bin
-lib/sml-nj/src/cml/src/OS/CM/x86-unix/sources.cm.stable
-lib/sml-nj/src/cml/src/OS/sources.cm
-lib/sml-nj/src/cml/src/Sockets/CM/x86-unix/cml-generic-sock.sml.bin
-lib/sml-nj/src/cml/src/Sockets/CM/x86-unix/cml-inet-sock.sml.bin
-lib/sml-nj/src/cml/src/Sockets/CM/x86-unix/cml-socket-sig.sml.bin
-lib/sml-nj/src/cml/src/Sockets/CM/x86-unix/cml-socket.sml.bin
-lib/sml-nj/src/cml/src/Sockets/CM/x86-unix/cml-unix-sock.sml.bin
-lib/sml-nj/src/cml/src/Sockets/CM/x86-unix/generic-sock-sig.sml.bin
-lib/sml-nj/src/cml/src/Sockets/CM/x86-unix/inet-sock-sig.sml.bin
-lib/sml-nj/src/cml/src/Sockets/CM/x86-unix/layer1.cm.stable
-lib/sml-nj/src/cml/src/Sockets/CM/x86-unix/layer2.cm.stable
-lib/sml-nj/src/cml/src/Sockets/CM/x86-unix/layer3.cm.stable
-lib/sml-nj/src/cml/src/Sockets/CM/x86-unix/pre-sock.sml.bin
-lib/sml-nj/src/cml/src/Sockets/CM/x86-unix/rebind1.sml.bin
-lib/sml-nj/src/cml/src/Sockets/CM/x86-unix/rebind2-unix-sock.sml.bin
-lib/sml-nj/src/cml/src/Sockets/CM/x86-unix/rebind2.sml.bin
-lib/sml-nj/src/cml/src/Sockets/CM/x86-unix/sources.cm.stable
-lib/sml-nj/src/cml/src/Sockets/CM/x86-unix/unix-sock-sig.sml.bin
-lib/sml-nj/src/cml/src/Sockets/layer1.cm
-lib/sml-nj/src/cml/src/Sockets/layer2.cm
-lib/sml-nj/src/cml/src/Sockets/layer3.cm
-lib/sml-nj/src/cml/src/Sockets/sources.cm
-lib/sml-nj/src/cml/src/Unix/CM/x86-unix/os-io.sml.bin
-lib/sml-nj/src/cml/src/Unix/CM/x86-unix/os-process.sml.bin
-lib/sml-nj/src/cml/src/Unix/CM/x86-unix/os.cm.stable
-lib/sml-nj/src/cml/src/Unix/CM/x86-unix/os.sml.bin
-lib/sml-nj/src/cml/src/Unix/CM/x86-unix/posix-bin-io.sml.bin
-lib/sml-nj/src/cml/src/Unix/CM/x86-unix/posix-bin-prim-io.sml.bin
-lib/sml-nj/src/cml/src/Unix/CM/x86-unix/posix-text-io.sml.bin
-lib/sml-nj/src/cml/src/Unix/CM/x86-unix/posix-text-prim-io.sml.bin
-lib/sml-nj/src/cml/src/Unix/CM/x86-unix/proc-manager.sml.bin
-lib/sml-nj/src/cml/src/Unix/CM/x86-unix/run-cml.sml.bin
-lib/sml-nj/src/cml/src/Unix/CM/x86-unix/sources.cm.stable
-lib/sml-nj/src/cml/src/Unix/CM/x86-unix/syscall.sml.bin
-lib/sml-nj/src/cml/src/Unix/CM/x86-unix/unix-glue.sml.bin
-lib/sml-nj/src/cml/src/Unix/CM/x86-unix/unix-sig.sml.bin
-lib/sml-nj/src/cml/src/Unix/CM/x86-unix/unix.sml.bin
-lib/sml-nj/src/cml/src/Unix/os.cm
-lib/sml-nj/src/cml/src/Unix/sources.cm
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/channel-sig.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/channel.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/cleanup.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/cml-cleanup-sig.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/cml-sig.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/cml.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/debug.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/event-sig.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/event.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/io-manager.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/mailbox-sig.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/mailbox.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/queue.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/rep-types.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/running.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/scheduler.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/sources.cm.stable
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/sync-var-sig.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/sync-var.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/thread-sig.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/thread.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/timeout-sig.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/timeout.sml.bin
-lib/sml-nj/src/cml/src/core-cml/CM/x86-unix/version.sml.bin
-lib/sml-nj/src/cml/src/core-cml/sources.cm
-lib/sml-nj/src/cml/src/glue/CM/x86-unix/export-fn-fn.sml.bin
-lib/sml-nj/src/cml/src/glue/CM/x86-unix/os-glue-sig.sml.bin
-lib/sml-nj/src/cml/src/glue/CM/x86-unix/run-cml-fn.sml.bin
-lib/sml-nj/src/cml/src/glue/CM/x86-unix/sources.cm.stable
-lib/sml-nj/src/cml/src/glue/sources.cm
-lib/sml-nj/src/cml/src/sources.cm
-lib/sml-nj/src/cml/src/util/CM/x86-unix/result.sml.bin
-lib/sml-nj/src/cml/src/util/CM/x86-unix/sources.cm.stable
-lib/sml-nj/src/cml/src/util/sources.cm
-lib/sml-nj/src/eXene/CM/x86-unix/sources.cm.stable
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/band.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/bitmap-io-sig.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/bitmap-io.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/box.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/color-space-sig.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/color-space.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/ellipse-sig.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/ellipse.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/get-dpy-sig.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/get-dpy.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/region-sig.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/region.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/rounded-rect-sig.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/rounded-rect.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/scan-convert.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/sources.cm.stable
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/spline-sig.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/spline.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/xauth-sig.sml.bin
-lib/sml-nj/src/eXene/graph-util/CM/x86-unix/xauth.sml.bin
-lib/sml-nj/src/eXene/graph-util/sources.cm
-lib/sml-nj/src/eXene/lib/CM/x86-unix/base.cm.stable
-lib/sml-nj/src/eXene/lib/CM/x86-unix/sources.cm.stable
-lib/sml-nj/src/eXene/lib/base.cm
-lib/sml-nj/src/eXene/lib/basics/CM/x86-unix/geom.sml.bin
-lib/sml-nj/src/eXene/lib/iccc/CM/x86-unix/atom-server.sml.bin
-lib/sml-nj/src/eXene/lib/iccc/CM/x86-unix/property-sig.sml.bin
-lib/sml-nj/src/eXene/lib/iccc/CM/x86-unix/property.sml.bin
-lib/sml-nj/src/eXene/lib/iccc/CM/x86-unix/std-atoms.sml.bin
-lib/sml-nj/src/eXene/lib/iccc/CM/x86-unix/xatom-tbl.sml.bin
-lib/sml-nj/src/eXene/lib/iccc/CM/x86-unix/xatoms.sml.bin
-lib/sml-nj/src/eXene/lib/iccc/CM/x86-unix/xprops.sml.bin
-lib/sml-nj/src/eXene/lib/misc/CM/x86-unix/exene-version.sml.bin
-lib/sml-nj/src/eXene/lib/misc/CM/x86-unix/mlx-err.sml.bin
-lib/sml-nj/src/eXene/lib/misc/CM/x86-unix/xdebug.sml.bin
-lib/sml-nj/src/eXene/lib/misc/CM/x86-unix/xprint.sml.bin
-lib/sml-nj/src/eXene/lib/misc/CM/x86-unix/xvalid.sml.bin
-lib/sml-nj/src/eXene/lib/protocol/CM/x86-unix/keybut.sml.bin
-lib/sml-nj/src/eXene/lib/protocol/CM/x86-unix/xcvtfns.sml.bin
-lib/sml-nj/src/eXene/lib/protocol/CM/x86-unix/xdisplay.sml.bin
-lib/sml-nj/src/eXene/lib/protocol/CM/x86-unix/xerrors.sml.bin
-lib/sml-nj/src/eXene/lib/protocol/CM/x86-unix/xevttypes.sml.bin
-lib/sml-nj/src/eXene/lib/protocol/CM/x86-unix/xio.sml.bin
-lib/sml-nj/src/eXene/lib/protocol/CM/x86-unix/xprottypes.sml.bin
-lib/sml-nj/src/eXene/lib/protocol/CM/x86-unix/xreply.sml.bin
-lib/sml-nj/src/eXene/lib/protocol/CM/x86-unix/xrequest.sml.bin
-lib/sml-nj/src/eXene/lib/protocol/CM/x86-unix/xsendevt.sml.bin
-lib/sml-nj/src/eXene/lib/protocol/CM/x86-unix/xserver-addr.sml.bin
-lib/sml-nj/src/eXene/lib/protocol/CM/x86-unix/xshutdown.sml.bin
-lib/sml-nj/src/eXene/lib/protocol/CM/x86-unix/xtime.sml.bin
-lib/sml-nj/src/eXene/lib/protocol/CM/x86-unix/xwin.sml.bin
-lib/sml-nj/src/eXene/lib/sources.cm
-lib/sml-nj/src/eXene/lib/user/CM/x86-unix/abstract.sml.bin
-lib/sml-nj/src/eXene/lib/user/CM/x86-unix/build.sml.bin
-lib/sml-nj/src/eXene/lib/user/CM/x86-unix/drawing-sig.sml.bin
-lib/sml-nj/src/eXene/lib/user/CM/x86-unix/exene-base-sig.sml.bin
-lib/sml-nj/src/eXene/lib/user/CM/x86-unix/exene-win-sig.sml.bin
-lib/sml-nj/src/eXene/lib/user/CM/x86-unix/font-sig.sml.bin
-lib/sml-nj/src/eXene/lib/user/CM/x86-unix/geometry-sig.sml.bin
-lib/sml-nj/src/eXene/lib/user/CM/x86-unix/iccc-sig.sml.bin
-lib/sml-nj/src/eXene/lib/user/CM/x86-unix/interact-sig.sml.bin
-lib/sml-nj/src/eXene/lib/user/CM/x86-unix/std-cursor-sig.sml.bin
-lib/sml-nj/src/eXene/lib/util/CM/x86-unix/hash-xid.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/color-server-sig.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/color-server.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/cursor.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/display.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/draw-master.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/draw-types.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/draw.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/font-base.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/font-server.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/gc-server.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/hash-window.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/image.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/keymap.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/keysym-trans.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/keysym.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/pen-rep.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/pen.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/pixmap.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/property-server-sig.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/property-server.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/selection-server-sig.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/selection-server.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/selection.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/tile.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/toplevel-win.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/window-env.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/window-sig.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/window.sml.bin
-lib/sml-nj/src/eXene/lib/window/CM/x86-unix/winreg.sml.bin
-lib/sml-nj/src/eXene/sources.cm
-lib/sml-nj/src/eXene/styles/CM/x86-unix/parse-resource-specs.sml.bin
-lib/sml-nj/src/eXene/styles/CM/x86-unix/quark-sig.sml.bin
-lib/sml-nj/src/eXene/styles/CM/x86-unix/quark.sml.bin
-lib/sml-nj/src/eXene/styles/CM/x86-unix/sources.cm.stable
-lib/sml-nj/src/eXene/styles/CM/x86-unix/styles-func.sml.bin
-lib/sml-nj/src/eXene/styles/sources.cm
-lib/sml-nj/src/eXene/widgets/CM/x86-unix/sources.cm.stable
-lib/sml-nj/src/eXene/widgets/basics/CM/x86-unix/root.sml.bin
-lib/sml-nj/src/eXene/widgets/basics/CM/x86-unix/router.sml.bin
-lib/sml-nj/src/eXene/widgets/basics/CM/x86-unix/shell.sml.bin
-lib/sml-nj/src/eXene/widgets/basics/CM/x86-unix/widget-attrs.sml.bin
-lib/sml-nj/src/eXene/widgets/basics/CM/x86-unix/widget-base.sml.bin
-lib/sml-nj/src/eXene/widgets/basics/CM/x86-unix/widget.sml.bin
-lib/sml-nj/src/eXene/widgets/composite/CM/x86-unix/background.sml.bin
-lib/sml-nj/src/eXene/widgets/composite/CM/x86-unix/box-layout.sml.bin
-lib/sml-nj/src/eXene/widgets/composite/CM/x86-unix/box.sml.bin
-lib/sml-nj/src/eXene/widgets/composite/CM/x86-unix/frame.sml.bin
-lib/sml-nj/src/eXene/widgets/composite/CM/x86-unix/hideable.sml.bin
-lib/sml-nj/src/eXene/widgets/composite/CM/x86-unix/index.sml.bin
-lib/sml-nj/src/eXene/widgets/composite/CM/x86-unix/menu-button.sml.bin
-lib/sml-nj/src/eXene/widgets/composite/CM/x86-unix/pile.sml.bin
-lib/sml-nj/src/eXene/widgets/composite/CM/x86-unix/scrollbar-layout.sml.bin
-lib/sml-nj/src/eXene/widgets/composite/CM/x86-unix/scrollport-sig.sml.bin
-lib/sml-nj/src/eXene/widgets/composite/CM/x86-unix/scrollport.sml.bin
-lib/sml-nj/src/eXene/widgets/composite/CM/x86-unix/shape.sml.bin
-lib/sml-nj/src/eXene/widgets/composite/CM/x86-unix/simple-menu.sml.bin
-lib/sml-nj/src/eXene/widgets/composite/CM/x86-unix/viewport-sig.sml.bin
-lib/sml-nj/src/eXene/widgets/composite/CM/x86-unix/viewport.sml.bin
-lib/sml-nj/src/eXene/widgets/composite/CM/x86-unix/widget-set.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/arrow-view.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/button-base.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/button-ctrl.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/button-type.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/button-view.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/button.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/canvas-sig.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/canvas.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/check-view.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/circle-view.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/color-rect.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/diamond-view.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/divider.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/item-list.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/label-bttn-view.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/label.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/message.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/rect-view.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/scroll-view.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/scrollbar-sig.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/scrollbar.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/shape-view.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/slider-view.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/slider.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/switch-view.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/text-list.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/text-view.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/toggle-ctrl.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/toggle-type.sml.bin
-lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix/toggle.sml.bin
-lib/sml-nj/src/eXene/widgets/sources.cm
-lib/sml-nj/src/eXene/widgets/text/CM/x86-unix/extstr.sml.bin
-lib/sml-nj/src/eXene/widgets/text/CM/x86-unix/field-edit.sml.bin
-lib/sml-nj/src/eXene/widgets/text/CM/x86-unix/str-edit.sml.bin
-lib/sml-nj/src/eXene/widgets/text/CM/x86-unix/text-widget-sig.sml.bin
-lib/sml-nj/src/eXene/widgets/text/CM/x86-unix/text-widget.sml.bin
-lib/sml-nj/src/eXene/widgets/text/CM/x86-unix/txtwin.sml.bin
-lib/sml-nj/src/eXene/widgets/text/CM/x86-unix/vtty-sig.sml.bin
-lib/sml-nj/src/eXene/widgets/text/CM/x86-unix/vtty.sml.bin
-lib/sml-nj/src/eXene/widgets/util/CM/x86-unix/3d-sig.sml.bin
-lib/sml-nj/src/eXene/widgets/util/CM/x86-unix/3d.sml.bin
-lib/sml-nj/src/eXene/widgets/util/CM/x86-unix/attrs-sig.sml.bin
-lib/sml-nj/src/eXene/widgets/util/CM/x86-unix/attrs.sml.bin
-lib/sml-nj/src/eXene/widgets/util/CM/x86-unix/image-server.sml.bin
-lib/sml-nj/src/eXene/widgets/util/CM/x86-unix/images.sml.bin
-lib/sml-nj/src/eXene/widgets/util/CM/x86-unix/run-exene.sml.bin
-lib/sml-nj/src/eXene/widgets/util/CM/x86-unix/shade-server.sml.bin
-lib/sml-nj/src/eXene/widgets/util/CM/x86-unix/styles.sml.bin
-lib/sml-nj/src/eXene/widgets/util/CM/x86-unix/tile-server.sml.bin
-lib/sml-nj/src/ml-burg/CM/x86-unix/burg-ast.sml.bin
-lib/sml-nj/src/ml-burg/CM/x86-unix/burg-gram.sig.bin
-lib/sml-nj/src/ml-burg/CM/x86-unix/burg-gram.sml.bin
-lib/sml-nj/src/ml-burg/CM/x86-unix/burg-lex.sml.bin
-lib/sml-nj/src/ml-burg/CM/x86-unix/burg.sml.bin
-lib/sml-nj/src/ml-burg/CM/x86-unix/errormsg.sml.bin
-lib/sml-nj/src/ml-burg/CM/x86-unix/main.sml.bin
-lib/sml-nj/src/ml-burg/CM/x86-unix/parse.sml.bin
-lib/sml-nj/src/ml-yacc/lib/CM/x86-unix/base.sig.bin
-lib/sml-nj/src/ml-yacc/lib/CM/x86-unix/join.sml.bin
-lib/sml-nj/src/ml-yacc/lib/CM/x86-unix/lrtable.sml.bin
-lib/sml-nj/src/ml-yacc/lib/CM/x86-unix/parser2.sml.bin
-lib/sml-nj/src/ml-yacc/lib/CM/x86-unix/sources.cm.stable
-lib/sml-nj/src/ml-yacc/lib/CM/x86-unix/stream.sml.bin
-lib/sml-nj/src/ml-yacc/lib/sources.cm
-lib/sml-nj/src/smlnj-lib/HTML/CM/x86-unix/check-html-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/HTML/CM/x86-unix/html-attr-vals.sml.bin
-lib/sml-nj/src/smlnj-lib/HTML/CM/x86-unix/html-attrs-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/HTML/CM/x86-unix/html-attrs-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/HTML/CM/x86-unix/html-defaults.sml.bin
-lib/sml-nj/src/smlnj-lib/HTML/CM/x86-unix/html-elements-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/HTML/CM/x86-unix/html-error-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/HTML/CM/x86-unix/html-gram.sig.bin
-lib/sml-nj/src/smlnj-lib/HTML/CM/x86-unix/html-gram.sml.bin
-lib/sml-nj/src/smlnj-lib/HTML/CM/x86-unix/html-lex.sml.bin
-lib/sml-nj/src/smlnj-lib/HTML/CM/x86-unix/html-lib.cm.stable
-lib/sml-nj/src/smlnj-lib/HTML/CM/x86-unix/html-parser-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/HTML/CM/x86-unix/html-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/HTML/CM/x86-unix/html.sml.bin
-lib/sml-nj/src/smlnj-lib/HTML/CM/x86-unix/make-html.sml.bin
-lib/sml-nj/src/smlnj-lib/HTML/CM/x86-unix/pr-html.sml.bin
-lib/sml-nj/src/smlnj-lib/HTML/html-lib.cm
-lib/sml-nj/src/smlnj-lib/INet/CM/x86-unix/inet-lib.cm.stable
-lib/sml-nj/src/smlnj-lib/INet/CM/x86-unix/sock-util-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/INet/CM/x86-unix/sock-util.sml.bin
-lib/sml-nj/src/smlnj-lib/INet/CM/x86-unix/unix-sock-util.sml.bin
-lib/sml-nj/src/smlnj-lib/INet/inet-lib.cm
-lib/sml-nj/src/smlnj-lib/PP/CM/x86-unix/pp-lib.cm.stable
-lib/sml-nj/src/smlnj-lib/PP/devices/CM/x86-unix/html-dev.sml.bin
-lib/sml-nj/src/smlnj-lib/PP/devices/CM/x86-unix/simple-textio-dev.sml.bin
-lib/sml-nj/src/smlnj-lib/PP/devices/CM/x86-unix/sources.cm.stable
-lib/sml-nj/src/smlnj-lib/PP/devices/CM/x86-unix/string-token.sml.bin
-lib/sml-nj/src/smlnj-lib/PP/devices/CM/x86-unix/textio-pp.sml.bin
-lib/sml-nj/src/smlnj-lib/PP/devices/sources.cm
-lib/sml-nj/src/smlnj-lib/PP/pp-lib.cm
-lib/sml-nj/src/smlnj-lib/PP/src/CM/x86-unix/pp-debug-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/PP/src/CM/x86-unix/pp-desc.sml.bin
-lib/sml-nj/src/smlnj-lib/PP/src/CM/x86-unix/pp-device-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/PP/src/CM/x86-unix/pp-stream-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/PP/src/CM/x86-unix/pp-stream-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/PP/src/CM/x86-unix/pp-token-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/PP/src/CM/x86-unix/sources.cm.stable
-lib/sml-nj/src/smlnj-lib/PP/src/sources.cm
-lib/sml-nj/src/smlnj-lib/Reactive/CM/x86-unix/instruction.sml.bin
-lib/sml-nj/src/smlnj-lib/Reactive/CM/x86-unix/machine.sml.bin
-lib/sml-nj/src/smlnj-lib/Reactive/CM/x86-unix/reactive-lib.cm.stable
-lib/sml-nj/src/smlnj-lib/Reactive/CM/x86-unix/reactive-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Reactive/CM/x86-unix/reactive.sml.bin
-lib/sml-nj/src/smlnj-lib/Reactive/reactive-lib.cm
-lib/sml-nj/src/smlnj-lib/RegExp/BackEnd/CM/x86-unix/bt-engine.sml.bin
-lib/sml-nj/src/smlnj-lib/RegExp/BackEnd/CM/x86-unix/dfa-engine.sml.bin
-lib/sml-nj/src/smlnj-lib/RegExp/BackEnd/CM/x86-unix/engine-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/RegExp/BackEnd/CM/x86-unix/fsm.sml.bin
-lib/sml-nj/src/smlnj-lib/RegExp/CM/x86-unix/regexp-lib.cm.stable
-lib/sml-nj/src/smlnj-lib/RegExp/FrontEnd/CM/x86-unix/awk-syntax.sml.bin
-lib/sml-nj/src/smlnj-lib/RegExp/FrontEnd/CM/x86-unix/parser-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/RegExp/FrontEnd/CM/x86-unix/syntax-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/RegExp/FrontEnd/CM/x86-unix/syntax.sml.bin
-lib/sml-nj/src/smlnj-lib/RegExp/Glue/CM/x86-unix/match-tree.sml.bin
-lib/sml-nj/src/smlnj-lib/RegExp/Glue/CM/x86-unix/regexp-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/RegExp/Glue/CM/x86-unix/regexp-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/RegExp/regexp-lib.cm
-lib/sml-nj/src/smlnj-lib/Unix/CM/x86-unix/unix-env-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Unix/CM/x86-unix/unix-env.sml.bin
-lib/sml-nj/src/smlnj-lib/Unix/CM/x86-unix/unix-lib.cm.stable
-lib/sml-nj/src/smlnj-lib/Unix/unix-lib.cm
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/array-qsort-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/array-qsort.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/array-sort-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/atom-binary-map.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/atom-binary-set.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/atom-map.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/atom-redblack-map.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/atom-redblack-set.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/atom-set.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/atom-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/atom-table.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/atom.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/binary-map-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/binary-set-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/bit-array-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/bit-array.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/bit-vector-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/bsearch-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/char-map-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/char-map.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/dynamic-array-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/dynamic-array-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/dynamic-array.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/fifo-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/fifo.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/fmt-fields.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/format-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/format.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/getopt-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/getopt.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/graph-scc-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/graph-scc.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/hash-key-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/hash-string.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/hash-table-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/hash-table-rep.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/hash-table-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/hash-table.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/hash2-table-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/int-binary-map.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/int-binary-set.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/int-hash-table.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/int-inf-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/int-inf.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/int-list-map.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/int-list-set.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/int-redblack-map.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/int-redblack-set.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/io-util-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/io-util.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/keyword-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/lib-base-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/lib-base.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/list-format-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/list-format.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/list-map-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/list-mergesort.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/list-set-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/list-xprod-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/list-xprod.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/listsort-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/mono-array-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/mono-array-sort-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/mono-dynamic-array-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/mono-hash-table-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/mono-hash2-table-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/ord-key-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/ord-map-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/ord-set-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/parser-comb-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/parser-comb.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/path-util-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/path-util.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/plist-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/plist.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/queue-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/queue.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/rand-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/rand.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/random-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/random.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/real-format.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/redblack-map-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/redblack-set-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/scan-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/scan.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/simple-uref.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/smlnj-lib.cm.stable
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/splay-map-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/splay-set-fn.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/splaytree-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/splaytree.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/time-limit.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/uref-sig.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/uref.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/word-hash-table.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/word-redblack-map.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix/word-redblack-set.sml.bin
-lib/sml-nj/src/smlnj-lib/Util/smlnj-lib.cm
-@dirrm lib/sml-nj/bin/.heap
-@dirrm lib/sml-nj/bin/.run
-@dirrm lib/sml-nj/bin
-@dirrm lib/sml-nj/lib
-@dirrm lib/sml-nj/src/cml/cml-lib/CM/x86-unix
-@dirrm lib/sml-nj/src/cml/cml-lib/CM
-@dirrm lib/sml-nj/src/cml/cml-lib/SMLNJ-INet/CM/x86-unix
-@dirrm lib/sml-nj/src/cml/cml-lib/SMLNJ-INet/CM
-@dirrm lib/sml-nj/src/cml/cml-lib/SMLNJ-INet
-@dirrm lib/sml-nj/src/cml/cml-lib/SMLNJ-Util/CM/x86-unix
-@dirrm lib/sml-nj/src/cml/cml-lib/SMLNJ-Util/CM
-@dirrm lib/sml-nj/src/cml/cml-lib/SMLNJ-Util
-@dirrm lib/sml-nj/src/cml/cml-lib
-@dirrm lib/sml-nj/src/cml/src/CM/x86-unix
-@dirrm lib/sml-nj/src/cml/src/CM
-@dirrm lib/sml-nj/src/cml/src/IO/CM/x86-unix
-@dirrm lib/sml-nj/src/cml/src/IO/CM
-@dirrm lib/sml-nj/src/cml/src/IO
-@dirrm lib/sml-nj/src/cml/src/OS/CM/x86-unix
-@dirrm lib/sml-nj/src/cml/src/OS/CM
-@dirrm lib/sml-nj/src/cml/src/OS
-@dirrm lib/sml-nj/src/cml/src/Sockets/CM/x86-unix
-@dirrm lib/sml-nj/src/cml/src/Sockets/CM
-@dirrm lib/sml-nj/src/cml/src/Sockets
-@dirrm lib/sml-nj/src/cml/src/Unix/CM/x86-unix
-@dirrm lib/sml-nj/src/cml/src/Unix/CM
-@dirrm lib/sml-nj/src/cml/src/Unix
-@dirrm lib/sml-nj/src/cml/src/core-cml/CM/x86-unix
-@dirrm lib/sml-nj/src/cml/src/core-cml/CM
-@dirrm lib/sml-nj/src/cml/src/core-cml
-@dirrm lib/sml-nj/src/cml/src/glue/CM/x86-unix
-@dirrm lib/sml-nj/src/cml/src/glue/CM
-@dirrm lib/sml-nj/src/cml/src/glue
-@dirrm lib/sml-nj/src/cml/src/util/CM/x86-unix
-@dirrm lib/sml-nj/src/cml/src/util/CM
-@dirrm lib/sml-nj/src/cml/src/util
-@dirrm lib/sml-nj/src/cml/src
-@dirrm lib/sml-nj/src/cml
-@dirrm lib/sml-nj/src/eXene/CM/x86-unix
-@dirrm lib/sml-nj/src/eXene/CM
-@dirrm lib/sml-nj/src/eXene/graph-util/CM/x86-unix
-@dirrm lib/sml-nj/src/eXene/graph-util/CM
-@dirrm lib/sml-nj/src/eXene/graph-util
-@dirrm lib/sml-nj/src/eXene/lib/CM/x86-unix
-@dirrm lib/sml-nj/src/eXene/lib/CM
-@dirrm lib/sml-nj/src/eXene/lib/basics/CM/x86-unix
-@dirrm lib/sml-nj/src/eXene/lib/basics/CM
-@dirrm lib/sml-nj/src/eXene/lib/basics
-@dirrm lib/sml-nj/src/eXene/lib/iccc/CM/x86-unix
-@dirrm lib/sml-nj/src/eXene/lib/iccc/CM
-@dirrm lib/sml-nj/src/eXene/lib/iccc
-@dirrm lib/sml-nj/src/eXene/lib/misc/CM/x86-unix
-@dirrm lib/sml-nj/src/eXene/lib/misc/CM
-@dirrm lib/sml-nj/src/eXene/lib/misc
-@dirrm lib/sml-nj/src/eXene/lib/protocol/CM/x86-unix
-@dirrm lib/sml-nj/src/eXene/lib/protocol/CM
-@dirrm lib/sml-nj/src/eXene/lib/protocol
-@dirrm lib/sml-nj/src/eXene/lib/user/CM/x86-unix
-@dirrm lib/sml-nj/src/eXene/lib/user/CM
-@dirrm lib/sml-nj/src/eXene/lib/user
-@dirrm lib/sml-nj/src/eXene/lib/util/CM/x86-unix
-@dirrm lib/sml-nj/src/eXene/lib/util/CM
-@dirrm lib/sml-nj/src/eXene/lib/util
-@dirrm lib/sml-nj/src/eXene/lib/window/CM/x86-unix
-@dirrm lib/sml-nj/src/eXene/lib/window/CM
-@dirrm lib/sml-nj/src/eXene/lib/window
-@dirrm lib/sml-nj/src/eXene/lib
-@dirrm lib/sml-nj/src/eXene/styles/CM/x86-unix
-@dirrm lib/sml-nj/src/eXene/styles/CM
-@dirrm lib/sml-nj/src/eXene/styles
-@dirrm lib/sml-nj/src/eXene/widgets/CM/x86-unix
-@dirrm lib/sml-nj/src/eXene/widgets/CM
-@dirrm lib/sml-nj/src/eXene/widgets/basics/CM/x86-unix
-@dirrm lib/sml-nj/src/eXene/widgets/basics/CM
-@dirrm lib/sml-nj/src/eXene/widgets/basics
-@dirrm lib/sml-nj/src/eXene/widgets/composite/CM/x86-unix
-@dirrm lib/sml-nj/src/eXene/widgets/composite/CM
-@dirrm lib/sml-nj/src/eXene/widgets/composite
-@dirrm lib/sml-nj/src/eXene/widgets/simple/CM/x86-unix
-@dirrm lib/sml-nj/src/eXene/widgets/simple/CM
-@dirrm lib/sml-nj/src/eXene/widgets/simple
-@dirrm lib/sml-nj/src/eXene/widgets/text/CM/x86-unix
-@dirrm lib/sml-nj/src/eXene/widgets/text/CM
-@dirrm lib/sml-nj/src/eXene/widgets/text
-@dirrm lib/sml-nj/src/eXene/widgets/util/CM/x86-unix
-@dirrm lib/sml-nj/src/eXene/widgets/util/CM
-@dirrm lib/sml-nj/src/eXene/widgets/util
-@dirrm lib/sml-nj/src/eXene/widgets
-@dirrm lib/sml-nj/src/eXene
-@dirrm lib/sml-nj/src/ml-burg/CM/x86-unix
-@dirrm lib/sml-nj/src/ml-burg/CM
-@dirrm lib/sml-nj/src/ml-burg
-@dirrm lib/sml-nj/src/ml-yacc/lib/CM/x86-unix
-@dirrm lib/sml-nj/src/ml-yacc/lib/CM
-@dirrm lib/sml-nj/src/ml-yacc/lib
-@dirrm lib/sml-nj/src/ml-yacc
-@dirrm lib/sml-nj/src/smlnj-lib/HTML/CM/x86-unix
-@dirrm lib/sml-nj/src/smlnj-lib/HTML/CM
-@dirrm lib/sml-nj/src/smlnj-lib/HTML
-@dirrm lib/sml-nj/src/smlnj-lib/INet/CM/x86-unix
-@dirrm lib/sml-nj/src/smlnj-lib/INet/CM
-@dirrm lib/sml-nj/src/smlnj-lib/INet
-@dirrm lib/sml-nj/src/smlnj-lib/PP/CM/x86-unix
-@dirrm lib/sml-nj/src/smlnj-lib/PP/CM
-@dirrm lib/sml-nj/src/smlnj-lib/PP/devices/CM/x86-unix
-@dirrm lib/sml-nj/src/smlnj-lib/PP/devices/CM
-@dirrm lib/sml-nj/src/smlnj-lib/PP/devices
-@dirrm lib/sml-nj/src/smlnj-lib/PP/src/CM/x86-unix
-@dirrm lib/sml-nj/src/smlnj-lib/PP/src/CM
-@dirrm lib/sml-nj/src/smlnj-lib/PP/src
-@dirrm lib/sml-nj/src/smlnj-lib/PP
-@dirrm lib/sml-nj/src/smlnj-lib/Reactive/CM/x86-unix
-@dirrm lib/sml-nj/src/smlnj-lib/Reactive/CM
-@dirrm lib/sml-nj/src/smlnj-lib/Reactive
-@dirrm lib/sml-nj/src/smlnj-lib/RegExp/BackEnd/CM/x86-unix
-@dirrm lib/sml-nj/src/smlnj-lib/RegExp/BackEnd/CM
-@dirrm lib/sml-nj/src/smlnj-lib/RegExp/BackEnd
-@dirrm lib/sml-nj/src/smlnj-lib/RegExp/CM/x86-unix
-@dirrm lib/sml-nj/src/smlnj-lib/RegExp/CM
-@dirrm lib/sml-nj/src/smlnj-lib/RegExp/FrontEnd/CM/x86-unix
-@dirrm lib/sml-nj/src/smlnj-lib/RegExp/FrontEnd/CM
-@dirrm lib/sml-nj/src/smlnj-lib/RegExp/FrontEnd
-@dirrm lib/sml-nj/src/smlnj-lib/RegExp/Glue/CM/x86-unix
-@dirrm lib/sml-nj/src/smlnj-lib/RegExp/Glue/CM
-@dirrm lib/sml-nj/src/smlnj-lib/RegExp/Glue
-@dirrm lib/sml-nj/src/smlnj-lib/RegExp
-@dirrm lib/sml-nj/src/smlnj-lib/Unix/CM/x86-unix
-@dirrm lib/sml-nj/src/smlnj-lib/Unix/CM
-@dirrm lib/sml-nj/src/smlnj-lib/Unix
-@dirrm lib/sml-nj/src/smlnj-lib/Util/CM/x86-unix
-@dirrm lib/sml-nj/src/smlnj-lib/Util/CM
-@dirrm lib/sml-nj/src/smlnj-lib/Util
-@dirrm lib/sml-nj/src/smlnj-lib
-@dirrm lib/sml-nj/src
-@dirrm lib/sml-nj
diff --git a/lang/sml-nj/scripts/get-cm b/lang/sml-nj/scripts/get-cm
deleted file mode 100644
index 88992a05219f..000000000000
--- a/lang/sml-nj/scripts/get-cm
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/bin/sh
-#
-# usage: get-cm work_dir
-#
-# Find all .cm Group and Library descriptions that are referenced
-# from the top level alias files in $SML_BASE/lib/
-
-# temp file
-tmpfile="${TMP:-/tmp}/chomp$$"
-
-# attempt to change directory to work dir
-cd $1 || exit 1
-work_dir=`pwd` # get the canonical name for the current directory
-
-trap "rm -f $tmpfile" 0 1 2 3 15
-
-# hack to remove SML comments '(* ... *)'
-
-strip_comments()
-{
- # caveat: the following assumes gcc is present ...
- gcc -x c -E -P -ansi -DOPSYS_UNIX $1 | awk '{
- line = $0
- if (match(line, "\\(\\*")) {
- while (match($0, "\\(\\*")) {
- if (RSTART > 1) {
- print substr($0, 0, RSTART-1);
- }
- sub("^.*\\(\\*", "");
- while (!match($0, "\\*\\)")) {
- getline
- }
- $0 = substr($0, RSTART+RLENGTH);
- }
- }
- print
- }'
-}
-
-# return canonical name for a path with embedded ..'s
-
-canonical()
-{
- echo $(cd `dirname $1` && pwd)/`basename $1`
-}
-
-# initial list of CM description files
-global_cm_list="$(cat ./lib/*.cm | awk '{ print $2 }')"
-
-set -- $global_cm_list
-
-touch $tmpfile
-
-# process the global list
-while [ $# -ge 1 ]; do
-
- cm_file="$1"; shift
- global_cm_list="$*"
-
- echo $cm_file >> $tmpfile
-
- cm_dir=`dirname $cm_file`
- cm_new=$(strip_comments $cm_file | grep '\.cm' | \
- awk '{ print $1 }')
-
- # append new CM files to current global list
- for i in $cm_new; do
- new_cm_file=$(canonical $cm_dir/$i)
- if [ -r $new_cm_file ]; then
- if ! grep "^$new_cm_file" $tmpfile > /dev/null; then
- global_cm_list="$new_cm_file $global_cm_list"
- echo $new_cm_file >> $tmpfile
- fi
- fi
- done
-
- set -- $global_cm_list
-done
-
-# output to stdout
-sort -u < $tmpfile | sed -e "s,^$work_dir/,,"
diff --git a/lang/sml-nj-devel/Makefile b/lang/smlnj/Makefile
index 53c8249fca52..914103d2cbe6 100644
--- a/lang/sml-nj-devel/Makefile
+++ b/lang/smlnj/Makefile
@@ -1,61 +1,96 @@
-# Created by: Joseph Koshy <jkoshy@FreeBSD.org>
# $FreeBSD$
PORTNAME= smlnj
-PORTVERSION= 110.71
+PORTVERSION= 110.76
CATEGORIES= lang
MASTER_SITES= http://smlnj.cs.uchicago.edu/dist/working/${PORTVERSION}/ \
ftp://mirror.free.de/http/smlnj.cs.uchicago.edu/dist/working/${PORTVERSION}/
-PKGNAMESUFFIX= -devel
DISTFILES= config.tgz runtime.tgz
-DIST_SUBDIR= sml-nj/${PORTVERSION}
+DIST_SUBDIR= smlnj/${PORTVERSION}
EXTRACT_ONLY= config.tgz
MAINTAINER= joemann@beefree.free.de
-COMMENT= Popular functional language from Bell Labs
-
-BROKEN= Dysfunctional
+COMMENT= Compiler and tools for Standard ML (SML '97)
NO_WRKSUBDIR= yes
-USES= gmake
-
-ONLY_FOR_ARCHS= i386
-
-OPTIONS_DEFINE= EVERYTHING RECOMPILE POSITION64
-EVERYTHING_DESC= install everything from the SML/NJ distribution
-RECOMPILE_DESC= recompile the SML compiler - implies EVERYTHING
-POSITION64_DESC= use 64bit fi""le positions - implies RECOMPILE
SUB_FILES= pkg-install
SUB_LIST= EXEBINDIR=${MLBINRELATIVE} EXENAMES="${MLEXE}"
PKGDEINSTALL= ${PKGINSTALL}
-NO_STAGE= yes
+# Calm portlint
+CALM=
+
+OPTIONS_RADIO= RG1
+OPTIONS_RADIO_RG1= EVERYTHING RECOMPILE POSITION64
+OPTIONS_EXCLUDE_amd64= RECOMPILE POSITION64
+EVERYTHING_DESC= install${CALM} everything from the SML/NJ distribution
+RECOMPILE_DESC= recompile the SML compiler - implies EVERYTHING
+POSITION64_DESC= use 64bit file${CALM} positions - implies RECOMPILE
+
.include <bsd.port.pre.mk>
-.if (${ARCH} == "i386")
+# Recompiling the compiler currently fails on amd64
+.if ${ARCH} == "i386"
+ML_RECOMPILE_OPTIONS= RECOMPILE POSITION64
+.endif
+
+.if (${ARCH} == "amd64") && (${OSVERSION} >= 1000029)
+ONLY_FOR_ARCHS= i386 amd64
+.elif (${ARCH} == "amd64") && (${OSVERSION} >= 800000)
+ONLY_FOR_ARCHS= i386 amd64
+# Compilation of the i386 runtime source on older amd64 systems requires
+# i386 system headers from the respective FreeBSD Version, taken from
+# stable/N/sys/i386/include, r196045 (N=8) and r225736 (N=9).
+EXTRA_DEFS+= -DINCLUDE_FREEBSD_I386_SIGNAL=\\\"freebsd-8-i386-signal.h\\\"
+EXTRA_DEFS+= -DINCLUDE_FREEBSD_I386_IEEEFP=\\\"freebsd-8-i386-ieeefp.h\\\"
+.if (${OSVERSION} < 900000)
+EXTRA_DEFS+= -DINCLUDE_FREEBSD_I386__TYPES=\\\"freebsd-8-i386-_types.h\\\"
+EXTRA_DEFS+= -DINCLUDE_FREEBSD_I386_ENDIAN=\\\"freebsd-8-i386-endian.h\\\"
+.else
+EXTRA_DEFS+= -DINCLUDE_FREEBSD_I386__TYPES=\\\"freebsd-9-i386-_types.h\\\"
+EXTRA_DEFS+= -DINCLUDE_FREEBSD_I386_ENDIAN=\\\"freebsd-9-i386-endian.h\\\"
+.endif
+.else
+ONLY_FOR_ARCHS= i386
+.endif
+
+.if (${ARCH} == "amd64")
+CFLAGS+= -m32
+AS?= as
+AS+= --32
+.endif
+.if (${ARCH} == "i386" || ${ARCH} == "amd64")
MLARCH= x86
DISTFILES+= boot.x86-unix.tgz
.endif
-DISTFILES+= MLRISC.tgz ckit.tgz cml.tgz heap2asm.tgz ml-lpt.tgz \
- ml-lex.tgz ml-yacc.tgz smlnj-lib.tgz trace-debug-profile.tgz
+DISTFILES+= MLRISC.tgz ckit.tgz cml.tgz heap2asm.tgz ml-burg.tgz \
+ ml-lpt.tgz ml-lex.tgz ml-yacc.tgz nlffi.tgz \
+ smlnj-lib.tgz trace-debug-profile.tgz
PLIST_SUB= MLARCH=${MLARCH}
-.if ${PORT_OPTIONS:MPOSITION64}
-WITH_RECOMPILE?= ${WITH_POSITION64}
+.if ${PORT_OPTIONS:MPOSITION64} || defined(ML_POSITION64)
+ML_POSITION64?= ${PORT_OPTIONS:MPOSITION64}
+ML_RECOMPILE?= ${ML_POSITION64}
+ML_EVERYTHING?= ${ML_POSITION64}
CMB_COMMAND= '(\#set o CMB.symval) "USE_64_BIT_POSITIONS" (SOME 1);'
.else
CMB_COMMAND=
.endif
-.if ${PORT_OPTIONS:MRECOMPILE}
-WITH_EVERYTHING?= ${WITH_RECOMPILE}
+.if ${PORT_OPTIONS:MRECOMPILE} || defined(ML_RECOMPILE)
+ML_RECOMPILE?= ${PORT_OPTIONS:MRECOMPILE}
+ML_EVERYTHING?= ${ML_RECOMPILE}
.endif
-.if ${PORT_OPTIONS:MEVERYTHING}
-DISTFILES+= cm.tgz compiler.tgz eXene.tgz ml-burg.tgz \
- nlffi.tgz pgraph.tgz smlnj-c.tgz system.tgz
+.if ${PORT_OPTIONS:MEVERYTHING} || defined(ML_EVERYTHING)
+ML_EVERYTHING?= ${PORT_OPTIONS:MEVERYTHING}
+DISTFILES+= cm.tgz compiler.tgz eXene.tgz \
+ pgraph.tgz smlnj-c.tgz system.tgz
+PLIST_SUB+= EVERYTHING=""
+.else
+PLIST_SUB+= EVERYTHING="@comment "
.endif
MLROOTRELATIVE= smlnj
@@ -63,44 +98,40 @@ MLROOT= ${PREFIX}/${MLROOTRELATIVE}
MLBINRELATIVE= ${MLROOTRELATIVE}/bin
MLBIN= ${MLROOT}/bin
MLLIB= ${MLROOT}/lib
-MLSTDSRCDIRS= cml heap2asm ml-lex ml-lpt ml-yacc smlnj-lib
+MLSTDSRCDIRS= cml heap2asm ml-burg ml-lex ml-lpt ml-yacc nlffi smlnj-lib
MLSRCDIRS= base ${MLSTDSRCDIRS} \
- ckit eXene ml-burg nlffi pgraph smlnj-c
+ ckit eXene pgraph smlnj-c
MLSRCS=
.for srcdir in ${MLSRCDIRS}
MLSRCS+= ${MLROOT}/${srcdir}
.endfor
MLTARGETS= heap2asm
-MLEXE= heap2exec ml-antlr ml-build ml-lex ml-makedepend \
- ml-ulex ml-yacc sml
-.if ${PORT_OPTIONS:MEVERYTHING}
-MLTARGETS+= eXene ml-burg ml-nlffi-lib ml-nlffigen \
- mlrisc-tools nowhere pgraph-util src-smlnj
-MLEXE+= ml-burg ml-nlffigen nowhere
+MLEXE= heap2exec ml-antlr ml-build ml-burg ml-lex ml-makedepend \
+ ml-nlffigen ml-ulex ml-yacc sml
+.if defined(ML_EVERYTHING)
+MLTARGETS+= eXene mlrisc-tools nowhere pgraph-util src-smlnj
+MLEXE+= nowhere
PLIST= ${WRKDIR}/.PLIST
MLRUNTIMEPLIST= ${WRKDIR}/.PLIST-runtime
MLSRCPLIST= ${WRKDIR}/.PLIST-src
-MLPLISTFILES= ${.CURDIR}/pkg-plist ${FILESDIR}/plist-everything \
- ${MLRUNTIMEPLIST} ${MLSRCPLIST}
+MLPLISTFILES= ${.CURDIR}/pkg-plist ${MLRUNTIMEPLIST} ${MLSRCPLIST}
.endif
pre-fetch:
@${ECHO}
-.if ! ${PORT_OPTIONS:MEVERYTHING}
- @${ECHO} 'Use make WITH_EVERYTHING=yes to also build/install'
+.if ! defined(ML_EVERYTHING)
+ @${ECHO} 'Use make ML_EVERYTHING=yes to also build/install'
@${ECHO} ' eXene (X Windows toolkit),'
- @${ECHO} ' ml-burg (tree transformer),'
- @${ECHO} ' ml-nlffi (foreign function interface to C code),'
@${ECHO} ' nowhere (preprocessor for conditional patterns),'
@${ECHO} ' various libraries, and all the sources.'
.endif
-.if ! ${PORT_OPTIONS:MRECOMPILE}
- @${ECHO} 'Use make WITH_RECOMPILE=yes to recompile the compiler.'
- @${ECHO} ' This implies WITH_EVERYTHING.'
+.if !empty(ML_RECOMPILE_OPTIONS:MRECOMPILE) && !defined(ML_RECOMPILE)
+ @${ECHO} 'Use make ML_RECOMPILE=yes to recompile the compiler.'
+ @${ECHO} ' This implies ML_EVERYTHING.'
.endif
-.if ! ${PORT_OPTIONS:MPOSITION64}
- @${ECHO} 'Use make WITH_POSITION64=yes to use 64bit file positions.'
- @${ECHO} ' This implies WITH_RECOMPILE.'
+.if !empty(ML_RECOMPILE_OPTIONS:MPOSITION64) && !defined(ML_POSITION64)
+ @${ECHO} 'Use make ML_POSITION64=yes to use 64bit file positions.'
+ @${ECHO} ' This implies ML_RECOMPILE.'
.endif
@${ECHO}
@@ -109,7 +140,7 @@ pre-fetch:
post-extract:
cd ${WRKDIR} && ${LN} -sf ${_DISTDIR}/* .
-# Configuring is done by uncommenting the appropriate #request xxx
+# Configuring is done by uncommenting the appropriate #request
# lines of config/targets. Dependency details are handled by
# base/system/smlnj/installer using config/dependencies and
# config/actions.
@@ -125,7 +156,7 @@ do-configure:
# Recompilation requires ml-lex and ml-yacc. All requested targets
# will be built later using the recompiled core system after
# removing targets.customized. See "do-build" below.
-.if ${PORT_OPTIONS:MRECOMPILE}
+.if defined(ML_RECOMPILE)
( ${ECHO_CMD} "request ml-yacc" && \
${ECHO_CMD} "request ml-lex" && \
${ECHO_CMD} "request ml-lex-mllex-tool" && \
@@ -138,15 +169,21 @@ do-configure:
# a subsequent make install.
# See base/system/README for information on recompiling the compiler.
-.if ${PORT_OPTIONS:MRECOMPILE}
+.if defined(ML_RECOMPILE)
RECOMPILEDIR= base/system
.else
RECOMPILEDIR=
.endif
+.if (${ARCH} == "amd64") && (${OSVERSION} >= 800000) && (${OSVERSION} < 1000029)
+MLRUNTIMEPATCHES_CMD= cd ${FILESDIR} && \
+ ( ${LS} do-patch-base_runtime_* extra-patch-base_runtime_* 2>&- || \
+ ${TRUE} )
+.else
MLRUNTIMEPATCHES_CMD= cd ${FILESDIR} && \
( ${LS} do-patch-base_runtime_* 2>&- || \
${TRUE} )
+.endif
MLSTANDARDPATCHES_CMD= cd ${FILESDIR} && \
( for srcdir in ${MLSTDSRCDIRS} ; \
do ${LS} do-patch-$${srcdir}_* 2>&- ; \
@@ -156,7 +193,7 @@ MLSTANDARDPATCHDIRS_CMD= cd ${FILESDIR} && \
do if ${LS} do-patch-$${srcdir}_* 1>&- 2>&- ; \
then ${ECHO_CMD} -n $${srcdir} " " ; break ; fi ; \
done ) || ${TRUE}
-.if ${PORT_OPTIONS:MEVERYTHING}
+.if defined(ML_EVERYTHING)
MLSOURCEPATCHES_CMD= cd ${FILESDIR} && \
( ${LS} do-patch-* 2>&- || \
${TRUE} )
@@ -172,8 +209,9 @@ do-build:
MLSTANDARDPATCHES=`${MLSTANDARDPATCHES_CMD}` \
MLSTANDARDPATCHDIRS=`${MLSTANDARDPATCHDIRS_CMD}` \
MLSOURCEPATCHES=`${MLSOURCEPATCHES_CMD}` \
+ CFLAGS='${CFLAGS}' AS='${AS}' EXTRA_DEFS='${EXTRA_DEFS}' \
./config/install.sh
-.if ${PORT_OPTIONS:MRECOMPILE}
+.if defined(ML_RECOMPILE)
-${RM} ${WRKDIR}/config/targets.customized
@${ECHO} '(* Recompiling the core system: *)'
cd ${WRKDIR}/${RECOMPILEDIR} && ( \
@@ -196,15 +234,16 @@ do-build:
cd ${WRKDIR} && unset PWD && \
FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="${PATCH_ARGS}" \
MLNORUNTIMECLEAN=yes RECOMPILEDIR="${RECOMPILEDIR}" \
+ CFLAGS='${CFLAGS}' AS='${AS}' EXTRA_DEFS='${EXTRA_DEFS}' \
./config/install.sh
.endif
# Nowadays PLIST has to be computed before installation. We do it in
# "pre-install" because source extraction happens during "build".
-.if ${PORT_OPTIONS:MEVERYTHING}
+.if defined(ML_EVERYTHING)
MLNOINSTALL= .cm
-.if ${PORT_OPTIONS:MRECOMPILE}
+.if defined(ML_RECOMPILE)
MLNOINSTALL+= sml.bin.${MLARCH}-unix sml.boot.${MLARCH}-unix \
sml.lib sml.${MLARCH}-bsd
.endif
@@ -215,37 +254,65 @@ MLSRCEXCLUDEREGEX+= -e '/${excl}$$' -e '/${excl}/'
MLPATCHPATHREGEX= -E -e 's%(^|[^_])_([^_]|$$)%\1/\2%g' \
-e 's%(^|[^_])__([^_]|$$)%\1_\2%g' \
-e 's%(^|[^_])___([^_]|$$)%\1/_\2%g'
+.endif
pre-install:
+.if defined(ML_EVERYTHING)
@${ECHO} -n '(* Computing package list ...'
@${TAR} -tzf ${WRKDIR}/runtime.tgz | \
${SED} -E -e 's%^(.*[^/])$$%${MLROOTRELATIVE}/base/\1%' \
-e 's%^(.*)/$$%@dirrm\ ${MLROOTRELATIVE}/base/\1%' \
> ${MLRUNTIMEPLIST}
- `${MLRUNTIMEPATCHES_CMD}` | \
+ @${MLRUNTIMEPATCHES_CMD} | \
+ ${SED} ${MLPATCHPATHREGEX} | \
+ ${SED} -E -e 's%^(do|extra)-patch-(base/.*)%${MLROOTRELATIVE}/\2%' \
+ > ${MLRUNTIMEPLIST}.patched
+ -@${GREP} -F -v -f ${MLRUNTIMEPLIST} ${MLRUNTIMEPLIST}.patched \
+ > ${MLRUNTIMEPLIST}.patchednew
+ @${CAT} ${MLRUNTIMEPLIST}.patchednew >> ${MLRUNTIMEPLIST}
+ @${MLRUNTIMEPATCHES_CMD} | \
${SED} ${MLPATCHPATHREGEX} | \
- ${SED} -E -e 's%^do-patch-(base/.*)%${MLROOTRELATIVE}/\1.orig%' \
+ ${SED} -E -e 's%^(do|extra)-patch-(base/.*)%${MLROOTRELATIVE}/\2.orig%' \
>> ${MLRUNTIMEPLIST}
@cd "${WRKDIR}" && ( \
( ${FIND} -s -d ${MLSRCDIRS} \! -type d | \
${AWK} '{ print "${MLROOTRELATIVE}/" $$0 }' ) ; \
( ${FIND} -s -d ${MLSRCDIRS} -type d -empty | \
- ${AWK} '{ print "@exec mk""dir -p %D/${MLROOTRELATIVE}/" $$0 }' ) ; \
+ ${AWK} '{ print "@exec mkdir${CALM} -p %D/${MLROOTRELATIVE}/" $$0 }' ) ; \
( ${FIND} -s -d ${MLSRCDIRS} -type d | \
${AWK} '{ print "@dirrm ${MLROOTRELATIVE}/" $$0 }' ) ) | \
${EGREP} -v ${MLSRCEXCLUDEREGEX} > ${MLSRCPLIST}
- @${GREP} -h "^[^@]" ${MLPLISTFILES} | ${SORT} -u > ${PLIST}
- @${GREP} -h "^@exec mk""dir" ${MLPLISTFILES} | ${SORT} -u >> ${PLIST}
- @${GREP} -h "^@dirrm" ${MLPLISTFILES} | ${SORT} -r -u >> ${PLIST}
+ @${SED} -e 's/^%%EVERYTHING%%//' ${MLPLISTFILES} | \
+ ${GREP} -h -v "^@dirrm" | ${SORT} -u > ${PLIST}
+ @${GREP} -h "^@exec mkdir${CALM}" ${MLPLISTFILES} | ${SORT} -u >> ${PLIST}
+ @${SED} -e 's/^%%EVERYTHING%%//' ${MLPLISTFILES} | \
+ ${GREP} -h "^@dirrm" | ${SORT} -r -u >> ${PLIST}
@${ECHO} ' done. *)'
.endif
+# ${PKGINSTALL} contains multiexec-wrapper, which is used to select
+# between executables of the same name that have been installed by
+# different packages (like smlnj and smlnj-devel). The source of
+# multiexec-wrapper is extracted from ${PKGINSTALL}, and inserted
+# into ${PKGINSTALL} in compressed and encoded form. So it is still
+# available when being installed from a binary package, even if
+# ${PKGINSTALL} is no file at that time (but only input to a shell).
+ @${SED} -e '/^#%%PKG-INSTALL-START%%$$/,/^#%%PKG-INSTALL-END%%$$/d' \
+ ${PKGINSTALL} > ${PKGINSTALL}.script
+ @${GZIP_CMD} ${PKGINSTALL}.script
+ @b64encode ${PKGINSTALL}.script.gz script.gz > ${PKGINSTALL}.script.gz.b64
+ @${SED} -n -e '1,/~EOF~.$$/p' ${PKGINSTALL} > ${PKGINSTALL}.pre
+ @${SED} -n -e '/^~EOF~$$/,$$p' ${PKGINSTALL} > ${PKGINSTALL}.post
+ @${CAT} ${PKGINSTALL}.pre ${PKGINSTALL}.script.gz.b64 ${PKGINSTALL}.post > ${PKGINSTALL}.full
+ @${DIFF} -q ${PKGINSTALL} ${PKGINSTALL}.full >/dev/null || ${CP} ${PKGINSTALL}.full ${PKGINSTALL}
# The install target installs the heaps and libraries to their final
# location in ${MLBIN} and ${MLLIB}.
# In case of recompilation, installml installs the sml heap and the
# libraries built during compiler bootstrap to ${MLBIN} and ${MLLIB}.
+# When staging CM_PATHCONFIG has to point to the final
+# ${MLLIB}/pathconfig (in ${PREFIX}) while building the compiler.
-.if ${PORT_OPTIONS:MEVERYTHING}
+.if defined(ML_EVERYTHING)
MLSRCEXCLUDES=
.for excl in ${MLNOINSTALL}
MLSRCEXCLUDES+= --exclude "${excl}"
@@ -253,11 +320,14 @@ MLSRCEXCLUDES+= --exclude "${excl}"
.endif
do-install:
- ${MKDIR} "${MLROOT}"
-.if ! ${PORT_OPTIONS:MRECOMPILE}
+ ${MKDIR} "${STAGEDIR}${MLROOT}"
+.if ! defined(ML_RECOMPILE)
cd ${WRKDIR} && unset PWD && \
FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="${PATCH_ARGS}" \
- INSTALLDIR="${MLROOT}" ./config/install.sh
+ STAGEDIR="${STAGEDIR}" MLLIB="${MLLIB}" \
+ INSTALLDIR="${STAGEDIR}${MLROOT}" \
+ CFLAGS='${CFLAGS}' AS='${AS}' EXTRA_DEFS='${EXTRA_DEFS}' \
+ ./config/install.sh
.else
@${ECHO} '(* Rebuilding the recompiled libs: *)'
cd ${WRKDIR}/${RECOMPILEDIR} && ( \
@@ -271,26 +341,33 @@ do-install:
@${ECHO} '(* Installing into ${MLROOT}: *)'
cd ${WRKDIR} && unset PWD && \
FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="${PATCH_ARGS}" \
- INSTALLDIR="${MLROOT}" RECOMPILEDIR="${RECOMPILEDIR}" \
+ STAGEDIR="${STAGEDIR}" MLLIB="${MLLIB}" \
+ INSTALLDIR="${STAGEDIR}${MLROOT}" RECOMPILEDIR="${RECOMPILEDIR}" \
+ CFLAGS='${CFLAGS}' AS='${AS}' EXTRA_DEFS='${EXTRA_DEFS}' \
./config/install.sh
.endif
- MLARCHOPSYS=`${MLBIN}/.arch-n-opsys` && \
+ MLARCHOPSYS=`${STAGEDIR}${MLBIN}/.arch-n-opsys` && \
( eval $${MLARCHOPSYS} ; \
- ${STRIP_CMD} "${MLBIN}/.run/run.$${ARCH}-$${OPSYS}" )
- @${CHOWN} -R ${BINOWN}:${BINGRP} "${MLBIN}" "${MLLIB}"
-.if ${PORT_OPTIONS:MEVERYTHING}
+ ${STRIP_CMD} "${STAGEDIR}${MLBIN}/.run/run.$${ARCH}-$${OPSYS}" )
+.if defined(ML_EVERYTHING)
@${ECHO} '(* Cleaning base/runtime: *)'
cd ${WRKDIR}/base/runtime/objs && ${MAKE_CMD} clean
- @${ECHO} -n '(* Installing sources into ${MLROOT} ...'
+ @${ECHO} -n '(* Installing sources into ${STAGEDIR}${MLROOT} ...'
@cd ${WRKDIR} && ${TAR} -cf - ${MLSRCEXCLUDES} ${MLSRCDIRS} | \
- ${TAR} -xf - -C "${MLROOT}"
- @${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${MLSRCS}
+ ${TAR} -xf - -C "${STAGEDIR}${MLROOT}"
@${ECHO} ' done. *)'
.endif
post-install:
+# Only execute ${PKGINSTALL} when installing to ${PREFIX},
+# but not when staging.
+.ifmake install${CALM}
PKG_PREFIX=${PREFIX} MULTIEXEC_WRAPPER_VERBOSE=yes \
${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
+.endif
+
+post-stage:
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/smlnj/bin/.run/run.x86-freebsd.so
.ifndef MULTIEXEC_WRAPPER_VERBOSE
deinstall:
@@ -298,14 +375,14 @@ deinstall:
cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} deinstall
.endif
-# This target may be used by dependent ports to set SMLNJ_DEVEL_VERSION
-# either to the currently installed sml-nj-devel package's version
-# or else to this port's version. SMLNJ_DEVEL_VERSION is an environment
+# This target may be used by dependent ports to set SMLNJ_VERSION
+# either to the currently installed smlnj package's version
+# or else to this port's version. SMLNJ_VERSION is an environment
# variable used by multiexec-wrapper to select the executable
-# from that smlnj-devel-* package matching SMLNJ_DEVEL_VERSION.
-smlnj-devel-version:
- @${EXPR} `${PKG_INFO} -q -O lang/sml-nj-devel` : '.*-\(.*\)' \
- 2>/dev/null || \
+# from that smlnj-* package matching SMLNJ_VERSION.
+smlnj-version:
+ @{ ${PKG_INFO} -e smlnj && \
+ ${EXPR} `${PKG_INFO} -E smlnj` : '.*-\(.*\)' 2>/dev/null ; } || \
${ECHO_CMD} ${PKGVERSION}
.include <bsd.port.post.mk>
diff --git a/lang/smlnj/distinfo b/lang/smlnj/distinfo
new file mode 100644
index 000000000000..fb7c97e0a07c
--- /dev/null
+++ b/lang/smlnj/distinfo
@@ -0,0 +1,40 @@
+SIZE (smlnj/110.76/MLRISC.tgz) = 1434516
+SHA256 (smlnj/110.76/MLRISC.tgz) = 9d944dea4e80a8ef2cc01e7e16ae72cb280f2e4dc0d6648c9bc27156ccfcc102
+SIZE (smlnj/110.76/boot.x86-unix.tgz) = 5890950
+SHA256 (smlnj/110.76/boot.x86-unix.tgz) = dd16569fb6991d673e66dae57f5e9b372d5a4e305f92a9756002e4bb296c9b61
+SIZE (smlnj/110.76/ckit.tgz) = 194486
+SHA256 (smlnj/110.76/ckit.tgz) = c4534e6e7f910ebee3146cc8ed214a1d5a2ea90afbd79c2290cefdc784ee0dbb
+SIZE (smlnj/110.76/cm.tgz) = 200425
+SHA256 (smlnj/110.76/cm.tgz) = 539e8199764a803f486dbf5c0ecb3fa3b2277a6b52ccbbf350bbdcc231bec193
+SIZE (smlnj/110.76/cml.tgz) = 106005
+SHA256 (smlnj/110.76/cml.tgz) = cbd357a3b3377d049911a247be880dcde7f52f705f7cdfe800b67631858681e1
+SHA256 (smlnj/110.76/compiler.tgz) = 322755b8a3f105eec4ce4a3197aaf83bcd542e4c2b2f43c724d0ae8f393bf681
+SIZE (smlnj/110.76/compiler.tgz) = 817182
+SHA256 (smlnj/110.76/config.tgz) = 41cec8bd28c43f49bea24cc7d80d091d8a0e0c7473ee67e4a0b06019567ca557
+SIZE (smlnj/110.76/config.tgz) = 511139
+SHA256 (smlnj/110.76/eXene.tgz) = 35befa7d37207c7fc2eab81e29e3a5afb4f2c5893f7336394906425d5f4ee607
+SIZE (smlnj/110.76/eXene.tgz) = 703059
+SIZE (smlnj/110.76/heap2asm.tgz) = 1314
+SHA256 (smlnj/110.76/heap2asm.tgz) = 8c1f52bc7459de1d0d8e07807abb8e8916fa5ef1cf08c0ceb3f06437f977215d
+SIZE (smlnj/110.76/ml-burg.tgz) = 36341
+SHA256 (smlnj/110.76/ml-burg.tgz) = d59dad9188778c96b3e59f9d754a4fbdef4b67de2ded67deb0d26c40915a594e
+SIZE (smlnj/110.76/ml-lex.tgz) = 33150
+SHA256 (smlnj/110.76/ml-lex.tgz) = 9d00143cff4e8cc87421270d34b29864c27d353d6b429cce3d3428f6c7280a6b
+SIZE (smlnj/110.76/ml-lpt.tgz) = 256293
+SHA256 (smlnj/110.76/ml-lpt.tgz) = 9970b22506a605012055700cc28497c2850d29fbb7bcc5b069fbef785220fc8d
+SHA256 (smlnj/110.76/ml-yacc.tgz) = 9151f7fef0abcb312daf731621b682b2c7e9f87a151832e99c30b5e56f03f1cf
+SIZE (smlnj/110.76/ml-yacc.tgz) = 99943
+SHA256 (smlnj/110.76/nlffi.tgz) = 07bdc123b2c93f01bc0a5bbdf33aac0b34407bd70cd8d3e1d06ad55e92deb521
+SIZE (smlnj/110.76/nlffi.tgz) = 74484
+SIZE (smlnj/110.76/pgraph.tgz) = 5440
+SHA256 (smlnj/110.76/pgraph.tgz) = df44036b170f68a79a62134812adecd54c3f0da2188f0190996fc57faa10969c
+SIZE (smlnj/110.76/runtime.tgz) = 324373
+SHA256 (smlnj/110.76/runtime.tgz) = f6086cd4e30ea3a89c528ee08c793eca77f7701589e0436acf347faf7e940a7f
+SHA256 (smlnj/110.76/smlnj-c.tgz) = 0cdf1c3563f3080dffc184e8e64f5e58f7f21f1426d43cb8960cf090e2232a6f
+SIZE (smlnj/110.76/smlnj-c.tgz) = 10534
+SIZE (smlnj/110.76/smlnj-lib.tgz) = 402937
+SHA256 (smlnj/110.76/smlnj-lib.tgz) = 81e994a07d7c8979b28c4911272de3c37eec648e58c03a9dc1ecb9bbbadca1d7
+SIZE (smlnj/110.76/system.tgz) = 227685
+SHA256 (smlnj/110.76/system.tgz) = 8f6a143db22a9d025e2820899c9cccbf0e66c679a9aa68c3dcd1bec68003da37
+SHA256 (smlnj/110.76/trace-debug-profile.tgz) = 3769e1d251d04c95b4c1b759f3bf21644bcb3135404d0346e8ff34553ae704df
+SIZE (smlnj/110.76/trace-debug-profile.tgz) = 3899
diff --git a/lang/smlnj/files/do-patch-base_runtime_objs_makefile b/lang/smlnj/files/do-patch-base_runtime_objs_makefile
new file mode 100644
index 000000000000..36e43c459178
--- /dev/null
+++ b/lang/smlnj/files/do-patch-base_runtime_objs_makefile
@@ -0,0 +1,43 @@
+--- base/runtime/objs/makefile.orig 2012-04-18 02:28:08.000000000 +0200
++++ base/runtime/objs/makefile 2014-06-30 20:25:38.000000000 +0200
+@@ -5,10 +5,10 @@
+
+ SHELL = /bin/sh
+ MAKE = make
+-CC = cc
+-CPP = /lib/cpp
++CC ?= cc
++CPP ?= /lib/cpp
+ LD_LIBS =
+-AS = as
++AS ?= as
+ AR = ar
+ ARFLAGS = rcv
+ RANLIB = ranlib
+@@ -38,7 +38,7 @@
+ CLIB_DIR = $(ROOT_DIR)/c-libs
+ CONFIG_DIR = $(ROOT_DIR)/config
+
+-CFLAGS = -O
++CFLAGS ?= -O
+
+ INCLUDES = -I$(OBJS_DIR) -I$(INC_DIR)
+ GC_INCLUDES = $(INCLUDES) -I$(GC_DIR)
+@@ -329,7 +329,7 @@
+ #
+ MK_ARGS = VERSION="$(VERSION)" \
+ MAKE="$(MAKE)" \
+- CC="$(CC)" CFLAGS="$(CFLAGS)" DEFS="$(DEFS)" \
++ CC="$(CC)" CFLAGS="$(CFLAGS)" DEFS='$(DEFS)' \
+ AR="$(AR)" ARFLAGS="$(ARFLAGS)" \
+ RANLIB="$(RANLIB)" \
+ INCLUDES="$(GC_INCLUDES) -I../bytecode"
+@@ -420,7 +420,7 @@
+ #
+ LIB_MK_ARGS = VERSION="$(VERSION)" \
+ MAKE="$(MAKE)" \
+- CC="$(CC)" CFLAGS="$(CFLAGS)" DEFS="$(DEFS)" \
++ CC="$(CC)" CFLAGS="$(CFLAGS)" DEFS='$(DEFS)' \
+ AR="$(AR)" ARFLAGS="$(ARFLAGS)" \
+ RANLIB="$(RANLIB)" \
+ INCLUDES="$(LIB_INCLUDES)"
diff --git a/lang/smlnj/files/do-patch-base_runtime_objs_mk.x86-freebsd b/lang/smlnj/files/do-patch-base_runtime_objs_mk.x86-freebsd
new file mode 100644
index 000000000000..9a3b982f6db8
--- /dev/null
+++ b/lang/smlnj/files/do-patch-base_runtime_objs_mk.x86-freebsd
@@ -0,0 +1,37 @@
+--- base/runtime/objs/mk.x86-freebsd.orig 2006-04-20 17:28:53.000000000 +0200
++++ base/runtime/objs/mk.x86-freebsd 2014-07-04 13:12:45.000000000 +0200
+@@ -5,19 +5,19 @@
+
+ SHELL = /bin/sh
+
+-MAKE = gmake
++MAKE = make
+
+ ARFLAGS = Trcv
+-CC = gcc -ansi
+-CFLAGS = -O2
+-CPP = gcc -x assembler-with-cpp -E -P
++CC ?= gcc -ansi
++CFLAGS ?= -O2
++CPP = ${CC} -x assembler-with-cpp -E -P
+ #CPP = /usr/bin/cpp -P
+
+ XOBJS =
+ XLIBS = ../c-libs/dl/libunix-dynload.a
+ LD_LIBS =
+ BASE_DEFS =
+-DEFS = $(BASE_DEFS) -DHOST_X86 -DTARGET_X86 -DOPSYS_UNIX -DOPSYS_FREEBSD -DDLOPEN
++DEFS = $(BASE_DEFS) -DHOST_X86 -DTARGET_X86 -DOPSYS_UNIX -DOPSYS_FREEBSD -DDLOPEN $(EXTRA_DEFS)
+ TARGET = X86
+ VERSION = v-x86-freebsd
+ RUNTIME = run.x86-freebsd
+@@ -25,6 +25,6 @@
+ RUNTIME_A = run.x86-freebsd.a
+
+ all:
+- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+- ($(MAKE) RUNTIME="$(RUNTIME_SO)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-shared" $(RUNTIME_SO))
+- ($(MAKE) RUNTIME_A="$(RUNTIME_A)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="" $(RUNTIME_A))
++ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" AS="$(AS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ ($(MAKE) RUNTIME="$(RUNTIME_SO)" VERSION="$(VERSION)" MAKE="$(MAKE)" AS="$(AS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-shared" $(RUNTIME_SO))
++ ($(MAKE) RUNTIME_A="$(RUNTIME_A)" VERSION="$(VERSION)" MAKE="$(MAKE)" AS="$(AS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="" $(RUNTIME_A))
diff --git a/lang/smlnj/files/extra-patch-base_runtime_c-libs_smlnj-math_ctlrndmode.c b/lang/smlnj/files/extra-patch-base_runtime_c-libs_smlnj-math_ctlrndmode.c
new file mode 100644
index 000000000000..057f573fcaa9
--- /dev/null
+++ b/lang/smlnj/files/extra-patch-base_runtime_c-libs_smlnj-math_ctlrndmode.c
@@ -0,0 +1,22 @@
+--- base/runtime/c-libs/smlnj-math/ctlrndmode.c.orig 2000-06-01 20:34:03.000000000 +0200
++++ base/runtime/c-libs/smlnj-math/ctlrndmode.c 2013-06-18 15:08:01.715990633 +0200
+@@ -3,6 +3,19 @@
+ * COPYRIGHT (c) 1996 AT&T Research.
+ */
+
++ #if defined(OPSYS_FREEBSD)
++ # if defined(INCLUDE_FREEBSD_I386__TYPES)
++ # include <sys/cdefs.h>
++ # include INCLUDE_FREEBSD_I386__TYPES
++ # endif
++ # if defined(INCLUDE_FREEBSD_I386_ENDIAN)
++ # include INCLUDE_FREEBSD_I386_ENDIAN
++ # endif
++ # if defined(INCLUDE_FREEBSD_I386_IEEEFP)
++ # include INCLUDE_FREEBSD_I386_IEEEFP
++ # endif
++ #endif
++
+ #include "ml-base.h"
+ #include "fp-dep.h"
+ #include "ml-objects.h"
diff --git a/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-8-i386-__types.h b/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-8-i386-__types.h
new file mode 100644
index 000000000000..cedda3e5f374
--- /dev/null
+++ b/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-8-i386-__types.h
@@ -0,0 +1,137 @@
+--- base/runtime/include/freebsd-8-i386-_types.h.orig 1970-01-01 01:00:00.000000000 +0100
++++ base/runtime/include/freebsd-8-i386-_types.h 2013-06-19 16:14:57.000000000 +0200
+@@ -0,0 +1,134 @@
++/*-
++ * Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
++ * Copyright (c) 1990, 1993
++ * The Regents of the University of California. All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ * 3. All advertising materials mentioning features or use of this software
++ * must display the following acknowledgement:
++ * This product includes software developed by the University of
++ * California, Berkeley and its contributors.
++ * 4. Neither the name of the University nor the names of its contributors
++ * may be used to endorse or promote products derived from this software
++ * without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ *
++ * From: @(#)ansi.h 8.2 (Berkeley) 1/4/94
++ * From: @(#)types.h 8.3 (Berkeley) 1/5/94
++ * $FreeBSD: stable/8/sys/i386/include/_types.h 176827 2008-03-05 11:21:14Z bde $
++ */
++
++#ifndef _MACHINE__TYPES_H_
++#define _MACHINE__TYPES_H_
++
++#ifndef _SYS_CDEFS_H_
++#error this file needs sys/cdefs.h as a prerequisite
++#endif
++
++#define __NO_STRICT_ALIGNMENT
++
++/*
++ * Basic types upon which most other types are built.
++ */
++typedef __signed char __int8_t;
++typedef unsigned char __uint8_t;
++typedef short __int16_t;
++typedef unsigned short __uint16_t;
++typedef int __int32_t;
++typedef unsigned int __uint32_t;
++
++#if defined(lint)
++/* LONGLONG */
++typedef long long __int64_t;
++/* LONGLONG */
++typedef unsigned long long __uint64_t;
++#elif defined(__GNUCLIKE_ATTRIBUTE_MODE_DI)
++typedef int __attribute__((__mode__(__DI__))) __int64_t;
++typedef unsigned int __attribute__((__mode__(__DI__))) __uint64_t;
++#else
++/* LONGLONG */
++typedef long long __int64_t;
++/* LONGLONG */
++typedef unsigned long long __uint64_t;
++#endif
++
++/*
++ * Standard type definitions.
++ */
++typedef unsigned long __clock_t; /* clock()... */
++typedef unsigned int __cpumask_t;
++typedef __int32_t __critical_t;
++typedef long double __double_t;
++typedef long double __float_t;
++typedef __int32_t __intfptr_t;
++typedef __int64_t __intmax_t;
++typedef __int32_t __intptr_t;
++typedef __int32_t __int_fast8_t;
++typedef __int32_t __int_fast16_t;
++typedef __int32_t __int_fast32_t;
++typedef __int64_t __int_fast64_t;
++typedef __int8_t __int_least8_t;
++typedef __int16_t __int_least16_t;
++typedef __int32_t __int_least32_t;
++typedef __int64_t __int_least64_t;
++typedef __int32_t __ptrdiff_t; /* ptr1 - ptr2 */
++typedef __int32_t __register_t;
++typedef __int32_t __segsz_t; /* segment size (in pages) */
++typedef __uint32_t __size_t; /* sizeof() */
++typedef __int32_t __ssize_t; /* byte count or error */
++typedef __int32_t __time_t; /* time()... */
++typedef __uint32_t __uintfptr_t;
++typedef __uint64_t __uintmax_t;
++typedef __uint32_t __uintptr_t;
++typedef __uint32_t __uint_fast8_t;
++typedef __uint32_t __uint_fast16_t;
++typedef __uint32_t __uint_fast32_t;
++typedef __uint64_t __uint_fast64_t;
++typedef __uint8_t __uint_least8_t;
++typedef __uint16_t __uint_least16_t;
++typedef __uint32_t __uint_least32_t;
++typedef __uint64_t __uint_least64_t;
++typedef __uint32_t __u_register_t;
++typedef __uint32_t __vm_offset_t;
++typedef __int64_t __vm_ooffset_t;
++#ifdef PAE
++typedef __uint64_t __vm_paddr_t;
++#else
++typedef __uint32_t __vm_paddr_t;
++#endif
++typedef __uint64_t __vm_pindex_t;
++typedef __uint32_t __vm_size_t;
++
++/*
++ * Unusual type definitions.
++ */
++#ifdef __GNUCLIKE_BUILTIN_VARARGS
++typedef __builtin_va_list __va_list; /* internally known to gcc */
++#else
++typedef char * __va_list;
++#endif /* __GNUCLIKE_BUILTIN_VARARGS */
++#if defined(__GNUC_VA_LIST_COMPATIBILITY) && !defined(__GNUC_VA_LIST) \
++ && !defined(__NO_GNUC_VA_LIST)
++#define __GNUC_VA_LIST
++typedef __va_list __gnuc_va_list; /* compatibility w/GNU headers*/
++#endif
++
++#endif /* !_MACHINE__TYPES_H_ */
diff --git a/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-8-i386-endian.h b/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-8-i386-endian.h
new file mode 100644
index 000000000000..c00265a5a803
--- /dev/null
+++ b/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-8-i386-endian.h
@@ -0,0 +1,139 @@
+--- base/runtime/include/freebsd-8-i386-endian.h.orig 1970-01-01 01:00:00.000000000 +0100
++++ base/runtime/include/freebsd-8-i386-endian.h 2013-06-19 16:14:56.000000000 +0200
+@@ -0,0 +1,136 @@
++/*-
++ * Copyright (c) 1987, 1991 Regents of the University of California.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ * 4. Neither the name of the University nor the names of its contributors
++ * may be used to endorse or promote products derived from this software
++ * without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ *
++ * @(#)endian.h 7.8 (Berkeley) 4/3/91
++ * $FreeBSD: stable/8/sys/i386/include/endian.h 190854 2009-04-08 19:10:20Z ed $
++ */
++
++#ifndef _MACHINE_ENDIAN_H_
++#define _MACHINE_ENDIAN_H_
++
++#include <sys/cdefs.h>
++#include <sys/_types.h>
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++/*
++ * Define the order of 32-bit words in 64-bit words.
++ */
++#define _QUAD_HIGHWORD 1
++#define _QUAD_LOWWORD 0
++
++/*
++ * Definitions for byte order, according to byte significance from low
++ * address to high.
++ */
++#define _LITTLE_ENDIAN 1234 /* LSB first: i386, vax */
++#define _BIG_ENDIAN 4321 /* MSB first: 68000, ibm, net */
++#define _PDP_ENDIAN 3412 /* LSB first in word, MSW first in long */
++
++#define _BYTE_ORDER _LITTLE_ENDIAN
++
++/*
++ * Deprecated variants that don't have enough underscores to be useful in more
++ * strict namespaces.
++ */
++#if __BSD_VISIBLE
++#define LITTLE_ENDIAN _LITTLE_ENDIAN
++#define BIG_ENDIAN _BIG_ENDIAN
++#define PDP_ENDIAN _PDP_ENDIAN
++#define BYTE_ORDER _BYTE_ORDER
++#endif
++
++#if defined(__GNUCLIKE_ASM) && defined(__GNUCLIKE_BUILTIN_CONSTANT_P)
++
++#define __byte_swap_int_var(x) \
++__extension__ ({ register __uint32_t __X = (x); \
++ __asm ("bswap %0" : "+r" (__X)); \
++ __X; })
++
++#ifdef __OPTIMIZE__
++
++#define __byte_swap_int_const(x) \
++ ((((x) & 0xff000000) >> 24) | \
++ (((x) & 0x00ff0000) >> 8) | \
++ (((x) & 0x0000ff00) << 8) | \
++ (((x) & 0x000000ff) << 24))
++#define __byte_swap_int(x) (__builtin_constant_p(x) ? \
++ __byte_swap_int_const(x) : __byte_swap_int_var(x))
++
++#else /* __OPTIMIZE__ */
++
++#define __byte_swap_int(x) __byte_swap_int_var(x)
++
++#endif /* __OPTIMIZE__ */
++
++static __inline __uint64_t
++__bswap64(__uint64_t _x)
++{
++
++ return ((_x >> 56) | ((_x >> 40) & 0xff00) | ((_x >> 24) & 0xff0000) |
++ ((_x >> 8) & 0xff000000) | ((_x << 8) & ((__uint64_t)0xff << 32)) |
++ ((_x << 24) & ((__uint64_t)0xff << 40)) |
++ ((_x << 40) & ((__uint64_t)0xff << 48)) | ((_x << 56)));
++}
++
++static __inline __uint32_t
++__bswap32(__uint32_t _x)
++{
++
++ return (__byte_swap_int(_x));
++}
++
++static __inline __uint16_t
++__bswap16(__uint16_t _x)
++{
++ return (_x << 8 | _x >> 8);
++}
++
++#define __htonl(x) __bswap32(x)
++#define __htons(x) __bswap16(x)
++#define __ntohl(x) __bswap32(x)
++#define __ntohs(x) __bswap16(x)
++
++#else /* !(__GNUCLIKE_ASM && __GNUCLIKE_BUILTIN_CONSTANT_P) */
++
++/*
++ * No optimizations are available for this compiler. Fall back to
++ * non-optimized functions by defining the constant usually used to prevent
++ * redefinition.
++ */
++#define _BYTEORDER_FUNC_DEFINED
++
++#endif /* __GNUCLIKE_ASM && __GNUCLIKE_BUILTIN_CONSTANT_P */
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* !_MACHINE_ENDIAN_H_ */
diff --git a/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-8-i386-ieeefp.h b/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-8-i386-ieeefp.h
new file mode 100644
index 000000000000..9722f88fd4f3
--- /dev/null
+++ b/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-8-i386-ieeefp.h
@@ -0,0 +1,262 @@
+--- base/runtime/include/freebsd-8-i386-ieeefp.h.orig 1970-01-01 01:00:00.000000000 +0100
++++ base/runtime/include/freebsd-8-i386-ieeefp.h 2013-06-19 16:14:57.000000000 +0200
+@@ -0,0 +1,259 @@
++/*-
++ * Copyright (c) 2003 Peter Wemm.
++ * Copyright (c) 1990 Andrew Moore, Talke Studio
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ * 3. All advertising materials mentioning features or use of this software
++ * must display the following acknowledgement:
++ * This product includes software developed by the University of
++ * California, Berkeley and its contributors.
++ * 4. Neither the name of the University nor the names of its contributors
++ * may be used to endorse or promote products derived from this software
++ * without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ *
++ * from: @(#) ieeefp.h 1.0 (Berkeley) 9/23/93
++ * $FreeBSD: stable/8/sys/i386/include/ieeefp.h 175234 2008-01-11 18:59:35Z bde $
++ */
++
++#ifndef _MACHINE_IEEEFP_H_
++#define _MACHINE_IEEEFP_H_
++
++/*
++ * IEEE floating point type, constant and function definitions.
++ * XXX: FP*FLD and FP*OFF are undocumented pollution.
++ */
++
++#ifndef _SYS_CDEFS_H_
++#error this file needs sys/cdefs.h as a prerequisite
++#endif
++
++/*
++ * Rounding modes.
++ */
++typedef enum {
++ FP_RN=0, /* round to nearest */
++ FP_RM, /* round down towards minus infinity */
++ FP_RP, /* round up towards plus infinity */
++ FP_RZ /* truncate */
++} fp_rnd_t;
++
++/*
++ * Precision (i.e., rounding precision) modes.
++ */
++typedef enum {
++ FP_PS=0, /* 24 bit (single-precision) */
++ FP_PRS, /* reserved */
++ FP_PD, /* 53 bit (double-precision) */
++ FP_PE /* 64 bit (extended-precision) */
++} fp_prec_t;
++
++#define fp_except_t int
++
++/*
++ * Exception bit masks.
++ */
++#define FP_X_INV 0x01 /* invalid operation */
++#define FP_X_DNML 0x02 /* denormal */
++#define FP_X_DZ 0x04 /* zero divide */
++#define FP_X_OFL 0x08 /* overflow */
++#define FP_X_UFL 0x10 /* underflow */
++#define FP_X_IMP 0x20 /* (im)precision */
++#define FP_X_STK 0x40 /* stack fault */
++
++/*
++ * FPU control word bit-field masks.
++ */
++#define FP_MSKS_FLD 0x3f /* exception masks field */
++#define FP_PRC_FLD 0x300 /* precision control field */
++#define FP_RND_FLD 0xc00 /* rounding control field */
++
++/*
++ * FPU status word bit-field masks.
++ */
++#define FP_STKY_FLD 0x3f /* sticky flags field */
++
++/*
++ * FPU control word bit-field offsets (shift counts).
++ */
++#define FP_MSKS_OFF 0 /* exception masks offset */
++#define FP_PRC_OFF 8 /* precision control offset */
++#define FP_RND_OFF 10 /* rounding control offset */
++
++/*
++ * FPU status word bit-field offsets (shift counts).
++ */
++#define FP_STKY_OFF 0 /* sticky flags offset */
++
++#ifdef __GNUCLIKE_ASM
++
++#define __fldcw(addr) __asm __volatile("fldcw %0" : : "m" (*(addr)))
++#define __fldenv(addr) __asm __volatile("fldenv %0" : : "m" (*(addr)))
++#define __fnclex() __asm __volatile("fnclex")
++#define __fnstcw(addr) __asm __volatile("fnstcw %0" : "=m" (*(addr)))
++#define __fnstenv(addr) __asm __volatile("fnstenv %0" : "=m" (*(addr)))
++#define __fnstsw(addr) __asm __volatile("fnstsw %0" : "=m" (*(addr)))
++
++/*
++ * Load the control word. Be careful not to trap if there is a currently
++ * unmasked exception (ones that will become freshly unmasked are not a
++ * problem). This case must be handled by a save/restore of the
++ * environment or even of the full x87 state. Accessing the environment
++ * is very inefficient, so only do it when necessary.
++ */
++static __inline void
++__fnldcw(unsigned short _cw, unsigned short _newcw)
++{
++ struct {
++ unsigned _cw;
++ unsigned _other[6];
++ } _env;
++ unsigned short _sw;
++
++ if ((_cw & FP_MSKS_FLD) != FP_MSKS_FLD) {
++ __fnstsw(&_sw);
++ if (((_sw & ~_cw) & FP_STKY_FLD) != 0) {
++ __fnstenv(&_env);
++ _env._cw = _newcw;
++ __fldenv(&_env);
++ return;
++ }
++ }
++ __fldcw(&_newcw);
++}
++
++static __inline fp_rnd_t
++fpgetround(void)
++{
++ unsigned short _cw;
++
++ __fnstcw(&_cw);
++ return ((fp_rnd_t)((_cw & FP_RND_FLD) >> FP_RND_OFF));
++}
++
++static __inline fp_rnd_t
++fpsetround(fp_rnd_t _m)
++{
++ fp_rnd_t _p;
++ unsigned short _cw, _newcw;
++
++ __fnstcw(&_cw);
++ _p = (fp_rnd_t)((_cw & FP_RND_FLD) >> FP_RND_OFF);
++ _newcw = _cw & ~FP_RND_FLD;
++ _newcw |= (_m << FP_RND_OFF) & FP_RND_FLD;
++ __fnldcw(_cw, _newcw);
++ return (_p);
++}
++
++static __inline fp_prec_t
++fpgetprec(void)
++{
++ unsigned short _cw;
++
++ __fnstcw(&_cw);
++ return ((fp_prec_t)((_cw & FP_PRC_FLD) >> FP_PRC_OFF));
++}
++
++static __inline fp_prec_t
++fpsetprec(fp_prec_t _m)
++{
++ fp_prec_t _p;
++ unsigned short _cw, _newcw;
++
++ __fnstcw(&_cw);
++ _p = (fp_prec_t)((_cw & FP_PRC_FLD) >> FP_PRC_OFF);
++ _newcw = _cw & ~FP_PRC_FLD;
++ _newcw |= (_m << FP_PRC_OFF) & FP_PRC_FLD;
++ __fnldcw(_cw, _newcw);
++ return (_p);
++}
++
++/*
++ * Get or set the exception mask.
++ * Note that the x87 mask bits are inverted by the API -- a mask bit of 1
++ * means disable for x87 and SSE, but for fp*mask() it means enable.
++ */
++
++static __inline fp_except_t
++fpgetmask(void)
++{
++ unsigned short _cw;
++
++ __fnstcw(&_cw);
++ return ((~_cw & FP_MSKS_FLD) >> FP_MSKS_OFF);
++}
++
++static __inline fp_except_t
++fpsetmask(fp_except_t _m)
++{
++ fp_except_t _p;
++ unsigned short _cw, _newcw;
++
++ __fnstcw(&_cw);
++ _p = (~_cw & FP_MSKS_FLD) >> FP_MSKS_OFF;
++ _newcw = _cw & ~FP_MSKS_FLD;
++ _newcw |= (~_m << FP_MSKS_OFF) & FP_MSKS_FLD;
++ __fnldcw(_cw, _newcw);
++ return (_p);
++}
++
++static __inline fp_except_t
++fpgetsticky(void)
++{
++ unsigned _ex;
++ unsigned short _sw;
++
++ __fnstsw(&_sw);
++ _ex = (_sw & FP_STKY_FLD) >> FP_STKY_OFF;
++ return ((fp_except_t)_ex);
++}
++
++static __inline fp_except_t
++fpresetsticky(fp_except_t _m)
++{
++ struct {
++ unsigned _cw;
++ unsigned _sw;
++ unsigned _other[5];
++ } _env;
++ fp_except_t _p;
++
++ _m &= FP_STKY_FLD >> FP_STKY_OFF;
++ _p = fpgetsticky();
++ if ((_p & ~_m) == _p)
++ return (_p);
++ if ((_p & ~_m) == 0) {
++ __fnclex();
++ return (_p);
++ }
++ __fnstenv(&_env);
++ _env._sw &= ~_m;
++ __fldenv(&_env);
++ return (_p);
++}
++
++#endif /* __GNUCLIKE_ASM */
++
++/* Suppress prototypes in the MI header. */
++#define _IEEEFP_INLINED_ 1
++
++#endif /* !_MACHINE_IEEEFP_H_ */
diff --git a/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-8-i386-signal.h b/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-8-i386-signal.h
new file mode 100644
index 000000000000..31570e340095
--- /dev/null
+++ b/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-8-i386-signal.h
@@ -0,0 +1,137 @@
+--- base/runtime/include/freebsd-8-i386-signal.h.orig 1970-01-01 01:00:00.000000000 +0100
++++ base/runtime/include/freebsd-8-i386-signal.h 2013-06-19 16:14:56.000000000 +0200
+@@ -0,0 +1,134 @@
++/*-
++ * Copyright (c) 1986, 1989, 1991, 1993
++ * The Regents of the University of California. All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ * 4. Neither the name of the University nor the names of its contributors
++ * may be used to endorse or promote products derived from this software
++ * without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ *
++ * @(#)signal.h 8.1 (Berkeley) 6/11/93
++ * $FreeBSD: stable/8/sys/i386/include/signal.h 190623 2009-04-01 13:44:28Z kib $
++ */
++
++#ifndef _MACHINE_SIGNAL_H_
++#define _MACHINE_SIGNAL_H_
++
++#include <sys/cdefs.h>
++#include <sys/_sigset.h>
++
++/*
++ * Machine-dependent signal definitions
++ */
++
++typedef int sig_atomic_t;
++
++#if __BSD_VISIBLE
++#include <machine/trap.h> /* codes for SIGILL, SIGFPE */
++
++/*
++ * Only the kernel should need these old type definitions.
++ */
++#if defined(_KERNEL) && defined(COMPAT_43)
++/*
++ * Information pushed on stack when a signal is delivered.
++ * This is used by the kernel to restore state following
++ * execution of the signal handler. It is also made available
++ * to the handler to allow it to restore state properly if
++ * a non-standard exit is performed.
++ */
++struct osigcontext {
++ int sc_onstack; /* sigstack state to restore */
++ osigset_t sc_mask; /* signal mask to restore */
++ int sc_esp; /* machine state follows: */
++ int sc_ebp;
++ int sc_isp;
++ int sc_eip;
++ int sc_efl;
++ int sc_es;
++ int sc_ds;
++ int sc_cs;
++ int sc_ss;
++ int sc_edi;
++ int sc_esi;
++ int sc_ebx;
++ int sc_edx;
++ int sc_ecx;
++ int sc_eax;
++ int sc_gs;
++ int sc_fs;
++ int sc_trapno;
++ int sc_err;
++};
++#endif
++
++/*
++ * The sequence of the fields/registers in struct sigcontext should match
++ * those in mcontext_t.
++ */
++struct sigcontext {
++ struct __sigset sc_mask; /* signal mask to restore */
++ int sc_onstack; /* sigstack state to restore */
++ int sc_gs; /* machine state (struct trapframe) */
++ int sc_fs;
++ int sc_es;
++ int sc_ds;
++ int sc_edi;
++ int sc_esi;
++ int sc_ebp;
++ int sc_isp;
++ int sc_ebx;
++ int sc_edx;
++ int sc_ecx;
++ int sc_eax;
++ int sc_trapno;
++ int sc_err;
++ int sc_eip;
++ int sc_cs;
++ int sc_efl;
++ int sc_esp;
++ int sc_ss;
++ int sc_len; /* sizeof(mcontext_t) */
++ /*
++ * XXX - See <machine/ucontext.h> and <machine/npx.h> for
++ * the following fields.
++ */
++ int sc_fpformat;
++ int sc_ownedfp;
++ int sc_spare1[1];
++ int sc_fpstate[128] __aligned(16);
++
++ int sc_fsbase;
++ int sc_gsbase;
++
++ int sc_spare2[6];
++};
++
++#define sc_sp sc_esp
++#define sc_fp sc_ebp
++#define sc_pc sc_eip
++#define sc_ps sc_efl
++#define sc_eflags sc_efl
++
++#endif /* __BSD_VISIBLE */
++
++#endif /* !_MACHINE_SIGNAL_H_ */
diff --git a/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-9-i386-__types.h b/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-9-i386-__types.h
new file mode 100644
index 000000000000..4a6ca38435dc
--- /dev/null
+++ b/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-9-i386-__types.h
@@ -0,0 +1,131 @@
+--- base/runtime/include/freebsd-9-i386-_types.h.orig 1970-01-01 01:00:00.000000000 +0100
++++ base/runtime/include/freebsd-9-i386-_types.h 2013-06-19 16:07:03.000000000 +0200
+@@ -0,0 +1,128 @@
++/*-
++ * Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
++ * Copyright (c) 1990, 1993
++ * The Regents of the University of California. All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ * 3. All advertising materials mentioning features or use of this software
++ * must display the following acknowledgement:
++ * This product includes software developed by the University of
++ * California, Berkeley and its contributors.
++ * 4. Neither the name of the University nor the names of its contributors
++ * may be used to endorse or promote products derived from this software
++ * without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ *
++ * From: @(#)ansi.h 8.2 (Berkeley) 1/4/94
++ * From: @(#)types.h 8.3 (Berkeley) 1/5/94
++ * $FreeBSD: stable/9/sys/i386/include/_types.h 222813 2011-06-07 08:46:13Z attilio $
++ */
++
++#ifndef _MACHINE__TYPES_H_
++#define _MACHINE__TYPES_H_
++
++#ifndef _SYS_CDEFS_H_
++#error this file needs sys/cdefs.h as a prerequisite
++#endif
++
++#define __NO_STRICT_ALIGNMENT
++
++/*
++ * Basic types upon which most other types are built.
++ */
++typedef __signed char __int8_t;
++typedef unsigned char __uint8_t;
++typedef short __int16_t;
++typedef unsigned short __uint16_t;
++typedef int __int32_t;
++typedef unsigned int __uint32_t;
++#ifndef lint
++__extension__
++#endif
++/* LONGLONG */
++typedef long long __int64_t;
++#ifndef lint
++__extension__
++#endif
++/* LONGLONG */
++typedef unsigned long long __uint64_t;
++
++/*
++ * Standard type definitions.
++ */
++typedef unsigned long __clock_t; /* clock()... */
++typedef __int32_t __critical_t;
++typedef long double __double_t;
++typedef long double __float_t;
++typedef __int32_t __intfptr_t;
++typedef __int64_t __intmax_t;
++typedef __int32_t __intptr_t;
++typedef __int32_t __int_fast8_t;
++typedef __int32_t __int_fast16_t;
++typedef __int32_t __int_fast32_t;
++typedef __int64_t __int_fast64_t;
++typedef __int8_t __int_least8_t;
++typedef __int16_t __int_least16_t;
++typedef __int32_t __int_least32_t;
++typedef __int64_t __int_least64_t;
++typedef __int32_t __ptrdiff_t; /* ptr1 - ptr2 */
++typedef __int32_t __register_t;
++typedef __int32_t __segsz_t; /* segment size (in pages) */
++typedef __uint32_t __size_t; /* sizeof() */
++typedef __int32_t __ssize_t; /* byte count or error */
++typedef __int32_t __time_t; /* time()... */
++typedef __uint32_t __uintfptr_t;
++typedef __uint64_t __uintmax_t;
++typedef __uint32_t __uintptr_t;
++typedef __uint32_t __uint_fast8_t;
++typedef __uint32_t __uint_fast16_t;
++typedef __uint32_t __uint_fast32_t;
++typedef __uint64_t __uint_fast64_t;
++typedef __uint8_t __uint_least8_t;
++typedef __uint16_t __uint_least16_t;
++typedef __uint32_t __uint_least32_t;
++typedef __uint64_t __uint_least64_t;
++typedef __uint32_t __u_register_t;
++typedef __uint32_t __vm_offset_t;
++typedef __int64_t __vm_ooffset_t;
++#ifdef PAE
++typedef __uint64_t __vm_paddr_t;
++#else
++typedef __uint32_t __vm_paddr_t;
++#endif
++typedef __uint64_t __vm_pindex_t;
++typedef __uint32_t __vm_size_t;
++
++/*
++ * Unusual type definitions.
++ */
++#ifdef __GNUCLIKE_BUILTIN_VARARGS
++typedef __builtin_va_list __va_list; /* internally known to gcc */
++#else
++typedef char * __va_list;
++#endif /* __GNUCLIKE_BUILTIN_VARARGS */
++#if defined(__GNUC_VA_LIST_COMPATIBILITY) && !defined(__GNUC_VA_LIST) \
++ && !defined(__NO_GNUC_VA_LIST)
++#define __GNUC_VA_LIST
++typedef __va_list __gnuc_va_list; /* compatibility w/GNU headers*/
++#endif
++
++#endif /* !_MACHINE__TYPES_H_ */
diff --git a/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-9-i386-endian.h b/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-9-i386-endian.h
new file mode 100644
index 000000000000..0b5e54e4a73d
--- /dev/null
+++ b/lang/smlnj/files/extra-patch-base_runtime_include_freebsd-9-i386-endian.h
@@ -0,0 +1,148 @@
+--- base/runtime/include/freebsd-9-i386-endian.h.orig 1970-01-01 01:00:00.000000000 +0100
++++ base/runtime/include/freebsd-9-i386-endian.h 2013-06-19 16:13:50.000000000 +0200
+@@ -0,0 +1,145 @@
++/*-
++ * Copyright (c) 1987, 1991 Regents of the University of California.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ * 4. Neither the name of the University nor the names of its contributors
++ * may be used to endorse or promote products derived from this software
++ * without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ *
++ * @(#)endian.h 7.8 (Berkeley) 4/3/91
++ * $FreeBSD: stable/9/sys/i386/include/endian.h 219819 2011-03-21 09:40:01Z jeff $
++ */
++
++#ifndef _MACHINE_ENDIAN_H_
++#define _MACHINE_ENDIAN_H_
++
++#include <sys/cdefs.h>
++#include <sys/_types.h>
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++/*
++ * Define the order of 32-bit words in 64-bit words.
++ */
++#define _QUAD_HIGHWORD 1
++#define _QUAD_LOWWORD 0
++
++/*
++ * Definitions for byte order, according to byte significance from low
++ * address to high.
++ */
++#define _LITTLE_ENDIAN 1234 /* LSB first: i386, vax */
++#define _BIG_ENDIAN 4321 /* MSB first: 68000, ibm, net */
++#define _PDP_ENDIAN 3412 /* LSB first in word, MSW first in long */
++
++#define _BYTE_ORDER _LITTLE_ENDIAN
++
++/*
++ * Deprecated variants that don't have enough underscores to be useful in more
++ * strict namespaces.
++ */
++#if __BSD_VISIBLE
++#define LITTLE_ENDIAN _LITTLE_ENDIAN
++#define BIG_ENDIAN _BIG_ENDIAN
++#define PDP_ENDIAN _PDP_ENDIAN
++#define BYTE_ORDER _BYTE_ORDER
++#endif
++
++#if defined(__GNUCLIKE_ASM) && defined(__GNUCLIKE_BUILTIN_CONSTANT_P)
++
++#define __bswap64_const(_x) \
++ (((_x) >> 56) | \
++ (((_x) >> 40) & (0xffULL << 8)) | \
++ (((_x) >> 24) & (0xffULL << 16)) | \
++ (((_x) >> 8) & (0xffULL << 24)) | \
++ (((_x) << 8) & (0xffULL << 32)) | \
++ (((_x) << 24) & (0xffULL << 40)) | \
++ (((_x) << 40) & (0xffULL << 48)) | \
++ ((_x) << 56))
++
++#define __bswap32_const(_x) \
++ (((_x) >> 24) | \
++ (((_x) & (0xff << 16)) >> 8) | \
++ (((_x) & (0xff << 8)) << 8) | \
++ ((_x) << 24))
++
++#define __bswap16_const(_x) (__uint16_t)((_x) << 8 | (_x) >> 8)
++
++static __inline __uint64_t
++__bswap64_var(__uint64_t __x)
++{
++
++ return __bswap64_const(__x);
++}
++
++
++static __inline __uint32_t
++__bswap32_var(__uint32_t _x)
++{
++
++ __asm ("bswap %0" : "+r" (_x));
++ return (_x);
++}
++
++static __inline __uint16_t
++__bswap16_var(__uint16_t _x)
++{
++
++ return (__bswap16_const(_x));
++}
++
++#define __bswap64(_x) \
++ (__builtin_constant_p(_x) ? \
++ __bswap64_const((__uint64_t)(_x)) : __bswap64_var(_x))
++
++#define __bswap32(_x) \
++ (__builtin_constant_p(_x) ? \
++ __bswap32_const((__uint32_t)(_x)) : __bswap32_var(_x))
++
++#define __bswap16(_x) \
++ (__builtin_constant_p(_x) ? \
++ __bswap16_const((__uint16_t)(_x)) : __bswap16_var(_x))
++
++#define __htonl(x) __bswap32(x)
++#define __htons(x) __bswap16(x)
++#define __ntohl(x) __bswap32(x)
++#define __ntohs(x) __bswap16(x)
++
++#else /* !(__GNUCLIKE_ASM && __GNUCLIKE_BUILTIN_CONSTANT_P) */
++
++/*
++ * No optimizations are available for this compiler. Fall back to
++ * non-optimized functions by defining the constant usually used to prevent
++ * redefinition.
++ */
++#define _BYTEORDER_FUNC_DEFINED
++
++#endif /* __GNUCLIKE_ASM && __GNUCLIKE_BUILTIN_CONSTANT_P */
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* !_MACHINE_ENDIAN_H_ */
diff --git a/lang/smlnj/files/extra-patch-base_runtime_include_ml-unixdep.h b/lang/smlnj/files/extra-patch-base_runtime_include_ml-unixdep.h
new file mode 100644
index 000000000000..2acc3ac3341a
--- /dev/null
+++ b/lang/smlnj/files/extra-patch-base_runtime_include_ml-unixdep.h
@@ -0,0 +1,18 @@
+--- base/runtime/include/ml-unixdep.h.orig 2012-08-02 20:03:33.000000000 +0200
++++ base/runtime/include/ml-unixdep.h 2013-06-18 13:16:20.292993889 +0200
+@@ -371,6 +371,15 @@
+ # define __EXTENSIONS__
+ #endif
+
++#if defined(OPSYS_FREEBSD)
++# if defined(INCLUDE_FREEBSD_I386__TYPES)
++# include <sys/cdefs.h>
++# include INCLUDE_FREEBSD_I386__TYPES
++# endif
++# if defined(INCLUDE_FREEBSD_I386_SIGNAL)
++# include INCLUDE_FREEBSD_I386_SIGNAL
++# endif
++#endif
+ #include INCLUDE_TYPES_H
+ #include <unistd.h>
+ #include <string.h>
diff --git a/lang/smlnj/files/patch-config___arch-n-opsys b/lang/smlnj/files/patch-config___arch-n-opsys
new file mode 100644
index 000000000000..c4472c5fde4c
--- /dev/null
+++ b/lang/smlnj/files/patch-config___arch-n-opsys
@@ -0,0 +1,11 @@
+--- config/_arch-n-opsys.orig 2012-07-28 05:32:38.000000000 +0200
++++ config/_arch-n-opsys 2013-06-12 21:46:19.925992679 +0200
+@@ -83,6 +83,8 @@
+ HEAP_OPSYS=bsd
+ case `uname -m` in
+ *86) ARCH=x86;;
++ # Fall back to x86 compatibility mode.
++ amd64) ARCH=x86;;
+ *) exit 1;;
+ esac
+ ;;
diff --git a/lang/smlnj/files/patch-config___heap2exec b/lang/smlnj/files/patch-config___heap2exec
new file mode 100644
index 000000000000..c534993bec30
--- /dev/null
+++ b/lang/smlnj/files/patch-config___heap2exec
@@ -0,0 +1,33 @@
+--- config/_heap2exec 2006-04-20 17:28:53.000000000 +0200
++++ config/_heap2exec 2013-06-14 22:18:55.050990989 +0200
+@@ -83,6 +83,7 @@
+ A_PROG=
+ A_FLAGS=
+ A_LIBS=
++AS_FLAGS=
+
+ case ${OPSYS} in
+ darwin)
+@@ -96,6 +97,13 @@
+ A_PROG=${CC}
+ A_FLAGS=-Wl,--export-dynamic
+ A_LIBS=-lm
++ case `uname -m` in
++ amd64)
++ SO_FLAGS="${SO_FLAGS} -m32"
++ A_FLAGS="${A_FLAGS} -m32"
++ AS_FLAGS="${AS_FLAGS} -m32"
++ ;;
++ esac
+ ;;
+ linux)
+ SO_PROG=${CC}
+@@ -116,7 +124,7 @@
+ RESULT=0
+ if ${H2A} "$heapfile" "$execfile".s ; then
+ if [ -f "$execfile".s ] ; then
+- if ${CC} -c -o "$execfile".o "$execfile".s ; then
++ if ${CC} -c ${AS_FLAGS} -o "$execfile".o "$execfile".s ; then
+ rm "$execfile".s
+ else
+ rm "$execfile".s
diff --git a/lang/smlnj/files/patch-config_install.sh b/lang/smlnj/files/patch-config_install.sh
new file mode 100644
index 000000000000..dbfcd76daa67
--- /dev/null
+++ b/lang/smlnj/files/patch-config_install.sh
@@ -0,0 +1,180 @@
+--- config/install.sh.orig 2012-03-02 23:57:26.000000000 +0100
++++ config/install.sh 2014-07-14 20:12:56.000000000 +0200
+@@ -18,6 +18,8 @@
+ nolib=false
+ fi
+
++[ -n "$RECOMPILEDIR" ] && echo "RECOMPILEDIR=$RECOMPILEDIR"
++
+ if [ x${INSTALL_QUIETLY} = xtrue ] ; then
+ export CM_VERBOSE
+ CM_VERBOSE=false
+@@ -38,6 +40,28 @@
+ exit 1
+ }
+
++#
++# do_patch patch-file
++# apply a patch file
++do_patch() {
++ patchfile=$FILESDIR/$1
++
++ if [ ! -r $patchfile ]; then
++ echo "$this: !!! patch file $patchfile not found."
++ exit 1;
++ fi
++
++ if [ ! -f $CONFIGDIR/.patch_$1 ]; then
++ $PATCH $PATCH_ARGS < $patchfile || {\
++ echo "$this: !!! patch file $patchfile failed to patch."
++ exit 1;
++ }
++ echo > $CONFIGDIR/.patch_$1
++ else
++ echo "$this: patch $patchfile already installed."
++ fi
++}
++
+ this=$0
+
+
+@@ -97,7 +121,28 @@
+ # Especially important is CM_PATHCONFIG.
+ #
+ export CM_PATHCONFIG
+-CM_PATHCONFIG=$LIBDIR/pathconfig
++if [ -n "$STAGEDIR" -a -n "$MLLIB" ]
++then
++ # The final CM_PATHCONFIG file should not yet exist during
++ # staging, but still it has to be set in the environment when
++ # creating the (final) compiler heap. This way it becomes the
++ # the default pathconfig for the (final) heap.
++ # Therefore we will use the secondary pathconfig environment
++ # variable CM_LOCAL_PATHCONFIG to point to the (existing;)
++ # pathconfig in ROOT. This enables $smlnj/installer.cm
++ # to operate within STAGEDIR (using the final heap) below.
++ CM_PATHCONFIG=$MLLIB/pathconfig
++ if [ -r $CM_PATHCONFIG ]
++ then
++ vsay "$this: !!! Staging conflicts with an existing installation!"
++ complain "$this: !!! Make $CM_PATHCONFIG unreadable and try again!"
++ fi
++ CM_PATHCONFIG_STAGE=$STAGEDIR$CM_PATHCONFIG
++ CM_LOCAL_PATHCONFIG=$CM_PATHCONFIG_STAGE
++else
++ CM_PATHCONFIG=$LIBDIR/pathconfig
++ CM_PATHCONFIG_STAGE=$CM_PATHCONFIG
++fi
+ #
+ # the release version that we are installing
+ #
+@@ -327,7 +372,12 @@
+ # the name of the bin files directory
+ #
+ BOOT_ARCHIVE=boot.$ARCH-unix
+-BOOT_FILES=sml.$BOOT_ARCHIVE
++if [ -z "$RECOMPILEDIR" ]
++then
++ BOOT_FILES=sml.$BOOT_ARCHIVE
++else
++ BOOT_FILES=$RECOMPILEDIR/sml.$BOOT_ARCHIVE
++fi
+
+ #
+ # build the run-time system
+@@ -336,9 +386,15 @@
+ vsay $this: Run-time system already exists.
+ else
+ "$CONFIGDIR"/unpack "$ROOT" runtime
++ [ -n "$MLRUNTIMEPATCHES" ] && \
++ for p in $MLRUNTIMEPATCHES
++ do
++ do_patch $p
++ done
+ cd "$BASEDIR"/runtime/objs
+ echo $this: Compiling the run-time system.
+- $MAKE -f mk.$ARCH-$OPSYS $EXTRA_DEFS
++ echo "$MAKE -f mk.$ARCH-$OPSYS $EXTRA_DEFS AS=\""$AS\"" CFLAGS=\"$CFLAGS\""
++ $MAKE -f mk.$ARCH-$OPSYS $EXTRA_DEFS AS="$AS" CFLAGS="$CFLAGS"
+ if [ -x run.$ARCH-$OPSYS ]; then
+ mv run.$ARCH-$OPSYS "$RUNDIR"
+ if [ -f runx.$ARCH-$OPSYS ]; then
+@@ -350,7 +406,7 @@
+ if [ -f run.$ARCH-$OPSYS.a ]; then
+ mv run.$ARCH-$OPSYS.a "$RUNDIR"
+ fi
+- $MAKE MAKE=$MAKE clean
++ [ "$MLNORUNTIMECLEAN" ] || $MAKE MAKE=$MAKE clean
+ else
+ complain "$this: !!! Run-time system build failed for some reason."
+ fi
+@@ -376,7 +432,7 @@
+ complain "$this !!! Unable to re-create heap image (sml.$HEAP_SUFFIX)."
+ fi
+ else
+- "$CONFIGDIR"/unpack "$ROOT" "$BOOT_ARCHIVE"
++ [ -n "$RECOMPILEDIR" ] || "$CONFIGDIR"/unpack "$ROOT" "$BOOT_ARCHIVE"
+
+ fish "$ROOT"/"$BOOT_FILES"/smlnj/basis
+
+@@ -411,7 +467,7 @@
+ cd "$ROOT"/"$BOOT_FILES"
+ for anchor in * ; do
+ if [ -d $anchor ] ; then
+- echo $anchor $anchor >>$CM_PATHCONFIG
++ echo $anchor $anchor >>$CM_PATHCONFIG_STAGE
+ move $anchor "$LIBDIR"/$anchor
+ fi
+ done
+@@ -434,6 +490,18 @@
+
+ cd "$ROOT"
+
++# apply source patches for standard targets
++[ -n "$MLSTANDARDPATCHDIRS" ] && \
++for d in $MLSTANDARDPATCHDIRS
++do
++ "$CONFIGDIR"/unpack "$ROOT" "$d"
++done
++[ -n "$MLSTANDARDPATCHES" ] && \
++for p in $MLSTANDARDPATCHES
++do
++ do_patch $p
++done
++
+ #
+ # Now do all the rest using the precompiled installer:
+ #
+@@ -442,6 +510,12 @@
+ export ROOT INSTALLDIR CONFIGDIR BINDIR
+ CM_TOLERATE_TOOL_FAILURES=true
+ export CM_TOLERATE_TOOL_FAILURES
++ # smlnj/installer/nix-install.sml (re)sets CM_LOCAL_PATHCONFIG
++ # to /dev/null in the buildcmd that it uses to invoke the builds.
++ # So the build process needs a working CM_PATHCONFIG. This is NOT
++ # propagated to the resulting heaps because the heaps generated
++ # in this stage don't contain the compiler.
++ [ -z "$STAGEDIR" ] || CM_PATHCONFIG=$CM_LOCAL_PATHCONFIG
+ if "$BINDIR"/sml -m \$smlnj/installer.cm
+ then
+ vsay $this: Installation complete.
+@@ -450,4 +524,19 @@
+ fi
+ fi
+
++# Finish staging by removing the $STAGEDIR prefix from the driver scripts.
++if [ -n "$STAGEDIR" ]
++then
++ find $BINDIR -type f -perm -1 | \
++ xargs fgrep -l "$STAGEDIR" | \
++ xargs sed -i "" -e 's%'"$STAGEDIR"'%%g'
++fi
++
++# apply all source patches
++[ -n "$MLSOURCEPATCHES" ] && \
++for p in $MLSOURCEPATCHES
++do
++ do_patch $p
++done
++
+ exit 0
diff --git a/lang/sml-nj/files/pkg-install.in b/lang/smlnj/files/pkg-install.in
index cdc3840a86c7..abed0aab5e53 100644
--- a/lang/sml-nj/files/pkg-install.in
+++ b/lang/smlnj/files/pkg-install.in
@@ -1,7 +1,7 @@
#!/bin/sh
# This file was automatically created - don't modify it!
#%%SOURCEINFO-START%%
-# source version: $Id: pkg-install.in,v 1.17 2007/08/30 13:09:47 joemann Exp $
+# source version: $Id: $
# installed by port/package: %%SOURCEINFO-PACKAGE%%
# installed from file: %%SOURCEINFO-FILE%%
#%%SOURCEINFO-END%%
@@ -138,10 +138,22 @@ which() {
#%%PKG-INSTALL-START%%
install_self_to() {
- local pkgname myself target oldversion
+ local pkgname myself target oldversion tmpfile tmpfile_gz
PREFIX="$1"
pkgname="$2"
- myself=`realpath "$0"`
+ if [ "$0" = "/bin/sh" ]
+ then # We're stdin of a shell (installation from binary package).
+ # Recover original script from its b64encoded compressed source.
+ tmpfile=`mktemp "/tmp/$ME.XXXXXX"`
+ tmpfile_gz=`mktemp "/tmp/$ME.gz.XXXXXX"`
+ trap "rm -f $tmpfile $tmpfile_gz" EXIT
+ b64decode -p > $tmpfile_gz << '~EOF~'
+~EOF~
+ gunzip -cf $tmpfile_gz > $tmpfile || die "decompression of script source for $ME failed."
+ myself=$tmpfile
+ else
+ myself=`realpath "$0"`
+ fi
target="$PREFIX/bin/$ME"
MYSELF_INSTALLED="$target"
if [ -e "$target" ]
@@ -158,11 +170,11 @@ install_self_to() {
then
oldmd5=`sed -e '/^#%%PKG-INSTALL-START%%$/,/^#%%PKG-INSTALL-END%%$/d' \
-e '/^#%%SOURCEINFO-START%%$/,/^#%%SOURCEINFO-END%%$/d' \
- -e 's?%%PREFIX%%?'"$PREFIX"'?g' "$target" | \
+ -e 's?\%\%PREFIX\%\%?'"$PREFIX"'?g' "$target" | \
md5 -q`
newmd5=`sed -e '/^#%%PKG-INSTALL-START%%$/,/^#%%PKG-INSTALL-END%%$/d' \
-e '/^#%%SOURCEINFO-START%%$/,/^#%%SOURCEINFO-END%%$/d' \
- -e 's?%%PREFIX%%?'"$PREFIX"'?g' "$myself" | \
+ -e 's?\%\%PREFIX\%\%?'"$PREFIX"'?g' "$myself" | \
md5 -q`
if [ "$newmd5" = "$oldmd5" ]
then
@@ -180,10 +192,10 @@ install_self_to() {
if sed -e '/^#%%PKG-INSTALL-START%%$/,/^#%%PKG-INSTALL-END%%$/d' \
-e 's?%%SOURCEINFO-PACKAGE%%?'"$pkgname"'?g' \
-e 's?%%SOURCEINFO-FILE%%?'"$myself"'?g' \
- -e 's?%%PREFIX%%?'"$PREFIX"'?g' "$0" > "$target" && \
+ -e 's?\%\%PREFIX\%\%?'"$PREFIX"'?g' "$myself" > "$target" && \
chmod +x "$target"
then
- say "$0 (version $VERSION) installed as $target."
+ say "$myself (version $VERSION) installed as $target."
return
else
die "failed to install $ME (version $VERSION) as $target."
diff --git a/lang/smlnj/pkg-descr b/lang/smlnj/pkg-descr
new file mode 100644
index 000000000000..5e0ba89151d5
--- /dev/null
+++ b/lang/smlnj/pkg-descr
@@ -0,0 +1,12 @@
+Standard ML (SML) is a safe, modular, strict, functional,
+polymorphic programming language with compile-time type checking
+and type inference, garbage collection, exception handling,
+immutable data types and updatable references, abstract data types,
+and parametric modules. It has efficient implementations and a
+formal definition with a proof of soundness.
+
+Standard ML of New Jersey (abbreviated SML/NJ) is a compiler for
+the Standard ML '97 programming language with associated libraries,
+tools, and documentation.
+
+WWW: http://www.smlnj.org/
diff --git a/lang/sml-nj-devel/pkg-plist b/lang/smlnj/pkg-plist
index d99768293640..7ada4e057532 100644
--- a/lang/sml-nj-devel/pkg-plist
+++ b/lang/smlnj/pkg-plist
@@ -1,9 +1,12 @@
smlnj/bin/.arch-n-opsys
smlnj/bin/.heap/heap2asm.%%MLARCH%%-bsd
smlnj/bin/.heap/ml-antlr.%%MLARCH%%-bsd
+smlnj/bin/.heap/ml-burg.%%MLARCH%%-bsd
smlnj/bin/.heap/ml-lex.%%MLARCH%%-bsd
+smlnj/bin/.heap/ml-nlffigen.%%MLARCH%%-bsd
smlnj/bin/.heap/ml-ulex.%%MLARCH%%-bsd
smlnj/bin/.heap/ml-yacc.%%MLARCH%%-bsd
+%%EVERYTHING%%smlnj/bin/.heap/nowhere.%%MLARCH%%-bsd
smlnj/bin/.heap/sml.%%MLARCH%%-bsd
smlnj/bin/.link-sml
smlnj/bin/.run/run.%%MLARCH%%-freebsd
@@ -14,10 +17,13 @@ smlnj/bin/heap2asm
smlnj/bin/heap2exec
smlnj/bin/ml-antlr
smlnj/bin/ml-build
+smlnj/bin/ml-burg
smlnj/bin/ml-lex
smlnj/bin/ml-makedepend
+smlnj/bin/ml-nlffigen
smlnj/bin/ml-ulex
smlnj/bin/ml-yacc
+%%EVERYTHING%%smlnj/bin/nowhere
smlnj/bin/sml
smlnj/lib/SMLNJ-BASIS/.cm/%%MLARCH%%-unix/basis.cm
smlnj/lib/SMLNJ-LIB/Controls/.cm/%%MLARCH%%-unix/controls-lib.cm
@@ -47,15 +53,27 @@ smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/RA.cm
smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/SPARC.cm
smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/StagedAlloc.cm
smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix/Visual.cm
+smlnj/lib/burg-ext.cm/.cm/%%MLARCH%%-unix/burg-ext.cm
+smlnj/lib/c/.cm/%%MLARCH%%-unix/c.cm
+smlnj/lib/c/internals/.cm/%%MLARCH%%-unix/c-int.cm
+smlnj/lib/c/memory/.cm/%%MLARCH%%-unix/memory.cm
+smlnj/lib/ckit-lib.cm/.cm/%%MLARCH%%-unix/ckit-lib.cm
smlnj/lib/cml/.cm/%%MLARCH%%-unix/basis.cm
smlnj/lib/cml/.cm/%%MLARCH%%-unix/cml-internal.cm
+smlnj/lib/cml/.cm/%%MLARCH%%-unix/cml-lib.cm
smlnj/lib/cml/.cm/%%MLARCH%%-unix/cml.cm
smlnj/lib/cml/.cm/%%MLARCH%%-unix/core-cml.cm
+smlnj/lib/cml/.cm/%%MLARCH%%-unix/inet-lib.cm
+smlnj/lib/cml/.cm/%%MLARCH%%-unix/smlnj-lib.cm
+smlnj/lib/cml/.cm/%%MLARCH%%-unix/trace-cml.cm
+smlnj/lib/cml/.cm/%%MLARCH%%-unix/unix-lib.cm
smlnj/lib/cml-lib/.cm/%%MLARCH%%-unix/smlnj-lib.cm
smlnj/lib/cml-lib/.cm/%%MLARCH%%-unix/trace-cml.cm
smlnj/lib/dir-tool.cm/.cm/%%MLARCH%%-unix/dir-tool.cm
+%%EVERYTHING%%smlnj/lib/eXene.cm/.cm/%%MLARCH%%-unix/eXene.cm
smlnj/lib/grm-ext.cm/.cm/%%MLARCH%%-unix/grm-ext.cm
smlnj/lib/hash-cons-lib.cm/.cm/%%MLARCH%%-unix/hash-cons-lib.cm
+smlnj/lib/html4-lib.cm/.cm/%%MLARCH%%-unix/html4-lib.cm
smlnj/lib/inet-lib.cm/.cm/%%MLARCH%%-unix/inet-lib.cm
smlnj/lib/json-lib.cm/.cm/%%MLARCH%%-unix/json-lib.cm
smlnj/lib/lex-ext.cm/.cm/%%MLARCH%%-unix/lex-ext.cm
@@ -63,15 +81,24 @@ smlnj/lib/make-tool.cm/.cm/%%MLARCH%%-unix/make-tool.cm
smlnj/lib/ml-antlr-tool.cm/.cm/%%MLARCH%%-unix/ml-antlr-tool.cm
smlnj/lib/ml-lpt-lib.cm/.cm/%%MLARCH%%-unix/ml-lpt-lib.cm
smlnj/lib/ml-ulex-tool.cm/.cm/%%MLARCH%%-unix/ml-ulex-tool.cm
+smlnj/lib/mlburg-tool.cm/.cm/%%MLARCH%%-unix/mlburg-tool.cm
smlnj/lib/mllex-tool.cm/.cm/%%MLARCH%%-unix/mllex-tool.cm
+%%EVERYTHING%%smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/match-compiler.cm
+%%EVERYTHING%%smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/parser.cm
+%%EVERYTHING%%smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/pp.cm
+%%EVERYTHING%%smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/prec-parser.cm
+%%EVERYTHING%%smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/sml-ast.cm
+%%EVERYTHING%%smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix/source-map.cm
smlnj/lib/mlyacc-tool.cm/.cm/%%MLARCH%%-unix/mlyacc-tool.cm
smlnj/lib/noweb-tool.cm/.cm/%%MLARCH%%-unix/noweb-tool.cm
smlnj/lib/nw-ext.cm/.cm/%%MLARCH%%-unix/nw-ext.cm
smlnj/lib/pathconfig
+%%EVERYTHING%%smlnj/lib/pgraph-util.cm/.cm/%%MLARCH%%-unix/pgraph-util.cm
smlnj/lib/pgraph.cm/.cm/%%MLARCH%%-unix/pgraph.cm
smlnj/lib/pickle-lib.cm/.cm/%%MLARCH%%-unix/pickle-lib.cm
smlnj/lib/reactive-lib.cm/.cm/%%MLARCH%%-unix/reactive-lib.cm
smlnj/lib/regexp-lib.cm/.cm/%%MLARCH%%-unix/regexp-lib.cm
+smlnj/lib/sexp-lib.cm/.cm/%%MLARCH%%-unix/sexp-lib.cm
smlnj/lib/shell-tool.cm/.cm/%%MLARCH%%-unix/shell-tool.cm
smlnj/lib/smlnj-tdp/.cm/%%MLARCH%%-unix/back-trace.cm
smlnj/lib/smlnj-tdp/.cm/%%MLARCH%%-unix/coverage.cm
@@ -168,6 +195,21 @@ smlnj/lib/unix-lib.cm/.cm/%%MLARCH%%-unix/unix-lib.cm
@dirrm smlnj/lib/SMLNJ-MLRISC/.cm/%%MLARCH%%-unix
@dirrm smlnj/lib/SMLNJ-MLRISC/.cm
@dirrm smlnj/lib/SMLNJ-MLRISC
+@dirrm smlnj/lib/burg-ext.cm/.cm/%%MLARCH%%-unix
+@dirrm smlnj/lib/burg-ext.cm/.cm
+@dirrm smlnj/lib/burg-ext.cm
+@dirrm smlnj/lib/c/memory/.cm/%%MLARCH%%-unix
+@dirrm smlnj/lib/c/memory/.cm
+@dirrm smlnj/lib/c/memory
+@dirrm smlnj/lib/c/internals/.cm/%%MLARCH%%-unix
+@dirrm smlnj/lib/c/internals/.cm
+@dirrm smlnj/lib/c/internals
+@dirrm smlnj/lib/c/.cm/%%MLARCH%%-unix
+@dirrm smlnj/lib/c/.cm
+@dirrm smlnj/lib/c
+@dirrm smlnj/lib/ckit-lib.cm/.cm/%%MLARCH%%-unix
+@dirrm smlnj/lib/ckit-lib.cm/.cm
+@dirrm smlnj/lib/ckit-lib.cm
@dirrm smlnj/lib/cml/.cm/%%MLARCH%%-unix
@dirrm smlnj/lib/cml/.cm
@dirrm smlnj/lib/cml
@@ -177,12 +219,18 @@ smlnj/lib/unix-lib.cm/.cm/%%MLARCH%%-unix/unix-lib.cm
@dirrm smlnj/lib/dir-tool.cm/.cm/%%MLARCH%%-unix
@dirrm smlnj/lib/dir-tool.cm/.cm
@dirrm smlnj/lib/dir-tool.cm
+%%EVERYTHING%%@dirrm smlnj/lib/eXene.cm/.cm/%%MLARCH%%-unix
+%%EVERYTHING%%@dirrm smlnj/lib/eXene.cm/.cm
+%%EVERYTHING%%@dirrm smlnj/lib/eXene.cm
@dirrm smlnj/lib/grm-ext.cm/.cm/%%MLARCH%%-unix
@dirrm smlnj/lib/grm-ext.cm/.cm
@dirrm smlnj/lib/grm-ext.cm
@dirrm smlnj/lib/hash-cons-lib.cm/.cm/%%MLARCH%%-unix
@dirrm smlnj/lib/hash-cons-lib.cm/.cm
@dirrm smlnj/lib/hash-cons-lib.cm
+@dirrm smlnj/lib/html4-lib.cm/.cm/%%MLARCH%%-unix
+@dirrm smlnj/lib/html4-lib.cm/.cm
+@dirrm smlnj/lib/html4-lib.cm
@dirrm smlnj/lib/inet-lib.cm/.cm/%%MLARCH%%-unix
@dirrm smlnj/lib/inet-lib.cm/.cm
@dirrm smlnj/lib/inet-lib.cm
@@ -204,9 +252,15 @@ smlnj/lib/unix-lib.cm/.cm/%%MLARCH%%-unix/unix-lib.cm
@dirrm smlnj/lib/ml-ulex-tool.cm/.cm/%%MLARCH%%-unix
@dirrm smlnj/lib/ml-ulex-tool.cm/.cm
@dirrm smlnj/lib/ml-ulex-tool.cm
+@dirrm smlnj/lib/mlburg-tool.cm/.cm/%%MLARCH%%-unix
+@dirrm smlnj/lib/mlburg-tool.cm/.cm
+@dirrm smlnj/lib/mlburg-tool.cm
@dirrm smlnj/lib/mllex-tool.cm/.cm/%%MLARCH%%-unix
@dirrm smlnj/lib/mllex-tool.cm/.cm
@dirrm smlnj/lib/mllex-tool.cm
+%%EVERYTHING%%@dirrm smlnj/lib/mlrisc-tools/.cm/%%MLARCH%%-unix
+%%EVERYTHING%%@dirrm smlnj/lib/mlrisc-tools/.cm
+%%EVERYTHING%%@dirrm smlnj/lib/mlrisc-tools
@dirrm smlnj/lib/mlyacc-tool.cm/.cm/%%MLARCH%%-unix
@dirrm smlnj/lib/mlyacc-tool.cm/.cm
@dirrm smlnj/lib/mlyacc-tool.cm
@@ -216,6 +270,9 @@ smlnj/lib/unix-lib.cm/.cm/%%MLARCH%%-unix/unix-lib.cm
@dirrm smlnj/lib/nw-ext.cm/.cm/%%MLARCH%%-unix
@dirrm smlnj/lib/nw-ext.cm/.cm
@dirrm smlnj/lib/nw-ext.cm
+%%EVERYTHING%%@dirrm smlnj/lib/pgraph-util.cm/.cm/%%MLARCH%%-unix
+%%EVERYTHING%%@dirrm smlnj/lib/pgraph-util.cm/.cm
+%%EVERYTHING%%@dirrm smlnj/lib/pgraph-util.cm
@dirrm smlnj/lib/pgraph.cm/.cm/%%MLARCH%%-unix
@dirrm smlnj/lib/pgraph.cm/.cm
@dirrm smlnj/lib/pgraph.cm
@@ -228,6 +285,9 @@ smlnj/lib/unix-lib.cm/.cm/%%MLARCH%%-unix/unix-lib.cm
@dirrm smlnj/lib/regexp-lib.cm/.cm/%%MLARCH%%-unix
@dirrm smlnj/lib/regexp-lib.cm/.cm
@dirrm smlnj/lib/regexp-lib.cm
+@dirrm smlnj/lib/sexp-lib.cm/.cm/%%MLARCH%%-unix
+@dirrm smlnj/lib/sexp-lib.cm/.cm
+@dirrm smlnj/lib/sexp-lib.cm
@dirrm smlnj/lib/shell-tool.cm/.cm/%%MLARCH%%-unix
@dirrm smlnj/lib/shell-tool.cm/.cm
@dirrm smlnj/lib/shell-tool.cm