VirtualBox

source: vbox/trunk/src/VBox/ValidationKit/Makefile.kmk@ 94448

Last change on this file since 94448 was 94448, checked in by vboxsync, 3 years ago

Validation Kit/unit tests: Use a recipe file for RTIsoMaker and feed it in, instead of passing everything via command line. Needed when also including the unit tests, as the command line gets too long and will exceed the maximum allowed length on some OSes. bugref:10195

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 16.6 KB
Line 
1# $Id: Makefile.kmk 94448 2022-04-02 09:19:38Z vboxsync $
2## @file
3# VirtualBox Validation Kit.
4#
5
6#
7# Copyright (C) 2006-2022 Oracle Corporation
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.virtualbox.org. This file is free software;
11# you can redistribute it and/or modify it under the terms of the GNU
12# General Public License (GPL) as published by the Free Software
13# Foundation, in version 2 as it comes in the "COPYING" file of the
14# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16#
17# The contents of this file may alternatively be used under the terms
18# of the Common Development and Distribution License Version 1.0
19# (CDDL) only, as it comes in the "COPYING.CDDL" file of the
20# VirtualBox OSE distribution, in which case the provisions of the
21# CDDL are applicable instead of those of the GPL.
22#
23# You may elect to license modified versions of this file under the
24# terms and conditions of either the GPL or the CDDL or both.
25#
26
27SUB_DEPTH = ../../..
28include $(KBUILD_PATH)/subheader.kmk
29
30# Make sure our Config.kmk is included.
31ifndef VBOX_VALIDATIONKIT_CONFIG_KMK_INCLUDED
32 include $(PATH_SUB_CURRENT)/Config.kmk
33endif
34
35# Collect install targets
36VBOX_VALIDATIONKIT_INSTALLS := $(INSTALLS)
37
38#
39# Include sub-makefiles.
40#
41include $(PATH_SUB_CURRENT)/tests/Makefile.kmk
42ifneq ($(KBUILD_HOST),os2) # needs yasm
43 if1of ($(KBUILD_TARGET_ARCH), amd64 x86) # needs yasm
44 include $(PATH_SUB_CURRENT)/bootsectors/Makefile.kmk
45 endif
46endif
47include $(PATH_SUB_CURRENT)/utils/Makefile.kmk
48include $(PATH_SUB_CURRENT)/common/Makefile.kmk
49include $(PATH_SUB_CURRENT)/testboxscript/Makefile.kmk
50include $(PATH_SUB_CURRENT)/testdriver/Makefile.kmk
51include $(PATH_SUB_CURRENT)/testmanager/Makefile.kmk
52
53#
54# Globals.
55#
56
57# The current target is enabled by default.
58VBOX_WITH_VALIDATIONKIT_PACKING.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) = 1
59ifdef VBOX_WITH_VALIDATIONKIT_UNITTESTS_PACKING
60 VBOX_WITH_VALIDATIONKIT_UNITTESTS_PACKING.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) = 1
61endif
62
63#
64# Install the test driver framework.
65#
66INSTALLS += ValidationKit-testdriver
67ValidationKit-testdriver_TEMPLATE = VBoxValidationKitR3
68ValidationKit-testdriver_INST = $(INST_VALIDATIONKIT)testdriver/
69ValidationKit-testdriver_MODE = a+r,u+w
70ValidationKit-testdriver_SOURCES := \
71 $(PATH_SUB_CURRENT)/testdriver/__init__.py \
72 $(PATH_SUB_CURRENT)/testdriver/base.py \
73 $(PATH_SUB_CURRENT)/testdriver/btresolver.py \
74 $(PATH_SUB_CURRENT)/testdriver/reporter.py \
75 $(PATH_SUB_CURRENT)/testdriver/testfileset.py \
76 $(PATH_SUB_CURRENT)/testdriver/tst-txsclient.py \
77 $(PATH_SUB_CURRENT)/testdriver/txsclient.py \
78 $(PATH_SUB_CURRENT)/testdriver/vbox.py \
79 $(PATH_SUB_CURRENT)/testdriver/vboxcon.py \
80 $(PATH_SUB_CURRENT)/testdriver/vboxtestfileset.py \
81 $(PATH_SUB_CURRENT)/testdriver/vboxtestvms.py \
82 $(PATH_SUB_CURRENT)/testdriver/vboxwrappers.py \
83 $(PATH_SUB_CURRENT)/testdriver/winbase.py \
84 $(PATH_SUB_CURRENT)/testdriver/win-vbox-net-uninstall.ps1
85ValidationKit-testdriver_EXEC_SOURCES := \
86 $(PATH_SUB_CURRENT)/testdriver/vboxinstaller.py
87$(PATH_SUB_CURRENT)/testdriver/txsclient.py_VBOX_PYCHECKER_FLAGS = --no-reimport
88
89
90#
91# Packing target.
92#
93ifndef VBOX_WITHOUT_VALIDATIONKIT_ZIP
94
95 VBOX_VALIDATIONKIT_INSTALLS := $(filter-out $(VBOX_VALIDATIONKIT_INSTALLS), $(INSTALLS))
96
97 #
98 # VBoxValidationKit.zip.
99 # TODO: Don't pack the python stuff multiple times? Lazy works for now.
100 #
101 PACKING += $(PATH_OUT)/VBoxValidationKit.zip
102 $(PATH_OUT)/VBoxValidationKit.zip: \
103 $(VBOX_PATH_VALIDATIONKIT)/VBoxValidationKit.iso \
104 $(VBOX_PATH_VALIDATIONKIT)/ \
105 $$(foreach inst, $$(VBOX_VALIDATIONKIT_INSTALLS), \
106 $$(filter $(PATH_STAGE)/$(INST_VALIDATIONKIT)%, $$($$(inst)_2_STAGE_TARGETS)))
107 $(call MSG_L1,Packing the Test Suite $@)
108 $(QUIET)$(RM) -f $@
109 $(foreach os, darwin freebsd linux os2 solaris win,$(foreach arch, x86 amd64 \
110 ,$(if-expr defined(VBOX_WITH_VALIDATIONKIT_PACKING.$(os).$(arch))\
111 ,$(NLTAB)$(QUIET)$(REDIRECT) -C $(PATH_OUT_BASE)/$(os).$(arch)/$(KBUILD_TYPE)/ \
112 -- $(VBOX_ZIP) -r9 $@ $(INST_VALIDATIONKIT) -x '*.pyc',)))
113
114 #
115 # VBoxTestBoxScript.zip - For setting up the testboxes.
116 #
117 PACKING += $(PATH_OUT)/VBoxTestBoxScript.zip
118 $(PATH_OUT)/VBoxTestBoxScript.zip: \
119 $$(testboxscript_2_STAGE_TARGETS) \
120 $$(testboxscript-common_2_STAGE_TARGETS) \
121 $$(TestBoxHelper_2_STAGE_TARGETS)
122 $(call MSG_L1,Packing the TestBox Script files to $@)
123 $(QUIET)$(RM) -f $@
124 $(foreach os, darwin freebsd linux os2 solaris win,$(foreach arch, x86 amd64 \
125 ,$(if-expr defined(VBOX_WITH_VALIDATIONKIT_PACKING.$(os).$(arch))\
126 ,$(NLTAB)$(QUIET)$(REDIRECT) -C $(PATH_OUT_BASE)/$(os).$(arch)/$(KBUILD_TYPE)/ \
127 -- $(VBOX_ZIP) -r9X $@ $(INST_TESTBOXSCRIPT) -x '*.pyc',)))
128
129endif # !VBOX_WITHOUT_VALIDATIONKIT_ZIP
130
131
132#
133# Automatically lint python code and python unit tests during build.
134#
135if defined(VBOX_WITH_PYLINT) && !defined(VBOX_WITHOUT_AUTO_PYLINT)
136 OTHERS += $(PATH_TARGET)/pylint.run
137 OTHER_CLEAN += $(PATH_TARGET)/pylint.run
138 $(PATH_TARGET)/pylint.run: $$(filter-out %/testboxscript.o, $$(VBOX_VALIDATIONKIT_PYLINT_TARGETS))
139 $(QUIET)$(APPEND) -t "$@"
140endif
141if defined(VBOX_WITH_PYLINT) && !defined(VBOX_WITHOUT_AUTO_PYUNITTEST) # Tied to pylint for hysterical raisins.
142 OTHERS += $(PATH_TARGET)/pyunittest.run
143 OTHER_CLEAN += $(PATH_TARGET)/pyunittest.run
144 $(PATH_TARGET)/pyunittest.run: $$(VBOX_VALIDATIONKIT_PYUNITTEST_TARGETS)
145 $(QUIET)$(APPEND) -t "$@"
146endif
147
148$(evalcall def_vbox_validationkit_process_python_sources,FORCE)
149$(evalcall def_vbox_validationkit_process_js_sources,FORCE)
150include $(FILE_KBUILD_SUB_FOOTER)
151
152
153VBOX_VALIDATIONKIT_ISO_RSP = $(PATH_TARGET)/VBoxValidationKitISO.rsp
154OTHERS += $(VBOX_VALIDATIONKIT_ISO_RSP)
155OTHERS_CLEAN += $(VBOX_VALIDATIONKIT_ISO_RSP)
156
157#
158# Construct the file spec for creating the Validation Kit guest iso.
159#
160VBOX_VALIDATIONKIT_FILESPEC = \
161 valkit.txt=$(VBOX_PATH_VALIDATIONKIT_SRC)/docs/valkit.txt \
162 $(VBOX_PATH_VALIDATIONKIT)/vboxtxs-readme.txt
163ifneq ($(KBUILD_HOST),os2)
164 VBOX_VALIDATIONKIT_FILESPEC += \
165 $(VBOX_PATH_VALIDATIONKIT)/bootsectors/bootsector-pae.img \
166 $(VBOX_PATH_VALIDATIONKIT)/bootsectors/bootsector-shutdown.img
167endif
168
169VBOX_VALIDATIONKIT_FILESPEC_UNITTESTS =
170
171# Generate VBOX_PATH_VALIDATIONKIT.os.arch variables.
172$(foreach os, darwin freebsd linux os2 solaris win,$(foreach arch, x86 amd64, \
173 $(eval VBOX_PATH_VALIDATIONKIT.$(os).$(arch) = $(PATH_OUT_BASE)/$(os).$(arch)/$(KBUILD_TYPE)/$(INST_VALIDATIONKIT)$(os)/$(arch)) \
174))
175
176# Common files first.
177define def_vbox_validationkit_common_files
178 ifdef VBOX_WITH_VALIDATIONKIT_PACKING.$(os).$(arch)
179 VBOX_VALIDATIONKIT_FILESPEC += \
180 $$(VBOX_PATH_VALIDATIONKIT.$(os).$(arch))/exceptionsR3$(TMP_SUFF_EXE) \
181 $$(VBOX_PATH_VALIDATIONKIT.$(os).$(arch))/cpu-alloc-all-mem$(TMP_SUFF_EXE) \
182 $$(VBOX_PATH_VALIDATIONKIT.$(os).$(arch))/cpu-numa$(TMP_SUFF_EXE) \
183 $$(VBOX_PATH_VALIDATIONKIT.$(os).$(arch))/FsPerf$(TMP_SUFF_EXE) \
184 $$(VBOX_PATH_VALIDATIONKIT.$(os).$(arch))/IoPerf$(TMP_SUFF_EXE) \
185 $$(VBOX_PATH_VALIDATIONKIT.$(os).$(arch))/NetPerf$(TMP_SUFF_EXE) \
186 $$(VBOX_PATH_VALIDATIONKIT.$(os).$(arch))/LoadGenerator$(TMP_SUFF_EXE) \
187 $$(VBOX_PATH_VALIDATIONKIT.$(os).$(arch))/SerialTest$(TMP_SUFF_EXE) \
188 $$(VBOX_PATH_VALIDATIONKIT.$(os).$(arch))/TestExecService$(TMP_SUFF_EXE) \
189 $$(VBOX_PATH_VALIDATIONKIT.$(os).$(arch))/vts_rm$(TMP_SUFF_EXE) \
190 $$(VBOX_PATH_VALIDATIONKIT.$(os).$(arch))/vts_shutdown$(TMP_SUFF_EXE) \
191 $$(VBOX_PATH_VALIDATIONKIT.$(os).$(arch))/vts_tar$(TMP_SUFF_EXE) \
192 $$(VBOX_PATH_VALIDATIONKIT.$(os).$(arch))/xmmsaving$(TMP_SUFF_EXE)
193 if1of ($(arch), amd64) ## HACK ALERT! This mirrors VBOX_WITH_R0_MODULES logic in /Config.kmk.
194 VBOX_VALIDATIONKIT_FILESPEC += \
195 $$(VBOX_PATH_VALIDATIONKIT.$(os).$(arch))/loadgeneratorR0.r0
196 endif
197 ifn1of ($(os), os2) ## not compiling bootsectors, no yasm. could fix this better.
198 VBOX_VALIDATIONKIT_FILESPEC += \
199 $$(VBOX_PATH_VALIDATIONKIT.$(os).$(arch))/bs3-timing-1$(TMP_SUFF_EXE)
200 endif
201 ifn1of ($(os), os2 freebsd netbsd openbsd) ## must match utils/audio/Makefile.kmk
202 VBOX_VALIDATIONKIT_FILESPEC += \
203 $$(VBOX_PATH_VALIDATIONKIT.$(os).$(arch))/vkat$(TMP_SUFF_EXE)
204 endif
205 endif
206endef
207
208TMP_SUFF_EXE=.exe
209$(foreach os, os2 win,$(foreach arch, x86 amd64, \
210 $(eval $(def_vbox_validationkit_common_files)) \
211))
212TMP_SUFF_EXE=
213$(foreach os, darwin freebsd linux solaris,$(foreach arch, x86 amd64, \
214 $(eval $(def_vbox_validationkit_common_files)) \
215))
216
217# OS specific files - Linux
218ifdef VBOX_WITH_VALIDATIONKIT_PACKING.linux.x86
219 VBOX_VALIDATIONKIT_FILESPEC += \
220 $(VBOX_PATH_VALIDATIONKIT.linux.x86)/UsbTest
221endif
222ifdef VBOX_WITH_VALIDATIONKIT_PACKING.linux.amd64
223 VBOX_VALIDATIONKIT_FILESPEC += \
224 $(VBOX_PATH_VALIDATIONKIT.linux.amd64)/UsbTest
225endif
226ifdef VBOX_WITH_VALIDATIONKIT_PACKING.linux.x86
227 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.linux.x86)/../vboxtxs)
228 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.linux.x86)/../vboxtxs-nat)
229 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.linux.x86)/../vboxtxs.service)
230
231else ifdef VBOX_WITH_VALIDATIONKIT_PACKING.linux.amd64
232 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.linux.amd64)/../vboxtxs)
233 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.linux.amd64)/../vboxtxs-nat)
234 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.linux.amd64)/../vboxtxs.service)
235endif
236
237# OS specific files - OS/2
238ifdef VBOX_WITH_VALIDATIONKIT_PACKING.os2.x86
239 VBOX_VALIDATIONKIT_FILESPEC += \
240 $(VBOX_PATH_VALIDATIONKIT.os2.x86)/libc06.dll \
241 $(VBOX_PATH_VALIDATIONKIT.os2.x86)/libc061.dll \
242 $(VBOX_PATH_VALIDATIONKIT.os2.x86)/libc062.dll \
243 $(VBOX_PATH_VALIDATIONKIT.os2.x86)/libc063.dll \
244 $(VBOX_PATH_VALIDATIONKIT.os2.x86)/libc064.dll \
245 $(VBOX_PATH_VALIDATIONKIT.os2.x86)/libc065.dll \
246 $(VBOX_PATH_VALIDATIONKIT.os2.x86)/libc066.dll
247endif
248
249# OS specific files - Solaris
250ifdef VBOX_WITH_VALIDATIONKIT_PACKING.solaris.x86
251 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.solaris.x86)/../vboxtxs.sh)
252 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.solaris.x86)/../vboxtxs.xml)
253 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.solaris.x86)/../vboxtxs-sol10.xml)
254else ifdef VBOX_WITH_VALIDATIONKIT_PACKING.solaris.amd64
255 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.solaris.amd64)/../vboxtxs.sh)
256 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.solaris.amd64)/../vboxtxs.xml)
257 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.solaris.amd64)/../vboxtxs-sol10.xml)
258endif
259
260# OS specific files - Windows
261ifdef VBOX_WITH_VALIDATIONKIT_PACKING.win.x86
262 VBOX_VALIDATIONKIT_FILESPEC += \
263 $(VBOX_PATH_VALIDATIONKIT.win.x86)/ntSetFreq.exe \
264 $(VBOX_PATH_VALIDATIONKIT.win.x86)/ntTimeSources.exe
265 # Disabled for now; does not work without WinMM.dll export verification files.
266 #ifdef VBOX_WITH_AUDIO_VALIDATIONKIT
267 # VBOX_VALIDATIONKIT_FILESPEC += \
268 # $(VBOX_PATH_VALIDATIONKIT.win.x86)/ntPlayToneWaveX.exe
269 #endif
270endif
271ifdef VBOX_WITH_VALIDATIONKIT_PACKING.win.amd64
272 VBOX_VALIDATIONKIT_FILESPEC += \
273 $(VBOX_PATH_VALIDATIONKIT.win.amd64)/ntSetFreq.exe \
274 $(VBOX_PATH_VALIDATIONKIT.win.amd64)/ntTimeSources.exe
275 # Disabled for now; does not work without WinMM.dll export verification files.
276 #ifdef VBOX_WITH_AUDIO_VALIDATIONKIT
277 # VBOX_VALIDATIONKIT_FILESPEC += \
278 # $(VBOX_PATH_VALIDATIONKIT.win.amd64)/ntPlayToneWaveX.exe
279 #endif
280endif
281ifdef VBOX_WITH_VALIDATIONKIT_PACKING.win.x86
282 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.win.x86)/../vboxtxs.cmd)
283 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.win.x86)/../vboxtxs.reg)
284 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.win.x86)/../vboxtxs-nat.cmd)
285 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.win.x86)/../vboxtxs-nat.reg)
286else ifdef VBOX_WITH_VALIDATIONKIT_PACKING.win.amd64
287 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.win.amd64)/../vboxtxs.cmd)
288 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.win.amd64)/../vboxtxs.reg)
289 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.win.amd64)/../vboxtxs-nat.cmd)
290 VBOX_VALIDATIONKIT_FILESPEC += $(abspath $(VBOX_PATH_VALIDATIONKIT.win.amd64)/../vboxtxs-nat.reg)
291endif
292
293#
294# If enabled, this includes the unit tests located in the $(PATH_OUT)/testcase directory.
295# This is useful if we want to run those on platforms where we don't have / support
296# any host support anymore (like Windows XP, for instance).
297#
298# Note that executing the tests require an additional component (tdUnitTest test driver)
299# which runs as part of the Validation Kit.
300#
301# See @bugref{10195}
302#
303ifdef VBOX_WITH_VALIDATIONKIT_UNITTESTS_PACKING
304
305# Only include testcases being on the whitelist.
306TMP_UNITTESTS_WHITELIST := \
307 tstFile \
308 tstFileLock \
309 tstRTLocalIpc \
310 tstRTPathQueryInfo \
311 tstRTPipe \
312 tstRTProcCreateEx \
313 tstRTProcCreatePrf \
314 tstRTProcQueryUsername \
315 tstTime-2 \
316 tstTime-3 \
317 tstTime-4 \
318 tstTimer \
319 tstThread-1 \
320 tstUtf8
321
322TMP_UNITTESTS_WHITELIST.linux += \
323 tstRTProcWait \
324 tstRTProcIsRunningByName
325
326TMP_UNITTESTS_WHITELIST.win += \
327 tstRTProcWait
328
329#
330# Included needed dependencies like VBoxRT (VBoxVMM?).
331# Needs careful checking for each and every testcase being run.
332# Try to get and include what we have by using wildcards.
333#
334## @todo Also include R0 and hardening stuff?
335#
336TMP_UNITTESTS_DEPS_LIB := \
337 VBoxRT
338
339define def_vbox_validationkit_unittests
340 ifeq ($(os),darwin)
341 TMP_UNITTESTS_PATH_BIN = $(PATH_OUT_BASE)/$(os).$(arch)/$(KBUILD_TYPE)/dist/VirtualBox.app/Contents/MacOS/
342 else
343 TMP_UNITTESTS_PATH_BIN = $(PATH_OUT_BASE)/$(os).$(arch)/$(KBUILD_TYPE)/bin/
344 endif
345 VBOX_VALIDATIONKIT_FILESPEC_UNITTESTS += \
346 $(foreach test_whitelist, $(TMP_UNITTESTS_WHITELIST), \
347 $$(wildcard $(TMP_UNITTESTS_PATH_BIN)/testcase/$(test_whitelist)$(TMP_SUFF_EXE)))
348 VBOX_VALIDATIONKIT_FILESPEC_UNITTESTS += \
349 $(foreach file_dep, $(TMP_UNITTESTS_DEPS_LIB), \
350 $$(wildcard $(TMP_UNITTESTS_PATH_BIN)/$(file_dep)$(TMP_SUFF_LIB)))
351endef
352
353TMP_SUFF_EXE=.exe
354TMP_SUFF_LIB=.dll
355$(foreach os, win,$(foreach arch, x86 amd64, \
356 $(eval $(def_vbox_validationkit_unittests)) \
357))
358TMP_SUFF_EXE=
359TMP_SUFF_LIB=.so
360$(foreach os, freebsd linux solaris,$(foreach arch, x86 amd64, \
361 $(eval $(def_vbox_validationkit_unittests)) \
362))
363TMP_SUFF_EXE=
364TMP_SUFF_LIB=.dylib
365$(foreach os, darwin,$(foreach arch, amd64, \
366 $(eval $(def_vbox_validationkit_unittests)) \
367))
368endif # VBOX_WITH_VALIDATIONKIT_UNITTESTS_PACKING
369
370#
371# Build the Validation Kit guest ISO recipe consumed by RTIsoMaker.
372#
373# We need this recipe file because passing all those arguments to RTIsoMaker will blow up
374# the maximum command line length on some OSes.
375#
376$(VBOX_VALIDATIONKIT_ISO_RSP): | $$(dir $$@)
377 $(call MSG_L1,Creating Validation Kit guest ISO recipe $@)
378 $(APPEND) -nt $@ \
379 --iso-level 3 \
380 --rock-ridge \
381 --joliet \
382 --rational-attribs \
383 --random-order-verification 2048 \
384 $(foreach spec,$(VBOX_VALIDATIONKIT_FILESPEC) \
385 ,$(if $(findstring =,$(spec)), $(spec), /$(lastword $(subst /$(INST_VALIDATIONKIT), ,$(spec))=$(spec))) ) \
386 $(foreach spec,$(VBOX_VALIDATIONKIT_FILESPEC_UNITTESTS) \
387 ,$(if $(findstring =,$(spec)), $(spec), /$(lastword $(subst $(PATH_OUT_BASE), testcase,$(spec))=$(spec))) ) \
388 $(foreach spec,$(filter-out %.txt %.dll %.xml %.reg %.img, $(VBOX_VALIDATIONKIT_FILESPEC)) \
389 ,--chmod=a+x:/$(lastword $(if $(findstring =,$(spec)), \
390 $(subst =, $(SP), $(spec)), \
391 $(subst /$(INST_VALIDATIONKIT), ,$(spec))))) \
392 $(foreach spec,$(filter-out %.txt %.dll %.xml %.reg %.img, $(VBOX_VALIDATIONKIT_FILESPEC_UNITTESTS)) \
393 ,--chmod=a+x:/$(lastword $(if $(findstring =,$(spec)), \
394 $(subst =, $(SP), $(spec)), \
395 $(subst $(PATH_OUT_BASE), testcase,$(spec))))) \
396 --volume-id \"VBOXVALK_$(VBOX_SVN_REV)_$(VBOX_VERSION_STRING_RAW)\" \
397 --name-setup joliet \
398 --volume-id \"VBoxValK $(VBOX_SVN_REV)\"
399
400#
401# Build the Validation Kit guest ISO.
402#
403$(VBOX_PATH_VALIDATIONKIT)/VBoxValidationKit.iso: \
404 $(filter-out %=deleteme=, $(subst =,=deleteme= , $(VBOX_VALIDATIONKIT_FILESPEC))) \
405 $(VBOX_SVN_REV_KMK) \
406 $(VBOX_PATH_VALIDATIONKIT_SRC)/Makefile.kmk \
407 $(VBOX_VALIDATIONKIT_ISO_RSP) \
408 | $(if-expr defined(VBOX_USE_RTISOMAKER),$(VBOX_RTISOMAKER),)
409 $(call MSG_TOOL,RTIsoMaker,,$@)
410 $(QUIET)$(MKDIR) -p $(@D)
411ifneq ($(KBUILD_TARGET),os2)
412 $(QUIET)$(ECHO) VBOX_VALIDATIONKIT_FILESPEC $(VBOX_VALIDATIONKIT_FILESPEC)
413endif
414 $(QUIET)$(ECHO) VBOX_VALIDATIONKIT_FILESPEC_UNITTESTS $(VBOX_VALIDATIONKIT_FILESPEC_UNITTESTS)
415 $(VBOX_RTISOMAKER) \
416 @$(VBOX_VALIDATIONKIT_ISO_RSP) \
417 --output $@
418
419
420
421# Alias for creating the iso.
422.PHONY: $(QUIET)$(RM) -f $(VBOX_VALIDATIONKIT_ISO_RSP) validationkit-iso
423validationkit-iso: $(VBOX_PATH_VALIDATIONKIT)/VBoxValidationKit.iso
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette