Makefile.kmk revision 4f0b483b5fa3555af294e37f89a963b05ba5410d
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# Top-level makefile for the VMM.
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# Copyright (C) 2006-2010 Oracle Corporation
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# available from http://www.virtualbox.org. This file is free software;
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# you can redistribute it and/or modify it under the terms of the GNU
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# General Public License (GPL) as published by the Free Software
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncSUB_DEPTH = ../../..
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncinclude $(KBUILD_PATH)/subheader.kmk
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# Include sub-makefiles.
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncinclude $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync## DEFS variable that is picked up by all three VMM targets.
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# Can be prepended to by setting it in LocalConfig.kmk
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVMM_COMMON_DEFS ?=
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncifdef VBOX_WITH_RAW_MODE
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMM_COMMON_DEFS += VBOX_WITH_RAW_MODE
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncifdef VBOX_WITH_MULTI_CORE
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMM_COMMON_DEFS += VBOX_WITH_MULTI_CORE
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncifdef VBOX_WITH_R0_LOGGING
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMM_COMMON_DEFS += VBOX_WITH_R0_LOGGING
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMM_COMMON_DEFS += VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# VMM_COMMON_DEFS += VBOX_WITH_NS_ACCOUNTING_STATS
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncLIBRARIES += VMMR3
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVMMR3_TEMPLATE = VBoxR3DllNoPic
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVMMR3_DEFS = IN_VMM_R3 IN_DIS IN_GMM_R3 IN_DBG $(VMM_COMMON_DEFS) VBOX_SVN_REV=$(VBOX_SVN_REV)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync## @todo eliminate IN_GMM_R3
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncifdef VBOX_WITH_PREALLOC_RAM_BY_DEFAULT
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR3_DEFS += VBOX_WITH_PREALLOC_RAM_BY_DEFAULT
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncifdef VBOX_WITH_VUSB
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR3_DEFS += VBOX_WITH_USB
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncifdef VBOX_WITH_PDM_ASYNC_COMPLETION
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR3_DEFS += VBOX_WITH_PDM_ASYNC_COMPLETION
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVMMR3_DEFS.darwin = VMM_R0_SWITCH_STACK
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VBOX_WITH_2X_4GB_ADDR_SPACE VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R3 \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VBOX_WITH_HYBRID_32BIT_KERNEL VBOX_WITH_HYBRID_32BIT_KERNEL_IN_R3
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVMMR3_INCS = \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVMMR3_ASINCS = .
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVMMR3_SOURCES = \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncifdef VBOX_WITH_VUSB
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR3_SOURCES += VMMR3/PDMUsb.cpp
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncifdef VBOX_WITH_PDM_ASYNC_COMPLETION
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR3_SOURCES += \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncif defined(VBOX_WITH_WARNINGS_AS_ERRORS) && "$(KBUILD_TARGET)" == "win"
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync## @todo Alexander, please fix these warnings.
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncifdef VBOX_WITH_RAW_MODE
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# SSM wish to know the build type, host os and arch.
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync KBUILD_TYPE=\"$(KBUILD_TYPE)\" \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync KBUILD_TARGET=\"$(KBUILD_TARGET)\" \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync KBUILD_TARGET_ARCH=\"$(KBUILD_TARGET_ARCH)\"
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# The VMM DLL.
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncDLLS += VBoxVMM
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVBoxVMM_TEMPLATE = VBoxR3DllNoPic
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVBoxVMM_DEFS = $(VMMR3_DEFS)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVBoxVMM_DEFS.$(KBUILD_TARGET) = $(VMMR3_DEFS.$(KBUILD_TARGET))
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVBoxVMM_SOURCES = VMMR3/VBoxVMMDeps.cpp
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVBoxVMM_LIBS = \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(PATH_LIB)/VMMR3$(VBOX_SUFF_LIB) \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(PATH_LIB)/DisasmR3$(VBOX_SUFF_LIB)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncifdef VBOX_WITH_DEBUGGER
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VBoxVMM_LIBS += \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(PATH_LIB)/Debugger$(VBOX_SUFF_LIB)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVBoxVMM_LIBS += \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(LIB_REM) \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(LIB_RUNTIME)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVBoxVMM_LIBS.win = $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVBoxVMM_LDFLAGS.linux = -Wl,--no-undefined
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVBoxVMM_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxVMM.dylib
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync#ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# ifeq ($(KBUILD_HOST), linux)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync#VBoxVMM_LIBS += aio
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncif defined(VBOX_WITH_RAW_MODE) && $(intersects $(VBOX_LDR_FMT32), pe lx)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync LIBRARIES += VMMRCBuiltin
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRCBuiltin_TEMPLATE = VBoxRc
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync ifeq ($(VBOX_LDR_FMT32),pe)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRCBuiltin_SOURCES = VMMRC/VMMRCBuiltin.def
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync ifeq ($(VBOX_LDR_FMT32),lx)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRCBuiltin_SOURCES = $(VMMRCBuiltin_0_OUTDIR)/VMMRCBuiltin.def
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $$(VMMRCBuiltin_0_OUTDIR)/VMMRCBuiltin.def: $(PATH_SUB_CURRENT)/VMMRC/VMMRCBuiltin.def | $$(dir $$@)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(SED) -e '/not-os2/d' -e 's/^[ \t][ \t]*\([a-zA-Z]\)/ _\1/' -e 's/[ \t]DATA[ \t]*/ /' --output $@ $<
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync LIBRARIES += VMMRCImp
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRCImp_TEMPLATE = VBoxRc
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRCImp_SOURCES = $(VMMRCImp_0_OUTDIR)/VMMRC.def
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRCImp_CLEAN = $(VMMRCImp_0_OUTDIR)/VMMRC.def
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $$(VMMRCImp_0_OUTDIR)/VMMRC.def: $(PATH_SUB_CURRENT)/VMMRC/VMMRC.def | $$(dir $$@)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync ifeq ($(VBOX_LDR_FMT32),lx)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync -e '/not-os2/d' \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync -e 's/^[ \t][ \t]*\([a-zA-Z]\)/ _\1/' \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync -e 's/[ \t]DATA[ \t]*/ /' \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync --output $@ \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(APPEND) "$@" ""
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(APPEND) "$@" " ___ehInit"
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync -e '/not-win/d' \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync -e '/not-$(KBUILD_TARGET_ARCH)/d' \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync --output $@ $<
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncendif # RC && (pe || lx)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncif1of ($(VBOX_LDR_FMT), pe lx)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync LIBRARIES += VMMR0Imp
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR0Imp_TEMPLATE = VBoxR0
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR0Imp_SOURCES = $(VMMR0Imp_0_OUTDIR)/VMMR0.def
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR0Imp_CLEAN = $(VMMR0Imp_0_OUTDIR)/VMMR0.def
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $$(VMMR0Imp_0_OUTDIR)/VMMR0.def: $(PATH_SUB_CURRENT)/VMMR0/VMMR0.def | $$(dir $$@)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync ifeq ($(VBOX_LDR_FMT),lx)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync -e '/not-os2/d' \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync -e '/not-amd64/d' \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync -e 's/^[ \t][ \t]*\([a-zA-Z]\)/ _\1/' \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync -e 's/[ \t]DATA[ \t]*/ /' \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync --output $@ $<
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(APPEND) "$@" ""
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(APPEND) "$@" " ___ehInit"
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync -e '/not-win/d' \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync -e '/not-$(KBUILD_TARGET_ARCH)/d' \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync --output $@ $<
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncendif # R0: pe + lx
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncIMPORT_LIBS += VMMR3Imp
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync$(call VBOX_GENERATE_IMPORT_TARGET_FN,VMMR3Imp,VBoxVMM,VMMR3/VMMR3.def)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncif defined(VBOX_WITH_RAW_MODE) && !defined(VBOX_ONLY_EXTPACKS)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync SYSMODS += VMMRC
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRC_TEMPLATE = VBoxRc
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRC_NAME = VMMGC
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRC_SYSSUFF = .gc
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRC_DEFS = IN_VMM_RC IN_RT_RC IN_DIS DIS_CORE_ONLY VBOX_WITH_RAW_MODE $(VMM_COMMON_DEFS)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync ifeq ($(KBUILD_TARGET_ARCH),x86)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRC_DEFS.darwin = VMM_R0_SWITCH_STACK
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VBOX_WITH_2X_4GB_ADDR_SPACE VBOX_WITH_2X_4GB_ADDR_SPACE_IN_RC \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VBOX_WITH_HYBRID_32BIT_KERNEL VBOX_WITH_HYBRID_32BIT_KERNEL_IN_RC
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRC_INCS := \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRC_LIBS = \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(PATH_LIB)/DisasmRC$(VBOX_SUFF_LIB) \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(PATH_LIB)/RuntimeRC$(VBOX_SUFF_LIB)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync ifneq ($(filter pe lx,$(VBOX_LDR_FMT32)),)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRC_LIBS += \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(PATH_LIB)/VMMRCBuiltin$(VBOX_SUFF_LIB)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRC_SOURCES = \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync ifeq ($(VBOX_LDR_FMT32),pe)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRC_SOURCES += VMMRC/VMMRC.def
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync ifeq ($(VBOX_LDR_FMT32),lx)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRC_SOURCES += $(VMMRCImp_0_OUTDIR)/VMMRC.def
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync # the very last one.
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRC_SOURCES += VMMRC/VMMRC99.asm
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMRC/VMMRCDeps.cpp_CXXFLAGS.win = -Oi- -TC ## @todo rename VMMRCDeps.cpp to .c
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncendif # VBOX_WITH_RAW_MODE && !VBOX_ONLY_EXTPACKS
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncifndef VBOX_ONLY_EXTPACKS
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync SYSMODS += VMMR0
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR0_TEMPLATE = VBoxR0
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR0_SYSSUFF = .r0
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR0_DEFS = IN_VMM_R0 IN_RT_R0 IN_DIS DIS_CORE_ONLY IN_GVMM_R0 IN_GMM_R0 IN_INTNET_R0 \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(VMM_COMMON_DEFS) RTASSERT_HAVE_SHOULD_PANIC
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync ## @todo eliminate IN_GVMM_R0 IN_GMM_R0
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync ifdef VBOX_WITH_VMMR0_DISABLE_PREEMPTION
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR0_DEFS += VBOX_WITH_VMMR0_DISABLE_PREEMPTION
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR0_DEFS.darwin = VMM_R0_SWITCH_STACK
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VBOX_WITH_2X_4GB_ADDR_SPACE VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0 \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VBOX_WITH_HYBRID_32BIT_KERNEL VBOX_WITH_HYBRID_32BIT_KERNEL_IN_R0
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR0_DEFS.win.amd64 = VBOX_WITH_KERNEL_USING_XMM
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync ifeq ($(VBOX_LDR_FMT),elf)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR0_LDFLAGS = -e VMMR0EntryEx
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR0_INCS = \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR0_SOURCES = \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync ifeq ($(VBOX_LDR_FMT),pe)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR0_SOURCES += VMMR0/VMMR0.def
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync ifeq ($(VBOX_LDR_FMT),lx)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR0_SOURCES += $(VMMR0Imp_0_OUTDIR)/VMMR0.def
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR0_LIBS = \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(PATH_LIB)/ServicesR0$(VBOX_SUFF_LIB) \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(PATH_LIB)/RuntimeR0$(VBOX_SUFF_LIB) \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(PATH_LIB)/DisasmR0$(VBOX_SUFF_LIB)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync ifneq ($(filter pe lx,$(VBOX_LDR_FMT)),)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync VMMR0_LIBS += \
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync $(PATH_LIB)/SUPR0$(VBOX_SUFF_LIB)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncendif # !VBOX_ONLY_EXTPACKS
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncifndef VBOX_ONLY_EXTPACKS
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync # SSMStandalone.lib/a for linking with VBoxSVC and other executables.
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync LIBRARIES += SSMStandalone
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync SSMStandalone_TEMPLATE = VBOXR3EXE
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync SSMStandalone_DEFS = IN_VMM_R3 IN_VMM_STATIC SSM_STANDALONE
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync SSMStandalone_INCS = include
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync SSMStandalone_SOURCES = VMMR3/SSM.cpp
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncendif # !VBOX_ONLY_EXTPACKS
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# For vmmGetSvnRev.
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVMMAll/VMMAll.cpp_DEFS = VBOX_SVN_REV=$(VBOX_SVN_REV)
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# Disable annoying warnings about array subscript above array bounds in aPages[]
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVMMR3/PGMPool.cpp_CXXFLAGS = $(if-expr $(KBUILD_TARGET) == "win",,$(VBOX_GCC_Wno-array_bounds))
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncVMMAll/PGMAllPool.cpp_CXXFLAGS = $(if-expr $(KBUILD_TARGET) == "win",,$(VBOX_GCC_Wno-array_bounds))
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsyncinclude $(KBUILD_PATH)/subfooter.kmk
7da9e7e719adde3baba3f6fa1d0bcfb170cf9911vboxsync# Alias the PGM templates to the object in which they are defined.