# # 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): # # 9/21/93 kc Remove -symbols option. It is now turned on by default in the # various makefiles. # 3/31/93 kc Update -Symbols option and move makeout file into the new text # folder. # <1> 2/21/93 kc first checked in # 2/11/93 CSS Rollin build script support for DBlite # 12/8/92 RC Added Build RISC feature (similar to the way Build LC930 works) # 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. # 11/23/92 kc Fix -p and add -ram option. # 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 Assembler options |∂n∂ | -co C compiler options |∂n∂ | -po Pascal Compiler Options |∂n∂ | -lo Linker Options |∂n∂ | -mo Make Options |∂n∂ | -d 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 Use sources in specified directory |∂n∂ | -novectorize Inhibit vectorization |∂n∂ | -warnings 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 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 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 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 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 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 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 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 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 #