1
# $Id: Makefile.kmk 35346 2010-12-27 16:13:13Z vboxsync $
3
3
# Sub-Makefile for the VMM testcases.
7
# Copyright (C) 2006-2007 Oracle Corporation
7
# Copyright (C) 2006-2010 Oracle Corporation
9
9
# This file is part of VirtualBox Open Source Edition (OSE), as
10
10
# available from http://www.virtualbox.org. This file is free software;
24
PROGRAMS += tstVMStructSize tstAsmStructs tstGlobalConfig tstInstrEmul
24
PROGRAMS += tstVMStructSize tstAsmStructs
25
25
ifdef VBOX_WITH_RAW_MODE
26
PROGRAMS += tstVMStructRC tstAsmStructsRC tstVMM tstVMM-HwAccm
27
ifneq ($(KBUILD_TARGET),win)
28
PROGRAMS += tstVMMFork
26
PROGRAMS += tstVMStructRC tstAsmStructsRC
31
ifdef VBOX_WITH_TESTCASES
34
tstCompressionBenchmark \
41
ifneq ($(KBUILD_TARGET),l4)
42
PROGRAMS += tstAnimate
28
ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
29
PROGRAMS += tstGlobalConfig tstInstrEmul
44
30
ifdef VBOX_WITH_RAW_MODE
48
ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
49
PROGRAMS += tstPDMAsyncCompletion
50
PROGRAMS += tstPDMAsyncCompletionStress
52
endif # VBOX_WITH_TESTCASES
31
PROGRAMS += tstVMM tstVMM-HwAccm
32
ifneq ($(KBUILD_TARGET),win)
33
PROGRAMS += tstVMMFork
36
ifdef VBOX_WITH_TESTCASES
39
tstCompressionBenchmark \
46
ifneq ($(KBUILD_TARGET),l4)
47
PROGRAMS += tstAnimate
49
ifdef VBOX_WITH_RAW_MODE
53
ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
54
PROGRAMS += tstPDMAsyncCompletion
55
PROGRAMS += tstPDMAsyncCompletionStress
57
endif # VBOX_WITH_TESTCASES
58
endif # !VBOX_ONLY_EXTPACKS_USE_IMPLIBS
54
60
# Where we put our temporary files (just for simplicity)
55
61
VBOX_VMM_TESTCASE_OUT_DIR := $(PATH_TARGET)/VMM
70
76
# The normal testing pass.
72
78
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructs.run \
73
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructSize.run \
74
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstInstrEmul.run
79
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructSize.run
80
ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
82
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstInstrEmul.run
77
86
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructs.run \
110
119
tstVMStructRC_DEFS += VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
112
121
tstVMStructRC_SOURCES = tstVMStructRC.cpp
113
tstVMStructRC_INCS = $(VBOX_PATH_VMM_SRC) $(VBOX_PATH_VMM_SRC)/PATM
122
tstVMStructRC_INCS = \
123
$(VBOX_PATH_VMM_SRC)/include \
124
$(VBOX_PATH_VMM_SRC)/PATM
116
127
tstVMStructSize_TEMPLATE= VBOXR3AUTOTST
123
134
ifdef VBOX_WITH_RAW_MODE
124
135
tstVMStructSize_DEFS += VBOX_WITH_RAW_MODE
126
tstVMStructSize_INCS = $(VBOX_PATH_VMM_SRC) $(VBOX_PATH_VMM_SRC)/PATM $(VBOX_VMM_TESTCASE_OUT_DIR)
137
tstVMStructSize_INCS = \
138
$(VBOX_PATH_VMM_SRC)/include \
139
$(VBOX_PATH_VMM_SRC)/PATM \
140
$(VBOX_VMM_TESTCASE_OUT_DIR)
127
141
tstVMStructSize_SOURCES = tstVMStructSize.cpp
128
142
ifdef VBOX_WITH_RAW_MODE
129
143
tstVMStructSize.cpp_DEPS= $(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructRC.h
146
160
ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
147
161
tstAsmStructs_DEFS += VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
149
tstAsmStructs_INCS = $(VBOX_PATH_VMM_SRC) $(VBOX_VMM_TESTCASE_OUT_DIR)
163
tstAsmStructs_INCS = \
164
$(VBOX_PATH_VMM_SRC)/include \
165
$(VBOX_VMM_TESTCASE_OUT_DIR)
150
166
tstAsmStructs_SOURCES = tstAsmStructs.cpp
151
167
tstAsmStructs.cpp_DEPS = $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsHC.h
159
175
ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
160
176
tstAsmStructsRC_DEFS += VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
162
tstAsmStructsRC_INCS = $(VBOX_PATH_VMM_SRC) $(VBOX_VMM_TESTCASE_OUT_DIR)
178
tstAsmStructsRC_INCS = \
179
$(VBOX_PATH_VMM_SRC)/include \
180
$(VBOX_VMM_TESTCASE_OUT_DIR)
163
181
tstAsmStructsRC_SOURCES = tstAsmStructs.cpp
164
182
tstAsmStructs.cpp_DEPS += $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsRC.h
165
183
endif # VBOX_WITH_RAW_MODE
174
192
tstMMHyperHeap_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME)
176
194
tstSSM_TEMPLATE = VBOXR3TSTEXE
195
tstSSM_INCS = $(VBOX_PATH_VMM_SRC)/include
177
196
tstSSM_SOURCES = tstSSM.cpp
178
197
tstSSM_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME)
191
210
tstVMMR0CallHost-1_TEMPLATE = VBOXR3TSTEXE
192
211
tstVMMR0CallHost-1_DEFS = VMM_R0_NO_SWITCH_STACK
193
tstVMMR0CallHost-1_INCS = $(VBOX_PATH_VMM_SRC)
212
tstVMMR0CallHost-1_INCS = $(VBOX_PATH_VMM_SRC)/include
194
213
tstVMMR0CallHost-1_SOURCES = \
195
214
tstVMMR0CallHost-1.cpp
196
215
tstVMMR0CallHost-1_SOURCES.amd64 = \
244
263
$(PATH_LIB)/RuntimeRC$(VBOX_SUFF_LIB)
245
264
ifeq ($(filter-out pe lx,$(VBOX_LDR_FMT32)),)
246
265
tstMicroRC_LIBS += \
247
$(PATH_LIB)/VMMGCBuiltin$(VBOX_SUFF_LIB) \
266
$(PATH_LIB)/VMMRCBuiltin$(VBOX_SUFF_LIB) \
250
269
tstMicroRC_SOURCES.win = tstMicroRC.def
254
273
ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
255
274
tstPDMAsyncCompletion_TEMPLATE = VBOXR3EXE
275
tstPDMAsyncCompletion_INCS = $(VBOX_PATH_VMM_SRC)/include
256
276
tstPDMAsyncCompletion_SOURCES = tstPDMAsyncCompletion.cpp
257
277
tstPDMAsyncCompletion_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME)
259
279
tstPDMAsyncCompletionStress_TEMPLATE = VBOXR3EXE
280
tstPDMAsyncCompletionStress_INCS = $(VBOX_PATH_VMM_SRC)/include
260
281
tstPDMAsyncCompletionStress_SOURCES = tstPDMAsyncCompletionStress.cpp
261
282
tstPDMAsyncCompletionStress_LIBS = $(LIB_VMM) $(LIB_REM) $(LIB_RUNTIME)
300
321
$(if $(VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI),VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI,) \
302
323
-f $(if $(eq $(KBUILD_TARGET),darwin),macho,elf) \
303
$(foreach inc,$(INCS) $(VBOX_PATH_VMM_SRC)/testcase $(VBOX_VMM_TESTCASE_OUT_DIR),-I$(inc)/)
324
$(foreach inc,$(INCS) $(VBOX_PATH_VMM_SRC)/testcase $(VBOX_PATH_VMM_SRC)/include $(VBOX_VMM_TESTCASE_OUT_DIR)\
305
327
# 1a. make a header file which makes all the structures+members globals.
306
328
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsAsm.mac: \
307
329
$(VBOX_PATH_VMM_SRC)/testcase/tstAsmStructsAsm.asm \
308
330
$(VBOX_PATH_VMM_SRC)/testcase/tstAsmStructsAsm-lst.sed \
309
331
$(DEPTH)/include/iprt/asmdefs.mac \
310
$(DEPTH)/include/VBox/cpum.mac \
332
$(DEPTH)/include/VBox/vmm/cpum.mac \
333
$(DEPTH)/include/VBox/vmm/vm.mac \
311
334
$(DEPTH)/include/VBox/sup.mac \
312
$(DEPTH)/include/VBox/vm.mac \
313
$(VBOX_PATH_VMM_SRC)/CPUMInternal.mac \
314
$(VBOX_PATH_VMM_SRC)/TRPMInternal.mac \
315
$(VBOX_PATH_VMM_SRC)/HWACCMInternal.mac \
316
$(VBOX_PATH_VMM_SRC)/VMMInternal.mac \
335
$(VBOX_PATH_VMM_SRC)/include/CPUMInternal.mac \
336
$(VBOX_PATH_VMM_SRC)/include/TRPMInternal.mac \
337
$(VBOX_PATH_VMM_SRC)/include/HWACCMInternal.mac \
338
$(VBOX_PATH_VMM_SRC)/include/VMMInternal.mac \
317
339
$(VBOX_PATH_VMM_SRC)/testcase/Makefile.kmk \
318
340
$(PATH_ROOT)/Config.kmk $(LOCALCFG) $(AUTOCFG) \