diff --git a/mps/code/commpost.nmk b/mps/code/commpost.nmk
index 793ec8e6035..942caf26a01 100644
--- a/mps/code/commpost.nmk
+++ b/mps/code/commpost.nmk
@@ -1,44 +1,21 @@
-# commpost.nmk: SECOND COMMON FRAGMENT FOR PLATFORMS USING MV AND NMAKE
+# commpost.nmk: SECOND COMMON FRAGMENT FOR PLATFORMS USING NMAKE -*- makefile -*-
#
# $Id$
-# Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
+# Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license.
#
# DESCRIPTION
#
# Second common makefile fragment for w3*mv.nmk. See commpre.nmk
-# PSEUDO-TARGETS
+# == Pseudo-targets ==
-# "all" builds all the varieties of all targets
-# %%TARGET: When adding a new target, add it to the all dependencies.
-
-all: mpmss.exe amcss.exe amsss.exe amssshe.exe segsmss.exe awlut.exe awluthe.exe\
- mpsicv.exe lockutw3.exe lockcov.exe poolncv.exe locv.exe qs.exe apss.exe \
- sacss.exe finalcv.exe finaltest.exe \
- arenacv.exe bttest.exe teletest.exe \
- abqtest.exe cbstest.exe btcv.exe mv2test.exe messtest.exe steptest.exe \
- locbwcss.exe locusss.exe zcoll.exe zmess.exe \
- mpseventcnv.exe mpseventtxt.exe \
- mps.lib
+all: $(ALL_TARGETS)
# Convenience targets
-# %%TARGET: When adding a new target, add a pseudo-target for it here,
-# first rule for variety-dependent targets, and second for
-# variety-independent ones.
-
-mpmss.exe amcss.exe amcsshe.exe amsss.exe amssshe.exe segsmss.exe awlut.exe awluthe.exe dwstress.exe \
- mpsicv.exe lockutw3.exe lockcov.exe poolncv.exe locv.exe qs.exe apss.exe \
- sacss.exe finalcv.exe finaltest.exe \
- arenacv.exe bttest.exe teletest.exe \
- expt825.exe \
- abqtest.exe cbstest.exe btcv.exe mv2test.exe messtest.exe steptest.exe \
- walkt0.exe locbwcss.exe locusss.exe \
- exposet0.exe zcoll.exe zmess.exe \
- replay.exe replaysw.exe mpseventcnv.exe mpseventtxt.exe mpseventsql.exe \
- mps.lib:
+$(ALL_TARGETS):
!IFDEF VARIETY
$(MAKE) /nologo /f $(PFM).nmk TARGET=$@ variety
!ELSE
@@ -79,6 +56,17 @@ variety: $(PFM)\$(VARIETY)\$(TARGET)
mpsicv.cov:
$(MAKE) /nologo /f $(PFM).nmk TARGET=$@ VARIETY=cv variety
+# testrun
+# Runs automated test cases.
+
+testrun: $(AUTO_TEST_TARGETS)
+!IFDEF VARIETY
+ ..\tool\testrun.bat $(PFM) $(VARIETY) $(AUTO_TEST_TARGETS)
+!ELSE
+ $(MAKE) /nologo /f $(PFM).nmk VARIETY=hot testrun
+ $(MAKE) /nologo /f $(PFM).nmk VARIETY=cool testrun
+!ENDIF
+
# THE MPS LIBRARY
#
@@ -133,41 +121,8 @@ $(PFM)\di\mps.lib: \
!IFDEF VARIETY
-$(PFM)\$(VARIETY)\finalcv.exe: $(PFM)\$(VARIETY)\finalcv.obj \
- $(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
-
-$(PFM)\$(VARIETY)\finaltest.exe: $(PFM)\$(VARIETY)\finaltest.obj \
- $(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
-
-$(PFM)\$(VARIETY)\expt825.exe: $(PFM)\$(VARIETY)\expt825.obj \
- $(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
-
-$(PFM)\$(VARIETY)\locv.exe: $(PFM)\$(VARIETY)\locv.obj \
- $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
-
-$(PFM)\$(VARIETY)\mpmss.exe: $(PFM)\$(VARIETY)\mpmss.obj \
- $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
-
-$(PFM)\$(VARIETY)\apss.exe: $(PFM)\$(VARIETY)\apss.obj \
- $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
-
-$(PFM)\$(VARIETY)\sacss.exe: $(PFM)\$(VARIETY)\sacss.obj \
- $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
-
-$(PFM)\$(VARIETY)\bttest.exe: $(PFM)\$(VARIETY)\bttest.obj \
- $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
-
-$(PFM)\$(VARIETY)\teletest.exe: $(PFM)\$(VARIETY)\teletest.obj \
- $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
-
-$(PFM)\$(VARIETY)\lockcov.exe: $(PFM)\$(VARIETY)\lockcov.obj \
- $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
-
-$(PFM)\$(VARIETY)\lockutw3.exe: $(PFM)\$(VARIETY)\lockutw3.obj \
- $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
-
-$(PFM)\$(VARIETY)\mpsicv.exe: $(PFM)\$(VARIETY)\mpsicv.obj \
- $(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
+$(PFM)\$(VARIETY)\abqtest.exe: $(PFM)\$(VARIETY)\abqtest.obj \
+ $(PFM)\$(VARIETY)\abq.obj $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
$(PFM)\$(VARIETY)\amcss.exe: $(PFM)\$(VARIETY)\amcss.obj \
$(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
@@ -175,24 +130,21 @@ $(PFM)\$(VARIETY)\amcss.exe: $(PFM)\$(VARIETY)\amcss.obj \
$(PFM)\$(VARIETY)\amcsshe.exe: $(PFM)\$(VARIETY)\amcsshe.obj \
$(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
+$(PFM)\$(VARIETY)\amcssth.exe: $(PFM)\$(VARIETY)\amcssth.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
+
$(PFM)\$(VARIETY)\amsss.exe: $(PFM)\$(VARIETY)\amsss.obj \
$(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
$(PFM)\$(VARIETY)\amssshe.exe: $(PFM)\$(VARIETY)\amssshe.obj \
$(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
-$(PFM)\$(VARIETY)\segsmss.exe: $(PFM)\$(VARIETY)\segsmss.obj \
- $(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
-
-$(PFM)\$(VARIETY)\locbwcss.exe: $(PFM)\$(VARIETY)\locbwcss.obj \
+$(PFM)\$(VARIETY)\apss.exe: $(PFM)\$(VARIETY)\apss.obj \
$(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
-$(PFM)\$(VARIETY)\locusss.exe: $(PFM)\$(VARIETY)\locusss.obj \
+$(PFM)\$(VARIETY)\arenacv.exe: $(PFM)\$(VARIETY)\arenacv.obj \
$(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
-$(PFM)\$(VARIETY)\dwstress.exe: $(PFM)\$(VARIETY)\dwstress.obj \
- $(DWOBJ) $(PFM)\$(VARIETY)\mps.lib
-
$(PFM)\$(VARIETY)\awlut.exe: $(PFM)\$(VARIETY)\awlut.obj \
$(FMTTESTOBJ) \
$(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
@@ -201,27 +153,75 @@ $(PFM)\$(VARIETY)\awluthe.exe: $(PFM)\$(VARIETY)\awluthe.obj \
$(FMTTESTOBJ) \
$(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
+$(PFM)\$(VARIETY)\btcv.exe: $(PFM)\$(VARIETY)\btcv.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
+
+$(PFM)\$(VARIETY)\bttest.exe: $(PFM)\$(VARIETY)\bttest.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
+
+$(PFM)\$(VARIETY)\cbstest.exe: $(PFM)\$(VARIETY)\cbstest.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
+
+$(PFM)\$(VARIETY)\exposet0.exe: $(PFM)\$(VARIETY)\exposet0.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
+
+$(PFM)\$(VARIETY)\expt825.exe: $(PFM)\$(VARIETY)\expt825.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
+
+$(PFM)\$(VARIETY)\finalcv.exe: $(PFM)\$(VARIETY)\finalcv.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
+
+$(PFM)\$(VARIETY)\finaltest.exe: $(PFM)\$(VARIETY)\finaltest.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
+
+$(PFM)\$(VARIETY)\locbwcss.exe: $(PFM)\$(VARIETY)\locbwcss.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
+
+$(PFM)\$(VARIETY)\lockcov.exe: $(PFM)\$(VARIETY)\lockcov.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
+
+$(PFM)\$(VARIETY)\lockutw3.exe: $(PFM)\$(VARIETY)\lockutw3.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
+
+$(PFM)\$(VARIETY)\locusss.exe: $(PFM)\$(VARIETY)\locusss.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
+
+$(PFM)\$(VARIETY)\locv.exe: $(PFM)\$(VARIETY)\locv.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
+
+$(PFM)\$(VARIETY)\messtest.exe: $(PFM)\$(VARIETY)\messtest.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
+
+$(PFM)\$(VARIETY)\mpmss.exe: $(PFM)\$(VARIETY)\mpmss.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
+
+$(PFM)\$(VARIETY)\mpsicv.exe: $(PFM)\$(VARIETY)\mpsicv.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
+
+$(PFM)\$(VARIETY)\mv2test.exe: $(PFM)\$(VARIETY)\mv2test.obj \
+ $(PFM)\$(VARIETY)\poolmv2.obj $(PFM)\$(VARIETY)\abq.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
+
$(PFM)\$(VARIETY)\poolncv.exe: $(PFM)\$(VARIETY)\poolncv.obj \
$(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
$(PFM)\$(VARIETY)\qs.exe: $(PFM)\$(VARIETY)\qs.obj \
$(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
-$(PFM)\$(VARIETY)\arenacv.exe: $(PFM)\$(VARIETY)\arenacv.obj \
+$(PFM)\$(VARIETY)\sacss.exe: $(PFM)\$(VARIETY)\sacss.obj \
$(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
-$(PFM)\$(VARIETY)\abqtest.exe: $(PFM)\$(VARIETY)\abqtest.obj \
- $(PFM)\$(VARIETY)\abq.obj $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
+$(PFM)\$(VARIETY)\segsmss.exe: $(PFM)\$(VARIETY)\segsmss.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
-$(PFM)\$(VARIETY)\cbstest.exe: $(PFM)\$(VARIETY)\cbstest.obj \
+$(PFM)\$(VARIETY)\steptest.exe: $(PFM)\$(VARIETY)\steptest.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
+
+$(PFM)\$(VARIETY)\teletest.exe: $(PFM)\$(VARIETY)\teletest.obj \
$(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
-$(PFM)\$(VARIETY)\btcv.exe: $(PFM)\$(VARIETY)\btcv.obj \
- $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
-
-$(PFM)\$(VARIETY)\mv2test.exe: $(PFM)\$(VARIETY)\mv2test.obj \
- $(PFM)\$(VARIETY)\poolmv2.obj $(PFM)\$(VARIETY)\abq.obj \
- $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
+$(PFM)\$(VARIETY)\walkt0.exe: $(PFM)\$(VARIETY)\walkt0.obj \
+ $(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
$(PFM)\$(VARIETY)\zcoll.exe: $(PFM)\$(VARIETY)\zcoll.obj \
$(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) \
@@ -251,18 +251,6 @@ $(PFM)\$(VARIETY)\replaysw.obj: $(PFM)\$(VARIETY)\replay.obj
$(ECHO) $@
copy $** $@ >nul:
-$(PFM)\$(VARIETY)\messtest.exe: $(PFM)\$(VARIETY)\messtest.obj \
- $(PFM)\$(VARIETY)\mps.lib $(TESTLIBOBJ)
-
-$(PFM)\$(VARIETY)\steptest.exe: $(PFM)\$(VARIETY)\steptest.obj \
- $(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
-
-$(PFM)\$(VARIETY)\walkt0.exe: $(PFM)\$(VARIETY)\walkt0.obj \
- $(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
-
-$(PFM)\$(VARIETY)\exposet0.exe: $(PFM)\$(VARIETY)\exposet0.obj \
- $(PFM)\$(VARIETY)\mps.lib $(FMTTESTOBJ) $(TESTLIBOBJ)
-
!ENDIF
@@ -307,7 +295,7 @@ $(PFM)\$(VARIETY)\sqlite3.obj:
# C. COPYRIGHT AND LICENSE
#
-# Copyright (C) 2001-2002 Ravenbrook Limited .
+# Copyright (C) 2001-2013 Ravenbrook Limited .
# All rights reserved. This is an open source license. Contact
# Ravenbrook for commercial licensing options.
#
diff --git a/mps/code/commpre.nmk b/mps/code/commpre.nmk
index 47c66943164..eb49c3259b3 100644
--- a/mps/code/commpre.nmk
+++ b/mps/code/commpre.nmk
@@ -1,4 +1,4 @@
-# commpre.nmk: FIRST COMMON FRAGMENT FOR PLATFORMS USING MV AND NMAKE
+# commpre.nmk: FIRST COMMON FRAGMENT FOR PLATFORMS USING NMAKE -*- makefile -*-1
#
# $Id$
# Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
@@ -14,17 +14,22 @@
# %%PART: When adding a new part, add a new parameter for the files included
# in the part
# Parameters:
-# PFM platform code, e.g. "nti3mv"
+# PFM platform code, e.g. "w3i3mv"
# PFMDEFS /D options to define platforms preprocessor symbols
# to the compiler. Eg "/DOS_NT /DARCH_386 /DBUILD_MVC"
-# MPM list of sources which make up the "mpm" part for this
-# platform. Each source is stripped of its .c extension
+# MPMCOMMON list of sources which make up the "mpm" part for all
+# platforms. Each source is stripped of its .c extension
# and surrounded in angle brackets (<>)
+# MPM as above, plus sources for the "mpm" part for the current
+# platform.
# PLINTH as above for the "plinth" part
# AMC as above for the "amc" part
# AMS as above for the "ams" part
# LO as above for the "lo" part
-# MRG as above for the "mrg" part
+# POOLN as above for the "pooln" part
+# SNC as above for the "snc" part
+# DW as above for the "dw" part
+# FMTTEST as above for the "fmttest" part
# TESTLIB as above for the "testlib" part
# NOISY if defined, causes command to be emitted
#
@@ -33,11 +38,75 @@
#
# To add new targets. varieties, and parts:
# Search for the string "%%TARGET", "%%VARIETY", or "%%PART" in this makefile
-# and follow the instructions. If you're adding a part, you'll have to change
-# the makefile for all the platforms which use this makefile to define the
-# source list for that part.
+# and follow the instructions.
#
+
+# TARGETS
+#
+#
+# %%TARGET: When adding a new target, add it to one of the variables
+# in this section. Library components go in LIB_TARGETS.
+
+LIB_TARGETS=mps.lib
+
+# If it is suitable for running regularly (for example, after every
+# build) as an automated test case, add it to AUTO_TEST_TARGETS.
+
+AUTO_TEST_TARGETS=abqtest.exe amcss.exe amcsshe.exe amsss.exe \
+ amssshe.exe apss.exe arenacv.exe awlut.exe awluthe.exe btcv.exe \
+ cbstest.exe exposet0.exe expt825.exe finalcv.exe finaltest.exe \
+ locbwcss.exe lockcov.exe lockutw3.exe locusss.exe locv.exe \
+ messtest.exe mpmss.exe mpsicv.exe mv2test.exe poolncv.exe qs.exe \
+ sacss.exe segsmss.exe steptest.exe walkt0.exe zmess.exe
+
+# If it is not runnable as an automated test case, but is buildable,
+# add it to OTHER_TEST_TARGETS with a note.
+#
+# bttest and teletest -- interactive and so cannot be run unattended.
+# zcoll -- takes too long to be useful as a regularly run smoke test.
+
+OTHER_TEST_TARGETS=bttest.exe teletest.exe zcoll.exe
+
+# Stand-alone programs go in EXTRA_TARGETS.
+
+EXTRA_TARGETS=mpseventcnv.exe mpseventtxt.exe
+
+# This target records programs that we were once able to build but
+# can't at the moment:
+#
+# replay -- depends on the EPVM pool.
+
+UNBUILDABLE_TARGETS=replay.exe
+
+ALL_TARGETS=$(LIB_TARGETS) $(AUTO_TEST_TARGETS) $(OTHER_TEST_TARGETS) $(EXTRA_TARGETS)
+
+
+# PARAMETERS
+#
+#
+# %%PART: When adding a new part, add the sources for the new part here.
+
+MPMCOMMON = \
+ \
+ \
+ \
+ [ \
+ ] \
+
+PLINTH =
+AMC =
+AMS =
+AWL =
+LO =
+MVFF =
+POOLN =
+SNC =
+DW =
+FMTTEST =
+TESTLIB =
+
+
# CHECK PARAMETERS
#
#
@@ -50,8 +119,8 @@
!IFNDEF PFMDEFS
!ERROR commpre.nmk: PFMDEFS not defined
!ENDIF
-!IFNDEF MPM
-!ERROR commpre.nmk: MPM not defined
+!IFNDEF MPMCOMMON
+!ERROR commpre.nmk: MPMCOMMON not defined
!ENDIF
!IFNDEF PLINTH
!ERROR commpre.nmk: PLINTH not defined
@@ -166,7 +235,7 @@ LIBFLAGSCOOL =
# C. COPYRIGHT AND LICENSE
#
-# Copyright (C) 2001-2002 Ravenbrook Limited .
+# Copyright (C) 2001-2013 Ravenbrook Limited .
# All rights reserved. This is an open source license. Contact
# Ravenbrook for commercial licensing options.
#
diff --git a/mps/code/w3i3mv.nmk b/mps/code/w3i3mv.nmk
index 6de2c80db0d..49852582f61 100644
--- a/mps/code/w3i3mv.nmk
+++ b/mps/code/w3i3mv.nmk
@@ -1,7 +1,7 @@
-# w3i3mv.nmk: WINDOWS (INTEL) NMAKE FILE
+# w3i3mv.nmk: WINDOWS (IA-32) NMAKE FILE -*- makefile -*-
#
# $Id$
-# Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
+# Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license.
PFM = w3i3mv
@@ -11,31 +11,12 @@ PFM = w3i3mv
PFMDEFS = /DCONFIG_PF_STRING="w3i3mv" /DCONFIG_PF_W3I3MV \
/DWIN32 /D_WINDOWS /Gs
-MPM = \
- \
- \
- \
- [ \
- ] \
- \
- \
-
-PLINTH =
-AMC =
-AMS =
-AWL =
-LO =
-SNC =
-MVFF =
-N =
-DW =
-FMTTEST =
-POOLN =
-TESTLIB =
-
-
!INCLUDE commpre.nmk
+# MPM sources: core plus platform-specific.
+MPM = $(MPMCOMMON)
+
+
# Source to object file mappings and CFLAGS amalgamation
#
@@ -187,7 +168,7 @@ TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
# C. COPYRIGHT AND LICENSE
#
-# Copyright (C) 2001-2002 Ravenbrook Limited .
+# Copyright (C) 2001-2013 Ravenbrook Limited .
# All rights reserved. This is an open source license. Contact
# Ravenbrook for commercial licensing options.
#
diff --git a/mps/code/w3i6mv.nmk b/mps/code/w3i6mv.nmk
index ad238b05284..7df37c29172 100644
--- a/mps/code/w3i6mv.nmk
+++ b/mps/code/w3i6mv.nmk
@@ -1,7 +1,7 @@
-# w3i6mv.nmk: WINDOWS (x64) NMAKE FILE
+# w3i6mv.nmk: WINDOWS (x86-64) NMAKE FILE -*- makefile -*-
#
# $Id$
-# Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
+# Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license.
PFM = w3i6mv
@@ -12,26 +12,8 @@ PFMDEFS = /DCONFIG_PF_STRING="w3i6mv" /DCONFIG_PF_W3I6MV \
/DWIN32 /D_WINDOWS /Gs
MASM = ml64
-MPM = \
- \
- \
- \
- [ \
- ] \
- \
- \
-
-PLINTH =
-AMC =
-AMS =
-AWL =
-LO =
-SNC =
-MVFF =
-DW =
-FMTTEST =
-POOLN =
-TESTLIB =
+# MPM sources: core plus platform-specific.
+MPM = $(MPMCOMMON)
!INCLUDE commpre.nmk
@@ -187,7 +169,7 @@ TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
# C. COPYRIGHT AND LICENSE
#
-# Copyright (C) 2001-2002 Ravenbrook Limited .
+# Copyright (C) 2001-2013 Ravenbrook Limited .
# All rights reserved. This is an open source license. Contact
# Ravenbrook for commercial licensing options.
#
diff --git a/mps/tool/testrun.bat b/mps/tool/testrun.bat
new file mode 100755
index 00000000000..49a12660783
--- /dev/null
+++ b/mps/tool/testrun.bat
@@ -0,0 +1,60 @@
+@rem $Id: //info.ravenbrook.com/project/mps/master/tool/testrun.sh#1 $
+@rem Copyright (c) 2013 Ravenbrook Limited. See end of file for license.
+
+@echo off
+
+set PFM=%1
+shift
+set VARIETY=%1
+shift
+
+set LOG=%TMP%\mps.%VARIETY%.log
+echo Logging test output to %LOG%
+
+:loop
+if "%1"=="" goto continue
+ echo Running %1
+ %PFM%\%VARIETY%\%1 >> %LOG%
+shift
+goto loop
+:continue
+
+@rem C. COPYRIGHT AND LICENSE
+@rem
+@rem Copyright (C) 2013 Ravenbrook Limited .
+@rem All rights reserved. This is an open source license. Contact
+@rem Ravenbrook for commercial licensing options.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem 1. Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem
+@rem 2. Redistributions in binary form must reproduce the above copyright
+@rem notice, this list of conditions and the following disclaimer in the
+@rem documentation and/or other materials provided with the distribution.
+@rem
+@rem 3. Redistributions in any form must be accompanied by information on how
+@rem to obtain complete source code for this software and any accompanying
+@rem software that uses this software. The source code must either be
+@rem included in the distribution or be available for no more than the cost
+@rem of distribution plus a nominal fee, and must be freely redistributable
+@rem under reasonable conditions. For an executable file, complete source
+@rem code means the source code for all modules it contains. It does not
+@rem include source code for modules or files that typically accompany the
+@rem major components of the operating system on which the executable file
+@rem runs.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+@rem IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+@rem TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+@rem PURPOSE, OR NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL THE
+@rem COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+@rem INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+@rem NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+@rem USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+@rem ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+@rem THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.