| @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 |