aboutsummaryrefslogtreecommitdiffstats
path: root/mps/code
diff options
context:
space:
mode:
Diffstat (limited to 'mps/code')
-rw-r--r--mps/code/arenavm.c7
-rw-r--r--mps/code/mpm.h16
-rw-r--r--mps/code/mpstd.h41
-rw-r--r--mps/code/protw3.c4
-rw-r--r--mps/code/vmw3.c10
-rw-r--r--mps/code/w3i6mv.nmk362
6 files changed, 426 insertions, 14 deletions
diff --git a/mps/code/arenavm.c b/mps/code/arenavm.c
index 40a4d28a9b7..a271ca10acf 100644
--- a/mps/code/arenavm.c
+++ b/mps/code/arenavm.c
@@ -483,8 +483,13 @@ static Res VMArenaInit(Arena *arenaReturn, ArenaClass class, va_list args)
483 vmArena->spareSize = 0; 483 vmArena->spareSize = 0;
484 484
485 /* .blacklist: We blacklist the zones corresponding to small integers. */ 485 /* .blacklist: We blacklist the zones corresponding to small integers. */
486 /* @@@@ (Addr)1 and (Addr)-1 don't correctly express the problem, that
487 we're trying to avoid false pointers from places that have had integers
488 stored. Also, this only avoids 1 and -1 and should probably avoid
489 other patterns, such as two 32-bit 1s in a 64 bit field.
490 Should probably use a union! RB 2012-03-26 */
486 vmArena->blacklist = 491 vmArena->blacklist =
487 ZoneSetAdd(arena, ZoneSetAdd(arena, ZoneSetEMPTY, (Addr)1), (Addr)-1); 492 ZoneSetAdd(arena, ZoneSetAdd(arena, ZoneSetEMPTY, (Addr)1LL), (Addr)-1LL);
488 493
489 for(gen = (Index)0; gen < VMArenaGenCount; gen++) { 494 for(gen = (Index)0; gen < VMArenaGenCount; gen++) {
490 vmArena->genZoneSet[gen] = ZoneSetEMPTY; 495 vmArena->genZoneSet[gen] = ZoneSetEMPTY;
diff --git a/mps/code/mpm.h b/mps/code/mpm.h
index 371319aeee6..979ccaec360 100644
--- a/mps/code/mpm.h
+++ b/mps/code/mpm.h
@@ -405,11 +405,14 @@ extern double TraceWorkFactor;
405 405
406#define TRACE_SCAN_BEGIN(ss) \ 406#define TRACE_SCAN_BEGIN(ss) \
407 BEGIN \ 407 BEGIN \
408 Shift SCANzoneShift = (ss)->zoneShift; \ 408 /* Check range on zoneShift before casting to Shift. */ \
409 ZoneSet SCANwhite = (ss)->white; \ 409 AVER((ss)->zoneShift < MPS_WORD_WIDTH); \
410 RefSet SCANsummary = (ss)->unfixedSummary; \ 410 { \
411 Word SCANt; \ 411 Shift SCANzoneShift = (Shift)(ss)->zoneShift; \
412 { 412 ZoneSet SCANwhite = (ss)->white; \
413 RefSet SCANsummary = (ss)->unfixedSummary; \
414 Word SCANt; \
415 {
413 416
414/* Equivalent to <code/mps.h> MPS_FIX1 */ 417/* Equivalent to <code/mps.h> MPS_FIX1 */
415 418
@@ -431,8 +434,9 @@ extern double TraceWorkFactor;
431/* Equivalent to <code/mps.h> MPS_SCAN_END */ 434/* Equivalent to <code/mps.h> MPS_SCAN_END */
432 435
433#define TRACE_SCAN_END(ss) \ 436#define TRACE_SCAN_END(ss) \
437 } \
438 (ss)->unfixedSummary = SCANsummary; \
434 } \ 439 } \
435 (ss)->unfixedSummary = SCANsummary; \
436 END 440 END
437 441
438extern Res TraceScanArea(ScanState ss, Addr *base, Addr *limit); 442extern Res TraceScanArea(ScanState ss, Addr *base, Addr *limit);
diff --git a/mps/code/mpstd.h b/mps/code/mpstd.h
index c7360ed942c..eb7021c4ba0 100644
--- a/mps/code/mpstd.h
+++ b/mps/code/mpstd.h
@@ -149,6 +149,30 @@
149#define MPS_WORD_SHIFT 5 149#define MPS_WORD_SHIFT 5
150#define MPS_PF_ALIGN 8 150#define MPS_PF_ALIGN 8
151 151
152
153/* Duplicated from W3I3MV, then... @@@@
154 * "Predefined Macros" from "Visual Studio 2010" on MSDN
155 * <http://msdn.microsoft.com/en-us/library/b0084kay(v=vs.100).aspx>.
156 * Note that Win32 includes 64-bit Windows!
157 */
158
159#elif defined(_MSC_VER) && defined(_WIN32) && defined(_WIN64) && defined(_M_X64)
160#if defined(CONFIG_PF_STRING) && ! defined(CONFIG_PF_W3I6MV)
161#error "specified CONFIG_PF_... inconsistent with detected w3i6mv"
162#endif
163#define MPS_PF_W3I6MV
164#define MPS_PF_STRING "w3i6mv"
165#define MPS_OS_W3
166#define MPS_ARCH_I6
167#define MPS_BUILD_MV
168#define MPS_T_WORD unsigned __int64
169#define MPS_T_LONGEST __int64
170#define MPS_T_ULONGEST unsigned __int64
171#define MPS_WORD_WIDTH 64
172#define MPS_WORD_SHIFT 6
173#define MPS_PF_ALIGN 16 /* @@@@ ref? */
174
175
152/* MW C/C++/ASM Lang Ref (CW9), pp. 184-186. Metrowerks does not document 176/* MW C/C++/ASM Lang Ref (CW9), pp. 184-186. Metrowerks does not document
153 * a way to determine the OS -- we assume MacOS 7. 177 * a way to determine the OS -- we assume MacOS 7.
154 */ 178 */
@@ -265,6 +289,23 @@
265#define MPS_WORD_SHIFT 5 289#define MPS_WORD_SHIFT 5
266#define MPS_PF_ALIGN 4 /* I'm just guessing. */ 290#define MPS_PF_ALIGN 4 /* I'm just guessing. */
267 291
292/* @@@@ fill in */
293
294#elif defined(__APPLE__) && defined(__x86_64__) && defined(__MACH__) \
295 && defined(__GNUC__)
296#if defined(CONFIG_PF_STRING) && ! defined(CONFIG_PF_XCI6GC)
297#error "specified CONFIG_PF_... inconsistent with detected xci6gc"
298#endif
299#define MPS_PF_XCI6GC
300#define MPS_PF_STRING "xci6gc"
301#define MPS_OS_XC
302#define MPS_ARCH_I6
303#define MPS_BUILD_GC
304#define MPS_T_WORD unsigned long
305#define MPS_WORD_WIDTH 64
306#define MPS_WORD_SHIFT 6
307#define MPS_PF_ALIGN 8 /* I'm just guessing. */
308
268/* GCC 2.5.8, gcc -E -dM, (__SVR4 indicates Solaris) */ 309/* GCC 2.5.8, gcc -E -dM, (__SVR4 indicates Solaris) */
269 310
270#elif defined(__sun__) && defined(__sparc__) && defined(__GNUC__) \ 311#elif defined(__sun__) && defined(__sparc__) && defined(__GNUC__) \
diff --git a/mps/code/protw3.c b/mps/code/protw3.c
index 8a9e690b62d..03af9ff40cf 100644
--- a/mps/code/protw3.c
+++ b/mps/code/protw3.c
@@ -42,7 +42,7 @@ void ProtSet(Addr base, Addr limit, AccessSet mode)
42 if((mode & AccessREAD) != 0) 42 if((mode & AccessREAD) != 0)
43 newProtect = PAGE_NOACCESS; 43 newProtect = PAGE_NOACCESS;
44 44
45 if(VirtualProtect((LPVOID)base, (DWORD)AddrOffset(base, limit), 45 if(VirtualProtect((LPVOID)base, (SIZE_T)AddrOffset(base, limit),
46 newProtect, &oldProtect) == 0) 46 newProtect, &oldProtect) == 0)
47 NOTREACHED; 47 NOTREACHED;
48} 48}
@@ -52,7 +52,7 @@ LONG ProtSEHfilter(LPEXCEPTION_POINTERS info)
52{ 52{
53 LPEXCEPTION_RECORD er; 53 LPEXCEPTION_RECORD er;
54 DWORD iswrite; 54 DWORD iswrite;
55 DWORD address; 55 ULONG_PTR address;
56 AccessSet mode; 56 AccessSet mode;
57 Addr base, limit; 57 Addr base, limit;
58 LONG action; 58 LONG action;
diff --git a/mps/code/vmw3.c b/mps/code/vmw3.c
index ee33544793b..f864d315749 100644
--- a/mps/code/vmw3.c
+++ b/mps/code/vmw3.c
@@ -151,7 +151,7 @@ Res VMCreate(VM *vmReturn, Size size)
151 return ResOK; 151 return ResOK;
152 152
153failReserve: 153failReserve:
154 b = VirtualFree((LPVOID)vm, (DWORD)0, MEM_RELEASE); 154 b = VirtualFree((LPVOID)vm, (SIZE_T)0, MEM_RELEASE);
155 AVER(b != 0); 155 AVER(b != 0);
156 return res; 156 return res;
157} 157}
@@ -171,10 +171,10 @@ void VMDestroy(VM vm)
171 * fail and it would be nice to have a dead sig there. */ 171 * fail and it would be nice to have a dead sig there. */
172 vm->sig = SigInvalid; 172 vm->sig = SigInvalid;
173 173
174 b = VirtualFree((LPVOID)vm->base, (DWORD)0, MEM_RELEASE); 174 b = VirtualFree((LPVOID)vm->base, (SIZE_T)0, MEM_RELEASE);
175 AVER(b != 0); 175 AVER(b != 0);
176 176
177 b = VirtualFree((LPVOID)vm, (DWORD)0, MEM_RELEASE); 177 b = VirtualFree((LPVOID)vm, (SIZE_T)0, MEM_RELEASE);
178 AVER(b != 0); 178 AVER(b != 0);
179 EVENT_P(VMDestroy, vm); 179 EVENT_P(VMDestroy, vm);
180} 180}
@@ -238,7 +238,7 @@ Res VMMap(VM vm, Addr base, Addr limit)
238 /* .improve.query-map: We could check that the pages we are about to 238 /* .improve.query-map: We could check that the pages we are about to
239 * map are unmapped using VirtualQuery. */ 239 * map are unmapped using VirtualQuery. */
240 240
241 b = VirtualAlloc((LPVOID)base, (DWORD)AddrOffset(base, limit), 241 b = VirtualAlloc((LPVOID)base, (SIZE_T)AddrOffset(base, limit),
242 MEM_COMMIT, PAGE_EXECUTE_READWRITE); 242 MEM_COMMIT, PAGE_EXECUTE_READWRITE);
243 if (b == NULL) 243 if (b == NULL)
244 return ResMEMORY; 244 return ResMEMORY;
@@ -268,7 +268,7 @@ void VMUnmap(VM vm, Addr base, Addr limit)
268 268
269 /* .improve.query-unmap: Could check that the pages we are about */ 269 /* .improve.query-unmap: Could check that the pages we are about */
270 /* to unmap are mapped, using VirtualQuery. */ 270 /* to unmap are mapped, using VirtualQuery. */
271 b = VirtualFree((LPVOID)base, (DWORD)AddrOffset(base, limit), MEM_DECOMMIT); 271 b = VirtualFree((LPVOID)base, (SIZE_T)AddrOffset(base, limit), MEM_DECOMMIT);
272 AVER(b != 0); /* .assume.free.success */ 272 AVER(b != 0); /* .assume.free.success */
273 vm->mapped -= AddrOffset(base, limit); 273 vm->mapped -= AddrOffset(base, limit);
274 274
diff --git a/mps/code/w3i6mv.nmk b/mps/code/w3i6mv.nmk
new file mode 100644
index 00000000000..0bbfe14535a
--- /dev/null
+++ b/mps/code/w3i6mv.nmk
@@ -0,0 +1,362 @@
1# w3i6mv.nmk: WINDOWS (x64) NMAKE FILE
2#
3# $Id$
4# Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
5
6PFM = w3i6mv
7
8# @@@@ Can we remove this? RB 2012-03-26
9RAINBOWPATH = MSVISUAL\WIN32\I386
10DONGLELIB = $(RAINBOWPATH)\spromeps.lib
11
12# /Gs appears to be necessary to suppress stack checks. Stack checks
13# (if not suppressed) generate a dependency on the C library, __chkesp,
14# which causes the linker step to fail when building the DLL, mpsdy.dll.
15PFMDEFS = /DCONFIG_PF_STRING="w3i6mv" /DCONFIG_PF_W3I6MV \
16 /DWIN32 /D_WINDOWS /Gs /I$(RAINBOWPATH)
17
18MPM = <ring> <mpm> <bt> <protocol> <boot> \
19 <arenavm> <arenacl> <locus> <arena> <global> <tract> <reserv> \
20 <pool> <poolabs> <poolmfs> <poolmv> \
21 <root> <format> <buffer> <walk> <lockw3> \
22 <ref> <trace> <traceanc> <protan> \
23 <shield> <vmw3> \
24 <than> <ssan> <mpsi> <mpsiw3> <ld> <span> \
25 <event> <seg> <sac> <poolmrg> <message> <dbgpool> <dbgpooli> \
26 <abq> <meter> <cbs> <poolmv2> <splay> <diag> <version>
27SW = <ring> <mpm> <bt> <protocol> <boot> \
28 <arenavm> <arenacl> <locus> <arena> <global> <tract> <reserv> \
29 <pool> <poolabs> <poolmfs> <poolmv> \
30 <root> <format> <buffer> <walk> \
31 <ref> <trace> <traceanc> <protsw> <prmcan> \
32 <shield> <vmw3> \
33 <thw3i3> <ssan> <mpsi> <ld> \
34 <event> <seg> <sac> <poolmrg> <message> <mpsioan> \
35 <poolams> <poolamsi> <dbgpool> <dbgpooli> \
36 <abq> <meter> <cbs> <poolmv2> <splay> <diag> <version> <poolmvff>
37PLINTH = <mpsliban> <mpsioan>
38AMC = <poolamc>
39AMS = <poolams> <poolamsi>
40AWL = <poolawl>
41LO = <poollo>
42SNC = <poolsnc>
43DW = <fmtdy> <fmtno>
44FMTTEST = <fmthe> <fmtdy> <fmtno> <fmtdytst>
45POOLN = <pooln>
46TESTLIB = <testlib>
47
48
49!INCLUDE commpre.nmk
50
51
52# Source to object file mappings and CFLAGS amalgamation
53# %%VARIETY %%PART: Add new macros which expand to the files included
54# in the part for each variety
55# %%VARIETY: Add a CFLAGS macro which expands to the flags that that variety
56# should use when compiling C. And a LINKFLAGS macro which expands to the
57# flags that the variety should use when building executables. And a LIBFLAGS
58# macro which expands to the flags that the variety should use when building
59# libraries
60
61!IF "$(VARIETY)" == "he"
62CFLAGS=$(CFLAGSCOMMONPRE) $(CFHE) $(CFLAGSCOMMONPOST)
63LINKFLAGS=$(LINKFLAGSCOMMON) $(LFHE)
64LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSHE)
65MPMOBJ0 = $(MPM:<=w3i6mv\he\)
66MPMOBJ = $(MPMOBJ0:>=.obj)
67PLINTHOBJ0 = $(PLINTH:<=w3i6mv\he\)
68PLINTHOBJ = $(PLINTHOBJ0:>=.obj)
69SWOBJ0 = $(SW:<=w3i6mv\he\)
70SWOBJ = $(SWOBJ0:>=.obj)
71AMSOBJ0 = $(AMS:<=w3i6mv\he\)
72AMSOBJ = $(AMSOBJ0:>=.obj)
73AMCOBJ0 = $(AMC:<=w3i6mv\he\)
74AMCOBJ = $(AMCOBJ0:>=.obj)
75AWLOBJ0 = $(AWL:<=w3i6mv\he\)
76AWLOBJ = $(AWLOBJ0:>=.obj)
77LOOBJ0 = $(LO:<=w3i6mv\he\)
78LOOBJ = $(LOOBJ0:>=.obj)
79SNCOBJ0 = $(SNC:<=w3i6mv\he\)
80SNCOBJ = $(SNCOBJ0:>=.obj)
81DWOBJ0 = $(DW:<=w3i6mv\he\)
82DWOBJ = $(DWOBJ0:>=.obj)
83FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\he\)
84FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj)
85POOLNOBJ0 = $(POOLN:<=w3i6mv\he\)
86POOLNOBJ = $(POOLNOBJ0:>=.obj)
87TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\he\)
88TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
89
90!ELSEIF "$(VARIETY)" == "ce"
91CFLAGS=$(CFLAGSCOMMONPRE) $(CFCE) $(CFLAGSCOMMONPOST)
92LINKFLAGS=$(LINKFLAGSCOMMON) $(LFCE)
93LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSCE)
94MPMOBJ0 = $(MPM:<=w3i6mv\ce\)
95MPMOBJ = $(MPMOBJ0:>=.obj)
96PLINTHOBJ0 = $(PLINTH:<=w3i6mv\ce\)
97PLINTHOBJ = $(PLINTHOBJ0:>=.obj)
98SWOBJ0 = $(SW:<=w3i6mv\ce\)
99SWOBJ = $(SWOBJ0:>=.obj)
100AMSOBJ0 = $(AMS:<=w3i6mv\ce\)
101AMSOBJ = $(AMSOBJ0:>=.obj)
102AMCOBJ0 = $(AMC:<=w3i6mv\ce\)
103AMCOBJ = $(AMCOBJ0:>=.obj)
104AWLOBJ0 = $(AWL:<=w3i6mv\ce\)
105AWLOBJ = $(AWLOBJ0:>=.obj)
106LOOBJ0 = $(LO:<=w3i6mv\ce\)
107LOOBJ = $(LOOBJ0:>=.obj)
108SNCOBJ0 = $(SNC:<=w3i6mv\ce\)
109SNCOBJ = $(SNCOBJ0:>=.obj)
110DWOBJ0 = $(DW:<=w3i6mv\ce\)
111DWOBJ = $(DWOBJ0:>=.obj)
112FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\ce\)
113FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj)
114POOLNOBJ0 = $(POOLN:<=w3i6mv\ce\)
115POOLNOBJ = $(POOLNOBJ0:>=.obj)
116TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\ce\)
117TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
118
119!ELSEIF "$(VARIETY)" == "hi"
120CFLAGS=$(CFLAGSCOMMONPRE) $(CFHI) $(CFLAGSCOMMONPOST)
121LINKFLAGS=$(LINKFLAGSCOMMON) $(LFHI)
122LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSHI)
123MPMOBJ0 = $(MPM:<=w3i6mv\hi\)
124MPMOBJ = $(MPMOBJ0:>=.obj)
125PLINTHOBJ0 = $(PLINTH:<=w3i6mv\hi\)
126PLINTHOBJ = $(PLINTHOBJ0:>=.obj)
127SWOBJ0 = $(SW:<=w3i6mv\hi\)
128SWOBJ = $(SWOBJ0:>=.obj)
129AMSOBJ0 = $(AMS:<=w3i6mv\hi\)
130AMSOBJ = $(AMSOBJ0:>=.obj)
131AMCOBJ0 = $(AMC:<=w3i6mv\hi\)
132AMCOBJ = $(AMCOBJ0:>=.obj)
133AWLOBJ0 = $(AWL:<=w3i6mv\hi\)
134AWLOBJ = $(AWLOBJ0:>=.obj)
135LOOBJ0 = $(LO:<=w3i6mv\hi\)
136LOOBJ = $(LOOBJ0:>=.obj)
137SNCOBJ0 = $(SNC:<=w3i6mv\hi\)
138SNCOBJ = $(SNCOBJ0:>=.obj)
139DWOBJ0 = $(DW:<=w3i6mv\hi\)
140DWOBJ = $(DWOBJ0:>=.obj)
141FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\hi\)
142FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj)
143POOLNOBJ0 = $(POOLN:<=w3i6mv\hi\)
144POOLNOBJ = $(POOLNOBJ0:>=.obj)
145TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\hi\)
146TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
147
148!ELSEIF "$(VARIETY)" == "di"
149CFLAGS=$(CFLAGSCOMMONPRE) $(CFDI) $(CFLAGSCOMMONPOST)
150LINKFLAGS=$(LINKFLAGSCOMMON) $(LFDI)
151LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSDI)
152MPMOBJ0 = $(MPM:<=w3i6mv\di\)
153MPMOBJ = $(MPMOBJ0:>=.obj)
154PLINTHOBJ0 = $(PLINTH:<=w3i6mv\di\)
155PLINTHOBJ = $(PLINTHOBJ0:>=.obj)
156SWOBJ0 = $(SW:<=w3i6mv\di\)
157SWOBJ = $(SWOBJ0:>=.obj)
158AMSOBJ0 = $(AMS:<=w3i6mv\di\)
159AMSOBJ = $(AMSOBJ0:>=.obj)
160AMCOBJ0 = $(AMC:<=w3i6mv\di\)
161AMCOBJ = $(AMCOBJ0:>=.obj)
162AWLOBJ0 = $(AWL:<=w3i6mv\di\)
163AWLOBJ = $(AWLOBJ0:>=.obj)
164LOOBJ0 = $(LO:<=w3i6mv\di\)
165LOOBJ = $(LOOBJ0:>=.obj)
166SNCOBJ0 = $(SNC:<=w3i6mv\di\)
167SNCOBJ = $(SNCOBJ0:>=.obj)
168DWOBJ0 = $(DW:<=w3i6mv\di\)
169DWOBJ = $(DWOBJ0:>=.obj)
170FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\di\)
171FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj)
172POOLNOBJ0 = $(POOLN:<=w3i6mv\di\)
173POOLNOBJ = $(POOLNOBJ0:>=.obj)
174TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\di\)
175TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
176
177!ELSEIF "$(VARIETY)" == "ci"
178CFLAGS=$(CFLAGSCOMMONPRE) $(CFCI) $(CFLAGSCOMMONPOST)
179LINKFLAGS=$(LINKFLAGSCOMMON) $(LFCI)
180LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSCI)
181MPMOBJ0 = $(MPM:<=w3i6mv\ci\)
182MPMOBJ = $(MPMOBJ0:>=.obj)
183PLINTHOBJ0 = $(PLINTH:<=w3i6mv\ci\)
184PLINTHOBJ = $(PLINTHOBJ0:>=.obj)
185SWOBJ0 = $(SW:<=w3i6mv\ci\)
186SWOBJ = $(SWOBJ0:>=.obj)
187AMSOBJ0 = $(AMS:<=w3i6mv\ci\)
188AMSOBJ = $(AMSOBJ0:>=.obj)
189AMCOBJ0 = $(AMC:<=w3i6mv\ci\)
190AMCOBJ = $(AMCOBJ0:>=.obj)
191AWLOBJ0 = $(AWL:<=w3i6mv\ci\)
192AWLOBJ = $(AWLOBJ0:>=.obj)
193LOOBJ0 = $(LO:<=w3i6mv\ci\)
194LOOBJ = $(LOOBJ0:>=.obj)
195SNCOBJ0 = $(SNC:<=w3i6mv\ci\)
196SNCOBJ = $(SNCOBJ0:>=.obj)
197DWOBJ0 = $(DW:<=w3i6mv\ci\)
198DWOBJ = $(DWOBJ0:>=.obj)
199FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\ci\)
200FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj)
201POOLNOBJ0 = $(POOLN:<=w3i6mv\ci\)
202POOLNOBJ = $(POOLNOBJ0:>=.obj)
203TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\ci\)
204TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
205
206!ELSEIF "$(VARIETY)" == "ti"
207CFLAGS=$(CFLAGSCOMMONPRE) $(CFTI) $(CFLAGSCOMMONPOST)
208LINKFLAGS=$(LINKFLAGSCOMMON) $(LFTI)
209LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSTI)
210MPMOBJ0 = $(MPM:<=w3i6mv\ti\)
211MPMOBJ = $(MPMOBJ0:>=.obj)
212PLINTHOBJ0 = $(PLINTH:<=w3i6mv\ti\)
213PLINTHOBJ = $(PLINTHOBJ0:>=.obj)
214SWOBJ0 = $(SW:<=w3i6mv\ti\)
215SWOBJ = $(SWOBJ0:>=.obj)
216AMSOBJ0 = $(AMS:<=w3i6mv\ti\)
217AMSOBJ = $(AMSOBJ0:>=.obj)
218AMCOBJ0 = $(AMC:<=w3i6mv\ti\)
219AMCOBJ = $(AMCOBJ0:>=.obj)
220AWLOBJ0 = $(AWL:<=w3i6mv\ti\)
221AWLOBJ = $(AWLOBJ0:>=.obj)
222LOOBJ0 = $(LO:<=w3i6mv\ti\)
223LOOBJ = $(LOOBJ0:>=.obj)
224SNCOBJ0 = $(SNC:<=w3i6mv\ti\)
225SNCOBJ = $(SNCOBJ0:>=.obj)
226DWOBJ0 = $(DW:<=w3i6mv\ti\)
227DWOBJ = $(DWOBJ0:>=.obj)
228FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\ti\)
229FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj)
230POOLNOBJ0 = $(POOLN:<=w3i6mv\ti\)
231POOLNOBJ = $(POOLNOBJ0:>=.obj)
232TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\ti\)
233TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
234
235!ELSEIF "$(VARIETY)" == "wi"
236CFLAGS=$(CFLAGSCOMMONPRE) $(CFWI) $(CFLAGSCOMMONPOST)
237LINKFLAGS=$(LINKFLAGSCOMMON) $(LFWI)
238LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSWI)
239MPMOBJ0 = $(MPM:<=w3i6mv\wi\)
240MPMOBJ = $(MPMOBJ0:>=.obj)
241PLINTHOBJ0 = $(PLINTH:<=w3i6mv\wi\)
242PLINTHOBJ = $(PLINTHOBJ0:>=.obj)
243SWOBJ0 = $(SW:<=w3i6mv\wi\)
244SWOBJ = $(SWOBJ0:>=.obj)
245AMSOBJ0 = $(AMS:<=w3i6mv\wi\)
246AMSOBJ = $(AMSOBJ0:>=.obj)
247AMCOBJ0 = $(AMC:<=w3i6mv\wi\)
248AMCOBJ = $(AMCOBJ0:>=.obj)
249AWLOBJ0 = $(AWL:<=w3i6mv\wi\)
250AWLOBJ = $(AWLOBJ0:>=.obj)
251LOOBJ0 = $(LO:<=w3i6mv\wi\)
252LOOBJ = $(LOOBJ0:>=.obj)
253SNCOBJ0 = $(SNC:<=w3i6mv\wi\)
254SNCOBJ = $(SNCOBJ0:>=.obj)
255DWOBJ0 = $(DW:<=w3i6mv\wi\)
256DWOBJ = $(DWOBJ0:>=.obj)
257FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\wi\)
258FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj)
259POOLNOBJ0 = $(POOLN:<=w3i6mv\wi\)
260POOLNOBJ = $(POOLNOBJ0:>=.obj)
261TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\wi\)
262TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
263
264!ELSEIF "$(VARIETY)" == "we"
265CFLAGS=$(CFLAGSCOMMONPRE) $(CFWE) $(CFLAGSCOMMONPOST)
266LINKFLAGS=$(LINKFLAGSCOMMON) $(LFWE)
267LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSWE)
268MPMOBJ0 = $(MPM:<=w3i6mv\we\)
269MPMOBJ = $(MPMOBJ0:>=.obj)
270PLINTHOBJ0 = $(PLINTH:<=w3i6mv\we\)
271PLINTHOBJ = $(PLINTHOBJ0:>=.obj)
272SWOBJ0 = $(SW:<=w3i6mv\we\)
273SWOBJ = $(SWOBJ0:>=.obj)
274AMSOBJ0 = $(AMS:<=w3i6mv\we\)
275AMSOBJ = $(AMSOBJ0:>=.obj)
276AMCOBJ0 = $(AMC:<=w3i6mv\we\)
277AMCOBJ = $(AMCOBJ0:>=.obj)
278AWLOBJ0 = $(AWL:<=w3i6mv\we\)
279AWLOBJ = $(AWLOBJ0:>=.obj)
280LOOBJ0 = $(LO:<=w3i6mv\we\)
281LOOBJ = $(LOOBJ0:>=.obj)
282SNCOBJ0 = $(SNC:<=w3i6mv\we\)
283SNCOBJ = $(SNCOBJ0:>=.obj)
284DWOBJ0 = $(DW:<=w3i6mv\we\)
285DWOBJ = $(DWOBJ0:>=.obj)
286FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\we\)
287FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj)
288POOLNOBJ0 = $(POOLN:<=w3i6mv\we\)
289POOLNOBJ = $(POOLNOBJ0:>=.obj)
290TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\we\)
291TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
292
293#!ELSEIF "$(VARIETY)" == "cv"
294#CFLAGS=$(CFLAGSCOMMON) $(CFCV)
295#LINKFLAGS=$(LINKFLAGSCOMMON) $(LFCV)
296#LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSCV)
297#MPMOBJ0 = $(MPM:<=w3i6mv\cv\)
298#MPMOBJ = $(MPMOBJ0:>=.obj)
299#PLINTHOBJ0 = $(PLINTH:<=w3i6mv\cv\)
300#PLINTHOBJ = $(PLINTHOBJ0:>=.obj)
301#AMSOBJ0 = $(AMS:<=w3i6mv\cv\)
302#AMSOBJ = $(AMSOBJ0:>=.obj)
303#AMCOBJ0 = $(AMC:<=w3i6mv\cv\)
304#AMCOBJ = $(AMCOBJ0:>=.obj)
305#AWLOBJ0 = $(AWL:<=w3i6mv\cv\)
306#AWLOBJ = $(AWLOBJ0:>=.obj)
307#LOOBJ0 = $(LO:<=w3i6mv\cv\)
308#LOOBJ = $(LOOBJ0:>=.obj)
309#SNCOBJ0 = $(SNC:<=w3i6mv\cv\)
310#SNCOBJ = $(SNCOBJ0:>=.obj)
311#DWOBJ0 = $(DW:<=w3i6mv\cv\)
312#DWOBJ = $(DWOBJ0:>=.obj)
313#POOLNOBJ0 = $(POOLN:<=w3i6mv\cv\)
314#POOLNOBJ = $(POOLNOBJ0:>=.obj)
315#TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\cv\)
316#TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
317
318!ENDIF
319
320
321!INCLUDE commpost.nmk
322
323
324# C. COPYRIGHT AND LICENSE
325#
326# Copyright (C) 2001-2002 Ravenbrook Limited <http://www.ravenbrook.com/>.
327# All rights reserved. This is an open source license. Contact
328# Ravenbrook for commercial licensing options.
329#
330# Redistribution and use in source and binary forms, with or without
331# modification, are permitted provided that the following conditions are
332# met:
333#
334# 1. Redistributions of source code must retain the above copyright
335# notice, this list of conditions and the following disclaimer.
336#
337# 2. Redistributions in binary form must reproduce the above copyright
338# notice, this list of conditions and the following disclaimer in the
339# documentation and/or other materials provided with the distribution.
340#
341# 3. Redistributions in any form must be accompanied by information on how
342# to obtain complete source code for this software and any accompanying
343# software that uses this software. The source code must either be
344# included in the distribution or be available for no more than the cost
345# of distribution plus a nominal fee, and must be freely redistributable
346# under reasonable conditions. For an executable file, complete source
347# code means the source code for all modules it contains. It does not
348# include source code for modules or files that typically accompany the
349# major components of the operating system on which the executable file
350# runs.
351#
352# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
353# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
354# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
355# PURPOSE, OR NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL THE
356# COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
357# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
358# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
359# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
360# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
361# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
362# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.