supermario/base/SuperMarioProj.1994-02-09/Make/Universal.make
2019-06-29 23:17:50 +08:00

379 lines
15 KiB
Makefile

#
# File: Universal.make
#
# Contains: Makefile for the SuperMario ROM.
#
# Written by: Kurt Clark
#
# Copyright: © 1992-1994 by Apple Computer, Inc., all rights reserved.
#
# Change History (most recent first):
#
# <SM39> 2/1/94 chp Simplify the build command for the “Clean” target: wildcard
# substitution is sloppy if there is no match and seems to result
# in :Obj:Interface: getting deleted.
# <SM38> 12/2/93 rab Changed ROMVersion to $0006…
# <SM37> 11/19/93 chp Add BuildResults Text directories to the Delete list in the
# “Clean” target.
# <SM36> 11/9/93 rab Changed ROMVersion to $0005 for the new Universal release.
# <SM35> 11/8/93 SAM Enabled hasROMGibbly for the "universal" build.
# <SM34> 9/25/93 SAM Removed hasHMC (PDM's memory controller) from the "universal"
# ROM feature list.
# <SM33> 9/22/93 kc Turn on symbols.
# <SM32> 9/2/93 KH change hasSCSIDiskMode to hasSCSIDiskModeFeature
# <SM31> 7/28/93 kc Turn on figment.
# <SM30> 7/28/93 kc Bump the version to $04 and add -mf option to RomLayout.
# <SM29> 7/21/93 RC back out <sm 28>
# <SM27> 7/1/93 BT Add hasCacheTypeCPU for Figment. This turns on cache flushing at
# the appropriate points in the new memory manager.
# <SM26> 6/28/93 PN Fix comments
# <SM25> 6/28/93 PN Add feature hasMACE to the list
# <SM24> 6/24/93 CSS Update to ROMVersion $03.
# <SM23> 6/14/93 kc Roll in Ludwig.
# <SM22> 6/1/93 CSS Update to ROMVersion $02.
# <SM21> 5/30/93 SAM Moved ROM_EM to Tidbits.
# <SM20> 5/21/93 CSS Add international features: hasDoubleByte, Script_Char_Extra,
# hasPenFraction, hasFullKerning, hasGlyphState.
# <SM19> 5/18/93 CSS Update to ROMVersion $01.
# <SM18> 5/5/93 CSS Update ROMVersion to $00. The last build was $AF (or Alpha 15).
# Rather than do $B0 (or beta 0), since we are not following a
# normal Alpha/Beta/GM schedule, I will call this release $00 and
# the subsequent releases $01,... This to avoid implying that
# SuperMario is actually beta.
# <SM17> 4/20/93 CSS Update version to a15. Next version update we will call $20 as
# this one is called $af and we aren't actually in a alpha/beta
# cycle with the Universal ROM.
# <SM16> 4/6/93 CSS Changed release version to a14.
# <SM15> 4/1/93 kc Add {ResourceDir}RomResources.r to RomLayout.Rsrc dependency.
# <SM14> 4/1/93 kc Delete RomResources.rsrc from dependency list.
# <SM13> 4/1/93 kc Add dependency to RomLayout.Rsrc
# <SM12> 3/31/93 kc Add TextDir and StdCPOpts.
# <11> 3/31/93 IH Set up standard equates define for fasttraps
# <SM10> 3/19/93 CSS Remove Sadism.rsrc from the build as this stuff is junk.
# <SM9> 3/11/93 PN Put Sane.rsrc back for Pack 7
# <SM8> 3/8/93 PN From the conversation with Jon Okada. We should use InSane for
# NonFPU pack 4 and 5 from now on.
# <SM7> 3/5/93 PN Stop and exit whenever ROMLayout fails
# <SM6> 2/28/93 chp Update from Ludwig. <LW6>
# <SM5> 2/23/93 CSS Fix header.
# <SM4> 2/22/93 kc Fix misspelling of ResourceDir.
# <SM3> 2/22/93 CSS Correct spelling of Universal.make in heading.
# <SM2> 2/22/93 CSS Correct spelling of Resource (from Resoruce).
# <SM30> 2/15/93 kc Add AppleTalk.ROM.RSRC.
# <SM29> 2/10/93 RB Changed release version to a13.
# <SM28> 2/2/93 GMR Added hasSwim3 feature.
# <LW6> 12/29/92 chp Removed SerialIOP.rsrc from the build. All traditional serial
# resources are now found in Serial.rsrc.
# <SM27> 12/29/92 RB Added the feature hasSysSevenResources, which should have been
# set here last week.
# <SM26> 12/29/92 HY Remove hasNewSoundMgr feature flag. Reverting back to 7.1 sound mgr.
# <SM25> 12/23/92 kc Remove DSPHardware from the build.
# <SM24> 12/18/92 RB Added the backlight driver and its make file.
# <SM23> 12/17/92 RB Added some of the new features. Added the SuperMario sub-release
# version. LC930 is the first release, Cyclone is 2, etc.
# <SM22> 12/15/92 CSS Add dictionary manager to the project.
# <SM21> 12/11/92 chp Reinstated resource names. (Woof, woof.)
# <SM20> 12/11/92 chp By popular demand, Macsbug symbols are reinstated.
# <SM19> 12/11/92 chp Changed C and Pascal standard options to suppress MacsBug
# symbols and to generate 68020 code.
# <SM18> 12/11/92 kc Remove the post build beeps.
# <SM17> 12/10/92 FU Added DSPHardware.c to the list of resource files
# <SM16> 12/9/92 DH Added new I2C component.
# <SM15> 12-04-92 jmp Added VSCDeclData to the list of things to make.
# <SM14> 12/3/92 RB Added the feature has2MegROMOrMore.
# <SM13> 12/2/92 kc Add RomBase Variable. Set ROMRelease to 1.0A8. Set Commands
# variable to {ToolDir}. Add Clean Target that deletes all of the
# objects, libraries and resources.
# <SM12> 12/1/92 ejb add RTDrvr.rsrc dependency to resource files
# <SM11> 11/30/92 EH Add hasPratt for the Blackbird memory controller chip.
# <SM10> 11/30/92 kc Remove -d forRomulator.
# <SM9> 11/29/92 PW Removed the COUSIN_ITT feature (hasAsyncSCSI is all we need).
# <SM8> 11/25/92 chp Override the Make tool default dependencies for .a.o, .c.o, and
# .p.o files so that {StdXOpts} are passed to the assembler or
# compiler when applying default rules.
# <SM7> 11/24/92 RB Use the feature hasROM_EM so it can be easily taken out.
# <SM6> 11/23/92 kc Update to work with the new build script.
# <SM5> 11/14/92 kc Change link option used to name segment from -sg to -sn.
# <SM4> 11/12/92 kc Add variables used by the dsp tools.
# <SM4> 11/12/92 CSS Fix problem with Tidbits directory and removed StandardEqu.make
# as this is in the MainCode.make file. Also, fix problems with
# build of ROM_EM.rsrc.
# <SM3> 11/11/92 RB Added the feature hasNewSoundMgr and hasDSP, hasSCSIDiskMode,
# hasAsyncSCSI, hasAppleTalkInROM, hasNewAge, hasVideoIn,
# COUSIN_ITT Added standard RIncludes and ROM_EM.
# <SM2> 11/3/92 mal (kc) Add MAOpts and MCOpts.
#
BuildDir = {Sources}BuildResults:Universal:
ImageDir = {BuildDir}Image:
RsrcDir = {BuildDir}Rsrc:
LibDir = {BuildDir}Lib:
ObjDir = {BuildDir}Obj:
TextDir = {BuildDir}Text:
IfObjDir = {ObjDir}Interface:
MakeDir = {Sources}Make:
ResourceDir = {Sources}Resources:
DeclDir = {Sources}DeclData:
ToolDir = {Sources}Tools:
ToolSrcDir = {Sources}Tools:ToolSource:
MiscDir = {Sources}Misc:
TidbitsDir = {Sources}Tidbits:
DriverDir = {Sources}Drivers:
AIncludes = {Sources}Interfaces:AIncludes:
CIncludes = {Sources}Interfaces:CIncludes:
PInterfaces = {Sources}Interfaces:PInterfaces:
RIncludes = {Sources}Interfaces:RIncludes:
IntAIncludes = {Sources}Internal:Asm:
IntCIncludes = {Sources}Internal:C:
IntPInterfaces = {Sources}Internal:Pascal:
IntRIncludes = {Sources}Internal:Rez:
Libraries = {Sources}Libs:Libraries:
CLibraries = {Sources}Libs:CLibraries:
PLibraries = {Sources}Libs:PLibraries:
ROMVersion = $0006
MAOpts = -d TRUE=1 -d FALSE=0 -d Alignment=16 -d CPU=40 -d ROMRelease={ROMVersion} -wb -d SubRelease=2
MCOpts = -d TRUE=1 -d FALSE=0 -d Alignment=16 -d CPU=40 -d ROMRelease={ROMVersion} -b3 ∂
-mbg full -mc68020
MPOpts = -mbg full -mc68020
RomBase = $40800000
Features = hasROMGibbly ∂
hasCacheTypeCPU ∂
hasSCSIDiskModeFeature ∂
hasSysSevenResources ∂
hasVMinROM ∂
hasYMCA ∂
hasCPUIDRegister ∂
has2MegROMOrMore ∂
hasAppleTalkInROM ∂
hasNewAge ∂
hasVideoIn ∂
hasMace ∂
hasAsyncSCSI ∂
hasDSP ∂
BadBlockSparingEnabled ∂
CubeE ∂
IopADB ∂
OssADB ∂
PwrMgrADB ∂
SystemSevenOrLater ∂
SystemSixOrLater ∂
ViaADB ∂
forADBKeyboards ∂
forAppleTalk20 ∂
forLocalizability ∂
has040MMU ∂
hasADBKeyLayouts ∂
hasASC ∂
hasAliasMgr ∂
hasApple2Fonts ∂
hasAppleEventMgr ∂
hasBalloonHelp ∂
hasBattery ∂
hasCommToolbox ∂
hasCQD ∂
hasDAFB ∂
hasDJMEMC ∂
hasDataAccessMgr ∂
hasDoubleByte ∂
hasEDisk ∂
hasEclipseVIA2 ∂
hasEditionMgr ∂
hasEgret ∂
hasExtendedCharacterSet ∂
hasFMC ∂
hasFullKerning ∂
hasGDU ∂
hasGlyphState ∂
hasIdle ∂
hasIopScc ∂
hasIopSwim ∂
hasJaws ∂
hasLCDScreen ∂
hasMDU ∂
hasMMU ∂
hasMSC ∂
hasMac2VIA2 ∂
hasNetBoot ∂
hasNewHeapMgr ∂
hasNiagra ∂
hasOrwell ∂
hasOss ∂
hasPenFraction ∂
hasPratt ∂
hasProtectedPRAM ∂
hasSCSI96 ∂
hasSWIM2 ∂
hasSwim3 ∂
hasSlotMgr ∂
hasSonora ∂
hasSplineFonts ∂
hasVDAC ∂
hasVIAClock ∂
hasVISA2 ∂
hasVISADecoder ∂
hasWaimeaVIA2 ∂
isUniversal ∂
hasPSC ∂
hasPwrControls ∂
hasPwrMgrClock ∂
hasRBV ∂
hasSlotMgr ∂
hasSplineFonts ∂
hasVIAClock ∂
hasWaimeaVIA2 ∂
NewBuildSystem ∂
isUniversal ∂
onHafMac ∂
onMac32 ∂
onNuMac ∂
Script_Char_Extra ∂
ForROM
#
# If you add a file to "ResourceFiles", you MUST add 'rrsc' entries to RomResources.r
# to get the rsrc's pulled out of your resource and into the ROM image.
# See "{ImageDir}RomMondo" & "{RsrcDir}RomResources.rsrc" targets.
#
ResourceFiles = "{MiscDir}AppleTalk.ROM.RSRC"
"{RsrcDir}AppleEventMgr.rsrc"
"{RsrcDir}ATBoot.RSRC"
"{RsrcDir}Backlight.rsrc"
"{RsrcDir}CQD.rsrc"
"{RsrcDir}ColorPicker.rsrc"
"{RsrcDir}CommToolbox.rsrc"
"{RsrcDir}ControlMgr.rsrc"
"{RsrcDir}DataAccessMgr.rsrc"
"{RsrcDir}DictionaryMgr.rsrc"
"{RsrcDir}DeclData"
"{RsrcDir}EDisk.rsrc"
"{RsrcDir}EditionMgr.rsrc"
"{MiscDir}Ethernet.rsrc"
"{RsrcDir}Gibbly.rsrc"
"{RsrcDir}HelpMgr.rsrc"
"{RsrcDir}InSane.rsrc"
"{RsrcDir}InSaneNFPU.rsrc"
"{RsrcDir}I2CC.rsrc"
"{RsrcDir}I2CT.rsrc"
"{RsrcDir}ListMgr.rsrc"
"{RsrcDir}MACEecfg.rsrc"
"{RsrcDir}MainCode.Rsrc"
"{RsrcDir}MenuMgr.rsrc"
"{RsrcDir}MiscROMRsrcs.rsrc"
"{RsrcDir}NetBoot.rsrc"
"{RsrcDir}NewAge.rsrc"
"{RsrcDir}PPC.rsrc"
"{RsrcDir}PictUtilities.rsrc"
"{RsrcDir}ROMApple2Fonts.rsrc"
"{RsrcDir}ROMFonts.rsrc"
"{RsrcDir}RTDrvr.rsrc"
"{RsrcDir}RTMgr.rsrc"
"{RsrcDir}RTSnd.rsrc"
"{RsrcDir}RTSndIn.rsrc"
"{RsrcDir}RomLayout.Rsrc"
"{RsrcDir}SCCIOP.rsrc"
"{RsrcDir}SWIMIOP.rsrc"
"{RsrcDir}Sane.rsrc"
"{RsrcDir}Serial.rsrc"
"{RsrcDir}SerialDMA.rsrc"
"{RsrcDir}Sony.rsrc"
"{RsrcDir}SoundMgr.rsrc"
"{RsrcDir}StandardFile.rsrc"
"{RsrcDir}StdSndInput.rsrc"
"{RsrcDir}StdSndMidput.rsrc"
"{RsrcDir}StdSndPlayer.rsrc"
"{RsrcDir}StdSndOutput.rsrc"
"{RsrcDir}VDigC.rsrc"
"{RsrcDir}VDigT.rsrc"
"{MiscDir}VM.RSRC"
# "{RsrcDir}VSCDeclData" ∂
"{RsrcDir}WindowMgr.rsrc"
"{RsrcDir}ZoundBlueInputAdaptor.rsrc"
"{RsrcDir}kbd.rsrc"
RomMondo ƒ FeatureSet "{ImageDir}RomMondo"
beep 1300,3,25 0,1,0 1200,3,25 0,1,0 1100,3,25 0,1,0 1000,3,25
"{ImageDir}RomMondo" ƒ {ResourceFiles}
"{ToolDir}ROMLayout" -mf "{RsrcDir}RomLayout.Rsrc" -o "{Targ}" -log "{ImageDir}RomInfo" || Exit {Status}
LinkRomImage ƒ # target for partial builds
"{ToolDir}ROMLayout" -mf "{RsrcDir}RomLayout.Rsrc" -o "{ImageDir}RomMondo" -log "{ImageDir}RomInfo"
FeatureSet ƒ
Set FeatureSet "`{MakeDir}FeatureList "{Features}" "{Overrides}" `" ; Export FeatureSet
Set Commands "{ToolDir},{Commands}"
Set ObjDir "{ObjDir}" ; Export ObjDir
Set RsrcDir "{RsrcDir}" ; Export RsrcDir
Set TextDir "{TextDir}" ; Export TextDir
Set MiscDir "{MiscDir}" ; Export MiscDir
Set TidbitsDir "{TidbitsDir}" ; Export TidbitsDir
Set ROMBuildTime "`Date -n`" ; Export ROMBuildTime
Set AIncludes "{AIncludes}"
Set CIncludes "{CIncludes}"
Set PInterfaces "{PInterfaces}"
Set RIncludes "{RIncludes}"
Set Libraries "{Libraries}"
Set CLibraries "{CLibraries}"
Set PLibraries "{PLibraries}"
Set StdAOpts "{MAOpts} {FeatureSet} -i {IntAIncludes} {AOpts} -i {ObjDir} -sym on,nolines,notypes,novars"
Set StdCOpts "{MCOpts} {FeatureSet} -i {IntCIncludes} {COpts} -r -sym on,nolines,notypes,novars"
Set StdCPOpts "{MCPOpts} {FeatureSet} -i {IntCIncludes} {COpts}"
Set StdPOpts "{MPOpts} {FeatureSet} -i {IntPInterfaces} {POpts} -r"
Set StdROpts "{FeatureSet} {ROpts} -i {IntRIncludes} -i {RIncludes}"
Set DSP3210_Temp "{ObjDir}" ; Export DSP3210_Temp
Set DSP3210_Tools "{ToolDir}" ; Export DSP3210_Tools
Set DSP3210_Aux "{ToolDir}" ; Export DSP3210_Aux
Set DSP3210_Includes "{ToolDir}" ; Export DSP3210_Includes
Set DSP3210_Libraries "{ToolDir}" ; Export DSP3210_Libraries
Set DSP3210_AsmPP d32cpp ; Export DSP3210_AsmPP
Set StdLOpts "{LOpts} -mf -t rsrc -c RSED -sg Main"
Set StdLibOpts "{LibOpts} -mf -sym on,nolines,notypes,novars"
Set StdAlign "{Align} -ac 16 -ad 16"
Set StdVOpts "{VOpts}"
Set StdEquAOpts "`{MakeDir}CreateStdEquAOptions "{FeatureSet}"`" ; Export StdEquAOpts
"{RsrcDir}RomLayout.Rsrc" ƒ "{MakeDir}UniversalLayout.r" "{ResourceDir}RomResources.r" "{IntRIncludes}RomTypes.r"
Rez {StdROpts} "{MakeDir}UniversalLayout.r" -i "{ResourceDir}" -o "{targ}" -d RomBase={RomBase}
Clean ƒ
Delete -i `Files -f -r -o -s "{BuildDir}"` ≥ Dev:Null
# Following are essentially the default rules from the Make tool, modified to use
# {StdAOpts}, {StdCOpts}, and {StdPOpts} as they are defined in this file.
# These options are supersets of the default {AOpts}, {COpts}, and {POpts}.
.a.o ƒ .a
{Asm} {StdAOpts} -o {Targ} {DepDir}{Default}.a
.c.o ƒ .c
{C} {StdCOpts} -o {Targ} {DepDir}{Default}.c
.cp.o ƒ .c
{CPlus} {StdCPOpts} -o {Targ} {DepDir}{Default}.cp
.p.o ƒ .p
{Pascal} {StdPOpts} -o {Targ} {DepDir}{Default}.p
#include {ToolSrcDir}Tools.make
#include {MakeDir}MainCode.make
#include {DeclDir}DeclData.make
#include {DriverDir}Drivers.make
#include {ResourceDir}Resources.make