VirtualBox

source: kBuild/trunk/kBuild/envwin.cmd@ 3387

Last change on this file since 3387 was 3113, checked in by bird, 7 years ago

envwin.cmd: comment typo

  • Property svn:eol-style set to CRLF
  • Property svn:keywords set to Id
File size: 25.4 KB
Line 
1@echo off
2REM $Id: envwin.cmd 3113 2017-10-29 17:16:03Z bird $
3REM REM @file
4REM Environment setup script.
5REM
6
7REM
8REM Copyright (c) 2005-2010 knut st. osmundsen <bird-kBuild-spamx@anduin.net>
9REM
10REM This file is part of kBuild.
11REM
12REM kBuild is free software; you can redistribute it and/or modify
13REM it under the terms of the GNU General Public License as published by
14REM the Free Software Foundation; either version 2 of the License, or
15REM (at your option) any later version.
16REM
17REM kBuild is distributed in the hope that it will be useful,
18REM but WITHOUT ANY WARRANTY; without even the implied warranty of
19REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20REM GNU General Public License for more details.
21REM
22REM You should have received a copy of the GNU General Public License
23REM along with kBuild; if not, write to the Free Software
24REM Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25REM
26
27REM
28REM Globals
29REM
30set _KBUILD_CURDIR=%CD%
31for /f "tokens=*" %%d in ('cd') do set _KBUILD_CURDIR=%%d
32
33set _KBUILD_PATH=%KBUILD_PATH%
34set _KBUILD_BIN_PATH=%KBUILD_BIN_PATH%
35set _KBUILD_TYPE=%KBUILD_TYPE%
36set _KBUILD_TARGET=%KBUILD_TARGET%
37set _KBUILD_TARGET_ARCH=%KBUILD_TARGET_ARCH%
38set _KBUILD_TARGET_CPU=%KBUILD_TARGET_CPU%
39set _KBUILD_HOST=%KBUILD_HOST%
40set _KBUILD_HOST_ARCH=%KBUILD_HOST_ARCH%
41set _KBUILD_HOST_CPU=%KBUILD_HOST_CPU%
42
43set _KBUILD_OVERRIDE_TYPE=0
44set _KBUILD_OVERRIDE_TARGET=0
45set _KBUILD_OVERRIDE_TARGET_ARCH=0
46
47REM
48REM Parse the arguments.
49REM
50REM Note: The 0 argument must be saved as it is also shifted.
51REM
52set _KBUILD_SELF=%0
53set _KBUILD_OPT_FULL=0
54set _KBUILD_OPT_LEGACY=0
55set _KBUILD_OPT_VAR=
56set _KBUILD_OPT_VALUE_ONLY=0
57set _KBUILD_SHOW_VAR_PREFIX=
58set _KBUILD_OPT_DBG=1
59set _KBUILD_OPT_OVERRIDE_ALL=0
60
61:argument_loop
62if ".%1" == ".-h" goto do_help
63if ".%1" == "./h" goto do_help
64if ".%1" == "./H" goto do_help
65if ".%1" == ".-h" goto do_help
66if ".%1" == ".-help" goto do_help
67if ".%1" == ".--help" goto do_help
68
69if ".%1" == ".--win" goto want_win
70if ".%1" == ".-win" goto want_win
71if ".%1" == ".--win32" goto want_win32_bit
72if ".%1" == ".-win32" goto want_win32_bit
73if ".%1" == ".-win64" goto want_win64_bit
74if ".%1" == ".--win64" goto want_win64_bit
75if ".%1" == ".--nt" goto want_nt
76if ".%1" == ".-nt" goto want_nt
77if ".%1" == ".--nt32" goto want_nt32_bit
78if ".%1" == ".-nt32" goto want_nt32_bit
79if ".%1" == ".--nt64" goto want_nt64_bit
80if ".%1" == ".-nt64" goto want_nt64_bit
81
82if ".%1" == ".--release" goto want_release
83if ".%1" == ".--profile" goto want_profile
84if ".%1" == ".--debug" goto want_debug
85
86if ".%1" == ".--full" goto opt_full
87if ".%1" == ".--normal" goto opt_normal
88if ".%1" == ".--legacy" goto opt_legacy
89if ".%1" == ".--no-legacy" goto opt_no_legacy
90if ".%1" == ".--debug-script" goto opt_debug_script
91if ".%1" == ".--no-debug-script" goto opt_no_debug_script
92if ".%1" == ".--var" goto opt_var
93if ".%1" == ".--value-only" goto opt_value_only
94if ".%1" == ".--name-and-value" goto opt_name_and_value
95if ".%1" == ".--set" goto opt_set
96if ".%1" == ".--no-set" goto opt_no_set
97
98goto done_arguments
99
100:want_win
101shift
102set _KBUILD_TARGET=win
103set _KBUILD_OVERRIDE_TARGET=1
104goto argument_loop
105
106:want_win32_bit
107shift
108set _KBUILD_TARGET=win
109set _KBUILD_TARGET_ARCH=x86
110set _KBUILD_OVERRIDE_TARGET=1
111set _KBUILD_OVERRIDE_TARGET_ARCH=1
112goto argument_loop
113
114:want_win64_bit
115shift
116set _KBUILD_TARGET=win
117set _KBUILD_TARGET_ARCH=amd64
118set _KBUILD_OVERRIDE_TARGET=1
119set _KBUILD_OVERRIDE_TARGET_ARCH=1
120goto argument_loop
121
122:want_nt
123shift
124set _KBUILD_TARGET=nt
125set _KBUILD_OVERRIDE_TARGET=1
126goto argument_loop
127
128:want_nt32_bit
129shift
130set _KBUILD_TARGET=nt
131set _KBUILD_TARGET_ARCH=x86
132set _KBUILD_OVERRIDE_TARGET=1
133set _KBUILD_OVERRIDE_TARGET_ARCH=1
134goto argument_loop
135
136:want_nt64_bit
137shift
138set _KBUILD_TARGET=nt
139set _KBUILD_TARGET_ARCH=amd64
140set _KBUILD_OVERRIDE_TARGET=1
141set _KBUILD_OVERRIDE_TARGET_ARCH=1
142goto argument_loop
143
144:want_release
145shift
146set _KBUILD_TYPE=release
147set _KBUILD_OVERRIDE_TYPE=1
148goto argument_loop
149
150:want_profile
151shift
152set _KBUILD_TYPE=profile
153set _KBUILD_OVERRIDE_TYPE=1
154goto argument_loop
155
156:want_debug
157shift
158set _KBUILD_TYPE=debug
159set _KBUILD_OVERRIDE_TYPE=1
160goto argument_loop
161
162:opt_full
163shift
164set _KBUILD_OPT_FULL=1
165goto argument_loop
166
167:opt_normal
168shift
169set _KBUILD_OPT_FULL=0
170goto argument_loop
171
172:opt_legacy
173shift
174set _KBUILD_OPT_LEGACY=1
175goto argument_loop
176
177:opt_no_legacy
178shift
179set _KBUILD_OPT_LEGACY=0
180goto argument_loop
181
182:opt_debug_script
183shift
184set _KBUILD_OPT_DBG=1
185goto argument_loop
186
187:opt_no_debug_script
188shift
189set _KBUILD_OPT_DBG=0
190goto argument_loop
191
192:opt_var
193shift
194if ".%1" == "." echo syntax error: --var is missing it's variable name.
195if ".%1" == "." goto failure
196set _KBUILD_OPT_VAR=%_KBUILD_OPT_VAR% %1
197shift
198goto argument_loop
199
200:opt_value_only
201shift
202set _KBUILD_OPT_VALUE_ONLY=1
203goto argument_loop
204
205:opt_name_and_value
206shift
207set _KBUILD_OPT_VALUE_ONLY=0
208goto argument_loop
209
210:opt_set
211shift
212set _KBUILD_SHOW_VAR_PREFIX=SET %_KBUILD_NON_EXISTING_VAR%
213goto argument_loop
214
215:opt_no_set
216shift
217set _KBUILD_SHOW_VAR_PREFIX=
218goto argument_loop
219
220
221REM #
222REM # Syntax
223REM #
224:do_help
225echo kBuild environment setup script for Windows NT.
226echo Syntax: envwin.cmd [options] [command to be executed]
227echo or: envwin.cmd [options] --var varname
228echo .
229echo Options:
230echo --win
231echo Force windows target and host platform.
232echo --win32
233echo Force x86 32-bit windows target platform.
234echo --win64
235echo Force AMD64 64-bit windows target platform.
236echo --nt
237echo Force NT target and host platform.
238echo --nt32
239echo Force x86 32-bit NT target platform.
240echo --nt64
241echo Force AMD64 64-bit NT target platform.
242echo --debug, --release, --profile
243echo Alternative way of specifying KBUILD_TYPE.
244echo --full, --normal
245echo Controls the variable set. Default: --normal
246echo --legacy, --no-legacy
247echo Include legacy variables in result. Default: --legacy
248echo --value-only, --name-and-value
249echo Controls what the result of a --var query. Default: --name-and-value
250echo --set, --no-set
251echo Whether to prefix the variable output with 'SET' or not.
252echo Default: --no-set
253
254goto end
255
256:done_arguments
257
258REM
259REM Convert legacy variable names.
260REM
261if ".%_KBUILD_OPT_OVERRIDE_ALL%" == ".1" goto legacy_convertion_done
262
263set _KBUILD_VARS=KBUILD_HOST (%_KBUILD_HOST%) and BUILD_PLATFORM (%BUILD_PLATFORM%)
264if not ".%BUILD_PLATFORM%" == "." if not ".%_KBUILD_HOST%" == "." if ".%_KBUILD_HOST%" == ".%BUILD_PLATFORM%" goto legacy_mismatch
265if not ".%BUILD_PLATFORM%" == "." set _KBUILD_HOST=%BUILD_PLATFORM%
266
267set _KBUILD_VARS=KBUILD_HOST_ARCH (%_KBUILD_HOST_ARCH%) and BUILD_PLATFORM_ARCH (%BUILD_PLATFORM_ARCH%)
268if not ".%BUILD_PLATFORM_ARCH%" == "." if not ".%_KBUILD_HOST_ARCH%" == "." if ".%_KBUILD_HOST_ARCH%" == ".%BUILD_PLATFORM_ARCH%" goto legacy_mismatch
269if not ".%BUILD_PLATFORM_ARCH%" == "." set _KBUILD_HOST_ARCH=%BUILD_PLATFORM_ARCH%
270
271set _KBUILD_VARS=KBUILD_HOST_CPU (%_KBUILD_HOST_CPU%) and BUILD_PLATFORM_CPU (%BUILD_PLATFORM_CPU%)
272if not ".%BUILD_PLATFORM_CPU%" == "." if not ".%_KBUILD_HOST_CPU%" == "." if ".%_KBUILD_HOST_CPU%" == ".%BUILD_PLATFORM_CPU%" goto legacy_mismatch
273if not ".%BUILD_PLATFORM_CPU%" == "." set _KBUILD_HOST_CPU=%BUILD_PLATFORM_CPU%
274
275if ".%_KBUILD_OVERRIDE_TARGET%" == ".1" goto legacy_skip_target
276set _KBUILD_VARS=KBUILD_TARGET (%_KBUILD_TARGET%) and BUILD_TARGET (%BUILD_TARGET%)
277if not ".%BUILD_TARGET%" == "." if not ".%_KBUILD_TARGET%" == "." if ".%_KBUILD_TARGET%" == ".%BUILD_TARGET%" goto legacy_mismatch
278if not ".%BUILD_TARGET%" == "." set _KBUILD_TARGET=%BUILD_TARGET%
279:legacy_skip_target
280
281if ".%_KBUILD_OVERRIDE_TARGET%" == ".1" goto legacy_skip_target_arch
282set _KBUILD_VARS=KBUILD_TARGET_ARCH (%_KBUILD_TARGET_ARCH%) and BUILD_TARGET_ARCH (%BUILD_TARGET_ARCH%)
283if not ".%BUILD_TARGET_ARCH%" == "." if not ".%_KBUILD_TARGET_ARCH%" == "." if ".%_KBUILD_TARGET_ARCH%" == ".%BUILD_TARGET_ARCH%" goto legacy_mismatch
284if not ".%BUILD_TARGET_ARCH%" == "." set _KBUILD_TARGET_ARCH=%BUILD_TARGET_ARCH%
285:legacy_skip_target_arch
286
287if ".%_KBUILD_OVERRIDE_TARGET%" == ".1" goto legacy_skip_target_cpu
288set _KBUILD_VARS=KBUILD_TARGET_CPU (%_KBUILD_TARGET_CPU%) and BUILD_TARGET_CPU (%BUILD_TARGET_CPU%)
289if not ".%BUILD_TARGET_CPU%" == "." if not ".%_KBUILD_TARGET_CPU%" == "." if ".%_KBUILD_TARGET_CPU%" == ".%BUILD_TARGET_CPU%" goto legacy_mismatch
290if not ".%BUILD_TARGET_CPU%" == "." set _KBUILD_TARGET_CPU=%BUILD_TARGET_CPU%
291:legacy_skip_target_cpu
292
293if ".%_KBUILD_OVERRIDE_TARGET%" == ".1" goto legacy_skip_type
294set _KBUILD_VARS=KBUILD_TYPE (%_KBUILD_TYPE%) and BUILD_TYPE (%BUILD_TYPE%)
295if not ".%BUILD_TYPE%" == "." if not ".%_KBUILD_TYPE%" == "." if ".%_KBUILD_TYPE%" == ".%BUILD_TYPE%" goto legacy_mismatch
296if not ".%BUILD_TYPE%" == "." set _KBUILD_TYPE=%BUILD_TYPE%
297:legacy_skip_type
298
299set _KBUILD_VARS=KBUILD_PATH (%_KBUILD_PATH%) and PATH_KBUILD (%PATH_KBUILD%)
300if not ".%PATH_KBUILD%" == "." if not ".%_KBUILD_PATH%" == "." if ".%_KBUILD_PATH%" == ".%PATH_KBUILD%" goto legacy_mismatch
301if not ".%PATH_KBUILD%" == "." set _KBUILD_PATH=%PATH_KBUILD%
302goto legacy_convertion_done
303
304:legacy_mismatch
305echo error: %_KBUILD_VARS% disagree.
306goto failed
307
308:legacy_convertion_done
309
310
311REM
312REM Check for illegal target/platforms.
313REM
314:target_and_platform
315if "%_KBUILD_TARGET" == "win32" goto illegal_target
316if "%_KBUILD_TARGET" == "win64" goto illegal_target
317if "%_KBUILD_HOST" == "win32" goto illegal_host
318if "%_KBUILD_HOST" == "win64" goto illegal_host
319goto target_and_platform_ok
320
321:illegal_target
322echo error: KBUILD_TARGET=%KBUILD_TARGET% is no longer valid.
323echo Only 'win' and 'nt' are permitted for targeting microsoft windows.
324goto failed
325
326:illegal_host
327echo error: KBUILD_HOST=%KBUILD_HOST is no longer valid.
328echo Only 'win' and 'nt' are permitted for building on microsoft windows.
329goto failed
330
331:target_and_platform_ok
332
333REM
334REM Find kBuild.
335REM
336REM We'll try determin the location of this script first and use that
337REM as a starting point for guessing the kBuild directory.
338REM
339
340REM Check if set via KBUILD_PATH.
341if not ".%_KBUILD_PATH%" == "." if exist %_KBUILD_PATH%\footer.kmk goto found_kbuild
342
343REM Determin a correct self - by %0
344if exist "%_KBUILD_SELF%" goto found_self
345set _KBUILD_SELF=%_KBUILD_SELF%.cmd
346if exist "%_KBUILD_SELF%" goto found_self
347
348REM Determin a correct self - by the PATH
349REM This is very verbose because nested for loops didn't work out.
350for /f "tokens=1 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
351if exist "%_KBUILD_SELF%" goto found_self
352for /f "tokens=2 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
353if exist "%_KBUILD_SELF%" goto found_self
354for /f "tokens=3 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
355if exist "%_KBUILD_SELF%" goto found_self
356for /f "tokens=4 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
357if exist "%_KBUILD_SELF%" goto found_self
358for /f "tokens=5 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
359if exist "%_KBUILD_SELF%" goto found_self
360for /f "tokens=6 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
361if exist "%_KBUILD_SELF%" goto found_self
362for /f "tokens=7 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
363if exist "%_KBUILD_SELF%" goto found_self
364for /f "tokens=8 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
365if exist "%_KBUILD_SELF%" goto found_self
366for /f "tokens=9 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
367if exist "%_KBUILD_SELF%" goto found_self
368for /f "tokens=10 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
369if exist "%_KBUILD_SELF%" goto found_self
370for /f "tokens=11 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
371if exist "%_KBUILD_SELF%" goto found_self
372for /f "tokens=12 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
373if exist "%_KBUILD_SELF%" goto found_self
374for /f "tokens=13 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
375if exist "%_KBUILD_SELF%" goto found_self
376for /f "tokens=14 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
377if exist "%_KBUILD_SELF%" goto found_self
378for /f "tokens=15 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
379if exist "%_KBUILD_SELF%" goto found_self
380for /f "tokens=16 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
381if exist "%_KBUILD_SELF%" goto found_self
382for /f "tokens=17 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
383if exist "%_KBUILD_SELF%" goto found_self
384for /f "tokens=18 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
385if exist "%_KBUILD_SELF%" goto found_self
386for /f "tokens=19 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
387if exist "%_KBUILD_SELF%" goto found_self
388for /f "tokens=20 delims=;" %%d in ("%PATH%") do set _KBUILD_SELF=%%d\envwin.cmd
389if exist "%_KBUILD_SELF%" goto found_self
390goto try_by_pwd
391
392:found_self
393cd "%_KBUILD_SELF%\.."
394for /f "tokens=*" %%d in ('cd') do set _KBUILD_PATH=%%d
395cd "%_KBUILD_CURDIR%"
396if exist "%_KBUILD_PATH%\footer.kmk" goto found_kbuild
397
398REM Try relative to the current directory.
399:try_by_pwd
400if exist "%_KBUILD_PATH%\footer.kmk" goto found_kbuild
401set _KBUILD_PATH=%_KBUILD_CURDIR%
402if exist "%_KBUILD_PATH%\footer.kmk" goto found_kbuild
403set _KBUILD_PATH=%_KBUILD_CURDIR%\kBuild
404if exist "%_KBUILD_PATH%\footer.kmk" goto found_kbuild
405set _KBUILD_PATH=%_KBUILD_CURDIR%\..\kBuild
406if exist "%_KBUILD_PATH%\footer.kmk" goto found_kbuild
407set _KBUILD_PATH=%_KBUILD_CURDIR%\..\..\kBuild
408if exist "%_KBUILD_PATH%\footer.kmk" goto found_kbuild
409set _KBUILD_PATH=%_KBUILD_CURDIR%\..\..\..\kBuild
410if exist "%_KBUILD_PATH%\footer.kmk" goto found_kbuild
411set _KBUILD_PATH=%_KBUILD_CURDIR%\..\..\..\..\kBuild
412if exist "%_KBUILD_PATH%\footer.kmk" goto found_kbuild
413echo kBuild: Can't find the kBuild directory!
414set CURDIR=
415goto failed
416
417:found_kbuild
418cd "%_KBUILD_PATH%"
419for /f "tokens=*" %%d in ('cd') do set _KBUILD_PATH=%%d
420cd "%_KBUILD_CURDIR%"
421if ".%_KBUILD_OPT_DBG%" == ".1" echo dbg: _KBUILD_PATH=%_KBUILD_PATH%
422
423
424REM
425REM Type - release is the default.
426REM
427if not ".%_KBUILD_TYPE%" == "." goto have_type
428set _KBUILD_TYPE=release
429:have_type
430if ".%_KBUILD_OPT_DBG%" == ".1" echo dbg: _KBUILD_TYPE=%_KBUILD_TYPE%
431
432
433REM
434REM Host platform - windows
435REM
436if not ".%_KBUILD_HOST%" == "." goto have_host
437set _KBUILD_HOST=win
438if ".%_KBUILD_OPT_DBG%" == ".1" echo dbg: _KBUILD_HOST=%_KBUILD_HOST%
439:have_host
440
441if not ".%_KBUILD_HOST_ARCH%" == "." goto have_host_arch
442REM try guess from _KBUILD_HOST_CPU
443if ".%KBUILD_HOST_CPU%" == ".i386" set _KBUILD_HOST_ARCH=x86
444if ".%KBUILD_HOST_CPU%" == ".i486" set _KBUILD_HOST_ARCH=x86
445if ".%KBUILD_HOST_CPU%" == ".i586" set _KBUILD_HOST_ARCH=x86
446if ".%KBUILD_HOST_CPU%" == ".i686" set _KBUILD_HOST_ARCH=x86
447if ".%KBUILD_HOST_CPU%" == ".i786" set _KBUILD_HOST_ARCH=x86
448if ".%KBUILD_HOST_CPU%" == ".i886" set _KBUILD_HOST_ARCH=x86
449if ".%KBUILD_HOST_CPU%" == ".i986" set _KBUILD_HOST_ARCH=x86
450if ".%KBUILD_HOST_CPU%" == ".k8" set _KBUILD_HOST_ARCH=amd64
451if ".%KBUILD_HOST_CPU%" == ".k9" set _KBUILD_HOST_ARCH=amd64
452if ".%KBUILD_HOST_CPU%" == ".k10" set _KBUILD_HOST_ARCH=amd64
453if not ".%_KBUILD_HOST_ARCH%" == "." goto have_host_arch
454REM try guess from PROCESSOR_ARCHITEW6432 and PROCESSOR_ARCHITECTURE
455set _KBUILD_TMP=%PROCESSOR_ARCHITECTURE%
456if not ".%PROCESSOR_ARCHITEW6432%" == "." set _KBUILD_TMP=%PROCESSOR_ARCHITEW6432%
457if "%_KBUILD_TMP%" == "x86" set _KBUILD_HOST_ARCH=x86
458if "%_KBUILD_TMP%" == "X86" set _KBUILD_HOST_ARCH=x86
459if "%_KBUILD_TMP%" == "amd64" set _KBUILD_HOST_ARCH=amd64
460if "%_KBUILD_TMP%" == "Amd64" set _KBUILD_HOST_ARCH=amd64
461if "%_KBUILD_TMP%" == "AMD64" set _KBUILD_HOST_ARCH=amd64
462if "%_KBUILD_TMP%" == "x64" set _KBUILD_HOST_ARCH=amd64
463if "%_KBUILD_TMP%" == "X64" set _KBUILD_HOST_ARCH=amd64
464if not ".%_KBUILD_HOST_ARCH%" == "." goto have_host_arch
465echo error: Cannot figure KBUILD_HOST_ARCH!
466goto failed
467:have_host_arch
468if ".%_KBUILD_OPT_DBG%" == ".1" echo dbg: _KBUILD_HOST_ARCH=%_KBUILD_HOST_ARCH%
469
470if not ".%_KBUILD_HOST_CPU%" == "." goto have_host_cpu
471set _KBUILD_HOST_CPU=blend
472:have_host_cpu
473if ".%_KBUILD_OPT_DBG%" == ".1" echo dbg: _KBUILD_HOST_CPU=%_KBUILD_HOST_CPU%
474
475REM
476REM The target platform.
477REM Defaults to the host when not specified.
478REM
479if not ".%_KBUILD_TARGET%" == "." goto have_target
480set _KBUILD_TARGET=%_KBUILD_HOST%
481:have_target
482if ".%_KBUILD_OPT_DBG%" == ".1" echo dbg: _KBUILD_TARGET=%_KBUILD_TARGET%
483
484if not ".%_KBUILD_TARGET_ARCH%" == "." goto have_target_arch
485set _KBUILD_TARGET_ARCH=%_KBUILD_HOST_ARCH%
486:have_target_arch
487if ".%_KBUILD_OPT_DBG%" == ".1" echo dbg: _KBUILD_TARGET_ARCH=%_KBUILD_TARGET_ARCH%
488
489if not ".%_KBUILD_TARGET_CPU%" == "." goto have_target_cpu
490if ".%_KBUILD_TARGET_ARCH%" == ".%_KBUILD_HOST_ARCH%" set _KBUILD_TARGET_CPU=%_KBUILD_HOST_CPU%
491if not ".%_KBUILD_TARGET_CPU%" == "." goto have_target_cpu
492set _KBUILD_TARGET_CPU=%_KBUILD_HOST_CPU%
493:have_target_cpu
494if ".%_KBUILD_OPT_DBG%" == ".1" echo dbg: _KBUILD_TARGET_CPU=%_KBUILD_TARGET_CPU%
495
496REM
497REM Calc KBUILD_BIN_PATH and the new PATH value.
498REM
499if not ".%_KBUILD_BIN_PATH%" == "." goto have_kbuild_bin_path
500set _KBUILD_BIN_PATH=%_KBUILD_PATH%\bin\win.%_KBUILD_HOST_ARCH%
501:have_kbuild_bin_path
502if ".%_KBUILD_OPT_DBG%" == ".1" echo dbg: _KBUILD_BIN_PATH=%_KBUILD_BIN_PATH%
503
504set _KBUILD_NEW_PATH=%_KBUILD_BIN_PATH%;%PATH%
505if ".%_KBUILD_OPT_DBG%" == ".1" echo dbg: _KBUILD_NEW_PATH=%_KBUILD_NEW_PATH%
506
507REM
508REM Sanity check.
509REM
510if not exist "%_KBUILD_BIN_PATH%" goto missing_bin_path
511if not exist "%_KBUILD_BIN_PATH%" goto done_chekcing_for_tools
512set _KBUILD_TMP=kmk kDepPre kDepIDB kmk_append kmk_ash kmk_cat kmk_cp kmk_echo kmk_install kmk_ln kmk_mkdir kmk_mv kmk_rm kmk_rmdir kmk_sed
513for %%i in ( %_KBUILD_TMP% ) do if not exist "%_KBUILD_BIN_PATH%\%%i.exe" echo warning: The %%i program doesn't exist for this platform. (%_KBUILD_BIN_PATH%\%%i.exe)"
514goto done_chekcing_for_tools
515
516:missing_bin_path
517echo warning: The bin directory for this platform doesn't exist. (%_KBUILD_BIN_PATH%)
518:done_chekcing_for_tools
519
520REM
521REM The environment is in place, now take the requested action.
522REM
523if ".%_KBUILD_OPT_VAR%" == "." goto exec_or_setup_env
524goto show_variable
525
526REM
527REM Show a set of variables.
528REM
529REM Note: 4nt doesn't grok the setlocal delayed expansion option.
530REM So, we'll have to identify which shell we're running.
531REM
532:show_variable
533for %%i in ( %_KBUILD_OPT_VAR% ) do if "%%i" == "all" goto show_all_variables
534
535if not ".%_4VER%" == "." goto 4nt
536setlocal ENABLEDELAYEDEXPANSION
537if errorlevel 1 goto no_delay_expansion
538
539for %%i in ( %_KBUILD_OPT_VAR% ) do (
540 set _KBUILD_VAR=%%i
541 set _KBUILD_TMP=
542 if "%%i" == "KBUILD_PATH" set _KBUILD_TMP=%_KBUILD_PATH%
543 if "%%i" == "KBUILD_BIN_PATH" set _KBUILD_TMP=%_KBUILD_BIN_PATH%
544 if "%%i" == "KBUILD_TYPE" set _KBUILD_TMP=%_KBUILD_TYPE%
545 if "%%i" == "KBUILD_HOST" set _KBUILD_TMP=%_KBUILD_HOST%
546 if "%%i" == "KBUILD_HOST_ARCH" set _KBUILD_TMP=%_KBUILD_HOST_ARCH%
547 if "%%i" == "KBUILD_HOST_CPU" set _KBUILD_TMP=%_KBUILD_HOST_CPU%
548 if "%%i" == "KBUILD_TARGET" set _KBUILD_TMP=%_KBUILD_TARGET%
549 if "%%i" == "KBUILD_TARGET_ARCH" set _KBUILD_TMP=%_KBUILD_TARGET_ARCH%
550 if "%%i" == "KBUILD_TARGET_CPU" set _KBUILD_TMP=%_KBUILD_TARGET_CPU%
551 if ".!_KBUILD_TMP!" == "." goto varible_not_found
552 if not ".%_KBUILD_OPT_VALUE_ONLY%" == ".1" echo %_KBUILD_SHOW_VAR_PREFIX%%%i=!_KBUILD_TMP!
553 if ".%_KBUILD_OPT_VALUE_ONLY%" == ".1" echo !_KBUILD_TMP!
554)
555
556endlocal
557goto end
558
559:no_delay_expansion
560echo error: Unable to enable delayed expansion in the shell.
561
562:4nt
563for %%i in ( %_KBUILD_OPT_VAR% ) do (
564 set _KBUILD_VAR=%%i
565 set _KBUILD_TMP=
566 if "%%i" == "KBUILD_PATH" set _KBUILD_TMP=%_KBUILD_PATH%
567 if "%%i" == "KBUILD_BIN_PATH" set _KBUILD_TMP=%_KBUILD_BIN_PATH%
568 if "%%i" == "KBUILD_TYPE" set _KBUILD_TMP=%_KBUILD_TYPE%
569 if "%%i" == "KBUILD_HOST" set _KBUILD_TMP=%_KBUILD_HOST%
570 if "%%i" == "KBUILD_HOST_ARCH" set _KBUILD_TMP=%_KBUILD_HOST_ARCH%
571 if "%%i" == "KBUILD_HOST_CPU" set _KBUILD_TMP=%_KBUILD_HOST_CPU%
572 if "%%i" == "KBUILD_TARGET" set _KBUILD_TMP=%_KBUILD_TARGET%
573 if "%%i" == "KBUILD_TARGET_ARCH" set _KBUILD_TMP=%_KBUILD_TARGET_ARCH%
574 if "%%i" == "KBUILD_TARGET_CPU" set _KBUILD_TMP=%_KBUILD_TARGET_CPU%
575 if ".%_KBUILD_TMP%" == "." goto varible_not_found
576 if not ".%_KBUILD_OPT_VALUE_ONLY%" == ".1" echo %_KBUILD_SHOW_VAR_PREFIX%%i=%_KBUILD_TMP%
577 if ".%_KBUILD_OPT_VALUE_ONLY%" == ".1" echo %_KBUILD_TMP%
578)
579goto end
580
581:varible_not_found
582echo error: Unknown variable %_KBUILD_VAR% specified in --var request.
583goto failed
584
585:show_all_variables
586echo %_KBUILD_SHOW_VAR_PREFIX%KBUILD_PATH=%_KBUILD_PATH%
587echo %_KBUILD_SHOW_VAR_PREFIX%KBUILD_BIN_PATH=%_KBUILD_BIN_PATH%
588echo %_KBUILD_SHOW_VAR_PREFIX%KBUILD_TYPE=%_KBUILD_TYPE%
589echo %_KBUILD_SHOW_VAR_PREFIX%KBUILD_HOST=%_KBUILD_HOST%
590echo %_KBUILD_SHOW_VAR_PREFIX%KBUILD_HOST_ARCH=%_KBUILD_HOST_ARCH%
591echo %_KBUILD_SHOW_VAR_PREFIX%KBUILD_HOST_CPU=%_KBUILD_HOST_CPU%
592echo %_KBUILD_SHOW_VAR_PREFIX%KBUILD_TARGET=%_KBUILD_TARGET%
593echo %_KBUILD_SHOW_VAR_PREFIX%KBUILD_TARGET_ARCH=%_KBUILD_TARGET_ARCH%
594echo %_KBUILD_SHOW_VAR_PREFIX%KBUILD_TARGET_CPU=%_KBUILD_TARGET_CPU%
595goto end
596
597REM
598REM Setup environment for the current shell or execute a command.
599REM
600REM Note: We use setlocal if we're going to execute a command as we
601REM don't want the environment of the invoking shell to be changed.
602REM
603:exec_or_setup_env
604if not ".%1" == "." setlocal
605
606REM The PATH is always set.
607set PATH=%_KBUILD_NEW_PATH%
608
609REM Clear up anything that should be overridden.
610if not "%_KBUILD_OPT_OVERRIDE_ALL%" == "1" goto skip_override_all
611set KBUILD_TYPE=
612set KBUILD_HOST=
613set KBUILD_HOST_ARCH=
614set KBUILD_HOST_CPU=
615set KBUILD_TARGET=
616set KBUILD_TARGET_ARCH=
617set KBUILD_TARGET_CPU=
618set KBUILD_PATH=
619set KBUILD_BIN_PATH=
620if not "%_KBUILD_OPT_LEGACY%" == "1" goto skip_override_all
621set BUILD_TYPE=
622set BUILD_PLATFORM=
623set BUILD_PLATFORM_ARCH=
624set BUILD_PLATFORM_CPU=
625set BUILD_TARGET=
626set BUILD_TARGET_ARCH=
627set BUILD_TARGET_CPU=
628set PATH_KBUILD=
629set PATH_KBUILD_BIN=
630:skip_override_all
631
632REM Specific overrides, these implicitly deletes the legacy variable.
633if "%_KBUILD_OVERRIDE_TARGET%" == "1" set KBUILD_TARGET=%_KBUILD_TARGET%
634if "%_KBUILD_OVERRIDE_TARGET%" == "1" set BUILD_TARGET=
635if "%_KBUILD_OVERRIDE_TARGET_ARCH%" == "1" set KBUILD_TARGET_ARCH=%_KBUILD_TARGET_ARCH%
636if "%_KBUILD_OVERRIDE_TARGET_ARCH%" == "1" set BUILD_TARGET_ARCH=
637if "%_KBUILD_OVERRIDE_TYPE%" == "1" set KBUILD_TYPE=%_KBUILD_TYPE%
638if "%_KBUILD_OVERRIDE_TYPE%" == "1" set BUILD_TYPE=
639
640if not "%_KBUILD_OPT_FULL%" == "1" goto env_setup_done
641set KBUILD_PATH=%_KBUILD_PATH%
642set KBUILD_BIN_PATH=%_KBUILD_BIN_PATH%
643set KBUILD_TYPE=%_KBUILD_TYPE%
644set KBUILD_HOST=%_KBUILD_HOST%
645set KBUILD_HOST_ARCH=%_KBUILD_HOST_ARCH%
646set KBUILD_HOST_CPU=%_KBUILD_HOST_CPU%
647set KBUILD_TARGET=%_KBUILD_TARGET%
648set KBUILD_TARGET_ARCH=%_KBUILD_TARGET_ARCH%
649set KBUILD_TARGET_CPU=%_KBUILD_TARGET_CPU%
650
651if not "%_KBUILD_OPT_LEGACY%" == "1" goto env_setup_done
652set PATH_KBUILD=%_KBUILD_PATH%
653set PATH_KBUILD_BIN=%_KBUILD_BIN_PATH%
654set BUILD_TYPE=%_KBUILD_TYPE%
655set BUILD_PLATFORM=%_KBUILD_HOST%
656set BUILD_PLATFORM_ARCH=%_KBUILD_HOST_ARCH%
657set BUILD_PLATFORM_CPU=%_KBUILD_HOST_CPU%
658set BUILD_TARGET=%_KBUILD_TARGET%
659set BUILD_TARGET_ARCH=%_KBUILD_TARGET_ARCH%
660set BUILD_TARGET_CPU=%_KBUILD_TARGET_CPU%
661
662:env_setup_done
663if ".%1" == "." goto end
664
665REM Execute the specified command
666if ".%_KBUILD_OPT_DBG%" == ".1" echo dbg: Executing: %1 %2 %3 %4 %5 %6 %7 %8 %9
667set _KBUILD_CLEAN_GOTO=exec_command & goto cleanup
668:exec_command
669SET _KBUILD_CLEAN_GOTO=
670%1 %2 %3 %4 %5 %6 %7 %8 %9
671endlocal
672goto end_no_exit
673
674
675
676REM
677REM All exit paths leads to 'end' or 'failed' depending on
678REM which exit code is desire. This is required as we're manually
679REM performing environment cleanup (setlocal/endlocal is crap).
680REM
681:cleanup
682set _KBUILD_CURDIR=
683set _KBUILD_PATH=
684set _KBUILD_BIN_PATH=
685set _KBUILD_NEW_PATH=
686set _KBUILD_TYPE=
687set _KBUILD_TARGET=
688set _KBUILD_TARGET_ARCH=
689set _KBUILD_TARGET_CPU=
690set _KBUILD_HOST=
691set _KBUILD_HOST_ARCH=
692set _KBUILD_HOST_CPU=
693set _KBUILD_OPT_OVERRIDE_ALL=
694set _KBUILD_OVERRIDE_TYPE=
695set _KBUILD_OVERRIDE_TARGET=
696set _KBUILD_OVERRIDE_TARGET_ARCH=
697
698set _KBUILD_SELF=
699set _KBUILD_OPT_FULL=
700set _KBUILD_OPT_LEGACY=
701set _KBUILD_OPT_VAR=
702set _KBUILD_OPT_VALUE_ONLY=
703set _KBUILD_SHOW_VAR_PREFIX=
704set _KBUILD_OPT_DBG=
705set _KBUILD_OPT_OVERRIDE_ALL=
706
707set _KBUILD_TMP=
708set _KBUILD_VAR=
709set _KBUILD_VARS=
710goto %_KBUILD_CLEAN_GOTO%
711
712:failed
713set _KBUILD_CLEAN_GOTO=failed_done & goto cleanup
714:failed_done
715set _KBUILD_CLEAN_GOTO=
716exit /b 1
717
718:end
719set _KBUILD_CLEAN_GOTO=end_done & goto cleanup
720:end_done
721set _KBUILD_CLEAN_GOTO=
722exit /b 0
723
724:end_no_exit
725
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use