Patch from open source community for CryptoPkg to allow it to build for ARM using...
[mirror_edk2.git] / edksetup.bat
1 @REM @file\r
2 @REM   Windows batch file to setup a WORKSPACE environment\r
3 @REM\r
4 @REM Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
5 @REM This program and the accompanying materials\r
6 @REM are licensed and made available under the terms and conditions of the BSD License\r
7 @REM which accompanies this distribution.  The full text of the license may be found at\r
8 @REM http://opensource.org/licenses/bsd-license.php\r
9 @REM\r
10 @REM THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 @REM WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12 @REM\r
13 \r
14 @REM set CYGWIN_HOME=C:\cygwin\r
15 \r
16 @REM usage: \r
17 @REM   edksetup.bat [--nt32] [AntBuild] [Rebuild] [ForceRebuild] [Reconfig]\r
18 @REM if the argument, skip is present, only the paths and the\r
19 @REM test and set of environment settings are performed. \r
20 \r
21 @REM ##############################################################\r
22 @REM # You should not have to modify anything below this line\r
23 @REM #\r
24 \r
25 @echo off\r
26 \r
27 @REM\r
28 @REM Set the WORKSPACE to the current working directory\r
29 @REM\r
30 pushd .\r
31 cd %~dp0\r
32 \r
33 if not defined WORKSPACE (\r
34   @goto SetWorkSpace\r
35 )\r
36 \r
37 if %WORKSPACE% == %CD% (\r
38   @REM Workspace is not changed.\r
39   @goto ParseArgs\r
40 )\r
41 \r
42 :SetWorkSpace\r
43 @REM set new workspace\r
44 @REM clear EFI_SOURCE and EDK_SOURCE for the new workspace\r
45 set WORKSPACE=%CD%\r
46 set EFI_SOURCE=\r
47 set EDK_SOURCE=\r
48 \r
49 :ParseArgs\r
50 @if /I "%1"=="-h" goto Usage\r
51 @if /I "%1"=="-help" goto Usage\r
52 @if /I "%1"=="--help" goto Usage\r
53 @if /I "%1"=="/h" goto Usage\r
54 @if /I "%1"=="/?" goto Usage\r
55 @if /I "%1"=="/help" goto Usage\r
56 \r
57 @if /I not "%1"=="--nt32" goto no_nt32\r
58 \r
59 @REM Flag, --nt32 is set\r
60 @REM The Nt32 Emluation Platform requires Microsoft Libraries\r
61 @REM and headers to interface with Windows.\r
62 \r
63 if not defined VCINSTALLDIR (\r
64   if defined VS71COMNTOOLS (\r
65     call "%VS71COMNTOOLS%\vsvars32.bat"\r
66   ) else (\r
67     if defined VS80COMNTOOLS (\r
68       call "%VS80COMNTOOLS%\vsvars32.bat"\r
69     ) else (\r
70       if defined VS90COMNTOOLS (\r
71         call "%VS90COMNTOOLS%\vsvars32.bat"\r
72       ) else (\r
73         echo.\r
74         echo !!! WARNING !!! Cannot find Visual Studio !!!\r
75         echo.\r
76       )\r
77     )\r
78   )\r
79 )\r
80 shift\r
81 \r
82 :no_nt32\r
83 @if /I "%1"=="NewBuild" shift\r
84 @if not defined EDK_TOOLS_PATH set EDK_TOOLS_PATH=%WORKSPACE%\BaseTools\r
85 @IF NOT EXIST "%EDK_TOOLS_PATH%\toolsetup.bat" goto BadBaseTools\r
86 @call %EDK_TOOLS_PATH%\toolsetup.bat %*\r
87 @if /I "%1"=="Reconfig" shift\r
88 @goto check_cygwin\r
89 \r
90 :BadBaseTools\r
91   @REM\r
92   @REM Need the BaseTools Package in order to build\r
93   @REM\r
94   echo.\r
95   echo !!! ERROR !!! The BaseTools Package was not found !!!\r
96   echo.\r
97   echo Set the system environment variable, EDK_TOOLS_PATH to the BaseTools,\r
98   echo For example,\r
99   echo   set EDK_TOOLS_PATH=C:\MyTools\BaseTools\r
100   echo The setup script, toolsetup.bat must reside in this folder.\r
101   echo.\r
102   @goto end\r
103 \r
104 :check_cygwin\r
105   @if exist c:\cygwin (\r
106     @set CYGWIN_HOME=c:\cygwin\r
107   ) else (\r
108     @echo.\r
109     @echo !!! WARNING !!! No CYGWIN_HOME set, gcc build may not be used !!!\r
110     @echo.\r
111   )\r
112 \r
113 @if NOT "%1"=="" goto Usage\r
114 @goto end\r
115 \r
116 :Usage\r
117   @echo.\r
118   @echo  Usage: "%0 [-h | -help | --help | /h | /help | /?] [--nt32] [Reconfig]"\r
119   @echo         --nt32         Call vsvars32.bat for NT32 platform build.\r
120   @echo.\r
121   @echo         Reconfig       Reinstall target.txt, tools_def.txt and build_rule.txt.\r
122   @echo.\r
123   @echo  Note that target.template, tools_def.template and build_rules.template\r
124   @echo  will be only copied to target.txt, tools_def.txt and build_rule.txt\r
125   @echo  respectively if they do not exist. Using option [Reconfig] to force the copy. \r
126   @echo.\r
127   @goto end\r
128 \r
129 :end\r
130   @popd\r
131   @echo on\r
132 \r