Makefile.kmk revision 0f240a6c7a0b78877f400eda02f2a6520de082ca
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync# Top-level makefile for the VMM.
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync# Copyright (C) 2006-2007 innotek GmbH
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync# available from http://www.virtualbox.org. This file is free software;
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync# you can redistribute it and/or modify it under the terms of the GNU
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync# General Public License as published by the Free Software Foundation,
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync# in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync# distribution. VirtualBox OSE is distributed in the hope that it will
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync# be useful, but WITHOUT ANY WARRANTY of any kind.
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync# If you received this file as part of a commercial VirtualBox
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync# distribution, then only the terms of your commercial VirtualBox
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync# license agreement apply instead of the previous paragraph.
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncDEPTH = ../../..
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncinclude $(PATH_KBUILD)/subheader.kmk
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync## @todo get rid of these.
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync# Enable the PDM lock.
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync#DEFS += VBOX_WITH_PDM_LOCK
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncifdef VBOX_WITH_INTERNAL_NETWORKING
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncDEFS += VBOX_WITH_INTERNAL_NETWORKING
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync# Include sub-makefiles.
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncinclude $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncLIBRARIES += VMMR3
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncVMMR3_TEMPLATE = VBOXR3
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncVMMR3_DEFS = IN_VMM_R3 IN_PDM_R3 IN_CFGM_R3 IN_IOM_R3 IN_VM_R3 IN_CPUM_R3 IN_SELM_R3 IN_PGM_R3 IN_TRPM_R3 IN_MM_R3 IN_DBG_R3 \
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync IN_DBGF_R3 IN_PATM_R3 IN_DIS_R3 IN_STAM_R3 IN_CSAM_R3 IN_EM_R3 IN_TM_R3 IN_SSM_R3 IN_HWACCM_R3
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncifdef VBOX_OSE
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync ifeq ($(BUILD_TARGET),darwin)
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync VMMR3_DEFS += PDMLDR_FAKE_MODE
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncVMMR3_INCS := \
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync $(PATH_SUB_CURRENT)
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncVMMR3_SOURCES = \
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync# The VMM DLL.
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncDLLS += VBoxVMM
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncVBoxVMM_TEMPLATE = VBOXR3
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncVBoxVMM_DEFS = $(VMMR3_DEFS)
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncVBoxVMM_SOURCES = VBoxVMMDeps.cpp
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncVBoxVMM_LIBS = \
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync $(PATH_LIB)/VMMR3$(VBOX_SUFF_LIB) \
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync $(PATH_LIB)/Debugger$(VBOX_SUFF_LIB) \
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync $(PATH_LIB)/DisasmR3$(VBOX_SUFF_LIB) \
4b30f6c72b07654509606857da385afcc09aaae3vboxsync $(LIB_REM) \
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync $(LIB_RUNTIME)
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncVBoxVMM_LIBS.win = $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncVBoxVMM_LDFLAGS.linux = -Wl,--no-undefined
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVBoxVMM_LDFLAGS.darwin = -install_name @executable_path/VBoxVMM.dylib
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncifneq ($(BUILD_TARGET),darwin)
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncLIBRARIES += VMMGCBuiltin
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMGCBuiltin_TEMPLATE = VBOXGC
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncifeq ($(VBOX_LDR_FMT32),pe)
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMGCBuiltin_SOURCES = VMMGC/VMMGCBuiltin.def
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncifeq ($(VBOX_LDR_FMT32),lx)
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMGCBuiltin_SOURCES = $(PATH_TARGET)/VMMGCBuiltin.def
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync$(PATH_TARGET)/VMMGCBuiltin.def: VMMGC/VMMGCBuiltin.def | $(call DIRDEP,$(PATH_TARGET))
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync $(SED) -e 's/^[ \t][ \t]*\([a-zA-Z]\)/ _\1/' -e 's/[ \t]DATA[ \t]*/ /' $< > $@.tmp
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync $(MV) -f $@.tmp $@
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncendif # !darwin
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncifneq ($(BUILD_TARGET),darwin)
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncLIBRARIES += VMMGCImp
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncVMMGCImp_TEMPLATE = VBOXGC
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncifeq ($(VBOX_LDR_FMT32),pe)
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncVMMGCImp_SOURCES = VMMGC/VMMGC.def
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncifeq ($(VBOX_LDR_FMT32),lx)
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncVMMGCImp_SOURCES = $(PATH_TARGET)/VMMGC.def
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync$(PATH_TARGET)/VMMGC.def: VMMGC/VMMGC.def | $(call DIRDEP,$(PATH_TARGET))
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync $(SED) -e 's/^[ \t][ \t]*\([a-zA-Z]\)/ _\1/' -e 's/[ \t]DATA[ \t]*/ /' $< > $@.tmp
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync $(APPEND) "$@.tmp" ""
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync $(APPEND) "$@.tmp" " ___ehInit"
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync $(MV) -f $@.tmp $@
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncendif # !darwin
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncifneq ($(BUILD_TARGET),darwin)
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncLIBRARIES += VMMR0Imp
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncVMMR0Imp_TEMPLATE = VBOXR0
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncifeq ($(VBOX_LDR_FMT),pe)
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncVMMR0Imp_SOURCES = VMMR0/VMMR0.def
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncifeq ($(VBOX_LDR_FMT),lx)
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMR0Imp_SOURCES = $(PATH_TARGET)/VMMR0.def
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync$(PATH_TARGET)/VMMR0.def: VMMR0/VMMR0.def | $(call DIRDEP,$(PATH_TARGET))
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync $(SED) -e 's/^[ \t][ \t]*\([a-zA-Z]\)/ _\1/' -e 's/[ \t]DATA[ \t]*/ /' $< > $@.tmp
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync $(APPEND) "$@.tmp" ""
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync $(APPEND) "$@.tmp" " ___ehInit"
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync $(MV) -f $@.tmp $@
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncendif # !darwin
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncSYSMODS += VMMGC
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMGC_TEMPLATE = VBOXGC
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMGC_INCS := \
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync $(PATH_SUB_CURRENT) \
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMGC_DEFS = IN_VMM_GC IN_PDM_GC IN_CFGM_GC IN_IOM_GC IN_MM_GC IN_RT_GC IN_TRPM_GC IN_SELM_GC IN_VM_GC IN_IOM_GC IN_DIS_GC DIS_CORE_ONLY IN_PGM_GC IN_CPUM_GC IN_EM_GC IN_TM_GC IN_PATM_GC IN_CSAM_GC IN_REM_GC IN_DBGF_GC
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMGC_SYSSUFF = .gc
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMGC_LIBS = \
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync $(PATH_LIB)/DisasmGC$(VBOX_SUFF_LIB) \
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync $(PATH_LIB)/RuntimeGC$(VBOX_SUFF_LIB)
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncifneq ($(filter pe lx,$(VBOX_LDR_FMT32)),)
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMGC_LIBS += \
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync $(PATH_LIB)/VMMGCBuiltin$(VBOX_SUFF_LIB)
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncifeq ($(VBOX_LDR_FMT32),pe)
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMGC_LDFLAGS = -Entry:VMMGCEntry
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMGC_SOURCES = \
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncifeq ($(VBOX_LDR_FMT32),pe)
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMGC_SOURCES += VMMGC/VMMGC.def
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncifeq ($(VBOX_LDR_FMT32),lx)
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMGC_SOURCES += $(PATH_TARGET)/VMMGC.def
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync# the very last one.
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMGC_SOURCES += VMMGC/VMMGC99.asm
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMGC/VMMGCDeps.cpp_CXXFLAGS.win = -Oi- -TC ## @todo rename VMMGCDeps.cpp to .c
3a5d16e1911830b585d10278ea2cdbb408e261e6vboxsyncSYSMODS += VMMR0
3a5d16e1911830b585d10278ea2cdbb408e261e6vboxsyncVMMR0_TEMPLATE = VBOXR0
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMR0_INCS := \
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync $(PATH_SUB_CURRENT) \
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMR0_DEFS = IN_VMM_R0 IN_RT_R0 IN_TRPM_R0 IN_CPUM_R0 IN_VM_R0 IN_TM_R0 IN_INTNET_R0 IN_HWACCM_R0 IN_EM_R0 IN_PDM_R0 IN_PGM_R0 IN_DIS_R0 IN_MM_R0 IN_SELM_R0 IN_CSAM_R0 IN_PATM_R0 IN_DBGF_R0 IN_REM_R0 IN_IOM_R0 DIS_CORE_ONLY
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncifeq ($(VBOX_LDR_FMT),pe)
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMR0_LDFLAGS = -Entry:VMMR0Entry
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncifeq ($(VBOX_LDR_FMT),elf)
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncVMMR0_LDFLAGS = -entry=VMMR0Entry
0a769a6be37f526faeabe88f77422ee6291afa37vboxsyncVMMR0_SYSSUFF = .r0
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMR0_SOURCES = \
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncifeq ($(VBOX_LDR_FMT),pe)
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMR0_SOURCES += VMMR0/VMMR0.def
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncifeq ($(VBOX_LDR_FMT),lx)
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMR0_SOURCES += $(PATH_TARGET)/VMMR0.def
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMR0_LIBS = \
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync $(PATH_LIB)/ServicesR0$(VBOX_SUFF_LIB) \
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync $(PATH_LIB)/RuntimeR0$(VBOX_SUFF_LIB) \
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync $(PATH_LIB)/DisasmR0$(VBOX_SUFF_LIB)
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncifneq ($(BUILD_TARGET),darwin)
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncVMMR0_LIBS += \
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync $(PATH_LIB)/SUPR0$(VBOX_SUFF_LIB)
84eeabfd29e718854e00e795879dab6ce61469e5vboxsyncifeq ($(VBOX_LDR_FMT),elf)
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncVMMR0_LIBS += \
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsync $(VBOX_GCC_LIBGCC)
bb73206f5ad484c56a70984ee9897e9ffee18b8bvboxsyncinclude $(PATH_KBUILD)/subfooter.kmk
84eeabfd29e718854e00e795879dab6ce61469e5vboxsync# Alias the PGM templates to the object in which they are defined.