VirtualBox

source: vbox/trunk/src/VBox/VMM/Makefile.kmk@ 4675

Last change on this file since 4675 was 4665, checked in by vboxsync, 17 years ago

Moved some of the odd address conversion routines to PGMR3Dbg just to get them out of the way.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 9.0 KB
Line 
1# $Id: Makefile.kmk 4665 2007-09-10 13:41:18Z vboxsync $
2## @file
3# Top-level makefile for the VMM.
4#
5
6#
7# Copyright (C) 2006-2007 innotek GmbH
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.virtualbox.org. This file is free software;
11# you can redistribute it and/or modify it under the terms of the GNU
12# General Public License as published by the Free Software Foundation,
13# in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
14# distribution. VirtualBox OSE is distributed in the hope that it will
15# be useful, but WITHOUT ANY WARRANTY of any kind.
16
17DEPTH = ../../..
18include $(PATH_KBUILD)/subheader.kmk
19
20## @todo get rid of these.
21# Enable the PDM lock.
22#DEFS += VBOX_WITH_PDM_LOCK
23ifdef VBOX_WITH_INTERNAL_NETWORKING
24DEFS += VBOX_WITH_INTERNAL_NETWORKING
25endif
26
27# Include sub-makefiles.
28include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
29
30
31#
32# VMMR3.dll
33#
34LIBRARIES += VMMR3
35
36VMMR3_TEMPLATE = VBOXR3
37VMMR3_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 \
38 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
39VMMR3_INCS := \
40 PATM \
41 $(PATH_SUB_CURRENT)
42
43VMMR3_SOURCES = \
44 CFGM.cpp \
45 CPUM.cpp \
46 CPUMStack.cpp \
47 DBGF.cpp \
48 DBGFAddr.cpp \
49 DBGFBp.cpp \
50 DBGFDisas.cpp \
51 DBGFInfo.cpp \
52 DBGFLog.cpp \
53 DBGFStack.cpp \
54 DBGFSym.cpp \
55 EM.cpp \
56 IOM.cpp \
57 MM.cpp \
58 MMHeap.cpp \
59 MMHyper.cpp \
60 MMPagePool.cpp \
61 MMPhys.cpp \
62 PDM.cpp \
63 PDMDevice.cpp \
64 PDMDriver.cpp \
65 PDMLdr.cpp \
66 PDMCritSect.cpp \
67 PDMQueue.cpp \
68 PDMThread.cpp \
69 PGM.cpp \
70 PGMDbg.cpp \
71 PGMHandler.cpp \
72 PGMMap.cpp \
73 PGMPhys.cpp \
74 PGMPool.cpp \
75 SELM.cpp \
76 SSM.cpp \
77 STAM.cpp \
78 TM.cpp \
79 TRPM.cpp \
80 VM.cpp \
81 VMEmt.cpp \
82 VMReq.cpp \
83 VMM.cpp \
84 VMMTests.cpp \
85 HWACCM.cpp \
86 VMMAll/CPUMAllRegs.cpp \
87 VMMAll/CPUMAllA.asm \
88 VMMAll/DBGFAll.cpp \
89 VMMAll/IOMAll.cpp \
90 VMMAll/IOMAllMMIO.cpp \
91 VMMAll/MMAll.cpp \
92 VMMAll/MMAllHyper.cpp \
93 VMMAll/MMAllPagePool.cpp \
94 VMMAll/MMAllPhys.cpp \
95 VMMAll/PDMAll.cpp \
96 VMMAll/PDMAllCritSect.cpp \
97 VMMAll/PDMAllQueue.cpp \
98 VMMAll/PGMAll.cpp \
99 VMMAll/PGMAllHandler.cpp \
100 VMMAll/PGMAllMap.cpp \
101 VMMAll/PGMAllPhys.cpp \
102 VMMAll/PGMAllPool.cpp \
103 VMMAll/SELMAll.cpp \
104 VMMAll/EMAll.cpp \
105 VMMAll/EMAllA.asm \
106 VMMAll/TMAll.cpp \
107 VMMAll/TMAllCpu.cpp \
108 VMMAll/TMAllReal.cpp \
109 VMMAll/TMAllVirtual.cpp \
110 VMMAll/TRPMAll.cpp \
111 VMMAll/VMAll.cpp \
112 VMMAll/VMMAll.cpp \
113 PATM/CSAM.cpp \
114 PATM/VMMAll/CSAMAll.cpp \
115 PATM/PATM.cpp \
116 PATM/PATMPatch.cpp \
117 PATM/PATMGuest.cpp \
118 PATM/PATMA.asm \
119 PATM/PATMSSM.cpp \
120 PATM/VMMAll/PATMAll.cpp
121VMMR3_SOURCES.x86 += \
122 VMMSwitcher/32BitTo32Bit.asm \
123 VMMSwitcher/32BitToPAE.asm \
124 VMMSwitcher/PAETo32Bit.asm \
125 VMMSwitcher/PAEToPAE.asm
126VMMR3_SOURCES.amd64 = \
127 VMMSwitcher/AMD64ToPAE.asm
128VMMR3_SOURCES.darwin.x86 += \
129 VMMSwitcher/AMD64ToPAE.asm
130
131ifdef VBOX_WITH_USB
132VMMR3_DEFS += VBOX_WITH_USB
133VMMR3_SOURCES += PDMUsb.cpp
134endif
135
136
137#
138# The VMM DLL.
139#
140DLLS += VBoxVMM
141VBoxVMM_TEMPLATE = VBOXR3
142VBoxVMM_DEFS = $(VMMR3_DEFS)
143VBoxVMM_SOURCES = VBoxVMMDeps.cpp
144VBoxVMM_SONAME.linux = VBoxVMM.so
145
146VBoxVMM_LIBS = \
147 $(PATH_LIB)/VMMR3$(VBOX_SUFF_LIB) \
148 $(PATH_LIB)/Debugger$(VBOX_SUFF_LIB) \
149 $(PATH_LIB)/DisasmR3$(VBOX_SUFF_LIB) \
150 $(LIB_REM) \
151 $(LIB_RUNTIME)
152
153VBoxVMM_LIBS.win = $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib
154VBoxVMM_LDFLAGS.win = /DELAYLOAD:dbghelp.dll
155VBoxVMM_LDFLAGS.linux = -Wl,--no-undefined
156VBoxVMM_LDFLAGS.darwin = -install_name @executable_path/VBoxVMM.dylib
157VBoxVMM_LDFLAGS.solaris = -mimpure-text
158
159
160ifneq ($(filter pe lx,$(VBOX_LDR_FMT32)),)
161
162#
163# VMMGCBuiltin.lib
164#
165LIBRARIES += VMMGCBuiltin
166VMMGCBuiltin_TEMPLATE = VBOXGC
167ifeq ($(VBOX_LDR_FMT32),pe)
168VMMGCBuiltin_SOURCES = VMMGC/VMMGCBuiltin.def
169endif
170ifeq ($(VBOX_LDR_FMT32),lx)
171VMMGCBuiltin_SOURCES = $(PATH_TARGET)/VMMGCBuiltin.def
172$(PATH_TARGET)/VMMGCBuiltin.def: VMMGC/VMMGCBuiltin.def | $(call DIRDEP,$(PATH_TARGET))
173 $(SED) -e 's/^[ \t][ \t]*\([a-zA-Z]\)/ _\1/' -e 's/[ \t]DATA[ \t]*/ /' $< > [email protected]
174 $(MV) -f [email protected] $@
175endif
176
177
178#
179# VMMGCImp.lib
180#
181LIBRARIES += VMMGCImp
182VMMGCImp_TEMPLATE = VBOXGC
183ifeq ($(VBOX_LDR_FMT32),pe)
184VMMGCImp_SOURCES = VMMGC/VMMGC.def
185endif
186ifeq ($(VBOX_LDR_FMT32),lx)
187VMMGCImp_SOURCES = $(PATH_TARGET)/VMMGC.def
188$(PATH_TARGET)/VMMGC.def: VMMGC/VMMGC.def | $(call DIRDEP,$(PATH_TARGET))
189 $(SED) -e 's/^[ \t][ \t]*\([a-zA-Z]\)/ _\1/' -e 's/[ \t]DATA[ \t]*/ /' $< > [email protected]
190 $(APPEND) "[email protected]" ""
191 $(APPEND) "[email protected]" " ___ehInit"
192 $(MV) -f [email protected] $@
193endif
194
195endif # GC: pe + lx
196
197
198ifneq ($(filter pe lx,$(VBOX_LDR_FMT)),)
199#
200# VMMR0Imp.lib
201#
202LIBRARIES += VMMR0Imp
203VMMR0Imp_TEMPLATE = VBOXR0
204 ifeq ($(VBOX_LDR_FMT),pe)
205VMMR0Imp_SOURCES = VMMR0/VMMR0.def
206 endif
207 ifeq ($(VBOX_LDR_FMT),lx)
208VMMR0Imp_SOURCES = $(PATH_TARGET)/VMMR0.def
209$(PATH_TARGET)/VMMR0.def: VMMR0/VMMR0.def | $(call DIRDEP,$(PATH_TARGET))
210 $(SED) -e 's/^[ \t][ \t]*\([a-zA-Z]\)/ _\1/' -e 's/[ \t]DATA[ \t]*/ /' $< > [email protected]
211 $(APPEND) "[email protected]" ""
212 $(APPEND) "[email protected]" " ___ehInit"
213 $(MV) -f [email protected] $@
214 endif
215endif # R0: pe + lx
216
217
218#
219# VMMGC.gc
220#
221SYSMODS += VMMGC
222VMMGC_TEMPLATE = VBOXGC
223VMMGC_INCS := \
224 $(PATH_SUB_CURRENT) \
225 VMMGC \
226 PATM
227VMMGC_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
228VMMGC_SYSSUFF = .gc
229VMMGC_LIBS = \
230 $(PATH_LIB)/DisasmGC$(VBOX_SUFF_LIB) \
231 $(PATH_LIB)/RuntimeGC$(VBOX_SUFF_LIB)
232ifneq ($(filter pe lx,$(VBOX_LDR_FMT32)),)
233VMMGC_LIBS += \
234 $(PATH_LIB)/VMMGCBuiltin$(VBOX_SUFF_LIB)
235endif
236ifeq ($(VBOX_LDR_FMT32),pe)
237VMMGC_LDFLAGS = -Entry:VMMGCEntry
238endif
239VMMGC_SOURCES = \
240 VMMGC/VMMGC0.asm \
241 VMMGC/VMMGCDeps.cpp \
242 VMMGC/CPUMGC.cpp \
243 VMMGC/CPUMGCA.asm \
244 VMMGC/EMGCA.asm \
245 VMMGC/DBGFGC.cpp \
246 VMMGC/IOMGC.cpp \
247 VMMGC/MMRamGC.cpp \
248 VMMGC/MMRamGCA.asm \
249 VMMGC/PDMGCDevice.cpp \
250 VMMGC/PGMGC.cpp \
251 VMMGC/SELMGC.cpp \
252 VMMGC/TRPMGC.cpp \
253 VMMGC/TRPMGCHandlers.cpp \
254 VMMGC/TRPMGCHandlersA.asm \
255 VMMGC/VMMGC.cpp \
256 VMMGC/VMMGCA.asm \
257 VMMAll/CPUMAllRegs.cpp \
258 VMMAll/CPUMAllA.asm \
259 VMMAll/DBGFAll.cpp \
260 VMMAll/IOMAll.cpp \
261 VMMAll/IOMAllMMIO.cpp \
262 VMMAll/EMAll.cpp \
263 VMMAll/EMAllA.asm \
264 VMMAll/MMAll.cpp \
265 VMMAll/MMAllHyper.cpp \
266 VMMAll/PDMAll.cpp \
267 VMMAll/PDMAllCritSect.cpp \
268 VMMAll/PDMAllQueue.cpp \
269 VMMAll/PGMAll.cpp \
270 VMMAll/PGMAllHandler.cpp \
271 VMMAll/PGMAllMap.cpp \
272 VMMAll/PGMAllPhys.cpp \
273 VMMAll/PGMAllPool.cpp \
274 VMMAll/REMAll.cpp \
275 VMMAll/SELMAll.cpp \
276 VMMAll/TMAll.cpp \
277 VMMAll/TMAllCpu.cpp \
278 VMMAll/TMAllReal.cpp \
279 VMMAll/TMAllVirtual.cpp \
280 VMMAll/TRPMAll.cpp \
281 VMMAll/VMAll.cpp \
282 VMMAll/VMMAll.cpp \
283 PATM/VMMGC/CSAMGC.cpp \
284 PATM/VMMAll/CSAMAll.cpp \
285 PATM/VMMGC/PATMGC.cpp \
286 PATM/VMMAll/PATMAll.cpp
287
288ifeq ($(VBOX_LDR_FMT32),pe)
289VMMGC_SOURCES += VMMGC/VMMGC.def
290endif
291ifeq ($(VBOX_LDR_FMT32),lx)
292VMMGC_SOURCES += $(PATH_TARGET)/VMMGC.def
293endif
294
295# the very last one.
296VMMGC_SOURCES += VMMGC/VMMGC99.asm
297
298VMMGC/VMMGCDeps.cpp_CXXFLAGS.win = -Oi- -TC ## @todo rename VMMGCDeps.cpp to .c
299
300
301#
302# VMMR0.r0
303#
304SYSMODS += VMMR0
305VMMR0_TEMPLATE = VBOXR0
306VMMR0_INCS := \
307 $(PATH_SUB_CURRENT) \
308 PATM
309VMMR0_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
310ifeq ($(VBOX_LDR_FMT),pe)
311VMMR0_LDFLAGS = -Entry:VMMR0Entry
312endif
313ifeq ($(VBOX_LDR_FMT),elf)
314 VMMR0_LDFLAGS = -e VMMR0Entry
315endif
316VMMR0_SYSSUFF = .r0
317VMMR0_SOURCES = \
318 VMMR0/VMMR0.cpp \
319 VMMR0/DBGFR0.cpp \
320 VMMAll/DBGFAll.cpp \
321 VMMAll/TRPMAll.cpp \
322 VMMAll/CPUMAllRegs.cpp \
323 VMMAll/CPUMAllA.asm \
324 VMMAll/MMAll.cpp \
325 VMMAll/MMAllHyper.cpp \
326 VMMAll/MMAllPagePool.cpp \
327 VMMAll/MMAllPhys.cpp \
328 VMMR0/VMMR0A.asm \
329 VMMR0/HWACCMR0.cpp \
330 VMMR0/HWACCMR0A.asm \
331 VMMR0/HWVMXR0.cpp \
332 VMMR0/HWSVMR0.cpp \
333 VMMR0/CPUMR0.cpp \
334 VMMR0/TRPMR0.cpp \
335 VMMR0/TRPMR0A.asm \
336 VMMR0/PDMR0Device.cpp \
337 VMMAll/EMAll.cpp \
338 VMMAll/EMAllA.asm \
339 VMMAll/PDMAll.cpp \
340 VMMAll/PDMAllCritSect.cpp \
341 VMMAll/PDMAllQueue.cpp \
342 VMMAll/PGMAll.cpp \
343 VMMAll/PGMAllHandler.cpp \
344 VMMAll/PGMAllMap.cpp \
345 VMMAll/PGMAllPhys.cpp \
346 VMMAll/PGMAllPool.cpp \
347 VMMAll/REMAll.cpp \
348 VMMAll/IOMAll.cpp \
349 VMMAll/IOMAllMMIO.cpp \
350 VMMAll/SELMAll.cpp \
351 VMMAll/TMAll.cpp \
352 VMMAll/TMAllCpu.cpp \
353 VMMAll/TMAllReal.cpp \
354 VMMAll/TMAllVirtual.cpp \
355 VMMAll/VMAll.cpp \
356 PATM/VMMAll/PATMAll.cpp
357
358ifeq ($(VBOX_LDR_FMT),pe)
359VMMR0_SOURCES += VMMR0/VMMR0.def
360endif
361ifeq ($(VBOX_LDR_FMT),lx)
362VMMR0_SOURCES += $(PATH_TARGET)/VMMR0.def
363endif
364
365VMMR0_LIBS = \
366 $(PATH_LIB)/ServicesR0$(VBOX_SUFF_LIB) \
367 $(PATH_LIB)/RuntimeR0$(VBOX_SUFF_LIB) \
368 $(PATH_LIB)/DisasmR0$(VBOX_SUFF_LIB)
369ifneq ($(filter pe lx,$(VBOX_LDR_FMT)),)
370VMMR0_LIBS += \
371 $(PATH_LIB)/SUPR0$(VBOX_SUFF_LIB)
372endif
373
374
375include $(PATH_KBUILD)/subfooter.kmk
376
377
378# Alias the PGM templates to the object in which they are defined.
379PGMBth.o PGMGst.o PGMShw.o \
380PGMBth.obj PGMGst.obj PGMShw.obj: PGM.o
381PGMAllBth.o PGMAllGst.o PGMAllShw.o \
382PGMAllBth.obj PGMAllGst.obj PGMAllShw.obj: PGMAll.o
383PGMGCBth.o PGMGCGst.o PGMGCShw.o \
384PGMGCBth.obj PGMGCGst.obj PGMGCShw.obj: PGMGC.o
385
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