~ubuntu-branches/ubuntu/gutsy/virtualbox-ose/gutsy

« back to all changes in this revision

Viewing changes to src/VBox/VMM/Makefile.kmk

  • Committer: Bazaar Package Importer
  • Author(s): Steve Kowalik
  • Date: 2007-09-08 16:44:58 UTC
  • Revision ID: james.westby@ubuntu.com-20070908164458-wao29470vqtr8ksy
Tags: upstream-1.5.0-dfsg2
ImportĀ upstreamĀ versionĀ 1.5.0-dfsg2

Show diffs side-by-side

added added

removed removed

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