boot3/Make/Build
Elliot Nunn 5b0f0cc134 Bring in CubeE sources
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.
2017-12-26 10:02:57 +08:00

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
#