diff options
| author | Richard Brooksby | 2012-04-30 14:33:00 +0100 |
|---|---|---|
| committer | Richard Brooksby | 2012-04-30 14:33:00 +0100 |
| commit | 80fe60df02b89cde78e1a4d99dc76745faee0204 (patch) | |
| tree | 18f5cb82c7c2ac8bbb7eac6dd96a304aaf4a7fdc /mps/code | |
| parent | 8ececb3039855a78963afa19cecc367906b2249d (diff) | |
| download | emacs-80fe60df02b89cde78e1a4d99dc76745faee0204.tar.gz emacs-80fe60df02b89cde78e1a4d99dc76745faee0204.zip | |
Added w3i6mv platform and fixed types of arguments to windows api functions for 64-bit.
Copied from Perforce
Change: 178063
ServerID: perforce.ravenbrook.com
Diffstat (limited to 'mps/code')
| -rw-r--r-- | mps/code/arenavm.c | 7 | ||||
| -rw-r--r-- | mps/code/mpm.h | 16 | ||||
| -rw-r--r-- | mps/code/mpstd.h | 41 | ||||
| -rw-r--r-- | mps/code/protw3.c | 4 | ||||
| -rw-r--r-- | mps/code/vmw3.c | 10 | ||||
| -rw-r--r-- | mps/code/w3i6mv.nmk | 362 |
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 | ||
| 438 | extern Res TraceScanArea(ScanState ss, Addr *base, Addr *limit); | 442 | extern 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 | ||
| 153 | failReserve: | 153 | failReserve: |
| 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 | |||
| 6 | PFM = w3i6mv | ||
| 7 | |||
| 8 | # @@@@ Can we remove this? RB 2012-03-26 | ||
| 9 | RAINBOWPATH = MSVISUAL\WIN32\I386 | ||
| 10 | DONGLELIB = $(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. | ||
| 15 | PFMDEFS = /DCONFIG_PF_STRING="w3i6mv" /DCONFIG_PF_W3I6MV \ | ||
| 16 | /DWIN32 /D_WINDOWS /Gs /I$(RAINBOWPATH) | ||
| 17 | |||
| 18 | MPM = <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> | ||
| 27 | SW = <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> | ||
| 37 | PLINTH = <mpsliban> <mpsioan> | ||
| 38 | AMC = <poolamc> | ||
| 39 | AMS = <poolams> <poolamsi> | ||
| 40 | AWL = <poolawl> | ||
| 41 | LO = <poollo> | ||
| 42 | SNC = <poolsnc> | ||
| 43 | DW = <fmtdy> <fmtno> | ||
| 44 | FMTTEST = <fmthe> <fmtdy> <fmtno> <fmtdytst> | ||
| 45 | POOLN = <pooln> | ||
| 46 | TESTLIB = <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" | ||
| 62 | CFLAGS=$(CFLAGSCOMMONPRE) $(CFHE) $(CFLAGSCOMMONPOST) | ||
| 63 | LINKFLAGS=$(LINKFLAGSCOMMON) $(LFHE) | ||
| 64 | LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSHE) | ||
| 65 | MPMOBJ0 = $(MPM:<=w3i6mv\he\) | ||
| 66 | MPMOBJ = $(MPMOBJ0:>=.obj) | ||
| 67 | PLINTHOBJ0 = $(PLINTH:<=w3i6mv\he\) | ||
| 68 | PLINTHOBJ = $(PLINTHOBJ0:>=.obj) | ||
| 69 | SWOBJ0 = $(SW:<=w3i6mv\he\) | ||
| 70 | SWOBJ = $(SWOBJ0:>=.obj) | ||
| 71 | AMSOBJ0 = $(AMS:<=w3i6mv\he\) | ||
| 72 | AMSOBJ = $(AMSOBJ0:>=.obj) | ||
| 73 | AMCOBJ0 = $(AMC:<=w3i6mv\he\) | ||
| 74 | AMCOBJ = $(AMCOBJ0:>=.obj) | ||
| 75 | AWLOBJ0 = $(AWL:<=w3i6mv\he\) | ||
| 76 | AWLOBJ = $(AWLOBJ0:>=.obj) | ||
| 77 | LOOBJ0 = $(LO:<=w3i6mv\he\) | ||
| 78 | LOOBJ = $(LOOBJ0:>=.obj) | ||
| 79 | SNCOBJ0 = $(SNC:<=w3i6mv\he\) | ||
| 80 | SNCOBJ = $(SNCOBJ0:>=.obj) | ||
| 81 | DWOBJ0 = $(DW:<=w3i6mv\he\) | ||
| 82 | DWOBJ = $(DWOBJ0:>=.obj) | ||
| 83 | FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\he\) | ||
| 84 | FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj) | ||
| 85 | POOLNOBJ0 = $(POOLN:<=w3i6mv\he\) | ||
| 86 | POOLNOBJ = $(POOLNOBJ0:>=.obj) | ||
| 87 | TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\he\) | ||
| 88 | TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj) | ||
| 89 | |||
| 90 | !ELSEIF "$(VARIETY)" == "ce" | ||
| 91 | CFLAGS=$(CFLAGSCOMMONPRE) $(CFCE) $(CFLAGSCOMMONPOST) | ||
| 92 | LINKFLAGS=$(LINKFLAGSCOMMON) $(LFCE) | ||
| 93 | LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSCE) | ||
| 94 | MPMOBJ0 = $(MPM:<=w3i6mv\ce\) | ||
| 95 | MPMOBJ = $(MPMOBJ0:>=.obj) | ||
| 96 | PLINTHOBJ0 = $(PLINTH:<=w3i6mv\ce\) | ||
| 97 | PLINTHOBJ = $(PLINTHOBJ0:>=.obj) | ||
| 98 | SWOBJ0 = $(SW:<=w3i6mv\ce\) | ||
| 99 | SWOBJ = $(SWOBJ0:>=.obj) | ||
| 100 | AMSOBJ0 = $(AMS:<=w3i6mv\ce\) | ||
| 101 | AMSOBJ = $(AMSOBJ0:>=.obj) | ||
| 102 | AMCOBJ0 = $(AMC:<=w3i6mv\ce\) | ||
| 103 | AMCOBJ = $(AMCOBJ0:>=.obj) | ||
| 104 | AWLOBJ0 = $(AWL:<=w3i6mv\ce\) | ||
| 105 | AWLOBJ = $(AWLOBJ0:>=.obj) | ||
| 106 | LOOBJ0 = $(LO:<=w3i6mv\ce\) | ||
| 107 | LOOBJ = $(LOOBJ0:>=.obj) | ||
| 108 | SNCOBJ0 = $(SNC:<=w3i6mv\ce\) | ||
| 109 | SNCOBJ = $(SNCOBJ0:>=.obj) | ||
| 110 | DWOBJ0 = $(DW:<=w3i6mv\ce\) | ||
| 111 | DWOBJ = $(DWOBJ0:>=.obj) | ||
| 112 | FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\ce\) | ||
| 113 | FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj) | ||
| 114 | POOLNOBJ0 = $(POOLN:<=w3i6mv\ce\) | ||
| 115 | POOLNOBJ = $(POOLNOBJ0:>=.obj) | ||
| 116 | TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\ce\) | ||
| 117 | TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj) | ||
| 118 | |||
| 119 | !ELSEIF "$(VARIETY)" == "hi" | ||
| 120 | CFLAGS=$(CFLAGSCOMMONPRE) $(CFHI) $(CFLAGSCOMMONPOST) | ||
| 121 | LINKFLAGS=$(LINKFLAGSCOMMON) $(LFHI) | ||
| 122 | LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSHI) | ||
| 123 | MPMOBJ0 = $(MPM:<=w3i6mv\hi\) | ||
| 124 | MPMOBJ = $(MPMOBJ0:>=.obj) | ||
| 125 | PLINTHOBJ0 = $(PLINTH:<=w3i6mv\hi\) | ||
| 126 | PLINTHOBJ = $(PLINTHOBJ0:>=.obj) | ||
| 127 | SWOBJ0 = $(SW:<=w3i6mv\hi\) | ||
| 128 | SWOBJ = $(SWOBJ0:>=.obj) | ||
| 129 | AMSOBJ0 = $(AMS:<=w3i6mv\hi\) | ||
| 130 | AMSOBJ = $(AMSOBJ0:>=.obj) | ||
| 131 | AMCOBJ0 = $(AMC:<=w3i6mv\hi\) | ||
| 132 | AMCOBJ = $(AMCOBJ0:>=.obj) | ||
| 133 | AWLOBJ0 = $(AWL:<=w3i6mv\hi\) | ||
| 134 | AWLOBJ = $(AWLOBJ0:>=.obj) | ||
| 135 | LOOBJ0 = $(LO:<=w3i6mv\hi\) | ||
| 136 | LOOBJ = $(LOOBJ0:>=.obj) | ||
| 137 | SNCOBJ0 = $(SNC:<=w3i6mv\hi\) | ||
| 138 | SNCOBJ = $(SNCOBJ0:>=.obj) | ||
| 139 | DWOBJ0 = $(DW:<=w3i6mv\hi\) | ||
| 140 | DWOBJ = $(DWOBJ0:>=.obj) | ||
| 141 | FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\hi\) | ||
| 142 | FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj) | ||
| 143 | POOLNOBJ0 = $(POOLN:<=w3i6mv\hi\) | ||
| 144 | POOLNOBJ = $(POOLNOBJ0:>=.obj) | ||
| 145 | TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\hi\) | ||
| 146 | TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj) | ||
| 147 | |||
| 148 | !ELSEIF "$(VARIETY)" == "di" | ||
| 149 | CFLAGS=$(CFLAGSCOMMONPRE) $(CFDI) $(CFLAGSCOMMONPOST) | ||
| 150 | LINKFLAGS=$(LINKFLAGSCOMMON) $(LFDI) | ||
| 151 | LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSDI) | ||
| 152 | MPMOBJ0 = $(MPM:<=w3i6mv\di\) | ||
| 153 | MPMOBJ = $(MPMOBJ0:>=.obj) | ||
| 154 | PLINTHOBJ0 = $(PLINTH:<=w3i6mv\di\) | ||
| 155 | PLINTHOBJ = $(PLINTHOBJ0:>=.obj) | ||
| 156 | SWOBJ0 = $(SW:<=w3i6mv\di\) | ||
| 157 | SWOBJ = $(SWOBJ0:>=.obj) | ||
| 158 | AMSOBJ0 = $(AMS:<=w3i6mv\di\) | ||
| 159 | AMSOBJ = $(AMSOBJ0:>=.obj) | ||
| 160 | AMCOBJ0 = $(AMC:<=w3i6mv\di\) | ||
| 161 | AMCOBJ = $(AMCOBJ0:>=.obj) | ||
| 162 | AWLOBJ0 = $(AWL:<=w3i6mv\di\) | ||
| 163 | AWLOBJ = $(AWLOBJ0:>=.obj) | ||
| 164 | LOOBJ0 = $(LO:<=w3i6mv\di\) | ||
| 165 | LOOBJ = $(LOOBJ0:>=.obj) | ||
| 166 | SNCOBJ0 = $(SNC:<=w3i6mv\di\) | ||
| 167 | SNCOBJ = $(SNCOBJ0:>=.obj) | ||
| 168 | DWOBJ0 = $(DW:<=w3i6mv\di\) | ||
| 169 | DWOBJ = $(DWOBJ0:>=.obj) | ||
| 170 | FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\di\) | ||
| 171 | FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj) | ||
| 172 | POOLNOBJ0 = $(POOLN:<=w3i6mv\di\) | ||
| 173 | POOLNOBJ = $(POOLNOBJ0:>=.obj) | ||
| 174 | TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\di\) | ||
| 175 | TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj) | ||
| 176 | |||
| 177 | !ELSEIF "$(VARIETY)" == "ci" | ||
| 178 | CFLAGS=$(CFLAGSCOMMONPRE) $(CFCI) $(CFLAGSCOMMONPOST) | ||
| 179 | LINKFLAGS=$(LINKFLAGSCOMMON) $(LFCI) | ||
| 180 | LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSCI) | ||
| 181 | MPMOBJ0 = $(MPM:<=w3i6mv\ci\) | ||
| 182 | MPMOBJ = $(MPMOBJ0:>=.obj) | ||
| 183 | PLINTHOBJ0 = $(PLINTH:<=w3i6mv\ci\) | ||
| 184 | PLINTHOBJ = $(PLINTHOBJ0:>=.obj) | ||
| 185 | SWOBJ0 = $(SW:<=w3i6mv\ci\) | ||
| 186 | SWOBJ = $(SWOBJ0:>=.obj) | ||
| 187 | AMSOBJ0 = $(AMS:<=w3i6mv\ci\) | ||
| 188 | AMSOBJ = $(AMSOBJ0:>=.obj) | ||
| 189 | AMCOBJ0 = $(AMC:<=w3i6mv\ci\) | ||
| 190 | AMCOBJ = $(AMCOBJ0:>=.obj) | ||
| 191 | AWLOBJ0 = $(AWL:<=w3i6mv\ci\) | ||
| 192 | AWLOBJ = $(AWLOBJ0:>=.obj) | ||
| 193 | LOOBJ0 = $(LO:<=w3i6mv\ci\) | ||
| 194 | LOOBJ = $(LOOBJ0:>=.obj) | ||
| 195 | SNCOBJ0 = $(SNC:<=w3i6mv\ci\) | ||
| 196 | SNCOBJ = $(SNCOBJ0:>=.obj) | ||
| 197 | DWOBJ0 = $(DW:<=w3i6mv\ci\) | ||
| 198 | DWOBJ = $(DWOBJ0:>=.obj) | ||
| 199 | FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\ci\) | ||
| 200 | FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj) | ||
| 201 | POOLNOBJ0 = $(POOLN:<=w3i6mv\ci\) | ||
| 202 | POOLNOBJ = $(POOLNOBJ0:>=.obj) | ||
| 203 | TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\ci\) | ||
| 204 | TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj) | ||
| 205 | |||
| 206 | !ELSEIF "$(VARIETY)" == "ti" | ||
| 207 | CFLAGS=$(CFLAGSCOMMONPRE) $(CFTI) $(CFLAGSCOMMONPOST) | ||
| 208 | LINKFLAGS=$(LINKFLAGSCOMMON) $(LFTI) | ||
| 209 | LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSTI) | ||
| 210 | MPMOBJ0 = $(MPM:<=w3i6mv\ti\) | ||
| 211 | MPMOBJ = $(MPMOBJ0:>=.obj) | ||
| 212 | PLINTHOBJ0 = $(PLINTH:<=w3i6mv\ti\) | ||
| 213 | PLINTHOBJ = $(PLINTHOBJ0:>=.obj) | ||
| 214 | SWOBJ0 = $(SW:<=w3i6mv\ti\) | ||
| 215 | SWOBJ = $(SWOBJ0:>=.obj) | ||
| 216 | AMSOBJ0 = $(AMS:<=w3i6mv\ti\) | ||
| 217 | AMSOBJ = $(AMSOBJ0:>=.obj) | ||
| 218 | AMCOBJ0 = $(AMC:<=w3i6mv\ti\) | ||
| 219 | AMCOBJ = $(AMCOBJ0:>=.obj) | ||
| 220 | AWLOBJ0 = $(AWL:<=w3i6mv\ti\) | ||
| 221 | AWLOBJ = $(AWLOBJ0:>=.obj) | ||
| 222 | LOOBJ0 = $(LO:<=w3i6mv\ti\) | ||
| 223 | LOOBJ = $(LOOBJ0:>=.obj) | ||
| 224 | SNCOBJ0 = $(SNC:<=w3i6mv\ti\) | ||
| 225 | SNCOBJ = $(SNCOBJ0:>=.obj) | ||
| 226 | DWOBJ0 = $(DW:<=w3i6mv\ti\) | ||
| 227 | DWOBJ = $(DWOBJ0:>=.obj) | ||
| 228 | FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\ti\) | ||
| 229 | FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj) | ||
| 230 | POOLNOBJ0 = $(POOLN:<=w3i6mv\ti\) | ||
| 231 | POOLNOBJ = $(POOLNOBJ0:>=.obj) | ||
| 232 | TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\ti\) | ||
| 233 | TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj) | ||
| 234 | |||
| 235 | !ELSEIF "$(VARIETY)" == "wi" | ||
| 236 | CFLAGS=$(CFLAGSCOMMONPRE) $(CFWI) $(CFLAGSCOMMONPOST) | ||
| 237 | LINKFLAGS=$(LINKFLAGSCOMMON) $(LFWI) | ||
| 238 | LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSWI) | ||
| 239 | MPMOBJ0 = $(MPM:<=w3i6mv\wi\) | ||
| 240 | MPMOBJ = $(MPMOBJ0:>=.obj) | ||
| 241 | PLINTHOBJ0 = $(PLINTH:<=w3i6mv\wi\) | ||
| 242 | PLINTHOBJ = $(PLINTHOBJ0:>=.obj) | ||
| 243 | SWOBJ0 = $(SW:<=w3i6mv\wi\) | ||
| 244 | SWOBJ = $(SWOBJ0:>=.obj) | ||
| 245 | AMSOBJ0 = $(AMS:<=w3i6mv\wi\) | ||
| 246 | AMSOBJ = $(AMSOBJ0:>=.obj) | ||
| 247 | AMCOBJ0 = $(AMC:<=w3i6mv\wi\) | ||
| 248 | AMCOBJ = $(AMCOBJ0:>=.obj) | ||
| 249 | AWLOBJ0 = $(AWL:<=w3i6mv\wi\) | ||
| 250 | AWLOBJ = $(AWLOBJ0:>=.obj) | ||
| 251 | LOOBJ0 = $(LO:<=w3i6mv\wi\) | ||
| 252 | LOOBJ = $(LOOBJ0:>=.obj) | ||
| 253 | SNCOBJ0 = $(SNC:<=w3i6mv\wi\) | ||
| 254 | SNCOBJ = $(SNCOBJ0:>=.obj) | ||
| 255 | DWOBJ0 = $(DW:<=w3i6mv\wi\) | ||
| 256 | DWOBJ = $(DWOBJ0:>=.obj) | ||
| 257 | FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\wi\) | ||
| 258 | FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj) | ||
| 259 | POOLNOBJ0 = $(POOLN:<=w3i6mv\wi\) | ||
| 260 | POOLNOBJ = $(POOLNOBJ0:>=.obj) | ||
| 261 | TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\wi\) | ||
| 262 | TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj) | ||
| 263 | |||
| 264 | !ELSEIF "$(VARIETY)" == "we" | ||
| 265 | CFLAGS=$(CFLAGSCOMMONPRE) $(CFWE) $(CFLAGSCOMMONPOST) | ||
| 266 | LINKFLAGS=$(LINKFLAGSCOMMON) $(LFWE) | ||
| 267 | LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSWE) | ||
| 268 | MPMOBJ0 = $(MPM:<=w3i6mv\we\) | ||
| 269 | MPMOBJ = $(MPMOBJ0:>=.obj) | ||
| 270 | PLINTHOBJ0 = $(PLINTH:<=w3i6mv\we\) | ||
| 271 | PLINTHOBJ = $(PLINTHOBJ0:>=.obj) | ||
| 272 | SWOBJ0 = $(SW:<=w3i6mv\we\) | ||
| 273 | SWOBJ = $(SWOBJ0:>=.obj) | ||
| 274 | AMSOBJ0 = $(AMS:<=w3i6mv\we\) | ||
| 275 | AMSOBJ = $(AMSOBJ0:>=.obj) | ||
| 276 | AMCOBJ0 = $(AMC:<=w3i6mv\we\) | ||
| 277 | AMCOBJ = $(AMCOBJ0:>=.obj) | ||
| 278 | AWLOBJ0 = $(AWL:<=w3i6mv\we\) | ||
| 279 | AWLOBJ = $(AWLOBJ0:>=.obj) | ||
| 280 | LOOBJ0 = $(LO:<=w3i6mv\we\) | ||
| 281 | LOOBJ = $(LOOBJ0:>=.obj) | ||
| 282 | SNCOBJ0 = $(SNC:<=w3i6mv\we\) | ||
| 283 | SNCOBJ = $(SNCOBJ0:>=.obj) | ||
| 284 | DWOBJ0 = $(DW:<=w3i6mv\we\) | ||
| 285 | DWOBJ = $(DWOBJ0:>=.obj) | ||
| 286 | FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\we\) | ||
| 287 | FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj) | ||
| 288 | POOLNOBJ0 = $(POOLN:<=w3i6mv\we\) | ||
| 289 | POOLNOBJ = $(POOLNOBJ0:>=.obj) | ||
| 290 | TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\we\) | ||
| 291 | TESTLIBOBJ = $(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. | ||