1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
|
@echo off
echo *****************************************************************************
echo *
echo * Copyright (c) 2011, Advanced Micro Devices, Inc.
echo * All rights reserved.
echo *
echo * Redistribution and use in source and binary forms, with or without
echo * modification, are permitted provided that the following conditions are met:
echo * * Redistributions of source code must retain the above copyright
echo * notice, this list of conditions and the following disclaimer.
echo * * Redistributions in binary form must reproduce the above copyright
echo * notice, this list of conditions and the following disclaimer in the
echo * documentation and/or other materials provided with the distribution.
echo * * Neither the name of Advanced Micro Devices, Inc. nor the names of
echo * its contributors may be used to endorse or promote products derived
echo * from this software without specific prior written permission.
echo *
echo * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
echo * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
echo * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
echo * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
echo * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
echo * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
echo * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
echo * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
echo * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
echo * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
echo *
echo * ***************************************************************************
goto Begin
:Documentation
echo off
echo **************************************************************************
echo * Legacy.Bat
echo * This batchfile establishes the build environment for an AGESA(TM)
echo * legacy build.
echo *
echo * Syntax:
echo * Legacy.bat Solution [DevTipPath] [DevKey] [DoxKey] [Release^|Debug] [Internal]
echo * Parameters:
echo * %% 1 Solution name. This is the AMD Platform Solution name that
echo * identifies the delivery package. No default, this
echo * parameter MUST be specified. This parameter MUST
echo * be specified before the DevTip Path parameter.
echo * %% 2 Path to the platform specific build directory. This is
echo * where the options file %%Solution%%Options.c is located,
echo * which contains the platform specific build option settings.
echo * If left blank, the default %%Solution%%Options.c file from
echo * the AGESA\Addendum directory is used.
echo * %% 3 Developer's key - open an interactive MSVS window. This parameter is
echo * optional, but when used it requires the first two parameters.
echo * %% 4 Documentation Key - requests a compilation of the DOxygen
echo * documentation files. key is "DOX". This parameter is
echo * optional, but when used it requires the first two parameters.
echo * %% 5 Build Configuration. There are two choices, "Release" and "Debug".
echo * Debug is the default choice if not specified. This parameter is
echo * optional, but when used it requires the first two parameters.
echo * %% 6 Internal solution file select - choose a internal solution file.This parameter
echo * is optional, but when used it requires the first two parameters.
echo * NOTE: The paths MUST have a trailing '\' character.
echo *
echo * The AGESA build environment requires the following environment
echo * variables MUST be defined for proper operation:
echo * $(AGESA_ROOT) - identifies the directory where the AGESA code
echo * is located. The top most dir; where AGESA.h is located.
echo * This must be the full path, eg D:\myPlatform\AGESA\
echo * **** This var is expected to be set by the caller ****
echo *
echo * $(Solution) - identifies the Platform Solution being targeted
echo * $(AGESA_OptsDir) - identifies the directory where the platform
echo * options and customization files are located.
echo * This must be the full path
echo *
echo * Optional build environment variables
echo *
echo * set AGESA_B1_ADDRESS=0xFFF?????
echo * Sets the B1 image base address in the ROM (otherwise 0xFFFD0000).
echo * set AGESA_B2_ADDRESS=0xFFF?????
echo * Sets the B2 image base address in the ROM (otherwise 0xFFFA0000).
echo *
echo * NOTE: The paths MUST have a trailing '\' character.
echo **************************************************************************
goto Exit
:Begin
rem Clear working vars...
set DevKey=
set DoxKey=
set Solution=
set Configuration=
rem set default to external file prefix none
set SolutionType=
rem Validate the AGESA_ROOT variable
IF "%AGESA_ROOT%"=="" goto Else001
rem User has set a path for Agesa_Root, verify that path...
IF EXIST %AGESA_ROOT%Agesa.h goto EndIf002
rem Try adding trailing '\'
set AGESA_ROOT=%AGESA_ROOT%\
IF EXIST %AGESA_ROOT%Agesa.h goto EndIf003
echo Build ERROR: Environment variable AGESA_ROOT is invalid,
echo Build ERROR: Could not find file Agesa.h at: %AGESA_ROOT%
pause
goto Documentation
:EndIf003
:EndIf002
goto EndIf001
:Else001
echo Build ERROR: Required environment variable missing: AGESA_ROOT
pause
goto Documentation
:EndIf001
rem Start processing the input parameters...
:DoLoop
rem Switch (%1)
IF /I "%1"=="DevKey" goto Case001
IF /I "%1"=="Maranello" goto Case002
IF /I "%1"=="DevTest" goto Case002
IF /I "%1"=="Danube" goto Case002
IF /I "%1"=="DanNi" goto Case002
IF /I "%1"=="Nile" goto Case002
IF /I "%1"=="Dragon" goto Case002
IF /I "%1"=="SanMarino" goto Case002
IF /I "%1"=="Scorpius" goto Case002
IF /I "%1"=="Sabine" goto Case002
IF /I "%1"=="Lynx" goto Case002
IF /I "%1"=="Brazos" goto Case002
IF /I "%1"=="DOX" goto Case009
IF /I "%1"=="Debug" goto Case011
IF /I "%1"=="Release" goto Case011
IF /I "%1"=="Internal" goto Case012
IF "%1"=="" goto Case006
goto Case004
:Case001
rem Case 1: Special command param
set DevKey=DevKey
goto EndSwitch
:Case002
rem Case 2: Solution name parameter
rem Set the Platform Solution name for the build environment
rem Validation of the names was done by the IF's at the top of DoLoop
set Solution=%1
goto EndSwitch
:Case004
rem Case 4: Path param, check for validity
rem Check if parameter matches the default
rem Check for shortcut versions of the default. Also
rem checking for missing trailing '\'
IF /I "%1"=="Addendum" goto Then040
IF /I "%1"=="Addendum\" goto Then040
IF /I "%1"=="..\Addendum" goto Then040
IF /I "%1"=="..\Addendum\" goto Then040
IF /I "%1"=="..\..\Addendum" goto Then040
IF /I "%1"=="..\..\Addendum\" goto Then040
goto Else040
:Then040
set AGESA_OptsDir=%AGESA_ROOT%Addendum\
Echo Build WARNING: User selected the default options path.
goto EndIf040
:Else040
set AGESA_OptsDir=%1
rem Non-default path given,
rem Validate the AGESA_OptsDir parameter ( %%1 = %1 )...
IF /I "%Solution%"=="" goto Else042
IF EXIST %AGESA_OptsDir%%Solution%Options.c goto EndIf044
rem Check if param was missing trailing '\'...
set AGESA_OptsDir=%AGESA_OptsDir%\
IF EXIST %AGESA_OptsDir%%Solution%Options.c goto EndIf045
rem If using the default, assume the release file is in place.
rem Could not find options file, post an error
Echo Build ERROR: Path to AGESA options file is not valid...
Echo . . Could not find options file: %AGESA_OptsDir%%Solution%Options.c
set AGESA_OptsDir=
set Solution=
exit /B 5
:EndIf045
:EndIf044
goto EndIf042
:Else042
rem Else042 - parameter ordering error, need to specify solution before tip path
Echo Build ERROR: The 'Solution' name was not recognized or
Echo The Solution must be specified before the Development tip path
Echo . . . Legacy.bat Solution [DevTipPath] [DevKey] [DoxKey]
exit /B 4
:EndIf042
:EndIf040
goto EndSwitch
:Case006
rem Case 6: Parameter is blank, end of list
rem Validate the required Environment Variables
IF /I "%Solution%"=="" goto Else066
IF NOT "%AGESA_OptsDir%"=="" goto Else060
Rem No path param specified. Use the default file shipped with the AGESA package...
Echo Build WARNING: Using default options file.
set AGESA_OptsDir=%AGESA_ROOT%Addendum\
goto EndIf060
:Else060
rem Else060 - tip path may have been set by caller prior to call,
rem Validate the AGESA_OptsDir parameter ( %%AGESA_OptsDir = %AGESA_OptsDir% )...
IF EXIST %AGESA_OptsDir%%Solution%Options.c goto EndIf061
rem Check if param was missing trailing '\'...
set AGESA_OptsDir=%AGESA_OptsDir%\
IF EXIST %AGESA_OptsDir%%Solution%Options.c goto EndIf062
rem If using the default, assume the release file is in place.
rem Could not find options file, post an error
Echo Build ERROR: Path to AGESA options file is not valid...
Echo . . Could not find options file: %AGESA_OptsDir%%Solution%Options.c
set AGESA_OptsDir=
set Solution=
exit /B 4
:EndIf062
:EndIf061
:EndIf060
goto EndIf066
:Else066
rem Else066 - parameter missing error, need to specify 'solution'
Echo Build ERROR: The Platform Solution name must be specified:
Echo . . . Legacy.bat Solution [DevTipPath] [DevKey] [DoxKey]
exit /B 4
:EndIf066
goto EndDo
:Case009
rem Case 9: Documentation generation key
set DoxKey=DoxKey
goto EndSwitch
:Case011
rem Case 11: Build Configuration
set Configuration=%1
goto EndSwitch
:Case012
rem Case 12: Select Internal solution file prefix
set SolutionType=%1
goto EndSwitch
:EndSwitch
SHIFT
goto DoLoop
:EndDo
rem # Ensure that Microsoft Visual Studio 2005 is installed on this machine.
IF NOT "%VS80COMNTOOLS%"=="" goto EndIf95
echo ---------------------------------------------------------------------
echo - Building AGESA ARCH2008 requires Microsoft Visual Studio 2005 -
echo - Install Visual Studio 2005 and confirm environment -
echo - variable VS80COMNTOOLS is present. -
echo ---------------------------------------------------------------------
pause
exit
:EndIf95
rem set the Visual Studio 32-bit development environment
call "%VS80COMNTOOLS%vsvars32.bat"
rem Launch the documentation generator if selected by the user
IF NOT "%DoxKey%"=="DoxKey" goto EndIf100
devenv %AGESA_ROOT%Proc\AgesaDoc.sln /Rebuild "Release|Win32"
:EndIf100
rem Use the default build configuration if none was specified.
IF NOT "%Configuration%"=="" goto EndIf110
set Configuration=Debug
:EndIf110
rem Check image bases
IF NOT "%AGESA_B1_ADDRESS%"=="" goto EndIf120
set AGESA_B1_ADDRESS=0xFFFD0000
:EndIf120
IF NOT "%AGESA_B2_ADDRESS%"=="" goto EndIf130
set AGESA_B2_ADDRESS=0xFFFA0000
:EndIf130
rem Check if the 'secret' developers' key was used, open an interactive VS window
IF NOT "%DevKey%"=="DevKey" goto Else140
set DevKey=
rem This is the command to open an interactive development window ...
start /NORMAL devenv.exe %AGESA_ROOT%Legacy\Proc\%Solution%%SolutionType%Legacy.sln /ProjectConfig "%Configuration%|Win32"
goto EndIf140
:Else140
rem Else140 - This is the command to perform a background or automated build ...
devenv %AGESA_ROOT%Legacy\Proc\%Solution%%SolutionType%Legacy.sln /Rebuild "%Configuration%|Win32"
:EndIf140
:Exit
exit /B 0
|