summaryrefslogtreecommitdiff
path: root/src/vendorcode/amd/agesa/f14/Legacy/Proc/Legacy.bat
blob: 0b79a987c1a756d2ab30a1cb3aedead4a9f06498 (plain)
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