VirtualBox

source: vbox/trunk/src/VBox/VMM/testcase/Makefile.kmk@ 36915

Last change on this file since 36915 was 36864, checked in by vboxsync, 14 years ago

tstX86-1: made it work on darwin.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 14.1 KB
Line 
1# $Id: Makefile.kmk 36864 2011-04-28 00:55:05Z vboxsync $
2## @file
3# Sub-Makefile for the VMM testcases.
4#
5
6#
7# Copyright (C) 2006-2010 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
18SUB_DEPTH = ../../../..
19include $(KBUILD_PATH)/subheader.kmk
20
21#
22# Target lists.
23#
24PROGRAMS += tstVMStructSize tstAsmStructs
25ifdef VBOX_WITH_RAW_MODE
26 PROGRAMS += tstVMStructRC tstAsmStructsRC
27endif
28ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
29 PROGRAMS += tstGlobalConfig tstInstrEmul
30 ifdef VBOX_WITH_RAW_MODE
31 PROGRAMS += tstVMM tstVMM-HwAccm
32 ifneq ($(KBUILD_TARGET),win)
33 PROGRAMS += tstVMMFork
34 endif
35 endif
36 ifdef VBOX_WITH_TESTCASES
37 PROGRAMS += \
38 tstCFGM \
39 tstCompressionBenchmark \
40 tstSSM \
41 tstMMHyperHeap \
42 tstVMREQ \
43 tstCompiler \
44 tstVMMR0CallHost-1 \
45 tstVMMR0CallHost-2
46 ifn1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), solaris.x86 solaris.amd64 win.amd64 ) ## TODO: Fix the code.
47 PROGRAMS += tstX86-1
48 endif
49 ifneq ($(KBUILD_TARGET),l4)
50 PROGRAMS += tstAnimate
51 endif
52 ifdef VBOX_WITH_RAW_MODE
53 PROGRAMS += tstMicro
54 SYSMODS += tstMicroRC
55 endif
56 ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
57 PROGRAMS += tstPDMAsyncCompletion
58 PROGRAMS += tstPDMAsyncCompletionStress
59 endif
60 endif # VBOX_WITH_TESTCASES
61endif # !VBOX_ONLY_EXTPACKS_USE_IMPLIBS
62
63# Where we put our temporary files (just for simplicity)
64VBOX_VMM_TESTCASE_OUT_DIR := $(PATH_TARGET)/VMM
65BLDDIRS += $(VBOX_VMM_TESTCASE_OUT_DIR)
66
67#
68# We setup two 'other' targets for executing the two structure & alignment
69# validation testcases. Perhaps a bit hackish, but extremely useful.
70#
71ifeq ($(KBUILD_TARGET),$(KBUILD_HOST))
72 ifeq ($(filter-out x86.x86 amd64.amd64 x86.amd64, $(KBUILD_TARGET_ARCH).$(KBUILD_HOST_ARCH)),)
73 OTHERS += \
74 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructs.run \
75 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructSize.run
76 endif
77endif
78
79# The normal testing pass.
80TESTING += \
81 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructs.run \
82 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructSize.run
83ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
84 TESTING += \
85 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstInstrEmul.run
86endif
87
88OTHER_CLEAN += \
89 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructs.run \
90 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructSize.run \
91 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstInstrEmul.run \
92 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructs.h \
93 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsAsm.o \
94 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsAsm.mac \
95 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsAsm.mac.o \
96 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsAsm.mac.lst \
97 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructs.h.dump \
98 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsRC.h \
99 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsHC.h \
100 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructRC.h
101
102#
103# Globals
104#
105VBOX_PATH_VMM_SRC = $(PATH_ROOT)/src/VBox/VMM
106
107#
108# Targets
109#
110ifdef VBOX_WITH_RAW_MODE
111 tstVMStructRC_TEMPLATE = VBoxRcExe
112 tstVMStructRC_DEFS = IN_VMM_RC IN_DIS IN_RT_RC VBOX_WITH_RAW_MODE
113 ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.x86)
114 tstVMStructRC_DEFS += \
115 VBOX_WITH_2X_4GB_ADDR_SPACE VBOX_WITH_2X_4GB_ADDR_SPACE_IN_RC \
116 VBOX_WITH_HYBRID_32BIT_KERNEL VBOX_WITH_HYBRID_32BIT_KERNEL_IN_RC
117 endif
118 ifdef VBOX_WITH_R0_LOGGING
119 tstVMStructRC_DEFS += VBOX_WITH_R0_LOGGING
120 endif
121 ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
122 tstVMStructRC_DEFS += VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
123 endif
124 tstVMStructRC_SOURCES = tstVMStructRC.cpp
125 tstVMStructRC_INCS = \
126 $(VBOX_PATH_VMM_SRC)/include \
127 $(VBOX_PATH_VMM_SRC)/PATM
128endif
129
130tstVMStructSize_TEMPLATE= VBOXR3AUTOTST
131tstVMStructSize_DEFS = IN_VMM_R3 IN_DIS
132ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.x86)
133 tstVMStructSize_DEFS += \
134 VBOX_WITH_2X_4GB_ADDR_SPACE VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R3 \
135 VBOX_WITH_HYBRID_32BIT_KERNEL VBOX_WITH_HYBRID_32BIT_KERNEL_IN_R3
136endif
137ifdef VBOX_WITH_RAW_MODE
138 tstVMStructSize_DEFS += VBOX_WITH_RAW_MODE
139endif
140tstVMStructSize_INCS = \
141 $(VBOX_PATH_VMM_SRC)/include \
142 $(VBOX_PATH_VMM_SRC)/PATM \
143 $(VBOX_VMM_TESTCASE_OUT_DIR)
144tstVMStructSize_SOURCES = tstVMStructSize.cpp
145ifdef VBOX_WITH_RAW_MODE
146 tstVMStructSize.cpp_DEPS= $(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructRC.h
147endif
148ifdef VBOX_WITH_R0_LOGGING
149 tstVMStructSize_DEFS += VBOX_WITH_R0_LOGGING
150endif
151ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
152 tstVMStructSize_DEFS += VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
153endif
154
155tstAsmStructs_TEMPLATE = VBOXR3AUTOTST
156tstAsmStructs_DEFS = IN_VMM_R3 IN_DIS
157ifdef VBOX_WITH_RAW_MODE
158 tstAsmStructs_DEFS += VBOX_WITH_RAW_MODE
159endif
160ifdef VBOX_WITH_R0_LOGGING
161 tstAsmStructs_DEFS += VBOX_WITH_R0_LOGGING
162endif
163ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
164 tstAsmStructs_DEFS += VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
165endif
166tstAsmStructs_INCS = \
167 $(VBOX_PATH_VMM_SRC)/include \
168 $(VBOX_VMM_TESTCASE_OUT_DIR)
169tstAsmStructs_SOURCES = tstAsmStructs.cpp
170tstAsmStructs.cpp_DEPS = $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsHC.h
171
172ifdef VBOX_WITH_RAW_MODE
173 tstAsmStructsRC_TEMPLATE= VBoxRcExe
174 tstAsmStructsRC_DEFS = IN_VMM_RC IN_DIS IN_RT_RC VBOX_WITH_RAW_MODE
175 ifdef VBOX_WITH_R0_LOGGING
176 tstAsmStructsRC_DEFS += VBOX_WITH_R0_LOGGING
177 endif
178 ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
179 tstAsmStructsRC_DEFS += VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
180 endif
181 tstAsmStructsRC_INCS = \
182 $(VBOX_PATH_VMM_SRC)/include \
183 $(VBOX_VMM_TESTCASE_OUT_DIR)
184 tstAsmStructsRC_SOURCES = tstAsmStructs.cpp
185 tstAsmStructs.cpp_DEPS += $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsRC.h
186endif # VBOX_WITH_RAW_MODE
187
188
189tstGlobalConfig_TEMPLATE= VBOXR3TSTEXE
190tstGlobalConfig_SOURCES = tstGlobalConfig.cpp
191tstGlobalConfig_LIBS = $(LIB_RUNTIME)
192
193tstMMHyperHeap_TEMPLATE = VBOXR3TSTEXE
194tstMMHyperHeap_SOURCES = tstMMHyperHeap.cpp
195tstMMHyperHeap_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME)
196
197tstSSM_TEMPLATE = VBOXR3TSTEXE
198tstSSM_INCS = $(VBOX_PATH_VMM_SRC)/include
199tstSSM_SOURCES = tstSSM.cpp
200tstSSM_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME)
201
202tstInstrEmul_TEMPLATE = VBOXR3EXE
203tstInstrEmul_SOURCES = tstInstrEmul.cpp ../VMMAll/EMAllA.asm
204tstInstrEmul_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME)
205
206tstCFGM_TEMPLATE = VBOXR3TSTEXE
207tstCFGM_SOURCES = tstCFGM.cpp
208tstCFGM_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME)
209
210tstCompressionBenchmark_TEMPLATE = VBOXR3TSTEXE
211tstCompressionBenchmark_SOURCES = tstCompressionBenchmark.cpp
212
213tstVMMR0CallHost-1_TEMPLATE = VBOXR3TSTEXE
214tstVMMR0CallHost-1_DEFS = VMM_R0_NO_SWITCH_STACK
215tstVMMR0CallHost-1_INCS = $(VBOX_PATH_VMM_SRC)/include
216tstVMMR0CallHost-1_SOURCES = \
217 tstVMMR0CallHost-1.cpp
218tstVMMR0CallHost-1_SOURCES.amd64 = \
219 $(VBOX_PATH_VMM_SRC)/VMMR0/VMMR0JmpA-amd64.asm
220tstVMMR0CallHost-1_SOURCES.x86 = \
221 $(VBOX_PATH_VMM_SRC)/VMMR0/VMMR0JmpA-x86.asm
222
223tstVMMR0CallHost-2_EXTENDS = tstVMMR0CallHost-1
224tstVMMR0CallHost-2_DEFS = VMM_R0_SWITCH_STACK
225
226tstVMREQ_TEMPLATE = VBOXR3EXE
227tstVMREQ_SOURCES = tstVMREQ.cpp
228tstVMREQ_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME)
229
230tstAnimate_TEMPLATE = VBOXR3EXE
231tstAnimate_SOURCES = tstAnimate.cpp
232tstAnimate_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME)
233
234tstCompiler_TEMPLATE = VBOXR3TSTEXE
235tstCompiler_SOURCES = tstCompiler.cpp
236tstCompiler_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME)
237
238tstX86-1_TEMPLATE = VBOXR3TSTEXE
239tstX86-1_SOURCES = tstX86-1.cpp tstX86-1A.asm
240tstX86-1_LIBS = $(LIB_RUNTIME)
241
242ifdef VBOX_WITH_RAW_MODE
243
244 tstVMM_TEMPLATE = VBOXR3EXE
245 tstVMM_SOURCES = tstVMM.cpp
246 tstVMM_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME)
247
248 tstVMM-HwAccm_TEMPLATE = VBOXR3EXE
249 tstVMM-HwAccm_SOURCES = tstVMM-HwAccm.cpp
250 tstVMM-HwAccm_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME)
251
252 tstVMMFork_TEMPLATE = VBOXR3EXE
253 tstVMMFork_SOURCES = tstVMMFork.cpp
254 tstVMMFork_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME)
255
256 tstMicro_TEMPLATE = VBOXR3EXE
257 tstMicro_SOURCES = tstMicro.cpp
258 tstMicro_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME)
259
260 tstMicroRC_TEMPLATE = VBoxRc
261 tstMicroRC_SOURCES = tstMicroRC.cpp tstMicroRCA.asm
262 tstMicroRC_DEFS =
263 tstMicroRC_INCS = $(VBOX_PATH_VMM_SRC)/testcase
264 ifeq ($(VBOX_LDR_FMT32),pe)
265 tstMicroRC_LDFLAGS = -Entry:tstMicroRC
266 endif
267 tstMicroRC_SYSSUFF = .gc
268 tstMicroRC_LIBS = \
269 $(PATH_LIB)/DisasmRC$(VBOX_SUFF_LIB) \
270 $(PATH_LIB)/RuntimeRC$(VBOX_SUFF_LIB)
271 ifeq ($(filter-out pe lx,$(VBOX_LDR_FMT32)),)
272 tstMicroRC_LIBS += \
273 $(PATH_LIB)/VMMRCBuiltin$(VBOX_SUFF_LIB) \
274 $(LIB_VMMGC)
275 endif
276 tstMicroRC_SOURCES.win = tstMicroRC.def
277
278endif # VBOX_WITH_RAW_MODE
279
280ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
281 tstPDMAsyncCompletion_TEMPLATE = VBOXR3EXE
282 tstPDMAsyncCompletion_INCS = $(VBOX_PATH_VMM_SRC)/include
283 tstPDMAsyncCompletion_SOURCES = tstPDMAsyncCompletion.cpp
284 tstPDMAsyncCompletion_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME)
285
286 tstPDMAsyncCompletionStress_TEMPLATE = VBOXR3EXE
287 tstPDMAsyncCompletionStress_INCS = $(VBOX_PATH_VMM_SRC)/include
288 tstPDMAsyncCompletionStress_SOURCES = tstPDMAsyncCompletionStress.cpp
289 tstPDMAsyncCompletionStress_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME)
290endif
291
292include $(KBUILD_PATH)/subfooter.kmk
293
294
295#
296# Run rule for tstInstrEmul.
297#
298$(VBOX_VMM_TESTCASE_OUT_DIR)/tstInstrEmul.run: $$(INSTARGET_tstInstrEmul) | $$(dir $$@)
299 $(QUIET)$(RM) -f $@
300 $(QUIET)$(REDIRECT) -E 'VBOX_LOG_FLAGS=disabled' -E 'VBOX_LOG_DEST=nofile' \
301 $(if $(eq $(KBUILD_TARGET),darwin), -E 'DYLD_FALLBACK_LIBRARY_PATH=$(dir $(LIB_RUNTIME))') \
302 -- \
303 $(INSTARGET_tstInstrEmul)
304 $(QUIET)$(APPEND) "$@" "done"
305
306
307#
308# Some handcrafted support targets for tstAsmStructs.
309#
310
311ifeq ($(KBUILD_HOST),win)
312 ifndef TOOL_MINGW32
313 include $(KBUILD_PATH)/tools/MINGW32.kmk
314 endif
315 VBOX_NM ?= $(PATH_TOOL_MINGW32)/bin/nm.exe -p
316else
317 VBOX_NM ?= nm -p
318endif
319
320MY_ASA_ASM_STUFF = \
321 $(addprefix -D, \
322 $(DEFS) \
323 $(DEFS.$(KBUILD_TYPE)) \
324 $(DEFS.$(KBUILD_TARGET)) \
325 IN_RING3 $(ARCH_BITS_DEFS) \
326 $(DEFS.$(KBUILD_TARGET_ARCH)) \
327 $(DEFS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) \
328 $(if $(VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI),VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI,) \
329 ) \
330 -f $(if $(eq $(KBUILD_TARGET),darwin),macho,elf) \
331 $(foreach inc,$(INCS) $(VBOX_PATH_VMM_SRC)/testcase $(VBOX_PATH_VMM_SRC)/include $(VBOX_VMM_TESTCASE_OUT_DIR)\
332 ,-I$(inc)/)
333
334# 1a. make a header file which makes all the structures+members globals.
335$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsAsm.mac: \
336 $(VBOX_PATH_VMM_SRC)/testcase/tstAsmStructsAsm.asm \
337 $(VBOX_PATH_VMM_SRC)/testcase/tstAsmStructsAsm-lst.sed \
338 $(DEPTH)/include/iprt/asmdefs.mac \
339 $(DEPTH)/include/VBox/vmm/cpum.mac \
340 $(DEPTH)/include/VBox/vmm/vm.mac \
341 $(DEPTH)/include/VBox/sup.mac \
342 $(DEPTH)/include/VBox/x86.mac \
343 $(VBOX_PATH_VMM_SRC)/include/CPUMInternal.mac \
344 $(VBOX_PATH_VMM_SRC)/include/TRPMInternal.mac \
345 $(VBOX_PATH_VMM_SRC)/include/HWACCMInternal.mac \
346 $(VBOX_PATH_VMM_SRC)/include/VMMInternal.mac \
347 $(VBOX_PATH_VMM_SRC)/testcase/Makefile.kmk \
348 $(PATH_ROOT)/Config.kmk $(LOCALCFG) $(AUTOCFG) \
349 | $$(dir $$@)
350 $(call MSG_GENERATE,tstVMStructSize,$@,$<)
351ifndef DONT_USE_YASM
352 $(QUIET)$(TOOL_YASM_AS) $(MY_ASA_ASM_STUFF) -o [email protected] -l [email protected] $<
353 $(SED) -f $(VBOX_PATH_VMM_SRC)/testcase/tstAsmStructsAsm-lst.sed --output $@ [email protected]
354else
355 $(QUIET)$(TOOL_NASM_AS) -g $(MY_ASA_ASM_STUFF) -o [email protected] -l [email protected] $<
356 $(VBOX_NM) [email protected] | $(SED) \
357 -e '/[0-9a-fA-F][0-9a-fA-F]* [^a] /d' \
358 -e 's/[0-9a-fA-F][0-9a-fA-F]* a \([^ ]*\)/global \1/' \
359 > $@
360endif
361
362# 1b. make an elf/macho object containing the offsets.
363$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsAsm.o: \
364 $(VBOX_PATH_VMM_SRC)/testcase/tstAsmStructsAsm.asm \
365 $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsAsm.mac \
366 $(VBOX_PATH_VMM_SRC)/testcase/Makefile.kmk \
367 | $$(dir $$@)
368 $(call MSG_COMPILE,tstAsmStructsasm,$<,$@,AS)
369ifndef DONT_USE_YASM
370 $(QUIET)$(TOOL_YASM_AS) $(MY_ASA_ASM_STUFF) -DDO_GLOBALS -o $@ $<
371else
372 $(QUIET)$(TOOL_NASM_AS) $(MY_ASA_ASM_STUFF) -DDO_GLOBALS -o $@ $<
373endif
374
375# 2. use nm and sed to transform this into the header we want.
376$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsHC.h: $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsAsm.o
377 $(call MSG_GENERATE,tstVMStructSize,$@,$<)
378 $(QUIET)$(RM) -f $@ [email protected] [email protected]
379 $(QUIET)$(REDIRECT) -wo [email protected] -- $(VBOX_NM) $<
380 $(QUIET)$(SED) -e '/STAMPROFILEADV/d' \
381 -e '/00[0-9a-fA-F]* [aA] [^_.]*\./!d' -e 's/\(00[0-9a-fA-F]*\) [aA] \([^.]*\)\.\(.*$$\)/ CHECK_OFF(\2, 0x0\1, \3);/' \
382 --output [email protected] [email protected]
383 $(QUIET)$(SED) -e '/VM_size$$/d' -e '/VMCPU_size$$/d' \
384 -e '/00[0-9a-fA-F]* [aA] [^_.]*_size$$/!d' -e 's/\(00[0-9a-fA-F]*\) [aA] \([^_.]*\)_size/ CHECK_SIZE(\2, 0x0\1);/' \
385 --append [email protected] [email protected]
386 $(QUIET)$(MV) -f [email protected] $@
387 $(QUIET)$(RM) -f [email protected]
388
389ifdef VBOX_WITH_RAW_MODE
390# 3. transform the HC header into a RC one by omitting some HC only structures.
391$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsRC.h: $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsHC.h
392 $(call MSG_GENERATE,tstVMStructSize,$@,$<)
393 $(QUIET)$(SED) -e '/VMMSWITCHERDEF/d' --output $@ $^
394endif
395
396# 4. run it.
397$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructs.run: \
398 $$(INSTARGET_tstAsmStructs) \
399 $(if-expr defined(VBOX_WITH_RAW_MODE),$$(INSTARGET_tstAsmStructsRC),)
400 $(QUIET)$(RM) -f $@
401 $(INSTARGET_tstAsmStructs)
402ifdef VBOX_WITH_RAW_MODE
403 $(INSTARGET_tstAsmStructsRC)
404endif
405 $(QUIET)$(APPEND) "$@" "done"
406
407
408
409#
410# Run rule for tstVMStructSize.
411#
412
413ifdef VBOX_WITH_RAW_MODE
414# 1. Manually dump selected structures and members.
415$(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructRC.h: $$(INSTARGET_tstVMStructRC) | $$(dir $$@)
416 $(call MSG_GENERATE,tstVMStructSize,$@)
417 $(QUIET)$(REDIRECT) -wo $@ -- $<
418endif # VBOX_WITH_RAW_MODE
419
420# 2. run it.
421$(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructSize.run: $$(INSTARGET_tstVMStructSize) | $$(dir $$@)
422 $(QUIET)$(RM) -f $@
423 $<
424 $(QUIET)$(APPEND) "$@" "done"
425
426# alias for the two struct tests.
427run-struct-tests: $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructs.run $(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructSize.run
428
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