VirtualBox

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

Last change on this file was 101163, checked in by vboxsync, 8 months ago

VMM/IEM: Experimental recompilation of threaded blocks into native code on linux.amd64. bugref:10370

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.9 KB
Line 
1# $Id: Config.kmk 101163 2023-09-18 20:44:24Z 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 ifdef VBOX_WITH_IEM_NATIVE_RECOMPILER
73 VMM_COMMON_DEFS += VBOX_WITH_IEM_NATIVE_RECOMPILER
74 endif
75 VMM_COMMON_DEFS += VBOX_WITH_NESTED_HWVIRT_VMX
76 #ifdef VBOX_WITH_NESTED_HWVIRT_VMX_EPT # Busted with TLB enabled.
77 # VMM_COMMON_DEFS += VBOX_WITH_NESTED_HWVIRT_VMX_EPT
78 #endif
79 ifdef VBOX_WITH_NESTED_HWVIRT_ONLY_IN_IEM
80 VMM_COMMON_DEFS += VBOX_WITH_NESTED_HWVIRT_ONLY_IN_IEM
81 endif
82else ifdef VBOX_WITH_IEM_TLB ## @todo VMX code doesn't compile with TLBs enabled.
83 VMM_COMMON_DEFS += IEM_WITH_CODE_TLB IEM_WITH_DATA_TLB
84else
85 ifdef VBOX_WITH_NESTED_HWVIRT_VMX
86 VMM_COMMON_DEFS += VBOX_WITH_NESTED_HWVIRT_VMX
87 endif
88 ifdef VBOX_WITH_NESTED_HWVIRT_VMX_EPT
89 VMM_COMMON_DEFS += VBOX_WITH_NESTED_HWVIRT_VMX_EPT
90 endif
91 ifdef VBOX_WITH_NESTED_HWVIRT_ONLY_IN_IEM
92 VMM_COMMON_DEFS += VBOX_WITH_NESTED_HWVIRT_ONLY_IN_IEM
93 endif
94endif
95ifdef IEM_WITHOUT_ASSEMBLY
96 VMM_COMMON_DEFS += IEM_WITHOUT_ASSEMBLY
97endif
98
99# part of global DEFS
100ifdef VBOX_WITH_MULTI_CORE
101 VMM_COMMON_DEFS += VBOX_WITH_MULTI_CORE
102endif
103ifdef VBOX_WITH_R0_LOGGING
104 VMM_COMMON_DEFS += VBOX_WITH_R0_LOGGING
105endif
106ifdef VBOX_WITH_PCI_PASSTHROUGH
107 VMM_COMMON_DEFS += VBOX_WITH_PCI_PASSTHROUGH
108endif
109ifdef VBOX_WITH_DTRACE_RC
110 VMM_COMMON_DEFS += VBOX_WITH_DTRACE_RC
111endif
112ifdef VBOX_WITH_SAFE_STR
113 VMM_COMMON_DEFS += VBOX_WITH_SAFE_STR
114endif
115ifdef VBOX_WITH_64ON32_CMOS_DEBUG
116 VMM_COMMON_DEFS += VBOX_WITH_64ON32_CMOS_DEBUG
117endif
118ifdef VBOXSTRICTRC_STRICT_ENABLED
119 VMM_COMMON_DEFS += VBOXSTRICTRC_STRICT_ENABLED
120endif
121if defined(VBOX_WITH_NATIVE_NEM) || !defined(VBOX_WITHOUT_PGM_NEM_MODE)
122 VMM_COMMON_DEFS += VBOX_WITH_PGM_NEM_MODE
123endif
124ifdef VBOX_WITH_NATIVE_NEM
125 if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.amd64 linux.amd64 win.amd64)
126 VMM_COMMON_DEFS += VBOX_WITH_NATIVE_NEM VBOX_WITH_NEM_R0
127 endif
128endif
129if1of ($(KBUILD_TARGET), freebsd linux solaris) # Hosts that implements SUPR0HCPhysToVirt.
130 VMM_COMMON_DEFS += VBOX_WITH_LINEAR_HOST_PHYS_MEM
131endif
132
133
134# VMM_COMMON_DEFS += VBOX_WITH_NS_ACCOUNTING_STATS
135
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use