Makefile.kmk revision 4c203bf9db2b597642c94119713208839f4ff3cc
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# Sub-Makefile for the VMM testcases.
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# Copyright (C) 2006-2010 Oracle Corporation
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# available from http://www.virtualbox.org. This file is free software;
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# you can redistribute it and/or modify it under the terms of the GNU
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# General Public License (GPL) as published by the Free Software
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsyncSUB_DEPTH = ../../../..
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsyncinclude $(KBUILD_PATH)/subheader.kmk
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsync# Target lists.
a5095136db25095b1bebc90f76da25cbd4cdefebvboxsyncPROGRAMS += tstVMStructSize tstAsmStructs
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsyncifdef VBOX_WITH_RAW_MODE
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsync PROGRAMS += tstVMStructRC tstAsmStructsRC
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsyncifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsync PROGRAMS += tstGlobalConfig tstInstrEmul
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsync ifdef VBOX_WITH_RAW_MODE
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsync PROGRAMS += tstVMM tstVMM-HwAccm
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsync ifneq ($(KBUILD_TARGET),win)
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsync PROGRAMS += tstVMMFork
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsync ifdef VBOX_WITH_TESTCASES
a5095136db25095b1bebc90f76da25cbd4cdefebvboxsync PROGRAMS += \
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsync tstCompressionBenchmark \
a5095136db25095b1bebc90f76da25cbd4cdefebvboxsync tstMMHyperHeap \
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsync tstCompiler \
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsync tstVMMR0CallHost-1 \
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsync tstVMMR0CallHost-2
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsync ifneq ($(KBUILD_TARGET),l4)
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsync PROGRAMS += tstAnimate
4604ab7d38c2bd2dfc255aa1facffdf81c1c9153vboxsync ifdef VBOX_WITH_RAW_MODE
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructs.run \
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructSize.run
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructs.run \
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructSize.run
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstInstrEmul.run
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructs.run \
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructSize.run \
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstInstrEmul.run \
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructs.h \
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsAsm.o \
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsAsm.mac \
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsAsm.mac.o \
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsAsm.mac.lst \
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructs.h.dump \
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsRC.h \
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsHC.h \
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructRC.h
VBOX_PATH_VMM_SRC = $(PATH_ROOT)/src/VBox/VMM
ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.x86)
tstVMStructRC_SOURCES = tstVMStructRC.cpp
ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.x86)
tstVMStructSize_SOURCES = tstVMStructSize.cpp
tstAsmStructs_SOURCES = tstAsmStructs.cpp
tstAsmStructsRC_SOURCES = tstAsmStructs.cpp
tstGlobalConfig_SOURCES = tstGlobalConfig.cpp
tstMMHyperHeap_SOURCES = tstMMHyperHeap.cpp
tstSSM_SOURCES = tstSSM.cpp
tstCFGM_SOURCES = tstCFGM.cpp
tstCompressionBenchmark_SOURCES = tstCompressionBenchmark.cpp
$(VBOX_PATH_VMM_SRC)/VMMR0/VMMR0JmpA-amd64.asm
$(VBOX_PATH_VMM_SRC)/VMMR0/VMMR0JmpA-x86.asm
tstVMREQ_SOURCES = tstVMREQ.cpp
tstAnimate_SOURCES = tstAnimate.cpp
tstCompiler_SOURCES = tstCompiler.cpp
tstVMM_SOURCES = tstVMM.cpp
tstVMM-HwAccm_SOURCES = tstVMM-HwAccm.cpp
tstVMMFork_SOURCES = tstVMMFork.cpp
tstMicro_SOURCES = tstMicro.cpp
tstPDMAsyncCompletion_SOURCES = tstPDMAsyncCompletion.cpp
tstPDMAsyncCompletionStress_SOURCES = tstPDMAsyncCompletionStress.cpp
include $(KBUILD_PATH)/subfooter.kmk
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstInstrEmul.run: $$(INSTARGET_tstInstrEmul) | $$(dir $$@)
include $(KBUILD_PATH)/tools/MINGW32.kmk
VBOX_NM ?= $(PATH_TOOL_MINGW32)/bin/nm.exe -p
$(foreach inc,$(INCS) $(VBOX_PATH_VMM_SRC)/testcase $(VBOX_PATH_VMM_SRC)/include $(VBOX_VMM_TESTCASE_OUT_DIR)\
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsAsm.mac: \
$(VBOX_PATH_VMM_SRC)/testcase/tstAsmStructsAsm.asm \
$(VBOX_PATH_VMM_SRC)/testcase/tstAsmStructsAsm-lst.sed \
$(DEPTH)/include/iprt/asmdefs.mac \
$(DEPTH)/include/VBox/cpum.mac \
$(DEPTH)/include/VBox/sup.mac \
$(DEPTH)/include/VBox/vm.mac \
$(VBOX_PATH_VMM_SRC)/include/CPUMInternal.mac \
$(VBOX_PATH_VMM_SRC)/include/TRPMInternal.mac \
$(VBOX_PATH_VMM_SRC)/include/HWACCMInternal.mac \
$(VBOX_PATH_VMM_SRC)/include/VMMInternal.mac \
$(VBOX_PATH_VMM_SRC)/testcase/Makefile.kmk \
$(PATH_ROOT)/Config.kmk $(LOCALCFG) $(AUTOCFG) \
$(SED) -f $(VBOX_PATH_VMM_SRC)/testcase/tstAsmStructsAsm-lst.sed --output $@ $@.lst
# 1b. make an elf/macho object containing the offsets.
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsAsm.o: \
$(VBOX_PATH_VMM_SRC)/testcase/tstAsmStructsAsm.asm \
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructsAsm.mac \
$(VBOX_PATH_VMM_SRC)/testcase/Makefile.kmk \
-e '/00[0-9a-fA-F]* [aA] [^_.]*\./!d' -e 's/\(00[0-9a-fA-F]*\) [aA] \([^.]*\)\.\(.*$$\)/ CHECK_OFF(\2, 0x0\1, \3);/' \
-e '/00[0-9a-fA-F]* [aA] [^_.]*_size$$/!d' -e 's/\(00[0-9a-fA-F]*\) [aA] \([^_.]*\)_size/ CHECK_SIZE(\2, 0x0\1);/' \
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructs.run: \
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructRC.h: $$(INSTARGET_tstVMStructRC) | $$(dir $$@)
$(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructSize.run: $$(INSTARGET_tstVMStructSize) | $$(dir $$@)
run-struct-tests: $(VBOX_VMM_TESTCASE_OUT_DIR)/tstAsmStructs.run $(VBOX_VMM_TESTCASE_OUT_DIR)/tstVMStructSize.run