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