sys7.1-doc-wip/Make/MainCode.Make
2019-07-27 22:37:48 +08:00

189 lines
7.3 KiB
Makefile

#
# File MainCode.Make
#
# Contains: Makefile for main code image.
#
# Written by: Kurt Clark, Chas Spillar, and Tim Nichols
#
# Copyright: © 1992-1993 by Apple Computer, Inc., all rights reserved.
#
# Change History (most recent first):
#
# <SM12> 11/11/93 fau <aek> Added the Expansion Bus Manager to the libraries.
# <SM11> 7/20/93 SAM Removed ProcessMgrSegmentTweaks.a. It was redundant.
# <10> 4/8/93 IH Re-introduce Display Manager.
# <SM9> 4/7/93 CSS Don't echo {StdEquAOpts} in lines to build standardequ.d.
# <SM8> 4/4/93 RC Comment out DisplayMgr (I believe that it is inclued twice (once
# in ToolBox.lib and once directly into MainCode)
# <SM7> 4/1/93 kc Re-enable the Display Manager.
# <SM6> 4/1/93 kc Back out Ian's change.
# <SM5> 3/31/93 kc Change the path of the VectorLog file to use TextDir and change
# the -map parameter for the Linker to -l.
# <SM4> 3/31/93 IH Add Display Manager objects.
# <SM3> 3/16/93 SAM Added TrapsPrivate.a to the list of dependencies for
# StandardEqu.a. Sorry about that full build (hee hee).
# <SM2> 2/22/93 RC Turned off Warnings
# <SM8> 12/8/92 RC Included GoNativeROMLib.o to the MainCodeLibs
# <SM7> 12/2/92 kc Change Vectorization stuff to use new Macros.
# <SM6> 11/23/92 kc Change VOpts to StdVOpts.
# <SM5> 11/14/92 kc Change link option used to name segment from -sg to -sn.
# <SM4> 11/12/92 kc Remove Sadism.lib. Change Link command to write the link map to
# the data fork of the resoruce file.
# <SM3> 11/11/92 RB Added rules for ROM_EM. Changed the output of the linking of
# ROM, it was erasing Maincode.rsrc
OSDir = {Sources}OS:
ToolBoxDir = {Sources}ToolBox:
PatchDir = {Sources}Patches:
ColorQDDir = {Sources}QuickDraw:
IfSrcDir = {Sources}Libs:InterfaceSrcs:
LibraryDir = {Sources}Libs:Libraries:
#include {OSDir}OS.make
#include {ToolBoxDir}Toolbox.make
#include {ColorQDDir}ColorQD.make
#include {IfSrcDir}Interface.make
MainCodeLibs =
"{LibDir}StartMgr.lib"
"{ObjDir}VectorTableInit.a.o"
"{LibDir}IOPrimitives.lib"
"{LibDir}MMU.lib"
"{LibDir}OS.lib"
"{MiscDir}GoNativeROMLib.o"
"{LibDir}SlotMgr.lib"
"{LibDir}SCSI.lib"
"{LibDir}SCSI4pt3.lib"
"{LibDir}HFS.lib"
"{LibDir}PPC.lib"
"{LibDir}ADBMgr.lib"
"{LibDir}TimeMgr.lib"
"{LibDir}Toolbox.lib"
"{LibDir}CommToolboxPatch.Lib"
"{LibDir}MemoryMgr.lib"
"{LibDir}AliasMgr.lib"
"{LibDir}ComponentMgr.lib"
"{LibDir}DataAccessMgr.lib"
"{LibDir}EditionMgr.lib"
"{LibDir}ExpansionBusMgr.lib"
"{LibDir}HelpMgr.lib"
"{LibDir}SoundMgr.lib"
"{LibDir}Gestalt.lib"
"{LibDir}IconUtils.lib"
"{LibDir}NotificationMgr.lib"
"{LibDir}PictUtilities.lib"
"{LibDir}ToolboxEventMgr.lib"
"{LibDir}ControlMgr.lib"
"{LibDir}DisplayMgr.lib"
"{LibDir}WindowMgr.lib"
"{LibDir}MenuMgr.lib"
# ∂
# DispatchHelper and DialogMgr.lib need to be colocated ∂
# ∂
"{ObjDir}DispatchHelper.a.o"
"{LibDir}DialogMgr.lib"
# ∂
# ResourceMgr.lib and ScriptMgr.lib need to be colocated ∂
# ∂
"{LibDir}ResourceMgr.lib"
"{LibDir}ScriptMgr.lib"
"{LibDir}CQD.lib"
"{LibDir}TextServicesMgr.lib"
"{LibDir}FontMgr.lib"
"{LibDir}RomInterface.Lib"
"{LibDir}RomStandardLib.lib"
"{LibDir}StartTest.lib"
"{LibDir}VideoDriver.lib"
"{ObjDir}WallyWorld.a.o"
"{ObjDir}FPEmulation.a.o"
"{LibDir}Beep.lib"
# ∂
# Keep DispTable at end ∂
# ∂
"{ObjDir}DispTable.a.o"
#
# end of ROM
#
#
# Main Code Image Resource
#
"{RsrcDir}MainCode.Rsrc" ƒ "{LibDir}MainCode.Lib"
Delete "{Targ}" ∑ Dev:Null || Set Status 0
Link {StdLOpts} {StdAlign} -rt ZROM=128 -br 020 -sg zrom -l -m MYROM ∂
"{LibDir}MainCode.Lib" -o "{Targ}" > "{TextDir}MainCode.map"
#
# Vectorization
#
"{LibDir}MainCode.Lib" ƒ {MainCodeLibs} "{ObjDir}VectorTablePatch.a.o"
"{ToolDir}Vectorize" -w -v "{ObjDir}VectorTablePatch.a.o" -log "{TextDir}MainCode.Sym" {StdVOpts} -o "{Targ}" {MainCodeLibs}
"{ObjDir}VectorTablePatch.a.o" ƒ "{Sources}Make:VectorTable.a" "{IntAIncludes}VectorTablePatch.a"
Asm -case on {StdAOpts} -o "{Targ}" "{IntAIncludes}VectorTablePatch.a" -d &VectorTable="∂'{Sources}Make:VectorTable.a∂'" -d ROMBASE={RomBase}
"{ObjDir}VectorTableInit.a.o" ƒ "{Sources}Make:VectorTable.a" "{IntAIncludes}VectorTableInit.a"
Asm -case on {StdAOpts} -o "{Targ}" "{IntAIncludes}VectorTableInit.a" -d &VectorTable="∂'{Sources}Make:VectorTable.a∂'" -d ROMBASE={RomBase}
#
# Patches
#
"{ObjDir}MiscPatches.a.o" ƒ "{ObjDir}StandardEqu.d"
"{IntAIncludes}ResourceMgrPriv.a"
"{IntAIncludes}BTreeEqu.a"
"{IntAIncludes}MMUEqu.a"
"{IntAIncludes}BootEqu.a"
"{IntAIncludes}HardwarePrivateEqu.a"
"{IntAIncludes}FileMgrPrivate.a"
"{IntAIncludes}ScriptPriv.a"
"{AIncludes}GestaltEqu.a"
"{IntAIncludes}GestaltPrivateEqu.a"
"{IntAIncludes}EditionsPrivate.a"
"{IntAIncludes}UniversalEqu.a"
"{AIncludes}DatabaseAccess.a"
"{PatchDir}MiscPatches.a"
Asm {StdAOpts} -o "{Targ}" "{PatchDir}MiscPatches.a"
"{LibDir}RomStandardLib.lib" ƒ "{LibraryDir}StandardLib.o"
"{IfSrcDir}DuplicateModules.rom"
Lib {StdLibOpts} -o "{Targ}" "{LibraryDir}StandardLib.o" -df "{IfSrcDir}DuplicateModules.rom"
"{LibDir}RomInterface.Lib" ƒ "{IfObjDir}Interface.o"
"{IfSrcDir}DuplicateModules.rom"
Lib {StdLibOpts} -o "{Targ}" "{IfObjDir}Interface.o" -df "{IfSrcDir}DuplicateModules.rom"
# Precompiled headers are not free.
#
# There is a double define problem in StandardEqu.d such that
# if we define ROMFastTraps when we build StandardEqu.d, we cannot
# build with any different settings. If ROMFastTraps is set to a
# different value in a later build we puke (ie we have to do a full build).
#
# It would be nice to be able to avoid full builds although the
# Traps.a files will use the stale setting of ROMFastTraps
#
"{ObjDir}StandardEqu.d" ƒ "{AIncludes}FSEqu.a"
"{AIncludes}FSPrivate.a"
"{AIncludes}Private.a"
"{AIncludes}QuickDraw.a"
"{AIncludes}SANEMacs.a"
"{AIncludes}Script.a"
"{AIncludes}SysEqu.a"
"{IntAIncludes}SysPrivateEqu.a"
"{AIncludes}SysErr.a"
"{AIncludes}ToolUtils.a"
"{AIncludes}Traps.a"
"{AIncludes}Timer.a"
"{IntAIncludes}InternalOnlyEqu.a"
"{IntAIncludes}TrapsPrivate.a"
"{IntAIncludes}StandardEqu.a"
"{AIncludes}Power.a"
Asm {StdEquAOpts} -o Dev:Null "{IntAIncludes}StandardEqu.a" -i "{IntAIncludes}"
Move -y StandardEqu.d "{Targ}"