VirtualBox

source: vbox/trunk/src/VBox/VMM/Config.kmk@ 101019

Last change on this file since 101019 was 100109, checked in by vboxsync, 19 months ago

VMM/IEM: Make it compile and link again with VBOX_WITH_IEM_RECOMPILER=1. bugref:10369

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.8 KB
Line 
1# $Id: Config.kmk 100109 2023-06-07 20:21:40Z vboxsync $
2## @file
3# kBuild Configuration file for the VMM.
4#
5
6#
7# Copyright (C) 2006-2023 Oracle and/or its affiliates.
8#
9# This file is part of VirtualBox base platform packages, as
10# available from https://www.virtualbox.org.
11#
12# This program is free software; you can redistribute it and/or
13# modify it under the terms of the GNU General Public License
14# as published by the Free Software Foundation, in version 3 of the
15# License.
16#
17# This program is distributed in the hope that it will be useful, but
18# WITHOUT ANY WARRANTY; without even the implied warranty of
19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20# General Public License for more details.
21#
22# You should have received a copy of the GNU General Public License
23# along with this program; if not, see <https://www.gnu.org/licenses>.
24#
25# SPDX-License-Identifier: GPL-3.0-only
26#
27
28VBOX_VMM_CONFIG_KMK_INCLUDED = 1
29
30# Include the top-level configure file.
31ifndef VBOX_ROOT_CONFIG_KMK_INCLUDED
32 include $(PATH_ROOT)/Config.kmk
33endif
34
35#
36# Globals
37#
38
39## DEFS variable that is picked up by all three VMM targets (R0, R3, RC).
40# Can be prepended to by setting it in LocalConfig.kmk
41VMM_COMMON_DEFS := USING_VMM_COMMON_DEFS
42ifdef VBOX_WITH_HWVIRT
43 VMM_COMMON_DEFS += VBOX_WITH_HWVIRT
44endif
45ifdef VBOX_WITH_NESTED_HWVIRT_SVM
46 VMM_COMMON_DEFS += VBOX_WITH_NESTED_HWVIRT_SVM
47endif
48
49# IEM config:
50ifndef IEM_WITHOUT_3DNOW
51 VMM_COMMON_DEFS += IEM_WITH_3DNOW
52else
53 VMM_COMMON_DEFS += IEM_WITHOUT_3DNOW
54endif
55ifndef IEM_WITHOUT_THREE_0F_38
56 VMM_COMMON_DEFS += IEM_WITH_THREE_0F_38
57else
58 VMM_COMMON_DEFS += IEM_WITHOUT_THREE_0F_38
59endif
60ifndef IEM_WITHOUT_THREE_0F_3A
61 VMM_COMMON_DEFS += IEM_WITH_THREE_0F_3A
62else
63 VMM_COMMON_DEFS += IEM_WITHOUT_THREE_0F_3A
64endif
65ifndef IEM_WITHOUT_VEX
66 VMM_COMMON_DEFS += IEM_WITH_VEX
67else
68 VMM_COMMON_DEFS += IEM_WITHOUT_VEX
69endif
70ifdef VBOX_WITH_IEM_RECOMPILER # Selectely removing hwvirt doesn't work yet with the recompiler. Python code doesn't check #ifdefs.
71 VMM_COMMON_DEFS += VBOX_WITH_IEM_RECOMPILER IEM_WITH_CODE_TLB IEM_WITH_DATA_TLB
72 VMM_COMMON_DEFS += VBOX_WITH_NESTED_HWVIRT_VMX
73 #ifdef VBOX_WITH_NESTED_HWVIRT_VMX_EPT # Busted with TLB enabled.
74 # VMM_COMMON_DEFS += VBOX_WITH_NESTED_HWVIRT_VMX_EPT
75 #endif
76 ifdef VBOX_WITH_NESTED_HWVIRT_ONLY_IN_IEM
77 VMM_COMMON_DEFS += VBOX_WITH_NESTED_HWVIRT_ONLY_IN_IEM
78 endif
79else ifdef VBOX_WITH_IEM_TLB ## @todo VMX code doesn't compile with TLBs enabled.
80 VMM_COMMON_DEFS += IEM_WITH_CODE_TLB IEM_WITH_DATA_TLB
81else
82 ifdef VBOX_WITH_NESTED_HWVIRT_VMX
83 VMM_COMMON_DEFS += VBOX_WITH_NESTED_HWVIRT_VMX
84 endif
85 ifdef VBOX_WITH_NESTED_HWVIRT_VMX_EPT
86 VMM_COMMON_DEFS += VBOX_WITH_NESTED_HWVIRT_VMX_EPT
87 endif
88 ifdef VBOX_WITH_NESTED_HWVIRT_ONLY_IN_IEM
89 VMM_COMMON_DEFS += VBOX_WITH_NESTED_HWVIRT_ONLY_IN_IEM
90 endif
91endif
92ifdef IEM_WITHOUT_ASSEMBLY
93 VMM_COMMON_DEFS += IEM_WITHOUT_ASSEMBLY
94endif
95
96# part of global DEFS
97ifdef VBOX_WITH_MULTI_CORE
98 VMM_COMMON_DEFS += VBOX_WITH_MULTI_CORE
99endif
100ifdef VBOX_WITH_R0_LOGGING
101 VMM_COMMON_DEFS += VBOX_WITH_R0_LOGGING
102endif
103ifdef VBOX_WITH_PCI_PASSTHROUGH
104 VMM_COMMON_DEFS += VBOX_WITH_PCI_PASSTHROUGH
105endif
106ifdef VBOX_WITH_DTRACE_RC
107 VMM_COMMON_DEFS += VBOX_WITH_DTRACE_RC
108endif
109ifdef VBOX_WITH_SAFE_STR
110 VMM_COMMON_DEFS += VBOX_WITH_SAFE_STR
111endif
112ifdef VBOX_WITH_64ON32_CMOS_DEBUG
113 VMM_COMMON_DEFS += VBOX_WITH_64ON32_CMOS_DEBUG
114endif
115ifdef VBOXSTRICTRC_STRICT_ENABLED
116 VMM_COMMON_DEFS += VBOXSTRICTRC_STRICT_ENABLED
117endif
118if defined(VBOX_WITH_NATIVE_NEM) || !defined(VBOX_WITHOUT_PGM_NEM_MODE)
119 VMM_COMMON_DEFS += VBOX_WITH_PGM_NEM_MODE
120endif
121ifdef VBOX_WITH_NATIVE_NEM
122 if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.amd64 linux.amd64 win.amd64)
123 VMM_COMMON_DEFS += VBOX_WITH_NATIVE_NEM VBOX_WITH_NEM_R0
124 endif
125endif
126if1of ($(KBUILD_TARGET), freebsd linux solaris) # Hosts that implements SUPR0HCPhysToVirt.
127 VMM_COMMON_DEFS += VBOX_WITH_LINEAR_HOST_PHYS_MEM
128endif
129
130
131# VMM_COMMON_DEFS += VBOX_WITH_NS_ACCOUNTING_STATS
132
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