[2478] | 1 | # $Id: Makefile.kmk 104386 2024-04-20 19:05:54Z vboxsync $
|
---|
| 2 | ## @file
|
---|
[2517] | 3 | # Top-level makefile for the VMM.
|
---|
[1] | 4 | #
|
---|
| 5 |
|
---|
| 6 | #
|
---|
[98103] | 7 | # Copyright (C) 2006-2023 Oracle and/or its affiliates.
|
---|
[4814] | 8 | #
|
---|
[96407] | 9 | # This file is part of VirtualBox base platform packages, as
|
---|
| 10 | # available from https://www.virtualbox.org.
|
---|
[5999] | 11 | #
|
---|
[96407] | 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 | #
|
---|
[1] | 27 |
|
---|
[10046] | 28 | SUB_DEPTH = ../../..
|
---|
[41477] | 29 | include $(KBUILD_PATH)/subheader.kmk
|
---|
[1] | 30 |
|
---|
[72503] | 31 | # Include our Config.kmk if kmk is invoked from a parent directory.
|
---|
| 32 | ifndef VBOX_VMM_CONFIG_KMK_INCLUDED
|
---|
| 33 | include $(PATH_SUB_CURRENT)/Config.kmk
|
---|
| 34 | endif
|
---|
| 35 |
|
---|
[2517] | 36 | # Include sub-makefiles.
|
---|
[41076] | 37 | ifndef VBOX_ONLY_EXTPACKS
|
---|
[49282] | 38 | include $(PATH_SUB_CURRENT)/tools/Makefile.kmk
|
---|
[80335] | 39 | include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
|
---|
[41076] | 40 | endif
|
---|
[1] | 41 |
|
---|
[2517] | 42 |
|
---|
[57446] | 43 | # Fail on unsupported hosts.
|
---|
| 44 | ifeq ($(KBUILD_TARGET_ARCH),x86)
|
---|
| 45 | ifeq ($(KBUILD_TARGET),darwin)
|
---|
[98437] | 46 | $(error 32-bit darwin is no longer a supported VirtualBox host. Go back to 4.3 or older for 32-bit host support.)
|
---|
[57446] | 47 | else ifeq ($(KBUILD_TARGET),solaris)
|
---|
[98437] | 48 | $(error 32-bit solaris is no longer a supported VirtualBox host. Go back to 4.2 or older for 32-bit host support.)
|
---|
[79891] | 49 | else ifn1of ($(KBUILD_TARGET_ARCH), $(VBOX_SUPPORTED_HOST_ARCHS))
|
---|
[98437] | 50 | $(error 32-bit builds of the VirtualBox host are no longer supported. Go back to 6.0 or older for 32-bit host support.)
|
---|
[57446] | 51 | endif
|
---|
| 52 | endif
|
---|
| 53 |
|
---|
| 54 |
|
---|
[1] | 55 | #
|
---|
[40519] | 56 | # The VMM DLL.
|
---|
[1] | 57 | #
|
---|
[34662] | 58 | ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
|
---|
[40519] | 59 | DLLS += VBoxVMM
|
---|
[34662] | 60 | endif
|
---|
[40519] | 61 | VBoxVMM_TEMPLATE = VBoxR3DllNoPic
|
---|
| 62 | VBoxVMM_SONAME.linux = VBoxVMM.so
|
---|
[2517] | 63 |
|
---|
[80305] | 64 | VBoxVMM_DEFS = VBOX_IN_VMM IN_VMM_R3 IN_DIS IN_GMM_R3 IN_DBG $(VMM_COMMON_DEFS)
|
---|
[12989] | 65 | ## @todo eliminate IN_GMM_R3
|
---|
[5646] | 66 | ifdef VBOX_WITH_PREALLOC_RAM_BY_DEFAULT
|
---|
[98437] | 67 | VBoxVMM_DEFS += VBOX_WITH_PREALLOC_RAM_BY_DEFAULT
|
---|
[5646] | 68 | endif
|
---|
[26951] | 69 | ifdef VBOX_WITH_VUSB
|
---|
[98437] | 70 | VBoxVMM_DEFS += VBOX_WITH_USB
|
---|
[20922] | 71 | endif
|
---|
| 72 | ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
|
---|
[98437] | 73 | VBoxVMM_DEFS += VBOX_WITH_PDM_ASYNC_COMPLETION
|
---|
[20922] | 74 | endif
|
---|
[40652] | 75 | ifdef VBOX_WITH_NETSHAPER
|
---|
[98437] | 76 | VBoxVMM_DEFS += VBOX_WITH_NETSHAPER
|
---|
[40652] | 77 | endif
|
---|
[83941] | 78 | ifdef VBOX_WITH_IOMMU_AMD
|
---|
[98437] | 79 | VBoxVMM_DEFS += VBOX_WITH_IOMMU_AMD
|
---|
[83941] | 80 | endif
|
---|
[88153] | 81 | ifdef VBOX_WITH_IOMMU_INTEL
|
---|
[98437] | 82 | VBoxVMM_DEFS += VBOX_WITH_IOMMU_INTEL
|
---|
[88153] | 83 | endif
|
---|
[84458] | 84 | ifdef VBOX_WITH_DBGF_TRACING
|
---|
[98437] | 85 | VBoxVMM_DEFS += VBOX_WITH_DBGF_TRACING
|
---|
[84458] | 86 | endif
|
---|
[87134] | 87 | ifdef VBOX_WITH_DBGF_FLOW_TRACING
|
---|
[98437] | 88 | VBoxVMM_DEFS += VBOX_WITH_DBGF_FLOW_TRACING
|
---|
[87134] | 89 | endif
|
---|
[90634] | 90 | if "$(KBUILD_TYPE)" == "debug" && "$(USERNAME)" == "bird" && 0
|
---|
[98437] | 91 | VBoxVMM_DEFS += RTMEM_WRAP_TO_EF_APIS
|
---|
[54799] | 92 | endif
|
---|
[20922] | 93 |
|
---|
[98249] | 94 | VBoxVMM_SDKS = VBoxSoftFloatR3Shared
|
---|
[94539] | 95 |
|
---|
[40519] | 96 | VBoxVMM_INCS = \
|
---|
[35333] | 97 | include \
|
---|
[64545] | 98 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs
|
---|
[40519] | 99 | VBoxVMM_ASINCS = .
|
---|
[96953] | 100 | VBoxVMM_ASFLAGS.amd64 = -Werror
|
---|
| 101 | VBoxVMM_ASFLAGS.x86 = -Werror
|
---|
[1] | 102 |
|
---|
[40519] | 103 | VBoxVMM_SOURCES = \
|
---|
[40919] | 104 | VBoxVMM.d \
|
---|
[98437] | 105 | VMMR3/VMMR3VTable.cpp \
|
---|
[64626] | 106 | VMMR3/APIC.cpp \
|
---|
[35333] | 107 | VMMR3/CFGM.cpp \
|
---|
| 108 | VMMR3/CPUM.cpp \
|
---|
[49893] | 109 | VMMR3/CPUMR3CpuId.cpp \
|
---|
| 110 | VMMR3/CPUMR3Db.cpp \
|
---|
[35468] | 111 | VMMR3/CPUMDbg.cpp \
|
---|
[35333] | 112 | VMMR3/DBGF.cpp \
|
---|
| 113 | VMMR3/DBGFAddr.cpp \
|
---|
| 114 | VMMR3/DBGFAddrSpace.cpp \
|
---|
[87594] | 115 | VMMR3/DBGFR3Bp.cpp \
|
---|
[73348] | 116 | VMMR3/DBGFR3BugCheck.cpp \
|
---|
[35333] | 117 | VMMR3/DBGFCoreWrite.cpp \
|
---|
| 118 | VMMR3/DBGFCpu.cpp \
|
---|
| 119 | VMMR3/DBGFDisas.cpp \
|
---|
| 120 | VMMR3/DBGFInfo.cpp \
|
---|
| 121 | VMMR3/DBGFLog.cpp \
|
---|
| 122 | VMMR3/DBGFMem.cpp \
|
---|
[73150] | 123 | VMMR3/DBGFR3ModInMem.cpp \
|
---|
[35333] | 124 | VMMR3/DBGFOS.cpp \
|
---|
[55881] | 125 | VMMR3/DBGFR3PlugIn.cpp \
|
---|
[35333] | 126 | VMMR3/DBGFReg.cpp \
|
---|
| 127 | VMMR3/DBGFStack.cpp \
|
---|
[64559] | 128 | VMMR3/DBGFR3Flow.cpp \
|
---|
[87134] | 129 | $(if-expr defined(VBOX_WITH_DBGF_FLOW_TRACING), VMMR3/DBGFR3FlowTrace.cpp,) \
|
---|
[37411] | 130 | VMMR3/DBGFR3Trace.cpp \
|
---|
[84458] | 131 | $(if-expr defined(VBOX_WITH_DBGF_TRACING), VMMR3/DBGFR3Tracer.cpp,) \
|
---|
[89695] | 132 | VMMR3/DBGFR3SampleReport.cpp \
|
---|
[61671] | 133 | VMMR3/DBGFR3Type.cpp \
|
---|
[35333] | 134 | VMMR3/EM.cpp \
|
---|
[46423] | 135 | VMMR3/EMR3Dbg.cpp \
|
---|
[43387] | 136 | VMMR3/EMHM.cpp \
|
---|
[70979] | 137 | VMMR3/EMR3Nem.cpp \
|
---|
[94882] | 138 | VMMR3/GCM.cpp \
|
---|
[50953] | 139 | VMMR3/GIM.cpp \
|
---|
| 140 | VMMR3/GIMHv.cpp \
|
---|
[54819] | 141 | VMMR3/GIMKvm.cpp \
|
---|
[50994] | 142 | VMMR3/GIMMinimal.cpp \
|
---|
[36768] | 143 | VMMR3/IEMR3.cpp \
|
---|
[35333] | 144 | VMMR3/IOM.cpp \
|
---|
[81156] | 145 | VMMR3/IOMR3IoPort.cpp \
|
---|
[81167] | 146 | VMMR3/IOMR3Mmio.cpp \
|
---|
[35333] | 147 | VMMR3/GMM.cpp \
|
---|
[92230] | 148 | VMMR3/GVMMR3.cpp \
|
---|
[35333] | 149 | VMMR3/MM.cpp \
|
---|
| 150 | VMMR3/MMHeap.cpp \
|
---|
[70918] | 151 | VMMR3/NEMR3.cpp \
|
---|
[35333] | 152 | VMMR3/PDM.cpp \
|
---|
| 153 | VMMR3/PDMBlkCache.cpp \
|
---|
| 154 | VMMR3/PDMDevice.cpp \
|
---|
| 155 | VMMR3/PDMDevHlp.cpp \
|
---|
[84459] | 156 | $(if-expr defined(VBOX_WITH_DBGF_TRACING), VMMR3/PDMDevHlpTracing.cpp,) \
|
---|
[35333] | 157 | VMMR3/PDMDevMiscHlp.cpp \
|
---|
| 158 | VMMR3/PDMDriver.cpp \
|
---|
| 159 | VMMR3/PDMLdr.cpp \
|
---|
| 160 | VMMR3/PDMCritSect.cpp \
|
---|
| 161 | VMMR3/PDMQueue.cpp \
|
---|
[81406] | 162 | VMMR3/PDMR3Task.cpp \
|
---|
[35333] | 163 | VMMR3/PDMThread.cpp \
|
---|
| 164 | VMMR3/PGM.cpp \
|
---|
| 165 | VMMR3/PGMDbg.cpp \
|
---|
| 166 | VMMR3/PGMHandler.cpp \
|
---|
| 167 | VMMR3/PGMPhys.cpp \
|
---|
| 168 | VMMR3/PGMPool.cpp \
|
---|
| 169 | VMMR3/PGMSavedState.cpp \
|
---|
| 170 | VMMR3/PGMSharedPage.cpp \
|
---|
| 171 | VMMR3/SELM.cpp \
|
---|
| 172 | VMMR3/SSM.cpp \
|
---|
| 173 | VMMR3/STAM.cpp \
|
---|
| 174 | VMMR3/TM.cpp \
|
---|
| 175 | VMMR3/TRPM.cpp \
|
---|
| 176 | VMMR3/VM.cpp \
|
---|
| 177 | VMMR3/VMEmt.cpp \
|
---|
| 178 | VMMR3/VMReq.cpp \
|
---|
| 179 | VMMR3/VMM.cpp \
|
---|
| 180 | VMMR3/VMMGuruMeditation.cpp \
|
---|
| 181 | VMMR3/VMMTests.cpp \
|
---|
[43387] | 182 | VMMR3/HM.cpp \
|
---|
[64626] | 183 | VMMAll/APICAll.cpp \
|
---|
[94931] | 184 | VMMAll/CPUMAllCpuId.cpp \
|
---|
[1] | 185 | VMMAll/CPUMAllRegs.cpp \
|
---|
[49893] | 186 | VMMAll/CPUMAllMsrs.cpp \
|
---|
[1] | 187 | VMMAll/DBGFAll.cpp \
|
---|
[87594] | 188 | VMMAll/DBGFAllBp.cpp \
|
---|
[84458] | 189 | $(if-expr defined(VBOX_WITH_DBGF_TRACING), VMMAll/DBGFAllTracer.cpp,) \
|
---|
[43387] | 190 | VMMAll/HMAll.cpp \
|
---|
[65989] | 191 | VMMAll/HMSVMAll.cpp \
|
---|
[73606] | 192 | VMMAll/HMVMXAll.cpp \
|
---|
[47421] | 193 | VMMAll/IEMAll.cpp \
|
---|
[100740] | 194 | VMMAll/IEMAllIntprTables1.cpp \
|
---|
| 195 | VMMAll/IEMAllIntprTables2.cpp \
|
---|
| 196 | VMMAll/IEMAllIntprTables3.cpp \
|
---|
| 197 | VMMAll/IEMAllIntprTables4.cpp \
|
---|
[47421] | 198 | VMMAll/IEMAllAImplC.cpp \
|
---|
[94768] | 199 | VMMAll/IEMAllCImpl.cpp \
|
---|
| 200 | VMMAll/IEMAllCImplSvmInstr.cpp \
|
---|
| 201 | VMMAll/IEMAllCImplVmxInstr.cpp \
|
---|
[100672] | 202 | VMMAll/IEMAllDbg.cpp \
|
---|
[1] | 203 | VMMAll/IOMAll.cpp \
|
---|
[81333] | 204 | VMMAll/IOMAllMmioNew.cpp \
|
---|
[1] | 205 | VMMAll/MMAll.cpp \
|
---|
[70954] | 206 | VMMAll/NEMAll.cpp \
|
---|
[1] | 207 | VMMAll/PDMAll.cpp \
|
---|
| 208 | VMMAll/PDMAllCritSect.cpp \
|
---|
[45152] | 209 | VMMAll/PDMAllCritSectRw.cpp \
|
---|
| 210 | VMMAll/PDMAllCritSectBoth.cpp \
|
---|
[88153] | 211 | $(if-expr defined(VBOX_WITH_IOMMU_AMD) || defined(VBOX_WITH_IOMMU_INTEL), VMMAll/PDMAllIommu.cpp,) \
|
---|
[1] | 212 | VMMAll/PDMAllQueue.cpp \
|
---|
[81406] | 213 | VMMAll/PDMAllTask.cpp \
|
---|
[1] | 214 | VMMAll/PGMAll.cpp \
|
---|
| 215 | VMMAll/PGMAllHandler.cpp \
|
---|
| 216 | VMMAll/PGMAllPhys.cpp \
|
---|
| 217 | VMMAll/PGMAllPool.cpp \
|
---|
| 218 | VMMAll/SELMAll.cpp \
|
---|
| 219 | VMMAll/EMAll.cpp \
|
---|
[94882] | 220 | VMMAll/GCMAll.cpp \
|
---|
[50953] | 221 | VMMAll/GIMAll.cpp \
|
---|
| 222 | VMMAll/GIMAllHv.cpp \
|
---|
[54819] | 223 | VMMAll/GIMAllKvm.cpp \
|
---|
[1] | 224 | VMMAll/TMAll.cpp \
|
---|
| 225 | VMMAll/TMAllCpu.cpp \
|
---|
| 226 | VMMAll/TMAllReal.cpp \
|
---|
| 227 | VMMAll/TMAllVirtual.cpp \
|
---|
| 228 | VMMAll/TRPMAll.cpp \
|
---|
| 229 | VMMAll/VMAll.cpp \
|
---|
[93725] | 230 | VMMAll/VMMAll.cpp
|
---|
| 231 | VBoxVMM_SOURCES.amd64 += \
|
---|
| 232 | VMMR3/PGMR3DbgA.asm \
|
---|
[93756] | 233 | $(if-expr !defined(IEM_WITHOUT_ASSEMBLY),VMMAll/IEMAllAImpl.asm,) \
|
---|
[84486] | 234 | VMMAll/VMMAllA.asm
|
---|
[102549] | 235 | VBoxVMM_SOURCES.arm64 += \
|
---|
| 236 | VMMAll/IEMAllAImpl-arm64.S
|
---|
[26951] | 237 | ifdef VBOX_WITH_VUSB
|
---|
[98437] | 238 | VBoxVMM_SOURCES += VMMR3/PDMUsb.cpp
|
---|
[20922] | 239 | endif
|
---|
| 240 | ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
|
---|
[98437] | 241 | VBoxVMM_SOURCES += \
|
---|
| 242 | VMMR3/PDMAsyncCompletion.cpp \
|
---|
| 243 | VMMR3/PDMAsyncCompletionFile.cpp \
|
---|
| 244 | VMMR3/PDMAsyncCompletionFileFailsafe.cpp \
|
---|
| 245 | VMMR3/PDMAsyncCompletionFileNormal.cpp
|
---|
[20922] | 246 | endif
|
---|
[40652] | 247 | ifdef VBOX_WITH_NETSHAPER
|
---|
[98437] | 248 | VBoxVMM_SOURCES += \
|
---|
| 249 | VMMR3/PDMNetShaper.cpp \
|
---|
| 250 | VMMAll/PDMAllNetShaper.cpp
|
---|
[40652] | 251 | endif
|
---|
[1] | 252 |
|
---|
[98873] | 253 | ifdef VBOX_WITH_IEM_RECOMPILER
|
---|
| 254 | VBoxVMM_SOURCES += \
|
---|
[100732] | 255 | VMMAll/IEMAllThrdRecompiler.cpp \
|
---|
[100743] | 256 | VMMAll/IEMAllThrdTables1.cpp \
|
---|
| 257 | VMMAll/IEMAllThrdTables2.cpp \
|
---|
| 258 | VMMAll/IEMAllThrdTables3.cpp \
|
---|
| 259 | VMMAll/IEMAllThrdTables4.cpp \
|
---|
[100732] | 260 | VMMAll/IEMAllThrdFuncs.cpp \
|
---|
| 261 | VMMAll/IEMAllThrdFuncsBltIn.cpp
|
---|
[101163] | 262 | ifdef VBOX_WITH_IEM_NATIVE_RECOMPILER
|
---|
| 263 | VBoxVMM_SOURCES += \
|
---|
[104115] | 264 | VMMAll/IEMAllN8veExecMem.cpp \
|
---|
[102634] | 265 | VMMAll/IEMAllN8veRecompiler.cpp \
|
---|
[103807] | 266 | VMMAll/IEMAllN8veRecompFuncs1.cpp \
|
---|
| 267 | VMMAll/IEMAllN8veRecompFuncs2.cpp \
|
---|
| 268 | VMMAll/IEMAllN8veRecompFuncs3.cpp \
|
---|
| 269 | VMMAll/IEMAllN8veRecompFuncs4.cpp \
|
---|
[103181] | 270 | VMMAll/IEMAllN8veRecompBltIn.cpp \
|
---|
| 271 | VMMAll/IEMAllN8veLiveness.cpp
|
---|
[102663] | 272 | VBoxVMM_SOURCES.amd64 += \
|
---|
| 273 | VMMAll/IEMAllN8veHlpA.asm
|
---|
[103377] | 274 | VBoxVMM_SOURCES.arm64 += \
|
---|
| 275 | VMMAll/IEMAllN8veHlpA-arm64.S
|
---|
[101906] | 276 | if "$(KBUILD_TARGET_ARCH)" == "arm64" && defined(VBOX_WITH_IEM_USING_CAPSTONE_DISASSEMBLER) # temp hack
|
---|
| 277 | VBoxVMM_DEFS += VBOX_WITH_IEM_USING_CAPSTONE_DISASSEMBLER
|
---|
| 278 | VBoxVMM_LIBS.darwin += /opt/local/lib/libcapstone.dylib
|
---|
[104334] | 279 | VBoxVMM_LIBS.linux += capstone
|
---|
[101906] | 280 | endif
|
---|
[103769] | 281 | VMMAll/IEMAllN8veRecompiler.cpp_CXXFLAGS.win := -bigobj
|
---|
| 282 | VMMAll/IEMAllN8veLiveness.cpp_CXXFLAGS.win := -bigobj
|
---|
[101163] | 283 | endif
|
---|
[103769] | 284 | VMMAll/IEMAllThrdFuncs.cpp_CXXFLAGS.win := -bigobj
|
---|
[98873] | 285 | endif
|
---|
| 286 |
|
---|
[72925] | 287 | ifdef VBOX_WITH_NATIVE_NEM
|
---|
[98437] | 288 | VBoxVMM_SOURCES.linux.amd64 += VMMR3/NEMR3Native-linux.cpp
|
---|
[92444] | 289 |
|
---|
[98437] | 290 | VBoxVMM_SOURCES.win.amd64 += VMMR3/NEMR3Native-win.cpp
|
---|
| 291 | VBoxVMM_DEFS.win.amd64 += VBOX_WITH_NATIVE_NEM
|
---|
| 292 | VBoxVMM_SDKS.win += VBoxNtDll
|
---|
| 293 | VMMR3/NEMR3Native-win.cpp_DEFS.amd64 = _AMD64_
|
---|
| 294 | VMMR3/NEMR3Native-win.cpp_INCS = \
|
---|
| 295 | $(KBUILD_DEVTOOLS)/win.x86/sdk/v10.0.17134.0/include/10.0.17134.0/um \
|
---|
| 296 | $(KBUILD_DEVTOOLS)/win.x86/sdk/v10.0.17134.0/include/10.0.17134.0/shared
|
---|
[92221] | 297 |
|
---|
[98437] | 298 | VBoxVMM_SOURCES.darwin.amd64 += \
|
---|
| 299 | VMMR3/NEMR3Native-darwin.cpp
|
---|
| 300 | VBoxVMM_DEFS.darwin.amd64 += VBOX_WITH_NATIVE_NEM
|
---|
[70942] | 301 | endif
|
---|
[70918] | 302 |
|
---|
[5682] | 303 | VBoxVMM_LIBS = \
|
---|
[38082] | 304 | $(PATH_STAGE_LIB)/DisasmR3$(VBOX_SUFF_LIB)
|
---|
[5682] | 305 | ifdef VBOX_WITH_DEBUGGER
|
---|
[98437] | 306 | VBoxVMM_LIBS += \
|
---|
| 307 | $(PATH_STAGE_LIB)/Debugger$(VBOX_SUFF_LIB)
|
---|
[5682] | 308 | endif
|
---|
| 309 | VBoxVMM_LIBS += \
|
---|
[2517] | 310 | $(LIB_REM) \
|
---|
| 311 | $(LIB_RUNTIME)
|
---|
| 312 |
|
---|
| 313 | VBoxVMM_LIBS.win = $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib
|
---|
[66125] | 314 | VBoxVMM_LDFLAGS.linux = $(VBOX_GCC_NO_UNDEFINED)
|
---|
[11725] | 315 | VBoxVMM_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxVMM.dylib
|
---|
[3888] | 316 | VBoxVMM_LDFLAGS.solaris = -mimpure-text
|
---|
[40517] | 317 |
|
---|
[40519] | 318 | # SSM wish to know the build type, host os and arch.
|
---|
[84540] | 319 | ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING
|
---|
[98437] | 320 | VMMR3/SSM.cpp_DEFS += \
|
---|
| 321 | KBUILD_TYPE="$(KBUILD_TYPE)" \
|
---|
| 322 | KBUILD_TARGET="$(KBUILD_TARGET)" \
|
---|
| 323 | KBUILD_TARGET_ARCH="$(KBUILD_TARGET_ARCH)"
|
---|
[83770] | 324 | else
|
---|
[98437] | 325 | VMMR3/SSM.cpp_DEFS += \
|
---|
| 326 | KBUILD_TYPE=\"$(KBUILD_TYPE)\" \
|
---|
| 327 | KBUILD_TARGET=\"$(KBUILD_TARGET)\" \
|
---|
| 328 | KBUILD_TARGET_ARCH=\"$(KBUILD_TARGET_ARCH)\"
|
---|
[83770] | 329 | endif
|
---|
[40517] | 330 |
|
---|
[69560] | 331 | ifdef VBOX_WITH_GCC_SANITIZER
|
---|
[98437] | 332 | VMMR3/PGMPool.cpp_CXXFLAGS.linux += -fno-sanitize=address
|
---|
[69560] | 333 | endif
|
---|
[40519] | 334 |
|
---|
[9427] | 335 | #ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
|
---|
| 336 | # ifeq ($(KBUILD_HOST), linux)
|
---|
| 337 | #VBoxVMM_LIBS += aio
|
---|
| 338 | # endif
|
---|
| 339 | #endif
|
---|
[2517] | 340 |
|
---|
[61885] | 341 | if "$(USERNAME)" == "bird" && "$(KBUILD_TARGET)" == "win"
|
---|
[100733] | 342 | VBoxVMM_VMMAll/IEMAll.cpp_CXXFLAGS = /FAcs /Fa$(subst /,\\,$(outbase).cod)
|
---|
[100740] | 343 | VBoxVMM_VMMAll/IEMAllIntprTables1.cpp_CXXFLAGS = /FAcs /Fa$(subst /,\\,$(outbase).cod)
|
---|
| 344 | VBoxVMM_VMMAll/IEMAllIntprTables2.cpp_CXXFLAGS = /FAcs /Fa$(subst /,\\,$(outbase).cod)
|
---|
| 345 | VBoxVMM_VMMAll/IEMAllIntprTables3.cpp_CXXFLAGS = /FAcs /Fa$(subst /,\\,$(outbase).cod)
|
---|
| 346 | VBoxVMM_VMMAll/IEMAllIntprTables4.cpp_CXXFLAGS = /FAcs /Fa$(subst /,\\,$(outbase).cod)
|
---|
[100733] | 347 | VBoxVMM_VMMAll/IEMAllAImplC.cpp_CXXFLAGS = /FAcs /Fa$(subst /,\\,$(outbase).cod)
|
---|
| 348 | VBoxVMM_VMMAll/PGMAll.cpp_CXXFLAGS = /FAcs /Fa$(subst /,\\,$(outbase).cod)
|
---|
| 349 | VBoxVMM_VMMAll/PDMAllCritSect.cpp_CXXFLAGS = /FAcs /Fa$(subst /,\\,$(outbase).cod)
|
---|
| 350 | VBoxVMM_CLEAN += $(addprefix $(VBoxVMM_0_OUTDIR)/VMMAll/, IEMAll.cod IEMAllAImplC.cod IEMAllInstInterpretOnly.cod PGMAll.cod PDMAllCritSect.cod)
|
---|
[61885] | 351 | endif
|
---|
| 352 |
|
---|
[55789] | 353 | $(call VBOX_SET_VER_INFO_DLL,VBoxVMM,VirtualBox VMM) # Version info / description.
|
---|
[24574] | 354 |
|
---|
[98956] | 355 | ifdef VBOX_WITH_VIRT_ARMV8
|
---|
[98960] | 356 | #
|
---|
| 357 | # The VMM DLL - ARMv8 variant.
|
---|
| 358 | #
|
---|
[99926] | 359 | ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
|
---|
| 360 | DLLS += VBoxVMMArm
|
---|
| 361 | endif
|
---|
[98956] | 362 | VBoxVMMArm_TEMPLATE = VBoxR3DllNoPic
|
---|
| 363 | VBoxVMMArm_SONAME.linux = VBoxVMMArm.so
|
---|
[98960] | 364 |
|
---|
[101229] | 365 | VBoxVMMArm_DEFS = VBOX_VMM_TARGET_ARMV8 VBOX_IN_VMM IN_VMM_R3 IN_DIS IN_DBG \
|
---|
| 366 | $(filter-out VBOX_WITH_IEM_RECOMPILER VBOX_WITH_IEM_NATIVE_RECOMPILER,$(VMM_COMMON_DEFS))
|
---|
[98956] | 367 | ifdef VBOX_WITH_VUSB
|
---|
| 368 | VBoxVMMArm_DEFS += VBOX_WITH_USB
|
---|
| 369 | endif
|
---|
| 370 | ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
|
---|
| 371 | VBoxVMMArm_DEFS += VBOX_WITH_PDM_ASYNC_COMPLETION
|
---|
| 372 | endif
|
---|
| 373 | ifdef VBOX_WITH_NETSHAPER
|
---|
| 374 | VBoxVMMArm_DEFS += VBOX_WITH_NETSHAPER
|
---|
| 375 | endif
|
---|
| 376 | #ifdef VBOX_WITH_DBGF_TRACING
|
---|
| 377 | # VBoxVMMArm_DEFS += VBOX_WITH_DBGF_TRACING
|
---|
| 378 | #endif
|
---|
| 379 | #ifdef VBOX_WITH_DBGF_FLOW_TRACING @todo Later
|
---|
| 380 | # VBoxVMMArm_DEFS += VBOX_WITH_DBGF_FLOW_TRACING
|
---|
| 381 | #endif
|
---|
[98960] | 382 |
|
---|
[98956] | 383 | VBoxVMMArm_INCS = \
|
---|
| 384 | include \
|
---|
| 385 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs
|
---|
| 386 | VBoxVMMArm_SOURCES = \
|
---|
| 387 | VBoxVMM.d \
|
---|
| 388 | VMMR3/VMMR3VTable.cpp \
|
---|
| 389 | VMMR3/CFGM.cpp \
|
---|
[98970] | 390 | VMMR3/CPUM-armv8.cpp \
|
---|
[99070] | 391 | VMMR3/CPUMDbg-armv8.cpp \
|
---|
[101103] | 392 | VMMR3/CPUMR3CpuId-armv8.cpp \
|
---|
[99383] | 393 | VMMR3/CPUMR3Db-armv8.cpp \
|
---|
[98956] | 394 | VMMR3/DBGF.cpp \
|
---|
| 395 | VMMR3/DBGFAddr.cpp \
|
---|
| 396 | VMMR3/DBGFAddrSpace.cpp \
|
---|
| 397 | VMMR3/DBGFR3Bp.cpp \
|
---|
| 398 | VMMR3/DBGFR3BugCheck.cpp \
|
---|
[99051] | 399 | VMMR3/DBGFCoreWrite.cpp \
|
---|
[98956] | 400 | VMMR3/DBGFCpu.cpp \
|
---|
| 401 | VMMR3/DBGFDisas.cpp \
|
---|
| 402 | VMMR3/DBGFInfo.cpp \
|
---|
| 403 | VMMR3/DBGFLog.cpp \
|
---|
| 404 | VMMR3/DBGFMem.cpp \
|
---|
| 405 | VMMR3/DBGFR3ModInMem.cpp \
|
---|
| 406 | VMMR3/DBGFOS.cpp \
|
---|
| 407 | VMMR3/DBGFR3PlugIn.cpp \
|
---|
| 408 | VMMR3/DBGFReg.cpp \
|
---|
| 409 | VMMR3/DBGFStack.cpp \
|
---|
| 410 | VMMR3/DBGFR3Flow.cpp \
|
---|
[99051] | 411 | VMMR3/DBGFR3FlowTrace.cpp \
|
---|
[98956] | 412 | VMMR3/DBGFR3Trace.cpp \
|
---|
| 413 | VMMR3/DBGFR3SampleReport.cpp \
|
---|
| 414 | VMMR3/DBGFR3Type.cpp \
|
---|
| 415 | VMMR3/EM.cpp \
|
---|
| 416 | VMMR3/EMR3Dbg.cpp \
|
---|
| 417 | VMMR3/EMR3Nem.cpp \
|
---|
[99385] | 418 | VMMR3/GICR3.cpp \
|
---|
[98956] | 419 | VMMR3/GIM.cpp \
|
---|
| 420 | VMMR3/IEMR3.cpp \
|
---|
| 421 | VMMR3/IOM.cpp \
|
---|
[99743] | 422 | VMMR3/IOMR3IoPort.cpp \
|
---|
[98956] | 423 | VMMR3/IOMR3Mmio.cpp \
|
---|
| 424 | VMMR3/GMM.cpp \
|
---|
| 425 | VMMR3/GVMMR3.cpp \
|
---|
| 426 | VMMR3/MM.cpp \
|
---|
| 427 | VMMR3/MMHeap.cpp \
|
---|
| 428 | VMMR3/NEMR3.cpp \
|
---|
| 429 | VMMR3/PDM.cpp \
|
---|
| 430 | VMMR3/PDMBlkCache.cpp \
|
---|
| 431 | VMMR3/PDMDevice.cpp \
|
---|
| 432 | VMMR3/PDMDevHlp.cpp \
|
---|
| 433 | VMMR3/PDMDevMiscHlp.cpp \
|
---|
| 434 | VMMR3/PDMDriver.cpp \
|
---|
| 435 | VMMR3/PDMLdr.cpp \
|
---|
| 436 | VMMR3/PDMCritSect.cpp \
|
---|
| 437 | VMMR3/PDMQueue.cpp \
|
---|
| 438 | VMMR3/PDMR3Task.cpp \
|
---|
| 439 | VMMR3/PDMThread.cpp \
|
---|
[99051] | 440 | VMMR3/PGM-armv8.cpp \
|
---|
[98956] | 441 | VMMR3/PGMDbg.cpp \
|
---|
| 442 | VMMR3/PGMHandler.cpp \
|
---|
| 443 | VMMR3/PGMPhys.cpp \
|
---|
| 444 | VMMR3/PGMPool.cpp \
|
---|
| 445 | VMMR3/PGMSavedState.cpp \
|
---|
| 446 | VMMR3/PGMSharedPage.cpp \
|
---|
| 447 | VMMR3/SSM.cpp \
|
---|
| 448 | VMMR3/STAM.cpp \
|
---|
| 449 | VMMR3/TM.cpp \
|
---|
| 450 | VMMR3/TRPM.cpp \
|
---|
| 451 | VMMR3/VM.cpp \
|
---|
| 452 | VMMR3/VMEmt.cpp \
|
---|
| 453 | VMMR3/VMReq.cpp \
|
---|
| 454 | VMMR3/VMM.cpp \
|
---|
| 455 | VMMR3/VMMGuruMeditation.cpp \
|
---|
| 456 | VMMR3/VMMTests.cpp \
|
---|
[99051] | 457 | VMMR3/HM-armv8.cpp \
|
---|
| 458 | VMMAll/CPUMAllRegs-armv8.cpp \
|
---|
[99196] | 459 | VMMAll/CPUMAllSysRegs-armv8.cpp \
|
---|
[98956] | 460 | VMMAll/DBGFAll.cpp \
|
---|
| 461 | $(if-expr defined(VBOX_WITH_DBGF_TRACING), VMMAll/DBGFAllTracer.cpp,) \
|
---|
[99051] | 462 | VMMAll/IEMAll-armv8.cpp \
|
---|
[98956] | 463 | VMMAll/IOMAll.cpp \
|
---|
| 464 | VMMAll/IOMAllMmioNew.cpp \
|
---|
| 465 | VMMAll/MMAll.cpp \
|
---|
| 466 | VMMAll/NEMAll.cpp \
|
---|
| 467 | VMMAll/PDMAll.cpp \
|
---|
| 468 | VMMAll/PDMAllCritSect.cpp \
|
---|
| 469 | VMMAll/PDMAllCritSectRw.cpp \
|
---|
| 470 | VMMAll/PDMAllCritSectBoth.cpp \
|
---|
| 471 | VMMAll/PDMAllQueue.cpp \
|
---|
| 472 | VMMAll/PDMAllTask.cpp \
|
---|
| 473 | VMMAll/PGMAllHandler.cpp \
|
---|
| 474 | VMMAll/PGMAllPhys.cpp \
|
---|
| 475 | VMMAll/PGMAllPool.cpp \
|
---|
| 476 | VMMAll/EMAll.cpp \
|
---|
[99385] | 477 | VMMAll/GICAll.cpp \
|
---|
[98956] | 478 | VMMAll/GIMAll.cpp \
|
---|
| 479 | VMMAll/TMAll.cpp \
|
---|
| 480 | VMMAll/TMAllCpu.cpp \
|
---|
| 481 | VMMAll/TMAllReal.cpp \
|
---|
| 482 | VMMAll/TMAllVirtual.cpp \
|
---|
| 483 | VMMAll/TRPMAll.cpp \
|
---|
| 484 | VMMAll/VMAll.cpp \
|
---|
| 485 | VMMAll/VMMAll.cpp
|
---|
| 486 | ifdef VBOX_WITH_VUSB
|
---|
| 487 | VBoxVMMArm_SOURCES += VMMR3/PDMUsb.cpp
|
---|
| 488 | endif
|
---|
| 489 | ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
|
---|
| 490 | VBoxVMMArm_SOURCES += \
|
---|
| 491 | VMMR3/PDMAsyncCompletion.cpp \
|
---|
| 492 | VMMR3/PDMAsyncCompletionFile.cpp \
|
---|
| 493 | VMMR3/PDMAsyncCompletionFileFailsafe.cpp \
|
---|
| 494 | VMMR3/PDMAsyncCompletionFileNormal.cpp
|
---|
| 495 | endif
|
---|
| 496 | ifdef VBOX_WITH_NETSHAPER
|
---|
| 497 | VBoxVMMArm_SOURCES += \
|
---|
| 498 | VMMR3/PDMNetShaper.cpp \
|
---|
| 499 | VMMAll/PDMAllNetShaper.cpp
|
---|
| 500 | endif
|
---|
[98960] | 501 |
|
---|
[98956] | 502 | VBoxVMMArm_SOURCES.darwin.arm64 += \
|
---|
[99051] | 503 | VMMR3/NEMR3Native-darwin-armv8.cpp
|
---|
[98956] | 504 | VBoxVMMArm_DEFS.darwin.arm64 += VBOX_WITH_NATIVE_NEM
|
---|
[99051] | 505 | VBoxVMMArm_LDFLAGS.darwin.arm64 = -framework Hypervisor
|
---|
[98960] | 506 |
|
---|
[104334] | 507 | VBoxVMMArm_SOURCES.linux.arm64 += \
|
---|
[104386] | 508 | VMMR3/NEMR3Native-linux-armv8.cpp \
|
---|
| 509 | VMMR3/GICR3Kvm.cpp
|
---|
[104334] | 510 | VBoxVMMArm_DEFS.linux.arm64 += VBOX_WITH_NATIVE_NEM
|
---|
| 511 |
|
---|
[98956] | 512 | VBoxVMMArm_LIBS = \
|
---|
[101539] | 513 | $(PATH_STAGE_LIB)/DisasmR3$(VBOX_SUFF_LIB)
|
---|
[99051] | 514 | ifdef VBOX_WITH_DEBUGGER
|
---|
| 515 | VBoxVMMArm_LIBS += \
|
---|
| 516 | $(PATH_STAGE_LIB)/Debugger-armv8$(VBOX_SUFF_LIB)
|
---|
| 517 | endif
|
---|
[98956] | 518 | VBoxVMMArm_LIBS += \
|
---|
| 519 | $(LIB_RUNTIME)
|
---|
[98960] | 520 |
|
---|
[98956] | 521 | VBoxVMMArm_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxVMMArm.dylib
|
---|
| 522 | endif
|
---|
[64545] | 523 |
|
---|
[93757] | 524 |
|
---|
| 525 | #
|
---|
[64545] | 526 | # Generate macro template for IEM instruction statistics.
|
---|
| 527 | #
|
---|
[66638] | 528 | $(call KB_FN_DO_PASS0_ON_TARGET,VBoxVMM) # Set VBoxVMM_0_OUTDIR
|
---|
[64545] | 529 | VBoxVMM_INTERMEDIATES += $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h
|
---|
| 530 | VBoxVMM_CLEAN += \
|
---|
| 531 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h.ts \
|
---|
| 532 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h
|
---|
[66638] | 533 | $(call KB_FN_AUTO_CMD_DEPS,$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h.ts)
|
---|
| 534 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h.ts \
|
---|
| 535 | +| $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h: \
|
---|
[100733] | 536 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllInstCommon.cpp.h \
|
---|
| 537 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllInstOneByte.cpp.h \
|
---|
| 538 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllInstTwoByte0f.cpp.h \
|
---|
| 539 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllInstThree0f38.cpp.h \
|
---|
| 540 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllInstThree0f3a.cpp.h \
|
---|
| 541 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllInstVexMap1.cpp.h \
|
---|
| 542 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllInstVexMap2.cpp.h \
|
---|
| 543 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllInstVexMap3.cpp.h \
|
---|
| 544 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllInst3DNow.cpp.h
|
---|
| 545 | $(QUIET)$(call MSG_GENERATE,VBoxVMM,$@,VMMAll/IEMAllInst*.cpp.h)
|
---|
[65871] | 546 | $(QUIET)$(RM) -f -- "$@.tmp" "$@.tmp" "$@.sorted"
|
---|
[64545] | 547 | $(QUIET)$(MKDIR) -p -- "$(dir $@)"
|
---|
[66639] | 548 | $(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
|
---|
[65758] | 549 | $(QUIET)$(SED) \
|
---|
[66334] | 550 | -e '/IEMOP_MNEMONIC\(\|[01234]\|[01234]EX\)(/!d' \
|
---|
[95575] | 551 | -e '/^ *# *define *IEMOP_MNEMONIC/d' \
|
---|
[75173] | 552 | -e ':look-for-end-of-invocation' \
|
---|
| 553 | -e '/)/bend-of-invocation' \
|
---|
| 554 | -e 'N' \
|
---|
| 555 | -e 'blook-for-end-of-invocation' \
|
---|
| 556 | -e ':end-of-invocation' \
|
---|
| 557 | -e 's/\n/ /g' \
|
---|
| 558 | -e 's/ */ /g' \
|
---|
| 559 | -e 's/^.*IEMOP_MNEMONIC\(\|[01234]\|[01234]EX\)(/IEM_DO_INSTR_STAT\1(/' \
|
---|
| 560 | -e 's/;.*$(DOLLAR)//' \
|
---|
[98795] | 561 | --output "$@.tmp" $(filter %.cpp.h,$^)
|
---|
[65871] | 562 | # Windows sort does some kind of seeking. So, we must use a temporary file and kmk_cat to define and undefine our macros.
|
---|
| 563 | $(QUIET)$(REDIRECT) -wto "$@.sorted" -- sort "$@.tmp"
|
---|
| 564 | $(QUIET)$(APPEND) -nt "$@" \
|
---|
[75173] | 565 | '/* Warning autogenerated by VMM/Makefile.kmk. */ ' \
|
---|
[65871] | 566 | '#define IEM_DO_INSTR_STAT0(f,u,l,fd,fi) IEM_DO_INSTR_STAT(l, #l)' \
|
---|
| 567 | '#define IEM_DO_INSTR_STAT1(f,u,l,o1,fd,fi) IEM_DO_INSTR_STAT(l ## _ ## o1, #l " " #o1)' \
|
---|
| 568 | '#define IEM_DO_INSTR_STAT2(f,u,l,o1,o2,fd,fi) IEM_DO_INSTR_STAT(l ## _ ## o1 ## _ ## o2, #l " " #o1 "," #o2)' \
|
---|
| 569 | '#define IEM_DO_INSTR_STAT3(f,u,l,o1,o2,o3,fd,fi) IEM_DO_INSTR_STAT(l ## _ ## o1 ## _ ## o2 ## _ ## o3, #l " " #o1 "," #o2 "," #o3)' \
|
---|
| 570 | '#define IEM_DO_INSTR_STAT4(f,u,l,o1,o2,o3,o4,fd,fi) IEM_DO_INSTR_STAT(l ## _ ## o1 ## _ ## o2 ## _ ## o3 ## _ ## o4, #l " " #o1 "," #o2 "," #o3 "," #o4)' \
|
---|
| 571 | '#define IEM_DO_INSTR_STAT0EX(s,m,f,u,l,fd,fi) IEM_DO_INSTR_STAT(s,m)' \
|
---|
| 572 | '#define IEM_DO_INSTR_STAT1EX(s,m,f,u,l,o1,fd,fi) IEM_DO_INSTR_STAT(s,m)' \
|
---|
| 573 | '#define IEM_DO_INSTR_STAT2EX(s,m,f,u,l,o1,o2,fd,fi) IEM_DO_INSTR_STAT(s,m)' \
|
---|
| 574 | '#define IEM_DO_INSTR_STAT3EX(s,m,f,u,l,o1,o2,o3,fd,fi) IEM_DO_INSTR_STAT(s,m)' \
|
---|
| 575 | '#define IEM_DO_INSTR_STAT4EX(s,m,f,u,l,o1,o2,o3,o4,fd,fi) IEM_DO_INSTR_STAT(s,m)' \
|
---|
| 576 | ''
|
---|
| 577 | $(QUIET)$(REDIRECT) -ato "$@" -- $(CAT_EXT) "$@.sorted"
|
---|
| 578 | $(QUIET)$(APPEND) -n "$@" \
|
---|
[75173] | 579 | '' \
|
---|
[65871] | 580 | '#undef IEM_DO_INSTR_STAT0' \
|
---|
| 581 | '#undef IEM_DO_INSTR_STAT1' \
|
---|
| 582 | '#undef IEM_DO_INSTR_STAT2' \
|
---|
| 583 | '#undef IEM_DO_INSTR_STAT3' \
|
---|
| 584 | '#undef IEM_DO_INSTR_STAT4' \
|
---|
[66334] | 585 | '#undef IEM_DO_INSTR_STAT0EX' \
|
---|
| 586 | '#undef IEM_DO_INSTR_STAT1EX' \
|
---|
| 587 | '#undef IEM_DO_INSTR_STAT2EX' \
|
---|
| 588 | '#undef IEM_DO_INSTR_STAT3EX' \
|
---|
| 589 | '#undef IEM_DO_INSTR_STAT4EX' \
|
---|
[75173] | 590 | ''
|
---|
[65871] | 591 | $(QUIET)$(RM) -f -- "$@.tmp" "$@.sorted"
|
---|
[64545] | 592 | $(QUIET)$(CP) -v -f --changed -- "$@" "$(patsubst %.ts,%,$@)"
|
---|
| 593 |
|
---|
[66638] | 594 | foobar: $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h
|
---|
[64545] | 595 |
|
---|
[98873] | 596 | ifdef VBOX_WITH_IEM_RECOMPILER
|
---|
| 597 | #
|
---|
| 598 | # Generate functions for the threaded recompiler and a modified instruction decoded.
|
---|
| 599 | # Note! Dependency order matters!
|
---|
| 600 | #
|
---|
| 601 | VBoxVMM_INTERMEDIATES += \
|
---|
| 602 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedFunctions.h \
|
---|
[100752] | 603 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions1.cpp.h \
|
---|
| 604 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions2.cpp.h \
|
---|
| 605 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions3.cpp.h \
|
---|
| 606 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions4.cpp.h
|
---|
[101275] | 607 | ifdef VBOX_WITH_IEM_NATIVE_RECOMPILER
|
---|
| 608 | VBoxVMM_INTERMEDIATES += \
|
---|
| 609 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions.h \
|
---|
[103807] | 610 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions1.cpp.h \
|
---|
| 611 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions2.cpp.h \
|
---|
| 612 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions3.cpp.h \
|
---|
| 613 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions4.cpp.h \
|
---|
[103181] | 614 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeLiveness.cpp.h
|
---|
[101275] | 615 | endif
|
---|
[98873] | 616 | VBoxVMM_CLEAN += \
|
---|
| 617 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedFunctions.h.ts \
|
---|
| 618 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedFunctions.h \
|
---|
[98951] | 619 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedFunctions.cpp.h \
|
---|
[100752] | 620 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions1.cpp.h \
|
---|
| 621 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions2.cpp.h \
|
---|
| 622 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions3.cpp.h \
|
---|
[101275] | 623 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions4.cpp.h \
|
---|
| 624 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions.h \
|
---|
[103807] | 625 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions1.cpp.h \
|
---|
| 626 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions2.cpp.h \
|
---|
| 627 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions3.cpp.h \
|
---|
| 628 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions4.cpp.h \
|
---|
[103181] | 629 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeLiveness.cpp.h
|
---|
[98873] | 630 | $(call KB_FN_AUTO_CMD_DEPS,$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedFunctions.h.ts)
|
---|
| 631 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedFunctions.h.ts \
|
---|
| 632 | +| $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedFunctions.h \
|
---|
[98951] | 633 | +| $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedFunctions.cpp.h \
|
---|
[101275] | 634 | +| $(if-expr defined(VBOX_WITH_IEM_NATIVE_RECOMPILER), $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions.h,) \
|
---|
[103808] | 635 | +| $(if-expr defined(VBOX_WITH_IEM_NATIVE_RECOMPILER), $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions1.cpp.h,) \
|
---|
| 636 | +| $(if-expr defined(VBOX_WITH_IEM_NATIVE_RECOMPILER), $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions2.cpp.h,) \
|
---|
| 637 | +| $(if-expr defined(VBOX_WITH_IEM_NATIVE_RECOMPILER), $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions3.cpp.h,) \
|
---|
| 638 | +| $(if-expr defined(VBOX_WITH_IEM_NATIVE_RECOMPILER), $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions4.cpp.h,) \
|
---|
[103181] | 639 | +| $(if-expr defined(VBOX_WITH_IEM_NATIVE_RECOMPILER), $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeLiveness.cpp.h,) \
|
---|
[100743] | 640 | +| $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions1.cpp.h \
|
---|
| 641 | +| $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions2.cpp.h \
|
---|
| 642 | +| $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions3.cpp.h \
|
---|
| 643 | +| $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions4.cpp.h: \
|
---|
[100732] | 644 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllThrdPython.py \
|
---|
[100733] | 645 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllInstPython.py \
|
---|
[101307] | 646 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllN8vePython.py \
|
---|
[100733] | 647 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllInstCommon.cpp.h \
|
---|
[103640] | 648 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllInstCommonBodyMacros.h \
|
---|
[100733] | 649 | $(if-expr !defined(IEM_WITHOUT_3DNOW) ,$(PATH_SUB_CURRENT)/VMMAll/IEMAllInst3DNow.cpp.h,) \
|
---|
| 650 | $(if-expr !defined(IEM_WITHOUT_THREE_0F_38),$(PATH_SUB_CURRENT)/VMMAll/IEMAllInstThree0f38.cpp.h,) \
|
---|
| 651 | $(if-expr !defined(IEM_WITHOUT_THREE_0F_3A),$(PATH_SUB_CURRENT)/VMMAll/IEMAllInstThree0f3a.cpp.h,) \
|
---|
| 652 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllInstTwoByte0f.cpp.h \
|
---|
[98873] | 653 | $(if-expr !defined(IEM_WITHOUT_VEX), \
|
---|
[100733] | 654 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllInstVexMap1.cpp.h \
|
---|
| 655 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllInstVexMap2.cpp.h \
|
---|
| 656 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllInstVexMap3.cpp.h,) \
|
---|
| 657 | $(PATH_SUB_CURRENT)/VMMAll/IEMAllInstOneByte.cpp.h
|
---|
| 658 | $(QUIET)$(call MSG_GENERATE,VBoxVMM,$@,VMMAll/IEMAllInst*.cpp.h)
|
---|
[98873] | 659 | $(QUIET)$(RM) -f -- \
|
---|
[100752] | 660 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions1.cpp.h.ts" \
|
---|
| 661 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions2.cpp.h.ts" \
|
---|
| 662 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions3.cpp.h.ts" \
|
---|
| 663 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions4.cpp.h.ts" \
|
---|
[98951] | 664 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedFunctions.cpp.h.ts" \
|
---|
[103807] | 665 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions.h.ts" \
|
---|
| 666 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions1.cpp.h.ts" \
|
---|
| 667 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions2.cpp.h.ts" \
|
---|
| 668 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions3.cpp.h.ts" \
|
---|
| 669 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions4.cpp.h.ts" \
|
---|
| 670 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeLiveness.cpp.h.ts"
|
---|
[98873] | 671 | $(QUIET)$(MKDIR) -p -- "$(dir $@)"
|
---|
| 672 | $(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
|
---|
| 673 | $(REDIRECT) -0 /dev/null -- $(VBOX_BLD_PYTHON) $< $(filter %.cpp.h,$^) \
|
---|
[101732] | 674 | --host-arch "$(KBUILD_TARGET_ARCH)" \
|
---|
[101275] | 675 | --out-thrd-funcs-hdr "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedFunctions.h.ts" \
|
---|
| 676 | --out-thrd-funcs-cpp "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedFunctions.cpp.h.ts" \
|
---|
| 677 | --out-mod-input1 "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions1.cpp.h.ts" \
|
---|
| 678 | --out-mod-input2 "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions2.cpp.h.ts" \
|
---|
| 679 | --out-mod-input3 "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions3.cpp.h.ts" \
|
---|
| 680 | --out-mod-input4 "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions4.cpp.h.ts" \
|
---|
| 681 | $(if-expr defined(VBOX_WITH_IEM_NATIVE_RECOMPILER), \
|
---|
[101732] | 682 | --native \
|
---|
[103181] | 683 | --out-n8ve-funcs-hdr "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions.h.ts" \
|
---|
[103807] | 684 | --out-n8ve-funcs-cpp1 "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions1.cpp.h.ts" \
|
---|
| 685 | --out-n8ve-funcs-cpp2 "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions2.cpp.h.ts" \
|
---|
| 686 | --out-n8ve-funcs-cpp3 "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions3.cpp.h.ts" \
|
---|
| 687 | --out-n8ve-funcs-cpp4 "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions4.cpp.h.ts" \
|
---|
[103181] | 688 | --out-n8ve-liveness-cpp "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeLiveness.cpp.h.ts" \
|
---|
[101275] | 689 | ,)
|
---|
[98873] | 690 | $(QUIET)$(CP) -v -f --changed -- \
|
---|
[100743] | 691 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions1.cpp.h.ts" \
|
---|
| 692 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions1.cpp.h"
|
---|
[98873] | 693 | $(QUIET)$(CP) -v -f --changed -- \
|
---|
[100743] | 694 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions2.cpp.h.ts" \
|
---|
| 695 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions2.cpp.h"
|
---|
| 696 | $(QUIET)$(CP) -v -f --changed -- \
|
---|
| 697 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions3.cpp.h.ts" \
|
---|
| 698 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions3.cpp.h"
|
---|
| 699 | $(QUIET)$(CP) -v -f --changed -- \
|
---|
| 700 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions4.cpp.h.ts" \
|
---|
| 701 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions4.cpp.h"
|
---|
| 702 | $(QUIET)$(CP) -v -f --changed -- \
|
---|
[98951] | 703 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedFunctions.cpp.h.ts" \
|
---|
| 704 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedFunctions.cpp.h"
|
---|
[98873] | 705 | $(QUIET)$(CP) -v -f --changed -- \
|
---|
| 706 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedFunctions.h.ts" \
|
---|
| 707 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedFunctions.h"
|
---|
[101275] | 708 | ifdef VBOX_WITH_IEM_NATIVE_RECOMPILER
|
---|
| 709 | $(QUIET)$(CP) -v -f --changed -- \
|
---|
| 710 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions.h.ts" \
|
---|
| 711 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions.h"
|
---|
| 712 | $(QUIET)$(CP) -v -f --changed -- \
|
---|
[103807] | 713 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions1.cpp.h.ts" \
|
---|
| 714 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions1.cpp.h"
|
---|
[103181] | 715 | $(QUIET)$(CP) -v -f --changed -- \
|
---|
[103807] | 716 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions2.cpp.h.ts" \
|
---|
| 717 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions2.cpp.h"
|
---|
| 718 | $(QUIET)$(CP) -v -f --changed -- \
|
---|
| 719 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions3.cpp.h.ts" \
|
---|
| 720 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions3.cpp.h"
|
---|
| 721 | $(QUIET)$(CP) -v -f --changed -- \
|
---|
| 722 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions4.cpp.h.ts" \
|
---|
| 723 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions4.cpp.h"
|
---|
| 724 | $(QUIET)$(CP) -v -f --changed -- \
|
---|
[103181] | 725 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeLiveness.cpp.h.ts" \
|
---|
| 726 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeLiveness.cpp.h"
|
---|
[101275] | 727 | endif
|
---|
[98873] | 728 | $(QUIET)$(RM) -f -- \
|
---|
[100743] | 729 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions1.cpp.h.ts" \
|
---|
| 730 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions2.cpp.h.ts" \
|
---|
| 731 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions3.cpp.h.ts" \
|
---|
| 732 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedInstructions4.cpp.h.ts" \
|
---|
[101275] | 733 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedFunctions.cpp.h.ts" \
|
---|
| 734 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions.h.ts" \
|
---|
[103807] | 735 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions1.cpp.h.ts" \
|
---|
| 736 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions2.cpp.h.ts" \
|
---|
| 737 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions3.cpp.h.ts" \
|
---|
| 738 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeFunctions4.cpp.h.ts" \
|
---|
| 739 | "$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMNativeLiveness.cpp.h.ts"
|
---|
[98873] | 740 |
|
---|
| 741 | foobared: $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMThreadedFunctions.h.ts
|
---|
| 742 |
|
---|
[104367] | 743 | #
|
---|
| 744 | # Generate member offsets for selected structures for use from ARM64 assembly.
|
---|
| 745 | #
|
---|
| 746 | if1of ($(KBUILD_TARGET_ARCH), arm64)
|
---|
| 747 | VBoxVMM_CLEAN += \
|
---|
[104378] | 748 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMAssemblyOffsets.h.ts \
|
---|
| 749 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMAssemblyOffsets.h
|
---|
[104367] | 750 | $(call KB_FN_AUTO_CMD_DEPS,$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMAssemblyOffsets.h.ts)
|
---|
| 751 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMAssemblyOffsets.h.ts \
|
---|
| 752 | +| $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMAssemblyOffsets.h: \
|
---|
| 753 | $(VBoxVMM_0_OUTDIR)/VMMAll/IEMAllN8veRecompiler.o \
|
---|
| 754 | $(PATH_SUB_CURRENT)/dwarfdump-to-offsets.sed
|
---|
| 755 | $(QUIET)$(call MSG_GENERATE,VBoxVMM,$@,IEMAllN8veRecompiler.o)
|
---|
[104378] | 756 | $(QUIET)$(RM) -f -- "$@" "$@.tmp"
|
---|
[104367] | 757 | $(QUIET)$(MKDIR) -p -- "$(dir $@)"
|
---|
| 758 | $(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
|
---|
| 759 | $(QUIET)$(REDIRECT) -0 /dev/null -o "$@.tmp" -- \
|
---|
| 760 | dwarfdump --regex --name='^(VMCPU|IEMCPU)$(DOLLAR)' --show-children --recurse-depth=1 "$<"
|
---|
| 761 | $(QUIET)$(SED) -n -f "$(filter %.sed,$^)" --output "$@" "$@.tmp"
|
---|
| 762 | $(QUIET)$(RM) -f "$@.tmp"
|
---|
| 763 | $(QUIET)$(CP) -v -f --changed -- "$@" "$(basename $@)"
|
---|
[98873] | 764 |
|
---|
[104367] | 765 | # Set up the dependencies.
|
---|
| 766 | $(VBoxVMM_0_OUTDIR)/VMMAll/IEMAllN8veHlpA-arm64.o: $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMAssemblyOffsets.h
|
---|
| 767 | endif
|
---|
| 768 |
|
---|
[104378] | 769 | #
|
---|
| 770 | # Generate member offsets for selected structures for use from ARM64 assembly.
|
---|
| 771 | #
|
---|
| 772 | if1of ($(KBUILD_TARGET_ARCH), amd64)
|
---|
| 773 | VBoxVMM_CLEAN += \
|
---|
| 774 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInternal.mac.ts \
|
---|
| 775 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInternal.mac \
|
---|
| 776 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMN8veRecompiler.mac.ts \
|
---|
| 777 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMN8veRecompiler.mac
|
---|
| 778 |
|
---|
| 779 | VBoxVMM_INTERMEDIATES.amd64 += $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInternal.mac
|
---|
| 780 | $(call KB_FN_AUTO_CMD_DEPS,$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInternal.mac.ts)
|
---|
| 781 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInternal.mac.ts \
|
---|
| 782 | +| $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInternal.mac: \
|
---|
| 783 | $(PATH_SUB_CURRENT)/include/IEMInternal.h \
|
---|
| 784 | $(PATH_ROOT)/include/VBox/various.sed
|
---|
| 785 | $(QUIET)$(call MSG_GENERATE,VBoxVMM,$@,$<)
|
---|
| 786 | $(QUIET)$(MKDIR) -p -- "$(dir $@)"
|
---|
| 787 | $(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
|
---|
| 788 | $(QUIET)$(SED) -f "$(filter %.sed,$^)" --output "$@" "$<"
|
---|
| 789 | $(QUIET)$(CP) -v -f --changed -- "$@" "$(basename $@)"
|
---|
| 790 |
|
---|
| 791 | VBoxVMM_INTERMEDIATES.amd64 += $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMN8veRecompiler.mac
|
---|
| 792 | $(call KB_FN_AUTO_CMD_DEPS,$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMN8veRecompiler.mac.ts)
|
---|
| 793 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMN8veRecompiler.mac.ts \
|
---|
| 794 | +| $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMN8veRecompiler.mac: \
|
---|
| 795 | $(PATH_SUB_CURRENT)/include/IEMN8veRecompiler.h \
|
---|
| 796 | $(PATH_ROOT)/include/VBox/various.sed
|
---|
| 797 | $(QUIET)$(call MSG_GENERATE,VBoxVMM,$@,$<)
|
---|
| 798 | $(QUIET)$(MKDIR) -p -- "$(dir $@)"
|
---|
| 799 | $(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
|
---|
| 800 | $(QUIET)$(SED) -f "$(filter %.sed,$^)" --output "$@" "$<"
|
---|
| 801 | $(QUIET)$(CP) -v -f --changed -- "$@" "$(basename $@)"
|
---|
| 802 | endif
|
---|
| 803 |
|
---|
[104367] | 804 | endif # VBOX_WITH_IEM_RECOMPILER
|
---|
| 805 |
|
---|
[62232] | 806 | if "$(KBUILD_TARGET)" == "win" && !defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS)
|
---|
[98437] | 807 | #
|
---|
| 808 | # Debug type info hack for VMCPU, VM and similar.
|
---|
| 809 | #
|
---|
| 810 | # The microsoft linker seems to be using the last occurence of the structures
|
---|
| 811 | # when writing the module PDB file. So, we put the fully complete structures
|
---|
| 812 | # in a library which is at the end of the library list.
|
---|
| 813 | #
|
---|
| 814 | VBoxVMM_LIBS += $(VBoxVMMPdbTypeHack_1_TARGET)
|
---|
| 815 | VBoxVMM_LDFLAGS += /Export:PdbTypeHack
|
---|
[55788] | 816 |
|
---|
[98437] | 817 | LIBRARIES += VBoxVMMPdbTypeHack
|
---|
| 818 | VBoxVMMPdbTypeHack_TEMPLATE = $(VBoxVMM_TEMPLATE)
|
---|
| 819 | VBoxVMMPdbTypeHack_SOURCES = VMMAll/AllPdbTypeHack.cpp
|
---|
| 820 | VBoxVMMPdbTypeHack_DEFS = $(VBoxVMM_DEFS)
|
---|
| 821 | VBoxVMMPdbTypeHack_DEFS.win = $(VBoxVMM_DEFS.win)
|
---|
| 822 | VBoxVMMPdbTypeHack_DEFS.win.x86 = $(VBoxVMM_DEFS.win.x86)
|
---|
| 823 | VBoxVMMPdbTypeHack_DEFS.win.amd64 = $(VBoxVMM_DEFS.win.amd64)
|
---|
| 824 | VBoxVMMPdbTypeHack_INCS = $(VBoxVMM_INCS)
|
---|
| 825 | VBoxVMMPdbTypeHack_INTERMEDIATES = $(VBoxVMM_INTERMEDIATES)
|
---|
[62232] | 826 | endif
|
---|
| 827 |
|
---|
| 828 |
|
---|
[25946] | 829 | if1of ($(VBOX_LDR_FMT), pe lx)
|
---|
[98437] | 830 | #
|
---|
| 831 | # VMMR0Imp.lib
|
---|
| 832 | #
|
---|
| 833 | LIBRARIES += VMMR0Imp
|
---|
| 834 | VMMR0Imp_TEMPLATE = VBoxR0
|
---|
| 835 | VMMR0Imp_SOURCES = $(VMMR0Imp_0_OUTDIR)/VMMR0.def
|
---|
| 836 | VMMR0Imp_CLEAN = $(VMMR0Imp_0_OUTDIR)/VMMR0.def
|
---|
[57885] | 837 | ifeq ($(KBUILD_TARGET),win) # Experiment: Let's see how blunt the ones messing our NULL_THUNK_DATA entries on W10 are.
|
---|
[98437] | 838 | VMMR0Imp_POST_CMDS = $(KLIBTWEAKER_EXT) --clear-timestamps --fill-null_thunk_data $(out)
|
---|
[57885] | 839 | endif
|
---|
[98437] | 840 | $(call KB_FN_DO_PASS0_ON_TARGET,VMMR0Imp)
|
---|
[25946] | 841 |
|
---|
[98437] | 842 | $(call KB_FN_AUTO_CMD_DEPS,$(VMMR0Imp_0_OUTDIR)/VMMR0.def)
|
---|
| 843 | $(VMMR0Imp_0_OUTDIR)/VMMR0.def: $(VMMR0Imp_DEFPATH)/VMMR0/VMMR0.def | $$(dir $$@)
|
---|
[66638] | 844 | $(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
|
---|
[4549] | 845 | ifeq ($(VBOX_LDR_FMT),lx)
|
---|
[14042] | 846 | $(SED) \
|
---|
| 847 | -e '/not-os2/d' \
|
---|
| 848 | -e '/not-amd64/d' \
|
---|
| 849 | -e 's/^[ \t][ \t]*\([a-zA-Z]\)/ _\1/' \
|
---|
| 850 | -e 's/[ \t]DATA[ \t]*/ /' \
|
---|
[66641] | 851 | --output $@ $(VMMR0Imp_DEFPATH)/VMMR0/VMMR0.def
|
---|
[12248] | 852 | $(APPEND) "$@" ""
|
---|
| 853 | $(APPEND) "$@" " ___ehInit"
|
---|
[14042] | 854 | else
|
---|
| 855 | $(SED) \
|
---|
| 856 | -e '/not-win/d' \
|
---|
| 857 | -e '/not-$(KBUILD_TARGET_ARCH)/d' \
|
---|
[66641] | 858 | --output $@ $(VMMR0Imp_DEFPATH)/VMMR0/VMMR0.def
|
---|
[4549] | 859 | endif
|
---|
| 860 | endif # R0: pe + lx
|
---|
[1] | 861 |
|
---|
[2517] | 862 |
|
---|
[34662] | 863 | #
|
---|
| 864 | # VMMR3Imp.lib
|
---|
| 865 | #
|
---|
| 866 | IMPORT_LIBS += VMMR3Imp
|
---|
[34668] | 867 | $(call VBOX_GENERATE_IMPORT_TARGET_FN,VMMR3Imp,VBoxVMM,VMMR3/VMMR3.def)
|
---|
[34662] | 868 |
|
---|
[66638] | 869 |
|
---|
[75173] | 870 | #
|
---|
| 871 | # VMMR0.r0
|
---|
| 872 | #
|
---|
[93419] | 873 | if defined(VBOX_WITH_R0_MODULES) && !defined(VBOX_ONLY_EXTPACKS)
|
---|
| 874 | ifdef VBOX_WITH_VBOXR0_AS_DLL
|
---|
| 875 | DLLS += VMMR0
|
---|
| 876 | else
|
---|
| 877 | SYSMODS += VMMR0
|
---|
| 878 | endif
|
---|
| 879 | VMMR0_TEMPLATE = VBoxR0
|
---|
| 880 | VMMR0_SYSSUFF = .r0
|
---|
[20922] | 881 |
|
---|
[93419] | 882 | VMMR0_DEFS = VBOX_IN_VMM IN_VMM_R0 IN_RT_R0 IN_DIS DIS_CORE_ONLY IN_GVMM_R0 IN_GMM_R0 IN_INTNET_R0 \
|
---|
| 883 | $(VMM_COMMON_DEFS) RTASSERT_HAVE_SHOULD_PANIC
|
---|
| 884 | ## @todo eliminate IN_GVMM_R0 IN_GMM_R0
|
---|
[35855] | 885 | ifdef VBOX_WITH_PCI_PASSTHROUGH
|
---|
[93419] | 886 | VMMR0_DEFS += IN_PCIRAW_R0
|
---|
[35855] | 887 | endif
|
---|
[38954] | 888 | ifdef VBOX_WITH_TRIPLE_FAULT_HACK
|
---|
[93419] | 889 | VMMR0_DEFS += VBOX_WITH_TRIPLE_FAULT_HACK
|
---|
[38954] | 890 | endif
|
---|
[83941] | 891 | ifdef VBOX_WITH_IOMMU_AMD
|
---|
[93419] | 892 | VMMR0_DEFS += VBOX_WITH_IOMMU_AMD
|
---|
[83941] | 893 | endif
|
---|
[84485] | 894 | ifdef VBOX_WITH_DBGF_TRACING
|
---|
[93419] | 895 | VMMR0_DEFS += VBOX_WITH_DBGF_TRACING
|
---|
[84485] | 896 | endif
|
---|
[61348] | 897 | if1of ($(KBUILD_TARGET), darwin linux win)
|
---|
[93419] | 898 | VMMR0_DEFS += VMM_R0_TOUCH_FPU
|
---|
[61348] | 899 | endif
|
---|
[93419] | 900 | VMMR0_DEFS.win.amd64 = VBOX_WITH_KERNEL_USING_XMM
|
---|
[20922] | 901 |
|
---|
[57855] | 902 | ifeq ($(VBOX_LDR_FMT),elf)
|
---|
[93419] | 903 | VMMR0_CXXFLAGS += -Wunused -Wunused-variable -Wno-unused-parameter
|
---|
[57855] | 904 | endif
|
---|
[57561] | 905 |
|
---|
[96984] | 906 | # yasm versions not knowing about -Wno-segreg-in-64bit (including vanilla 1.3.0) would cause build failure.
|
---|
[96985] | 907 | if "$(VBOX_ASTOOL)" != "YASM" || defined("VBOX_YASM_Wno-segreg-in-64bit")
|
---|
[96984] | 908 | VMMR0_ASFLAGS.amd64 := -Werror
|
---|
| 909 | endif
|
---|
[96953] | 910 | VMMR0_ASFLAGS.x86 := -Werror
|
---|
| 911 |
|
---|
[98249] | 912 | VMMR0_SDKS = VBoxSoftFloatR0
|
---|
[94539] | 913 |
|
---|
[93419] | 914 | VMMR0_INCS = \
|
---|
| 915 | include \
|
---|
| 916 | $(VBoxVMM_0_OUTDIR)/CommonGenIncs
|
---|
[20922] | 917 |
|
---|
[93419] | 918 | VMMR0_SOURCES = \
|
---|
| 919 | VBoxVMM.d \
|
---|
| 920 | VMMR0/CPUMR0.cpp \
|
---|
| 921 | VMMR0/CPUMR0A.asm \
|
---|
| 922 | VMMR0/DBGFR0.cpp \
|
---|
| 923 | VMMR0/DBGFR0Bp.cpp \
|
---|
| 924 | $(if-expr defined(VBOX_WITH_DBGF_TRACING), VMMR0/DBGFR0Tracer.cpp,) \
|
---|
| 925 | VMMR0/GIMR0.cpp \
|
---|
| 926 | VMMR0/GIMR0Hv.cpp \
|
---|
| 927 | VMMR0/GMMR0.cpp \
|
---|
| 928 | VMMR0/GVMMR0.cpp \
|
---|
| 929 | VMMR0/EMR0.cpp \
|
---|
| 930 | VMMR0/HMR0.cpp \
|
---|
| 931 | VMMR0/HMR0A.asm \
|
---|
| 932 | VMMR0/HMR0UtilA.asm \
|
---|
| 933 | VMMR0/HMVMXR0.cpp \
|
---|
| 934 | VMMR0/HMSVMR0.cpp \
|
---|
[93650] | 935 | VMMR0/IEMR0.cpp \
|
---|
[93419] | 936 | VMMR0/IOMR0.cpp \
|
---|
| 937 | VMMR0/IOMR0IoPort.cpp \
|
---|
| 938 | VMMR0/IOMR0Mmio.cpp \
|
---|
| 939 | VMMR0/PDMR0Device.cpp \
|
---|
| 940 | VMMR0/PDMR0DevHlp.cpp \
|
---|
| 941 | $(if-expr defined(VBOX_WITH_DBGF_TRACING), VMMR0/PDMR0DevHlpTracing.cpp,) \
|
---|
| 942 | VMMR0/PDMR0Driver.cpp \
|
---|
[93609] | 943 | VMMR0/PDMR0Queue.cpp \
|
---|
[93419] | 944 | VMMR0/PGMR0.cpp \
|
---|
| 945 | VMMR0/PGMR0Pool.cpp \
|
---|
| 946 | VMMR0/PGMR0SharedPage.cpp \
|
---|
| 947 | VMMR0/TMR0.cpp \
|
---|
| 948 | VMMR0/VMMR0.cpp \
|
---|
| 949 | VMMRZ/CPUMRZ.cpp \
|
---|
| 950 | VMMRZ/CPUMRZA.asm \
|
---|
| 951 | VMMRZ/VMMRZ.cpp \
|
---|
| 952 | VMMAll/APICAll.cpp \
|
---|
[98437] | 953 | VMMAll/CPUMAllCpuId.cpp \
|
---|
[93419] | 954 | VMMAll/CPUMAllRegs.cpp \
|
---|
| 955 | VMMAll/CPUMAllMsrs.cpp \
|
---|
| 956 | VMMAll/DBGFAll.cpp \
|
---|
| 957 | VMMAll/DBGFAllBp.cpp \
|
---|
| 958 | $(if-expr defined(VBOX_WITH_DBGF_TRACING), VMMAll/DBGFAllTracer.cpp,) \
|
---|
| 959 | VMMAll/EMAll.cpp \
|
---|
[94882] | 960 | VMMAll/GCMAll.cpp \
|
---|
[93419] | 961 | VMMAll/GIMAll.cpp \
|
---|
| 962 | VMMAll/GIMAllHv.cpp \
|
---|
| 963 | VMMAll/GIMAllKvm.cpp \
|
---|
| 964 | VMMAll/HMAll.cpp \
|
---|
| 965 | VMMAll/HMSVMAll.cpp \
|
---|
| 966 | VMMAll/HMVMXAll.cpp \
|
---|
| 967 | VMMAll/IEMAll.cpp \
|
---|
[100740] | 968 | VMMAll/IEMAllIntprTables1.cpp \
|
---|
| 969 | VMMAll/IEMAllIntprTables2.cpp \
|
---|
| 970 | VMMAll/IEMAllIntprTables3.cpp \
|
---|
| 971 | VMMAll/IEMAllIntprTables4.cpp \
|
---|
[98437] | 972 | $(if-expr !defined(IEM_WITHOUT_ASSEMBLY),VMMAll/IEMAllAImpl.asm,) \
|
---|
[93419] | 973 | VMMAll/IEMAllAImplC.cpp \
|
---|
[94768] | 974 | VMMAll/IEMAllCImpl.cpp \
|
---|
| 975 | VMMAll/IEMAllCImplSvmInstr.cpp \
|
---|
| 976 | VMMAll/IEMAllCImplVmxInstr.cpp \
|
---|
[100672] | 977 | VMMAll/IEMAllDbg.cpp \
|
---|
[93419] | 978 | VMMAll/IOMAll.cpp \
|
---|
| 979 | VMMAll/IOMAllMmioNew.cpp \
|
---|
| 980 | VMMAll/MMAll.cpp \
|
---|
| 981 | VMMAll/NEMAll.cpp \
|
---|
| 982 | VMMAll/PDMAll.cpp \
|
---|
| 983 | VMMAll/PDMAllCritSect.cpp \
|
---|
| 984 | VMMAll/PDMAllCritSectRw.cpp \
|
---|
| 985 | VMMAll/PDMAllCritSectBoth.cpp \
|
---|
| 986 | $(if-expr defined(VBOX_WITH_IOMMU_AMD) || defined(VBOX_WITH_IOMMU_INTEL), VMMAll/PDMAllIommu.cpp,) \
|
---|
| 987 | VMMAll/PDMAllQueue.cpp \
|
---|
| 988 | VMMAll/PDMAllTask.cpp \
|
---|
| 989 | VMMAll/PGMAll.cpp \
|
---|
| 990 | VMMAll/PGMAllHandler.cpp \
|
---|
| 991 | VMMAll/PGMAllPhys.cpp \
|
---|
| 992 | VMMAll/PGMAllPool.cpp \
|
---|
| 993 | VMMAll/SELMAll.cpp \
|
---|
| 994 | VMMAll/TMAll.cpp \
|
---|
| 995 | VMMAll/TMAllCpu.cpp \
|
---|
| 996 | VMMAll/TMAllReal.cpp \
|
---|
| 997 | VMMAll/TMAllVirtual.cpp \
|
---|
| 998 | VMMAll/TRPMAll.cpp \
|
---|
| 999 | VMMAll/VMAll.cpp \
|
---|
| 1000 | VMMAll/VMMAll.cpp \
|
---|
| 1001 | VMMAll/VMMAllA.asm
|
---|
[39320] | 1002 | if1of ($(VBOX_LDR_FMT), pe lx)
|
---|
[93419] | 1003 | VMMR0_SOURCES += $(VMMR0Imp_0_OUTDIR)/VMMR0.def
|
---|
[34492] | 1004 | endif
|
---|
[38954] | 1005 | ifdef VBOX_WITH_TRIPLE_FAULT_HACK
|
---|
[93419] | 1006 | VMMR0_SOURCES += \
|
---|
| 1007 | VMMR0/VMMR0TripleFaultHack.cpp \
|
---|
| 1008 | VMMR0/VMMR0TripleFaultHackA.asm
|
---|
[38954] | 1009 | endif
|
---|
[42062] | 1010 | ifdef VBOX_WITH_NETSHAPER
|
---|
[93419] | 1011 | VMMR0_SOURCES += \
|
---|
| 1012 | VMMAll/PDMAllNetShaper.cpp
|
---|
[42062] | 1013 | endif
|
---|
[93419] | 1014 | VMMR0_SOURCES.amd64 = \
|
---|
| 1015 | VMMR0/VMMR0JmpA-amd64.asm
|
---|
| 1016 | VMMR0_SOURCES.x86 = \
|
---|
| 1017 | VMMR0/VMMR0JmpA-x86.asm
|
---|
[1] | 1018 |
|
---|
[93419] | 1019 | VMMR0_LIBS = \
|
---|
| 1020 | $(PATH_STAGE_LIB)/ServicesR0$(VBOX_SUFF_LIB) \
|
---|
| 1021 | $(PATH_STAGE_LIB)/RuntimeR0$(VBOX_SUFF_LIB) \
|
---|
| 1022 | $(PATH_STAGE_LIB)/DisasmR0$(VBOX_SUFF_LIB) \
|
---|
| 1023 | $(VBOX_LIB_SUPR0)
|
---|
[72925] | 1024 | ifdef VBOX_WITH_NATIVE_NEM
|
---|
[93419] | 1025 | VMMR0_SOURCES.linux.amd64 += VMMR0/NEMR0Native-stubs.cpp
|
---|
| 1026 | VMMR0_SOURCES.win.amd64 += VMMR0/NEMR0Native-stubs.cpp
|
---|
| 1027 | VMMR0_SOURCES.darwin.amd64 += VMMR0/NEMR0Native-stubs.cpp
|
---|
| 1028 | VMMR0_DEFS.darwin.amd64 += VBOX_WITH_NATIVE_NEM VBOX_WITH_NEM_R0
|
---|
[71136] | 1029 | endif
|
---|
[55788] | 1030 |
|
---|
[93419] | 1031 | $(call VBOX_SET_VER_INFO_R0,VMMR0,VirtualBox VMM - ring-0 context parts) # Version info / description.
|
---|
[61885] | 1032 |
|
---|
| 1033 | if "$(USERNAME)" == "bird" && "$(KBUILD_TARGET)" == "win"
|
---|
[93419] | 1034 | VMMR0_VMMAll/IEMAll.cpp_CXXFLAGS = /FAcs /Fa$(subst /,\\,$(outbase).cod)
|
---|
| 1035 | VMMR0_VMMAll/IEMAllAImplC.cpp_CXXFLAGS = /FAcs /Fa$(subst /,\\,$(outbase).cod)
|
---|
| 1036 | VMMR0_VMMAll/PGMAll.cpp_CXXFLAGS = /FAcs /Fa$(subst /,\\,$(outbase).cod)
|
---|
| 1037 | VMMR0_CLEAN += $(addprefix $(VMMR0_0_OUTDIR)/VMMAll/, IEMAll.cod IEMAllAImplC.cod PGMAll.cod)
|
---|
[61885] | 1038 | endif
|
---|
[62232] | 1039 |
|
---|
[93419] | 1040 | VMMR0_INTERMEDIATES += $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h
|
---|
[64545] | 1041 |
|
---|
[62232] | 1042 | if "$(KBUILD_TARGET)" == "win"
|
---|
[93419] | 1043 | # Debug type info hack for VMCPU, VM and similar. See VBoxVMM for details.
|
---|
| 1044 | VMMR0_LIBS += $(VMMR0PdbTypeHack_1_TARGET)
|
---|
| 1045 | VMMR0_LDFLAGS += /Export:PdbTypeHack
|
---|
[62232] | 1046 |
|
---|
[93419] | 1047 | LIBRARIES += VMMR0PdbTypeHack
|
---|
| 1048 | VMMR0PdbTypeHack_TEMPLATE = $(VMMR0_TEMPLATE)
|
---|
| 1049 | VMMR0PdbTypeHack_SOURCES = VMMAll/AllPdbTypeHack.cpp
|
---|
| 1050 | VMMR0PdbTypeHack_DEFS = $(VMMR0_DEFS)
|
---|
| 1051 | VMMR0PdbTypeHack_DEFS.win = $(VMMR0_DEFS.win)
|
---|
| 1052 | VMMR0PdbTypeHack_DEFS.win.x86 = $(VMMR0_DEFS.win.x86)
|
---|
| 1053 | VMMR0PdbTypeHack_DEFS.win.amd64 = $(VMMR0_DEFS.win.amd64)
|
---|
| 1054 | VMMR0PdbTypeHack_INCS = $(VMMR0_INCS)
|
---|
| 1055 | VMMR0PdbTypeHack_INTERMEDIATES = $(VMMR0_INTERMEDIATES)
|
---|
[62232] | 1056 | endif
|
---|
| 1057 |
|
---|
[87728] | 1058 | ifdef VBOX_WITH_KMOD_WRAPPED_R0_MODS
|
---|
[93419] | 1059 | # Wrapper kmod for VMMR0.r0
|
---|
| 1060 | INSTALLS.linux += vbox_vmmr0-src
|
---|
| 1061 | vbox_vmmr0-src_INST = bin/src/vbox_vmmr0/
|
---|
| 1062 | vbox_vmmr0-src_SYMLINKS = \
|
---|
| 1063 | SUPWrapperMod-linux.c=>../common/SUPWrapperMod-linux.c \
|
---|
| 1064 | Makefile-wrapper.gmk=>../common/Makefile-wrapper.gmk
|
---|
| 1065 | vbox_vmmr0-src_SOURCES = \
|
---|
| 1066 | $(PATH_ROOT)/src/VBox/HostDrivers/Support/linux/Makefile-vbox_vmmr0.gmk=>Makefile \
|
---|
| 1067 | $(VMMR0_0_OUTDIR)/VMMR0.r0=>VMMR0.r0 \
|
---|
| 1068 | $(VMMR0_0_OUTDIR)/VMMR0.debug=>VMMR0.debug
|
---|
[87728] | 1069 | endif
|
---|
| 1070 |
|
---|
[93419] | 1071 | endif # defined(VBOX_WITH_R0_MODULES) && !defined(VBOX_ONLY_EXTPACKS)
|
---|
[5033] | 1072 |
|
---|
[1] | 1073 |
|
---|
[61885] | 1074 |
|
---|
[34492] | 1075 | ifndef VBOX_ONLY_EXTPACKS
|
---|
[98437] | 1076 | #
|
---|
| 1077 | # SSMStandalone.lib/a for linking with VBoxSVC and other executables.
|
---|
| 1078 | #
|
---|
| 1079 | LIBRARIES += SSMStandalone
|
---|
| 1080 | SSMStandalone_TEMPLATE = VBoxR3Exe
|
---|
| 1081 | SSMStandalone_DEFS = VBOX_IN_VMM IN_VMM_R3 IN_VMM_STATIC SSM_STANDALONE CPUM_DB_STANDALONE $(VMM_COMMON_DEFS)
|
---|
| 1082 | SSMStandalone_INCS = include
|
---|
| 1083 | SSMStandalone_SOURCES = \
|
---|
| 1084 | VMMR3/SSM.cpp \
|
---|
| 1085 | VMMR3/CPUMR3Db.cpp
|
---|
[34492] | 1086 | endif # !VBOX_ONLY_EXTPACKS
|
---|
[1] | 1087 |
|
---|
[34492] | 1088 |
|
---|
[98437] | 1089 | if !defined(VBOX_ONLY_EXTPACKS) \
|
---|
| 1090 | && ( defined(VBOX_WITH_DTRACE_R3) \
|
---|
| 1091 | || defined(VBOX_WITH_DTRACE_R0) \
|
---|
| 1092 | || defined(VBOX_WITH_DTRACE_RC))
|
---|
| 1093 | #
|
---|
| 1094 | # Install the dtrace library files.
|
---|
| 1095 | #
|
---|
| 1096 | INSTALLS += VMMLibDTrace
|
---|
| 1097 | VMMLibDTrace_INST = $(VBOX_INST_DTRACE_LIB)$(KBUILD_TARGET_ARCH)/
|
---|
| 1098 | VMMLibDTrace_SOURCES = \
|
---|
| 1099 | dtrace/lib/vbox-types.d \
|
---|
| 1100 | dtrace/lib/$(KBUILD_TARGET_ARCH)/vbox-arch-types.d \
|
---|
| 1101 | $(VMMLibDTrace_0_OUTDIR)/vm.d \
|
---|
| 1102 | $(VMMLibDTrace_0_OUTDIR)/cpumctx.d \
|
---|
| 1103 | $(VMMLibDTrace_0_OUTDIR)/cpum.d \
|
---|
| 1104 | $(VMMLibDTrace_0_OUTDIR)/CPUMInternal.d \
|
---|
| 1105 | $(VMMLibDTrace_0_OUTDIR)/x86.d
|
---|
| 1106 | $(call KB_FN_DO_PASS0_ON_TARGET,VMMLibDTrace)
|
---|
[41220] | 1107 |
|
---|
| 1108 |
|
---|
[98437] | 1109 | ##
|
---|
| 1110 | # Turn the header $2 into the DTrace library script $1.
|
---|
| 1111 | #
|
---|
[41220] | 1112 | define def_vmm_lib_dtrace_preprocess
|
---|
[98437] | 1113 | $$(call KB_FN_AUTO_CMD_DEPS,$$(VMMLibDTrace_0_OUTDIR)/$1)
|
---|
| 1114 | $$(VMMLibDTrace_0_OUTDIR)/$1: $2 $$(VBOX_VBOXCPP) | $$$$(dir $$$$@)
|
---|
[66638] | 1115 | $$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
|
---|
| 1116 | $$(QUIET)$$(call MSG_GENERATE,VMMLibDTrace,$$@,$2)
|
---|
[41275] | 1117 | $$(QUIET)$(VBOX_VBOXCPP) -d \
|
---|
[41220] | 1118 | -D VBOX_FOR_DTRACE_LIB \
|
---|
| 1119 | -D VBOX_FOR_DTRACE_LIB_$(toupper $(KBUILD_TARGET_ARCH)) \
|
---|
[41271] | 1120 | -D IN_RING0 \
|
---|
[41220] | 1121 | -D RT_C_DECLS_BEGIN= \
|
---|
| 1122 | -D RT_C_DECLS_END= \
|
---|
[74242] | 1123 | -D RT_GCC_EXTENSION= \
|
---|
[41247] | 1124 | -D 'RCPTRTYPE(a_Type)=RTRCPTR' \
|
---|
| 1125 | -D 'R3PTRTYPE(a_Type)=RTR3PTR' \
|
---|
| 1126 | -D 'R0PTRTYPE(a_Type)=a_Type' \
|
---|
| 1127 | -D 'AssertCompile(a_Expr)=' \
|
---|
| 1128 | -D 'AssertCompileSize(a_Stuct, a_Size)=' \
|
---|
[41259] | 1129 | -D 'bool=uint8_t' \
|
---|
| 1130 | $$(foreach def,\
|
---|
| 1131 | $$(DEFS) \
|
---|
| 1132 | $$(DEFS.$$(KBUILD_TARGET)) \
|
---|
| 1133 | $$(DEFS.$(KBUILD_TARGET_ARCH)) \
|
---|
| 1134 | $$(VMM_COMMON_DEFS) \
|
---|
| 1135 | $$(ARCH_BITS_DEFS)\
|
---|
| 1136 | ,-D '$$(def)') \
|
---|
[66638] | 1137 | $2 \
|
---|
[41259] | 1138 | $$@
|
---|
[41275] | 1139 | $$(QUIET)$$(CHMOD) 644 $$@
|
---|
[82744] | 1140 |
|
---|
[98437] | 1141 | VMMLibDTrace_CLEAN += $(VMMLibDTrace_0_OUTDIR)/$1
|
---|
[41220] | 1142 | endef
|
---|
[98437] | 1143 | $(evalcall2 def_vmm_lib_dtrace_preprocess,vm.d,$(PATH_ROOT)/include/VBox/vmm/vm.h)
|
---|
| 1144 | $(evalcall2 def_vmm_lib_dtrace_preprocess,cpumctx.d,$(PATH_ROOT)/include/VBox/vmm/cpumctx.h)
|
---|
| 1145 | $(evalcall2 def_vmm_lib_dtrace_preprocess,cpum.d,$(PATH_ROOT)/include/VBox/vmm/cpum.h)
|
---|
| 1146 | $(evalcall2 def_vmm_lib_dtrace_preprocess,CPUMInternal.d,$(PATH_SUB_CURRENT)/include/CPUMInternal.h)
|
---|
| 1147 | $(evalcall2 def_vmm_lib_dtrace_preprocess,x86.d,$(PATH_ROOT)/include/iprt/x86.h)
|
---|
[41220] | 1148 |
|
---|
| 1149 | endif
|
---|
| 1150 |
|
---|
| 1151 |
|
---|
| 1152 |
|
---|
[22906] | 1153 | #
|
---|
| 1154 | # For vmmGetSvnRev.
|
---|
| 1155 | #
|
---|
| 1156 | VMMAll/VMMAll.cpp_DEFS = VBOX_SVN_REV=$(VBOX_SVN_REV)
|
---|
[1] | 1157 |
|
---|
[34492] | 1158 | #
|
---|
| 1159 | # Disable annoying warnings about array subscript above array bounds in aPages[]
|
---|
| 1160 | #
|
---|
[39070] | 1161 | ifneq ($(KBUILD_TARGET),win)
|
---|
[98437] | 1162 | VMMR3/PGMPool.cpp_CXXFLAGS = $(VBOX_GCC_Wno-array_bounds)
|
---|
| 1163 | VMMAll/PGMAllPool.cpp_CXXFLAGS = $(VBOX_GCC_Wno-array_bounds)
|
---|
| 1164 | VMMAll/PGMAll.cpp_CXXFLAGS = -Wno-unused-function
|
---|
| 1165 | VMMAll/IEMAll.cpp_CXXFLAGS = -Wno-unused-function
|
---|
| 1166 | VMMR0/GMMR0.cpp_CXXFLAGS = -Wno-unused-value
|
---|
[39070] | 1167 | endif
|
---|
[34492] | 1168 |
|
---|
[36824] | 1169 | #
|
---|
| 1170 | # Always optimize the interpreter.
|
---|
| 1171 | #
|
---|
[93901] | 1172 | #if "$(KBUILD_TYPE)" == "release" || ($(USERNAME) != "bird" && $(USERNAME) != "aeichner")
|
---|
| 1173 | if "$(KBUILD_TYPE)" == "release" || ($(USERNAME) != "aeichner")
|
---|
[61896] | 1174 | if1of ($(KBUILD_TARGET), win)
|
---|
[98437] | 1175 | # -noover is recognized despite the statement saying otherwise. It silences these warnings:
|
---|
| 1176 | # cl : Command line warning D9025 : overriding '/Od' with '/O2'
|
---|
| 1177 | # cl : Command line warning D9025 : overriding '/Oy-' with '/Oy'
|
---|
| 1178 | VMMAll/IEMAll.cpp_CXXFLAGS += -noover -O2xy
|
---|
| 1179 | VMMAll/IEMAllAImplC.cpp_CXXFLAGS += -noover -O2xy
|
---|
| 1180 | VMMAll/IEMAllCImpl.cpp_CXXFLAGS += -noover -O2xy
|
---|
| 1181 | VMMAll/IEMAllCImplSvmInstr.cpp_CXXFLAGS += -noover -O2xy
|
---|
| 1182 | VMMAll/IEMAllCImplVmxInstr.cpp_CXXFLAGS += -noover -O2xy
|
---|
[100740] | 1183 | VMMAll/IEMAllIntprTables1.cpp_CXXFLAGS += -noover -O2xy
|
---|
| 1184 | VMMAll/IEMAllIntprTables2.cpp_CXXFLAGS += -noover -O2xy
|
---|
| 1185 | VMMAll/IEMAllIntprTables3.cpp_CXXFLAGS += -noover -O2xy
|
---|
| 1186 | VMMAll/IEMAllIntprTables4.cpp_CXXFLAGS += -noover -O2xy
|
---|
[61896] | 1187 | else
|
---|
[98437] | 1188 | # Omitting the frame pointer results in larger code, but it might be worth it. (esp addressing vs ebp?)
|
---|
| 1189 | VMMAll/IEMAll.cpp_CXXFLAGS += -O2 -fomit-frame-pointer
|
---|
| 1190 | VMMAll/IEMAllCImpl.cpp_CXXFLAGS += -O2 -fomit-frame-pointer
|
---|
| 1191 | VMMAll/IEMAllCImplSvmInstr.cpp_CXXFLAGS += -O2 -fomit-frame-pointer
|
---|
| 1192 | VMMAll/IEMAllCImplVmxInstr.cpp_CXXFLAGS += -O2 -fomit-frame-pointer
|
---|
[100740] | 1193 | VMMAll/IEMAllIntprTables1.cpp_CXXFLAGS += -O2 -fomit-frame-pointer
|
---|
| 1194 | VMMAll/IEMAllIntprTables2.cpp_CXXFLAGS += -O2 -fomit-frame-pointer
|
---|
| 1195 | VMMAll/IEMAllIntprTables3.cpp_CXXFLAGS += -O2 -fomit-frame-pointer
|
---|
| 1196 | VMMAll/IEMAllIntprTables4.cpp_CXXFLAGS += -O2 -fomit-frame-pointer
|
---|
[61896] | 1197 | endif
|
---|
[92315] | 1198 | endif # bird wants good stacks (aeichner as well)
|
---|
[36824] | 1199 |
|
---|
[49893] | 1200 |
|
---|
| 1201 | # Alias the CPU database entries.
|
---|
| 1202 | $(foreach base,$(notdir $(basename $(wildcard $(PATH_SUB_CURRENT)/VMMR3/cpus/*.h))), $(eval $(base).o $(base).obj: CPUMR3Db.o))
|
---|
| 1203 |
|
---|
| 1204 |
|
---|
[55044] | 1205 | #
|
---|
[65952] | 1206 | # Process python source(s).
|
---|
| 1207 | #
|
---|
| 1208 | BLDDIRS += $(PATH_TARGET)/pylint
|
---|
| 1209 |
|
---|
| 1210 | define def_vbox_vmm_py_check
|
---|
[98437] | 1211 | $(eval name:=$(basename $(notdir $(py))))
|
---|
[65952] | 1212 |
|
---|
[98437] | 1213 | pylint: $(name)-py-phony.o
|
---|
| 1214 | $(name).o: $(name)-py-phony.o
|
---|
| 1215 | $(PATH_TARGET)/pylint/$(name).o $(name)-py-phony.o:: $(py) | $(PATH_TARGET)/pylint/
|
---|
| 1216 | ifdef VBOX_WITH_PYLINT
|
---|
[65952] | 1217 | $(QUIET2)$(call MSG_L1,Subjecting $(py) to pylint...)
|
---|
| 1218 | $(QUIET)$(REDIRECT) -C "$(dir $(py))" -E LC_ALL=C -- \
|
---|
| 1219 | $(VBOX_PYLINT) --rcfile=$(PATH_TARGET)/no-such-pylintrc \
|
---|
| 1220 | $$(VBOX_PYLINT_FLAGS) $$($(py)_VBOX_PYLINT_FLAGS) ./$(notdir $(py))
|
---|
[98437] | 1221 | endif
|
---|
[65952] | 1222 | $(QUIET)$(APPEND) -t "$(PATH_TARGET)/pylint/$(name).o"
|
---|
| 1223 |
|
---|
[98437] | 1224 | TESTING += $(name)-py-phony.o
|
---|
[65952] | 1225 | endef # def_vbox_vmm_py_check
|
---|
| 1226 |
|
---|
[101275] | 1227 | $(foreach py, $(addprefix $(PATH_SUB_CURRENT)/VMMAll/, IEMAllInstPython.py IEMAllThrdPython.py IEMAllN8vePython.py ) \
|
---|
[98873] | 1228 | , $(eval $(def_vbox_vmm_py_check)))
|
---|
[65952] | 1229 |
|
---|
| 1230 |
|
---|
[41477] | 1231 | include $(FILE_KBUILD_SUB_FOOTER)
|
---|
[1] | 1232 |
|
---|
| 1233 |
|
---|
| 1234 | # Alias the PGM templates to the object in which they are defined.
|
---|
[98437] | 1235 | PGMInternal.o: PGM.o
|
---|
[1] | 1236 |
|
---|
[98437] | 1237 | PGMAllBth.o PGMAllGst.o PGMAllShw.o \
|
---|
| 1238 | PGMAllBth.obj PGMAllGst.obj PGMAllShw.obj: PGMAll.o
|
---|
[30888] | 1239 |
|
---|
[98437] | 1240 | PGMRCBth.o PGMRCGst.o PGMRCShw.o \
|
---|
| 1241 | PGMRCBth.obj PGMRCGst.obj PGMRCShw.obj: PGMRC.o
|
---|
[30888] | 1242 |
|
---|
[98437] | 1243 | PGMPhysRWTmpl.o PGMPhysRWTmpl.obj: PGMPhys.o
|
---|
[30888] | 1244 |
|
---|
[98437] | 1245 | PGMInline.o PGMInline.obj: PGMDbg.o
|
---|
[30888] | 1246 |
|
---|
[36768] | 1247 | # Alias the IEM templates to the object in which they are instantiated.
|
---|
[100733] | 1248 | IEMAllInst.cpp.o IEMAllInst.cpp.obj \
|
---|
| 1249 | IEMAllInstCommon.cpp.o IEMAllInstCommon.cpp.obj \
|
---|
| 1250 | IEMAllInstOneByte.cpp.o IEMAllInstOneByte.cpp.obj \
|
---|
| 1251 | IEMAllInstTwoByte0f.cpp.o IEMAllInstTwoByte0f.cpp.obj \
|
---|
| 1252 | IEMAllInstThree0f38.cpp.o IEMAllInstThree0f38.cpp.obj \
|
---|
| 1253 | IEMAllInstThree0f3a.cpp.o IEMAllInstThree0f3a.cpp.obj \
|
---|
| 1254 | IEMAllInstVexMap1.cpp.o IEMAllInstVexMap1.cpp.obj \
|
---|
| 1255 | IEMAllInstVexMap2.cpp.o IEMAllInstVexMap2.cpp.obj \
|
---|
| 1256 | IEMAllInstVexMap3.cpp.o IEMAllInstVexMap3.cpp.obj \
|
---|
| 1257 | IEMAllInst3DNow.cpp.o IEMAllInst3DNow.cpp.obj: IEMAllInstInterpretOnly.o
|
---|
[36768] | 1258 |
|
---|
[98437] | 1259 | IEMInternal.o IEMInternal.obj: IEMAll.o
|
---|
[94768] | 1260 |
|
---|
[98437] | 1261 | IEMAllCImplStrInstr.cpp.o IEMAllCImplStrInstr.cpp.obj: IEMAllCImpl.o
|
---|
[94768] | 1262 |
|
---|
[71152] | 1263 | # Alias the NEM template to the objects where it is used:
|
---|
[98437] | 1264 | NEMAllNativeTemplate-win.cpp.o: NEMR3Native-win.o
|
---|
[71152] | 1265 |
|
---|
[94955] | 1266 | # Alias the VMX template onto HMVMXR0 or darwin specific NEM object:
|
---|
| 1267 | ifeq ($(KBUILD_TARGET),darwin)
|
---|
[98437] | 1268 | VMXAllTemplate.cpp.o: NEMR3Native-darwin.o
|
---|
[94955] | 1269 | else
|
---|
[98437] | 1270 | VMXAllTemplate.cpp.o: HMVMXR0.o
|
---|
[94955] | 1271 | endif
|
---|
| 1272 |
|
---|