mirror of
https://github.com/elliotnunn/boot3.git
synced 2025-01-14 06:29:45 +00:00
5b0f0cc134
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included. The Tools directory, containing mostly junk, is also excluded.
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
|
|
|
|
"{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
|
|
# |