mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2024-12-22 08:30:05 +00:00
318 lines
8.3 KiB
Plaintext
318 lines
8.3 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
|
|
|
|
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
|
|
# |