From f7c41cd024fb80be501610d8fb39f4b2f7fa2ea8 Mon Sep 17 00:00:00 2001 From: Richard Kistruck Date: Fri, 29 May 1998 15:36:38 +0100 Subject: [PATCH] [bug] [160053] build Mac MPS with new compiler+linker, and good options Build different varieties (variety.ci and variety.he) differently. Upgrade tools from MrC1.0 + PPCLink1.0 to MrC2.0.2d1 + PPCLink1.5. Drop InterfaceLib from link, because it provokes a PPCLink1.5 error (Error 3019 while reading file InterfaceLib; File is not an object file) and is apparently not needed. The release build (variety.he) is untested -- see .he.untested. Correct copyright. Improve build instructions. Old HE settings are still temporarily available as the pseudo-variety ZZ, for testing. Copied from Perforce Change: 19556 ServerID: perforce.ravenbrook.com GitHub-reference: https://github.com/Ravenbrook/mps/issues/160053 --- mps/src/s7ppac/Makefile | 117 ++++++++++++++++++++++++++++++++++------ 1 file changed, 101 insertions(+), 16 deletions(-) diff --git a/mps/src/s7ppac/Makefile b/mps/src/s7ppac/Makefile index fdfa953a85d..bfaeadb87de 100644 --- a/mps/src/s7ppac/Makefile +++ b/mps/src/s7ppac/Makefile @@ -1,38 +1,88 @@ # impl.makefile.s7ppac: S7PPAC MPW MAKE FILE # -# $HopeName: MMsrc!s7ppac:Makefile(trunk.9) $ +# $HopeName: MMsrc!s7ppac:Makefile(trunk.10) $ # -# Copyright (C) 1996, 1997 Harlequin Group, all rights reserved +# Copyright (c) 1998 Harlequin Group plc. All rights reserved. # # This only knows about making the mmsw libraries for MM/EP-core. # # To invoke: # +# directory {...}s7ppac # BuildProgram -d Variety mmsw # # (this builds mmsw_HE.o and mmsw_CI.o) # # to clean everything else away: # +# directory {...}s7ppac # BuildProgram -d Variety clean +# +# Notes: +# +# .dep.accum: If several single-f rules all produce the same product +# (left-hand-side of the f), they act together: at most one may have a +# body, the others only add additional dependencies. +# +# .he.untested: The variety.he build hasn't been tested; see +# .obsolete.zz below. -COptions = -d CONFIG_VAR_{Variety} -d CONFIG_PROD_EPCORE ¶ - -ansi strict -proto strict -typecheck strict -w error ¶ - -sym full ¶ - -i "{CIncludes96}" + +# Options cribbed from SWbuild!macos:rules:rulemrc4.make(trunk.3) +CC_OPT_CONTROL= -nomfmem -y "{TempFolder}" +CC_OPT_SOURCE= -inclpath nosystem +CC_OPT_OBJECT= -align power -char signed -enum int -fp_contract off -ldsize 128 -target ppc + +CC_OPTT_AbsAPAD= -ansi strict -proto strict -typecheck strict +# Plus "warnings are errors": +CC_OPTT={CC_OPTT_AbsAPAD} -w error + +CC_OPTR_Dbg= -opt off -sym on -tb on +CC_OPTR_Qkb= -opt off -sym off -tb on +CC_OPTR_Spd= -opt speed,nounroll -sym off -tb on +CC_OPTR_= -opt speed,nounroll -sym off -w 35 + +SYS_CINCLUDES= -i {CIncludes96} + + +BB_OPT_CONTROL= -nomf -linkfaster on +BB_OPT_SOURCE= +BB_OPT_OBJECT= -xm Library + +BB_OPTR_Dbg= -sym on +BB_OPTR_Qkb= -sym off +BB_OPTR_Spd= -sym off +BB_OPTR_= -sym off + + +PRODDEFINES= -d CONFIG_VAR_{Variety} -d CONFIG_PROD_EPCORE ":" Ä "::" OSffx = .c.{Variety}.o -{OSffx} Ä .c - {MPWCommands96}MrC1.0 ¶ - -o {TargDir}{Default}{OSffx} ¶ - {COptions} ¶ - {DepDir}{Default}.c +.c.CI.o Ä .c + {MPWCommands96}MrC2.0.2d1 ¶ + -o {TargDir}{Default}.c.CI.o ¶ + {CC_OPTT} ¶ + {CC_OPTR_Dbg} ¶ + {CC_OPT_CONTROL} {CC_OPT_SOURCE} {CC_OPT_OBJECT} ¶ + {ENVDEFINES} {PRODDEFINES} ¶ + {SYS_CINCLUDES} ¶ + {DepDir}{Default}.c -mmsw_{Variety}.o Ä ¶ +.c.HE.o Ä .c + {MPWCommands96}MrC2.0.2d1 ¶ + -o {TargDir}{Default}.c.HE.o ¶ + {CC_OPTT} ¶ + {CC_OPTR_} ¶ + {CC_OPT_CONTROL} {CC_OPT_SOURCE} {CC_OPT_OBJECT} ¶ + {ENVDEFINES} {PRODDEFINES} ¶ + {SYS_CINCLUDES} ¶ + {DepDir}{Default}.c + +mmsw_{Variety}.o Ä ¶ assert{OSffx} ¶ ring{OSffx} ¶ mpm{OSffx} ¶ @@ -61,10 +111,45 @@ mmsw_{Variety}.o seg{OSffx} ¶ poolmrg{OSffx} ¶ message{OSffx} - {MPWCommands96}PPCLink ¶ - -o {Targ} ¶ - -xm l -sym on ¶ - {Deps} "{SharedLibraries96}InterfaceLib" + +mmsw_CI.o Ä # .dep.accum + {MPWCommands97}PPCLink1.5 ¶ + -o {Targ} ¶ + {BB_OPTR_Dbg} ¶ + {BB_OPT_CONTROL} {BB_OPT_SOURCE} {BB_OPT_OBJECT} ¶ + {Deps} + +mmsw_HE.o Ä # .dep.accum + {MPWCommands97}PPCLink1.5 ¶ + -o {Targ} ¶ + {BB_OPTR_} ¶ + {BB_OPT_CONTROL} {BB_OPT_SOURCE} {BB_OPT_OBJECT} ¶ + {Deps} + + +## .obsolete.zz: In trunk.11 this makefile was changed radically, but +## could not be tested because Mac Release ScriptWorks was broken. +## When SW is mended, it might be nice to test and compare the new and +## old builds of the MPS. +## It is easy to make the old HE build: just use the following "ZZ" +## pseudo-variety, which uses the old compiler, linker, and +## command-line options to build the HE variety. +## To build it: BuildProgram -d Variety=ZZ mmsw_ZZ.o +## richardk 1998-05-28 +.c.ZZ.o Ä .c + {MPWCommands96}MrC1.0 ¶ + -o {TargDir}{Default}.c.ZZ.o ¶ + -d CONFIG_VAR_HE -d CONFIG_PROD_EPCORE ¶ + -ansi strict -proto strict -typecheck strict -w error ¶ + -sym full ¶ + -i "{CIncludes96}" ¶ + {DepDir}{Default}.c +mmsw_ZZ.o Ä # .dep.accum + {MPWCommands96}PPCLink ¶ + -o {Targ} ¶ + -xm l -sym on ¶ + {Deps} "{SharedLibraries96}InterfaceLib" + cleanall Ä Delete Å.o