mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-25 09:30:50 +00:00
318 lines
8.9 KiB
Plaintext
318 lines
8.9 KiB
Plaintext
#
|
|
# File: Build
|
|
#
|
|
# Contains: The main build script for building Universal ROMs.
|
|
#
|
|
# Copyright: © 1989-1993 by Apple Computer, Inc., all rights reserved.
|
|
#
|
|
# Change History (most recent first):
|
|
#
|
|
# <SM3> 9/21/93 kc Remove -symbols option. It is now turned on by default in the
|
|
# various makefiles.
|
|
# <SM2> 3/31/93 kc Update -Symbols option and move makeout file into the new text
|
|
# folder.
|
|
# <1> 2/21/93 kc first checked in
|
|
# <SM43> 2/11/93 CSS Rollin build script support for DBlite
|
|
# <SM42> 12/8/92 RC Added Build RISC feature (similar to the way Build LC930 works)
|
|
# <SM41> 12/2/92 kc Update AOpts and MOpts. Moved the line that sets the shell
|
|
# variable "Commands" into the makefiles, so that the output of
|
|
# make can be executed indipendently from the build script.
|
|
# <SM40> 11/23/92 kc Fix -p and add -ram option.
|
|
# <SM39> 11/23/92 kc Rewrite for new makefiles.
|
|
|
|
#
|
|
# Setup our aliases, variables, exports and defaults.
|
|
#
|
|
Set StartTime `Date -n`
|
|
|
|
Set Exit 0
|
|
|
|
UnSet Targets EchoCmds Quiet Progress BuildSet Overrides
|
|
|
|
Set Usage "∂
|
|
/——————————————————————————————————————————————————————————————————————————\∂n∂
|
|
| usage: Build buildName… [targets…] [options…] |∂n∂
|
|
| |∂n∂
|
|
| buildNames: ROM 68k Universal ROM |∂n∂
|
|
| RISC RISC Universal ROM |∂n∂
|
|
| LC930 One meg rom for LC930 |∂n∂
|
|
| dbLite One meg rom for dbLite |∂n∂
|
|
| |∂n∂
|
|
| options: -ao <options> Assembler options |∂n∂
|
|
| -co <options> C compiler options |∂n∂
|
|
| -po <options> Pascal Compiler Options |∂n∂
|
|
| -lo <options> Linker Options |∂n∂
|
|
| -mo <options> Make Options |∂n∂
|
|
| -d <equates> Define (or override) equates |∂n∂
|
|
| -e Everything is forced to be rebuilt |∂n∂
|
|
| -echo Echo Build Commands |∂n∂
|
|
| -help Print this message |∂n∂
|
|
| -listing Generating assembly listings |∂n∂
|
|
| -p Display build progress information |∂n∂
|
|
| -q Do a quiet build (no progress info.) |∂n∂
|
|
| -ram Build an image for Romulator |∂n∂
|
|
| -src <dir> Use sources in specified directory |∂n∂
|
|
| -novectorize Inhibit vectorization |∂n∂
|
|
| -warnings <off | on> Turn warning off or on. |∂n∂
|
|
\——————————————————————————————————————————————————————————————————————————/"
|
|
|
|
|
|
#
|
|
# If we have no parameters, run commando (if we haven't allready).
|
|
#
|
|
|
|
|
|
If !{#}
|
|
If {DoCommando} || {BackgroundShell}
|
|
Build -help
|
|
Exit 0
|
|
End
|
|
Set DoCommando True
|
|
Export DoCommando
|
|
Build…
|
|
Exit
|
|
End
|
|
|
|
|
|
#
|
|
# Don't use dialogs if we didn't use commando.
|
|
#
|
|
If !{DoCommando}
|
|
Alias Alert 'Echo > Dev:StdErr'
|
|
End
|
|
|
|
#
|
|
# Loop thru and parse our parameters.
|
|
#
|
|
Loop
|
|
If !{#} # Done?
|
|
If !"{BuildSet}"
|
|
Alert "You must specify at least one build name or target"
|
|
Exit 0
|
|
End
|
|
Break
|
|
End
|
|
If "{1}" =~ /"ROM"/ # Build universal ROM?
|
|
Set BuildSet "{BuildSet} {1}"
|
|
Shift; Continue
|
|
End
|
|
If "{1}" =~ /"RISC"/ # Build RISC?
|
|
Set BuildSet "{BuildSet} {1}"
|
|
Shift; Continue
|
|
End
|
|
If "{1}" =~ /"LC930"/ # Build LC930?
|
|
Set BuildSet "{BuildSet} {1}"
|
|
Shift; Continue
|
|
End
|
|
If "{1}" =~ /"dbLite"/ # Build LC930?
|
|
Set BuildSet "{BuildSet} {1}"
|
|
Shift; Continue
|
|
End
|
|
If "{1}" !~ /-≈/ # Target?
|
|
Set Targets "{Targets} {1}"
|
|
Shift; Continue
|
|
End
|
|
If "{1}" =~ /"-ao"/ # AOpts
|
|
If {#} < 2
|
|
Alert "You must specify <options> with the “-ao” option."
|
|
Exit 1
|
|
End
|
|
Set AOpts "{AOpts} {2}"
|
|
Shift 2; Continue
|
|
End
|
|
If "{1}" =~ /"-co"/ # COpts
|
|
If {#} < 2
|
|
Alert "You must specify <options> with the “-co” option."
|
|
Exit 1
|
|
End
|
|
Set COpts "{COpts} {2}"
|
|
Shift 2; Continue
|
|
End
|
|
If "{1}" =~ /"-po"/ # POpts
|
|
If {#} < 2
|
|
Alert "You must specify <options> with the “-po” option."
|
|
Exit 1
|
|
End
|
|
Set POpts "{POpts} {2}"
|
|
Shift 2; Continue
|
|
End
|
|
If "{1}" =~ /"-lo"/ # LOpts
|
|
If {#} < 2
|
|
Alert "You must specify <options> with the “-lo” option."
|
|
Exit 1
|
|
End
|
|
Set LOpts "{LOpts} {2}"
|
|
Shift 2; Continue
|
|
End
|
|
If "{1}" =~ /"-mo"/ # MOpts
|
|
If {#} < 2
|
|
Alert "You must specify <options> with the “-mo” option."
|
|
Exit 1
|
|
End
|
|
Set MOpts "{MOpts} {2}"
|
|
Shift 2; Continue
|
|
End
|
|
If "{1}" =~ /"-d"/ # Defines
|
|
If {#} < 2
|
|
Alert "You must specify <equates> with the “-d” option."
|
|
Exit 1
|
|
End
|
|
Set Overrides "{Overrides} {2}"
|
|
Shift 2; Continue
|
|
End
|
|
If "{1}" =~ /"-e"/ # Build everything
|
|
Set MOpts "{MOpts} {1}"
|
|
Shift; Continue
|
|
End
|
|
If "{1}" =~ /"-echo"/ # Echo commands
|
|
Set EchoCmds "True"
|
|
Shift; Continue
|
|
End
|
|
If "{1}" =~ /"-h"≈/ # Help
|
|
Echo "{Usage}"
|
|
Exit 0;
|
|
End
|
|
If "{1}" =~ /"-listing"/ # Listing
|
|
Set AOpts "{AOpts} -l"
|
|
Shift; Continue
|
|
End
|
|
If "{1}" =~ /"-p"/ # Progress
|
|
Set Progress "True"
|
|
Shift; Continue
|
|
End
|
|
If "{1}" =~ /"-q"/ # Quiet
|
|
Set Quiet "True"
|
|
Shift; Continue
|
|
End
|
|
If "{1}" =~ /"-ram"/ # Romulator
|
|
Set Overrides "{Overrides} forRomulator=TRUE"
|
|
Shift; Continue
|
|
End
|
|
If "{1}" =~ /"-src"/ # Directory
|
|
If {#} < 2
|
|
Alert "You must specify <dir> with the “-src” option."
|
|
Exit 1
|
|
End
|
|
Set Sources "{2}"
|
|
Shift 2; Continue
|
|
End
|
|
If "{1}" =~ /"-novectorize"/ # Inhibit vectorization
|
|
Set VOpts "{VOpts} -nopatch"
|
|
Set Overrides "{Overrides} nonVectorizedRom=TRUE"
|
|
Shift; Continue
|
|
End
|
|
If "{1}" =~ /"-warnings"/ # Warnings
|
|
If {#} < 2
|
|
Alert "You must specify <level> with the “-warnings” option."
|
|
Exit 1
|
|
End
|
|
If "{2}" =~ /off/
|
|
Set AOpts "{AOpts} -w -wb"
|
|
Set COpts "{COpts} -warnings off"
|
|
Set LOpts "{LOpts} -w -d"
|
|
Set LibOpts "{LibOpts} -w -d"
|
|
Set VOpts "{VOpts} -w"
|
|
Else
|
|
Set COpts "{COpts} -warnings on"
|
|
|
|
End
|
|
Shift 2; Continue
|
|
Else # Unknown Option
|
|
Alert "Unknown Option ∂"{1}∂"."
|
|
Exit 1
|
|
End
|
|
|
|
End #Loop
|
|
|
|
#
|
|
# Make sure that we FeatureSet as the first target
|
|
#
|
|
If "{Targets}"
|
|
Set Targets "FeatureSet {Targets}"
|
|
End
|
|
|
|
#
|
|
# Set the make options
|
|
#
|
|
If {Progress}
|
|
Set MOpts "{MOpts} -h 'Echo Creating ∂"∂{Targ∂}∂"'"
|
|
End
|
|
|
|
Set MOpts "{MOpts} -d AOpts=∂"{AOpts}∂" ∂
|
|
-d COpts=∂"{COpts}∂" ∂
|
|
-d POpts=∂"{POpts}∂" ∂
|
|
-d LOpts=∂"{LOpts}∂" ∂
|
|
-d LibOpts=∂"{LibOpts}∂" ∂
|
|
-d VOpts=∂"{VOpts}∂" ∂
|
|
-d Sources=∂"{Sources}∂" ∂
|
|
-d Overrides=∂"{Overrides}∂""
|
|
|
|
#
|
|
# For each build
|
|
#
|
|
If !{Quiet}
|
|
Echo "Start Time: `Date -t -c {StartTime}`"
|
|
End
|
|
|
|
For Build in {BuildSet}
|
|
|
|
If "{Build}" =~ /ROM/ # locate the makefile
|
|
|
|
Set MakeFile "{Sources}Make:Universal.Make"
|
|
|
|
Set MakeOut "{Sources}BuildResults:Universal:Text:MakeOut"
|
|
|
|
Else If "{Build}" =~ /RISC/
|
|
|
|
Set MakeFile "{Sources}Make:RISC.Make"
|
|
|
|
Set MakeOut "{Sources}BuildResults:RISC:Text:MakeOut"
|
|
|
|
Else If "{Build}" =~ /LC930/
|
|
|
|
Set MakeFile "{Sources}Make:LC930.Make"
|
|
|
|
Set MakeOut "{Sources}BuildResults:LC930:Text:MakeOut"
|
|
|
|
Else If "{Build}" =~ /dbLite/
|
|
|
|
Set MakeFile "{Sources}Make:dbLite.Make"
|
|
|
|
Set MakeOut "{Sources}BuildResults:dbLite:Text:MakeOut"
|
|
|
|
Else
|
|
Alert "Error: Unknown build “{Build}”"
|
|
Exit 1
|
|
End
|
|
|
|
"{Sources}Tools:Make" -w {MOpts} {Targets} -f "{MakeFile}" > "{MakeOut}" || Exit
|
|
|
|
If {EchoCmds}
|
|
Set Echo 1
|
|
End
|
|
|
|
Execute "{MakeOut}"
|
|
|
|
Set Echo 0
|
|
|
|
End # For each build
|
|
|
|
#
|
|
# Calculate the elapsed time
|
|
#
|
|
If !{Quiet}
|
|
|
|
Set StopTime `Date -n`
|
|
|
|
Set TotalTime `Evaluate {StopTime}-{StartTime}`
|
|
|
|
Echo "Stop Time: `Date -t -c {StopTime}`"
|
|
|
|
Echo "Total Time: "`Date -t -c {TotalTime} | StreamEdit -e "/≈/ ∂
|
|
Replace /•12/ ∂" 00∂"; Replace /[AP]M/ ∂"∂" "`
|
|
End
|
|
|
|
Exit 0
|
|
#
|
|
# End
|
|
# |