summaryrefslogtreecommitdiff
path: root/src/VBox/Devices/EFI/Firmware2/VBoxPkg/env.cmd
blob: 4c81948049fa2f7b96028cd0df4a2a92749a8005 (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
@echo off

REM $Id $
REM /*
REM  * Environment Setup Script for VBoxPkg + EDK2.
REM  */

REM /*
REM Copyright (C) 2012 Oracle Corporation
REM
REM This file is part of VirtualBox Open Source Edition (OSE), as
REM available from http://www.virtualbox.org. This file is free software;
REM you can redistribute it and/or modify it under the terms of the GNU
REM General Public License (GPL) as published by the Free Software
REM Foundation, in version 2 as it comes in the "COPYING" file of the
REM VirtualBox OSE distribution. VirtualBox OSE is distributed in the
REM hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
REM
REM */

rem
rem Figure where the VBox tools are, i.e. that tools/env.cmd has been execute.
rem
if not "%KBUILD_DEVTOOLS%"=="" goto kbuild_devtools_set
if "%PATH_DEVTOOLS%"=="" goto error_devtools
set KBUILD_DEVTOOLS=%PATH_DEVTOOLS%
:kbuild_devtools_set

rem
rem Check that all the tools we need are there.
rem
set MY_MISSING=
if not exist "%KBUILD_DEVTOOLS%\win.x86\vcc\v8sp1\bin\cl.exe" echo env.cmd: missing v8sp1.
if not exist "%KBUILD_DEVTOOLS%\win.x86\vcc\v8sp1\bin\cl.exe" set MY_MISSING=1
if not exist "%KBUILD_DEVTOOLS%\win.x86\vcc\v8sp1\env-x86.cmd" set MY_MISSING=1
if not exist "%KBUILD_DEVTOOLS%\win.x86\ddk\6000\bin\x86\nmake.exe" echo env.cmd: missing ddk/6001.
if not exist "%KBUILD_DEVTOOLS%\win.x86\ddk\6000\bin\x86\nmake.exe" set MY_MISSING=1
if not exist "%KBUILD_DEVTOOLS%\win.x86\sdk\200504\env-x86.cmd" echo env.cmd: missing sdk/200504.
if not exist "%KBUILD_DEVTOOLS%\win.x86\sdk\200504\env-x86.cmd" set MY_MISSING=1
if "%MY_MISSING%"=="" goto devtools_ok
echo env.cmd: Please run kmk -C %KBUILD_DEVTOOLS% KBUILD_TARGET_ARCH=amd64 to fetch the missing tools
set MY_MISSING=
exit /b1
:devtools_ok

rem
rem Figure out where the EDK2 checkout is.
rem
if "%CD%"=="" goto error_cd_not_set
pushd .
cd %~dp0
cd ..
set WORKSPACE=%CD%
popd
if exist "%WORKSPACE%\VBoxPkg\VBoxPkg.dsc" goto found_edk2
set WORKSPACE=%CD%
if exist "%WORKSPACE%\VBoxPkg\VBoxPkg.dsc" goto found_edk2
set WORKSPACE=%CD%\..
if exist "%WORKSPACE%\VBoxPkg\VBoxPkg.dsc" goto found_edk2
set WORKSPACE=%CD%\..\..
if exist "%WORKSPACE%\VBoxPkg\VBoxPkg.dsc" goto found_edk2
set WORKSPACE=
echo env.cmd: Cannot find EDK2. Please enter the VBoxPkg directory in your EDK2 checkout and re-run this script.
exit /b 1
:found_edk2

rem
rem Config the workspace.
rem
if exist "%WORKSPACE%\Conf\target.txt" goto reconfig
echo env.cmd: Configuring the workspace...

echo # Edited by VBoxPkg/env.cmd (%DATE% %TIME%)>       "%WORKSPACE%\Conf\tools_def.txt"
echo # > tmp_vbox_env.sed
echo s,C:\\Program Files\\Microsoft Visual Studio \.NET 2003\\Vc7,%KBUILD_DEVTOOLS%/win.x86/vcc/v7,>>               tmp_vbox_env.sed
echo s,C:\\Program Files\\Microsoft Visual Studio \.NET 2003\\Common7\\IDE,%KBUILD_DEVTOOLS%/win.x86/vcc/v7/bin,>>  tmp_vbox_env.sed
echo s,C:\\Program Files\\Microsoft Visual Studio 8\\Vc,%KBUILD_DEVTOOLS%/win.x86/vcc/v8sp1,>>                      tmp_vbox_env.sed
echo s,C:\\Program Files\\Microsoft Visual Studio 8\\Common7\\IDE,%KBUILD_DEVTOOLS%/win.x86/vcc/v8sp1/bin,>>        tmp_vbox_env.sed
echo s,C:\\Program Files (x86)\\Microsoft Visual Studio 8\\Vc,%KBUILD_DEVTOOLS%/win.x86/vcc/v8sp1,>>                tmp_vbox_env.sed
echo s,C:\\Program Files (x86)\\Microsoft Visual Studio 8\\Common7\\IDE,%KBUILD_DEVTOOLS%/win.x86/vcc/v8sp1/bin,>>  tmp_vbox_env.sed
echo s,C:\\WINDDK\\3790.1830,%KBUILD_DEVTOOLS%/win.x86/ddk/6001,>>      tmp_vbox_env.sed
echo s,C:\ASL,%KBUILD_DEVTOOLS%/win.x86/bin,>>                          tmp_vbox_env.sed
echo s,c:/cygwin,c:/no-cygwin-please,>>                                 tmp_vbox_env.sed
kmk_sed -f tmp_vbox_env.sed --append "%WORKSPACE%\Conf\tools_def.txt" "%WORKSPACE%\BaseTools\Conf\tools_def.template"
if not errorlevel 0 goto error_sed
del tmp_vbox_env.sed

copy "%WORKSPACE%\BaseTools\Conf\build_rule.template"   "%WORKSPACE%\Conf\build_rule.txt"
if not errorlevel 0 goto error_copy

rem must come last
echo # Generated by VBoxPkg/env.cmd (%DATE% %TIME%)>    "%WORKSPACE%\Conf\target.txt"
echo ACTIVE_PLATFORM=VBoxPkg/VBoxPkg.dsc>>              "%WORKSPACE%\Conf\target.txt"
echo TARGET=DEBUG>>                                     "%WORKSPACE%\Conf\target.txt"
echo TARGET_ARCH=IA32>>                                 "%WORKSPACE%\Conf\target.txt"
echo TOOL_CHAIN_CONF=Conf/tools_def.txt>>               "%WORKSPACE%\Conf\target.txt"
echo TOOL_CHAIN_TAG=MYTOOLS>>                           "%WORKSPACE%\Conf\target.txt"
echo MAX_CONCURRENT_THREAD_NUMBER=%NUMBER_OF_PROCESSORS% >> "%WORKSPACE%\Conf\target.txt"
echo BUID_RULE_CONF=Conf/build_rule.txt>>               "%WORKSPACE%\Conf\target.txt"

goto configured
:reconfig
echo env.cmd: Already configured.
echo env.cmd: If you want to reconfigure delete the following files and
echo env.cmd: re-run VBoxPkg\env.cmd:
echo env.cmd:    %WORKSPACE%\Conf\target.txt
echo env.cmd:    %WORKSPACE%\Conf\tools_def.txt
echo env.cmd:    %WORKSPACE%\Conf\build_rule.txt
:configured

rem
rem Make sure ComSpec is pointing to the standard Windows shell.
rem 4NT and other replacements may cause trouble.
rem
if "%ComSpec%"=="%SystemRoot%\system32\cmd.exe" goto comspec_ok
echo env.cmd: ComSpec does not seem to point at %SystemRoot%\system32\cmd.exe, fixing.
echo env.cmd: (ComSpec=%ComSpec%)
if not exist "%ComSpec%" echo env.cmd: Huh?? %SystemRoot%\system32\cmd.exe does not exist!
if not exist "%ComSpec%" exit /b 1
set ComSpec=%SystemRoot%\system32\cmd.exe
:comspec_ok

rem
rem Load the environment.
rem
echo env.cmd: Loading the environment...
call "%KBUILD_DEVTOOLS%\win.x86\sdk\200504\env-x86.cmd"
if not errorlevel 0 goto error_sdk_env

call "%KBUILD_DEVTOOLS%\win.x86\vcc\v8sp1\env-x86.cmd"
if not errorlevel 0 goto error_vcc_env

set EDK_TOOLS_PATH=%WORKSPACE%\BaseTools
call "%WORKSPACE%\BaseTools\toolsetup.bat"
if not errorlevel 0 goto error_edk2_toolsetup

echo env.cmd: Done.
exit /b 0


rem
rem Error messages.
rem
:error_devtools
echo env.cmd: Cannot find the VirtualBox devtools. Did you remember run tools/env.cmd in the VirtualBox tree first?
exit /b 1

:error_sdk_env
echo env.cmd: the SDK env script failed.
exit /b 1

:error_vcc_env
echo env.cmd: the Visual C++ env script failed.
exit /b 1

:error_edk2_toolsetup
echo env.cmd: the EDK2 env script failed.
exit /b 1

:error_cd_not_set
echo env.cmd: the internal CD variable isn't set. Complain to bird.
exit /b 1

:error_sed
echo env.cmd: kmk_sed failed, see above error messages(s).
exit /b 1

:error_copy
echo env.cmd: copy fails, see above error message(s).
del tmp_vbox_env.sed
exit /b 1