VirtualBox

source: vbox/trunk/src/VBox/Devices/Makefile.kmk@ 40204

Last change on this file since 40204 was 40204, checked in by vboxsync, 13 years ago

NAT: logging: VBOX_NAT_MEM_DEBUG control adding NAT's "uma" emulation operation into the log.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 33.7 KB
Line 
1# $Id: Makefile.kmk 40204 2012-02-22 02:02:10Z vboxsync $
2## @file
3# Top-level sub-makefile for the devices, drivers and services.
4#
5
6#
7# Copyright (C) 2006-2011 Oracle Corporation
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 (GPL) as published by the Free Software
13# Foundation, in version 2 as it comes in the "COPYING" file of the
14# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16#
17
18SUB_DEPTH = ../../..
19include $(KBUILD_PATH)/subheader.kmk
20
21
22# Include sub-makefiles.
23include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
24if defined(VBOX_WITH_INTEL_PXE) || defined(VBOX_ONLY_EXTPACKS)
25 include $(PATH_SUB_CURRENT)/PC/PXE/Makefile.kmk
26else if defined(VBOX_WITH_PXE_ROM) && !defined(VBOX_WITHOUT_ETHERBOOT)
27 include $(PATH_SUB_CURRENT)/PC/Etherboot-src/Makefile.kmk
28endif
29if !defined(VBOX_ONLY_EXTPACKS) # Goes on almost to the end of the file.
30 include $(PATH_SUB_CURRENT)/PC/BIOS/Makefile.kmk
31 include $(PATH_SUB_CURRENT)/Graphics/BIOS/Makefile.kmk
32 ifdef VBOX_WITH_EFI
33 include $(PATH_SUB_CURRENT)/EFI/Thunk/Makefile.kmk
34 endif
35
36 #
37 # Main targets.
38 #
39 LIBRARIES += DevicesR3 Drivers ServicesR0
40 DLLS += VBoxDDU VBoxDD VBoxDD2
41 SYSMODS += VBoxDDR0 VBoxDD2R0
42 ifdef VBOX_WITH_RAW_MODE
43 SYSMODS += VBoxDDGC VBoxDD2GC
44 endif
45
46
47 #
48 # VBoxDDU (shared object)
49 #
50 VBoxDDU_TEMPLATE = VBoxR3DllWarnNoPic
51 VBoxDDU_NAME = $(basename $(notdir $(LIB_DDU)))
52 VBoxDDU_INST.darwin = $(INST_DLL) $(INST_TESTCASE)
53 VBoxDDU_DEFS = IN_VBOXDDU
54 ifdef VBOX_WITH_VUSB
55 VBoxDDU_DEFS += VBOX_WITH_VUSB
56 endif
57 ifdef VBOX_WITH_USB
58 VBoxDDU_DEFS += VBOX_WITH_USB IN_USBLIB
59 VBoxDDU_SDKS.win = WINPSDK W2K3DDK
60 if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
61 VBoxDDU_DEFS += VBOX_WITH_EHCI_IMPL
62 endif
63 ifdef VBOX_WITH_NEW_USB_CODE_ON_DARWIN
64 VBoxDDU_DEFS.darwin += VBOX_WITH_NEW_USB_CODE_ON_DARWIN
65 endif
66 else
67 VBoxDDU_SDKS.win = WINPSDK
68 endif
69 VBoxDDU_SOURCES = \
70 Storage/VSCSI/VSCSIDevice.cpp \
71 Storage/VSCSI/VSCSILun.cpp \
72 Storage/VSCSI/VSCSILunSbc.cpp \
73 Storage/VSCSI/VSCSILunMmc.cpp \
74 Storage/VSCSI/VSCSISense.cpp \
75 Storage/VSCSI/VSCSIIoReq.cpp \
76 Storage/VSCSI/VSCSIVpdPagePool.cpp \
77 build/VBoxDDUDeps.cpp
78 ifdef VBOX_WITH_USB
79 VBoxDDU_INCS.os2 += \
80 $(PATH_ROOT)/src/VBox/HostDrivers/VBoxUSB/os2
81 endif
82 VBoxDDU_LIBS = \
83 $(LIB_RUNTIME) \
84 $(PATH_STAGE_LIB)/StorageLib$(VBOX_SUFF_LIB)
85 ifdef VBOX_WITH_USB
86 VBoxDDU_LIBS += \
87 $(PATH_STAGE_LIB)/USBLib$(VBOX_SUFF_LIB)
88 VBoxDDU_LIBS.win += \
89 $(PATH_STAGE_LIB)/VBoxDrvCfg$(VBOX_SUFF_LIB)
90 endif
91 ifeq ($(KBUILD_TARGET),l4)
92 VBoxDDU_LIBS += \
93 $(L4_LIBDIR)/libl4sys.p.a
94 endif
95 VBoxDDU_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxDDU.dylib
96 ifdef VBOX_WITH_USB
97 ifdef VBOX_WITH_NEW_USB_CODE_ON_DARWIN
98 VBoxDDU_LDFLAGS.darwin += -framework IOKit
99 endif
100 endif
101
102 VBoxDDU_LDFLAGS.linux = -Wl,--no-undefined
103 VBoxDDU_LDFLAGS.l4 = -Wl,--no-undefined
104
105 #
106 # VBoxDDULnxHostR3 (Only needed for l4, currently for executing vditool on L4Linux.)
107 #
108 ifeq ($(KBUILD_TARGET),l4)
109 LIBRARIES += VBoxDDULnxHostR3
110 VBoxDDULnxHostR3_TEMPLATE = VBOXLNXHOSTR3LIB
111 VBoxDDULnxHostR3_DEFS = IN_VBOXDDU
112 VBoxDDULnxHostR3_SOURCES = $(VBoxDDU_SOURCES)
113 endif
114
115 #
116 # VBoxDD (shared object)
117 #
118 VBoxDD_TEMPLATE = VBoxR3DllWarnNoPic
119 VBoxDD_SDKS.win = WINPSDK DXSDK W2K3DDK VBOX_NTDLL
120 VBoxDD_INCS = build
121 VBoxDD_SOURCES = \
122 build/VBoxDD.cpp
123 VBoxDD_DEFS = VBOX_ACPI
124 ifdef VBOX_WITH_USB
125 VBoxDD_DEFS += VBOX_WITH_USB
126 if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
127 VBoxDD_DEFS += VBOX_WITH_EHCI_IMPL
128 endif
129 endif
130 ifdef VBOX_WITH_VUSB
131 VBoxDD_DEFS += VBOX_WITH_VUSB
132 endif
133 ifdef VBOX_WITH_AHCI
134 VBoxDD_DEFS += VBOX_WITH_AHCI
135 endif
136 ifdef VBOX_WITH_INIP
137 VBoxDD_DEFS += VBOX_WITH_INIP
138 endif
139 ifdef VBOX_WITH_E1000
140 VBoxDD_DEFS += VBOX_WITH_E1000
141 endif
142 ifdef VBOX_WITH_VIRTIO
143 VBoxDD_DEFS += VBOX_WITH_VIRTIO
144 endif
145 ifdef VBOX_WITH_BUSLOGIC
146 VBoxDD_DEFS += VBOX_WITH_BUSLOGIC
147 endif
148 ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
149 VBoxDD_DEFS += VBOX_WITH_PDM_ASYNC_COMPLETION
150 endif
151 ifdef VBOX_WITH_SCSI
152 VBoxDD_DEFS += VBOX_WITH_SCSI
153 endif
154 ifdef VBOX_WITH_LSILOGIC
155 VBoxDD_DEFS += VBOX_WITH_LSILOGIC
156 endif
157 ifdef VBOX_WITH_EFI
158 VBoxDD_DEFS += VBOX_WITH_EFI
159 endif
160 ifdef VBOX_WITH_DRV_DISK_INTEGRITY
161 VBoxDD_DEFS += VBOX_WITH_DRV_DISK_INTEGRITY
162 endif
163 ifdef VBOX_WITH_UDPTUNNEL
164 VBoxDD_DEFS += VBOX_WITH_UDPTUNNEL
165 endif
166 ifdef VBOX_WITH_VDE
167 VBoxDD_DEFS += VBOX_WITH_VDE
168 endif
169 if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
170 VBoxDD_DEFS += VBOX_WITH_PCI_PASSTHROUGH_IMPL
171 endif
172
173 VBoxDD_LIBS = \
174 $(PATH_STAGE_LIB)/DevicesR3$(VBOX_SUFF_LIB) \
175 $(PATH_STAGE_LIB)/Drivers$(VBOX_SUFF_LIB) \
176 $(PATH_STAGE_LIB)/VgaDefBiosLogo$(VBOX_SUFF_LIB) \
177 $(LIB_VMM) \
178 $(LIB_RUNTIME)
179 ifeq ($(KBUILD_TARGET),win)
180 VBoxDD_LIBS += \
181 $(LIB_DDU) \
182 $(PATH_STAGE_LIB)/VBoxDD2.lib \
183 $(PATH_SDK_DXSDK_LIB)/dxguid.lib
184 else
185 VBoxDD_LIBS += \
186 $(VBoxDDU_1_STAGE_TARGET) \
187 $(VBoxDD2_1_STAGE_TARGET)
188 endif
189 ifeq ($(KBUILD_TARGET),l4)
190 VBoxDD_LIBS += \
191 $(L4_LIBDIR)/libl4sys.p.a
192 endif
193
194 ifdef VBOX_WITH_HGSMI
195 VBoxDD_LIBS += \
196 $(PATH_STAGE_LIB)/HGSMIHostR3Lib$(VBOX_SUFF_LIB)
197 endif
198
199 ifdef VBOX_WITH_NETFLT
200 VBoxDD_LIBS.win += $(PATH_STAGE_LIB)/WinNetConfig.lib
201 endif
202
203 ifdef VBOX_WITH_EFI
204 VBoxDD_LIBS += $(PATH_STAGE_LIB)/EfiThunkBin$(VBOX_SUFF_LIB)
205 endif
206
207 ifeq ($(KBUILD_TARGET),solaris)
208 VBoxDD_LIBS += adm
209 ifdef VBOX_WITH_SUID_WRAPPER
210 VBoxDD_LIBS += secdb
211 endif
212 ifdef VBOX_WITH_USB
213 VBoxDD_LIBS += aio
214 endif
215 endif
216
217 VBoxDD_LIBS.darwin += \
218 $(LIB_REM)
219
220 VBoxDD_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxDD.dylib \
221 -framework CoreAudio \
222 -framework AudioUnit \
223 -framework AudioToolbox \
224 -framework IOKit \
225 -framework Carbon \
226 -framework DiskArbitration
227 VBoxDD_LDFLAGS.linux = -Wl,--no-undefined
228 VBoxDD_LDFLAGS.l4 = -Wl,--no-undefined
229
230
231 #
232 # VBoxDD2 (shared object)
233 #
234 VBoxDD2_TEMPLATE = VBoxR3DllWarnNoPic
235 VBoxDD2_DEFS = IN_VBOXDD2
236 VBoxDD2_INCS := \
237 build \
238 $(PATH_SUB_CURRENT)
239 VBoxDD2_SOURCES = \
240 build/VBoxDD2.cpp \
241 PC/DevAPIC.cpp \
242 PC/DevIoApic.cpp \
243 PC/DevSMC.cpp \
244 PC/DevLPC.cpp
245 VBoxDD2_LIBS = \
246 $(PATH_STAGE_LIB)/PcBiosBin$(VBOX_SUFF_LIB) \
247 $(PATH_STAGE_LIB)/VgaBiosBin$(VBOX_SUFF_LIB) \
248 $(if $(VBOX_WITH_PXE_ROM),$(PATH_STAGE_LIB)/NetBiosBin$(VBOX_SUFF_LIB),) \
249 $(LIB_VMM) \
250 $(LIB_RUNTIME)
251 ifeq ($(KBUILD_TARGET),l4)
252 VBoxDD2_LIBS += \
253 $(L4_LIBDIR)/libl4sys.p.a
254 endif
255 VBoxDD2_LIBS.darwin += $(LIB_REM)
256 VBoxDD2_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxDD2.dylib
257 VBoxDD2_LDFLAGS.linux = -Wl,--no-undefined
258 VBoxDD2_LDFLAGS.l4 = -Wl,--no-undefined
259
260 ifdef VBOX_WITH_PXE_ROM
261 VBoxDD2_DEFS += VBOX_WITH_PXE_ROM
262 endif
263
264 #
265 # DevicesR3 (library)
266 #
267 DevicesR3_TEMPLATE = VBoxR3DllWarnNoPic
268 DevicesR3_SDKS.win = WINPSDK W2K3DDK
269 DevicesR3_DEFS.darwin.x86 = VBOX_WITH_2X_4GB_ADDR_SPACE
270 DevicesR3_DEFS += \
271 VBOX_HGCM_HOST_CODE \
272 VBOX_WITH_HGCM \
273 $(if $(VBOX_BIOS_DMI_FALLBACK),VBOX_BIOS_DMI_FALLBACK,) \
274 VBOX_WITH_DMI_CHASSIS \
275 VBOX_WITH_DMI_OEMSTRINGS
276
277 DevicesR3_DEFS.linux += _GNU_SOURCE
278 DevicesR3_DEFS.l4 += _GNU_SOURCE
279
280 DevicesR3_INCS = \
281 build
282
283 DevicesR3_SOURCES = \
284 Input/DevPS2.cpp \
285 Input/PS2K.cpp \
286 Input/UsbKbd.cpp \
287 Input/UsbMouse.cpp \
288 Bus/DevPCI.cpp \
289 Bus/DevPciIch9.cpp \
290 Bus/MsiCommon.cpp \
291 Bus/MsixCommon.cpp \
292 Graphics/DevVGA.cpp \
293 Storage/DevATA.cpp \
294 PC/DevPit-i8254.cpp \
295 PC/DevPIC.cpp \
296 PC/DevACPI.cpp \
297 PC/ACPI/VBoxAcpi.cpp \
298 PC/DevRTC.cpp \
299 PC/DevPcBios.cpp \
300 PC/DevFwCommon.cpp \
301 PC/DevPcArch.c \
302 VMMDev/VMMDev.cpp \
303 VMMDev/VMMDevHGCM.cpp \
304 VMMDev/VMMDevTesting.cpp \
305 Network/DevPCNet.cpp \
306 Audio/DevIchAc97.cpp \
307 Audio/DevSB16.cpp \
308 Audio/DevIchIntelHDA.cpp \
309 Audio/DevCodec.cpp \
310 PC/DevDMA.cpp \
311 PC/DevHPET.cpp \
312 PC/DevSMC.cpp \
313 PC/DevLPC.cpp \
314 Storage/fdc.c \
315 Serial/DevSerial.cpp \
316 Parallel/DevParallel.cpp
317
318 ifdef VBOX_WITH_E1000
319 DevicesR3_DEFS += VBOX_WITH_E1000
320 DevicesR3_SOURCES += \
321 Network/DevE1000.cpp \
322 Network/DevE1000Phy.cpp \
323 Network/DevEEPROM.cpp
324 endif
325
326 ifdef VBOX_WITH_VIRTIO
327 DevicesR3_DEFS += VBOX_WITH_VIRTIO
328 DevicesR3_SOURCES += \
329 VirtIO/Virtio.cpp \
330 Network/DevVirtioNet.cpp
331 endif
332
333 ifdef VBOX_WITH_HGSMI
334 DevicesR3_DEFS += VBOX_WITH_HGSMI
335 DevicesR3_SOURCES += \
336 Graphics/DevVGA_VBVA.cpp \
337 Graphics/HGSMI/HGSMIHost.cpp \
338 Graphics/HGSMI/HGSMIHostHlp.cpp
339
340 endif
341 ifdef VBOX_WITH_WDDM
342 DevicesR3_DEFS += VBOX_WITH_WDDM
343 DevicesR3_SOURCES += \
344 Graphics/HGSMI/SHGSMIHost.cpp
345 endif
346 ifdef VBOX_WITH_VDMA
347 DevicesR3_DEFS += VBOX_WITH_VDMA
348 DevicesR3_SOURCES += \
349 Graphics/DevVGA_VDMA.cpp
350 endif
351 ifdef VBOX_WITH_CRHGSMI
352 DevicesR3_DEFS += VBOX_WITH_CRHGSMI
353 endif
354 ifdef VBOXWDDM_TEST_UHGSMI
355 DevicesR3_DEFS += VBOXWDDM_TEST_UHGSMI
356 endif
357 ifdef VBOXWDDM_WITH_VBVA
358 DevicesR3_DEFS += VBOXWDDM_WITH_VBVA
359 endif
360 ifdef VBOX_WITH_VIDEOHWACCEL
361 DevicesR3_DEFS += VBOX_WITH_VIDEOHWACCEL
362 endif
363 ifdef VBOX_WITH_DMI_CHASSIS
364 DevicesR3_DEFS += VBOX_WITH_DMI_CHASSIS
365 endif
366 ifdef VBOX_WITH_DMI_OEMSTRINGS
367 DevicesR3_DEFS += VBOX_WITH_DMI_OEMSTRINGS
368 endif
369 ifdef VBOX_WITH_PXE_ROM
370 DevicesR3_DEFS += VBOX_WITH_PXE_ROM
371 endif
372
373 ifdef VBOX_WITH_INIP
374 DevicesR3_INCS += \
375 Network/lwip/src/include \
376 Network/lwip/src/include/ipv4 \
377 Network/lwip/vbox/include
378 DevicesR3_SOURCES += \
379 Network/lwip/src/api/api_lib.c \
380 Network/lwip/src/api/api_msg.c \
381 Network/lwip/src/api/err.c \
382 Network/lwip/src/api/sockets.c \
383 Network/lwip/src/api/tcpip.c \
384 Network/lwip/src/core/tcp_in.c \
385 Network/lwip/src/core/dhcp.c \
386 Network/lwip/src/core/inet.c \
387 Network/lwip/src/core/mem.c \
388 Network/lwip/src/core/memp.c \
389 Network/lwip/src/core/netif.c \
390 Network/lwip/src/core/pbuf.c \
391 Network/lwip/src/core/raw.c \
392 Network/lwip/src/core/stats.c \
393 Network/lwip/src/core/sys.c \
394 Network/lwip/src/core/tcp.c \
395 Network/lwip/src/core/ipv4/ip_addr.c \
396 Network/lwip/src/core/ipv4/icmp.c \
397 Network/lwip/src/core/ipv4/ip.c \
398 Network/lwip/src/core/ipv4/ip_frag.c \
399 Network/lwip/src/core/tcp_out.c \
400 Network/lwip/src/core/udp.c \
401 Network/lwip/src/netif/etharp.c \
402 Network/lwip/vbox/sys_arch.c \
403 Network/DevINIP.cpp
404 DevicesR3_DEFS += VBOX_WITH_INIP
405 endif
406
407 ifdef VBOX_WITH_AHCI
408 DevicesR3_DEFS += VBOX_WITH_AHCI IN_AHCI_R3
409 DevicesR3_SOURCES += \
410 Storage/DevAHCI.cpp \
411 Storage/ATAController.cpp
412 endif
413
414 ifdef VBOX_WITH_BUSLOGIC
415 DevicesR3_DEFS += VBOX_WITH_BUSLOGIC
416 DevicesR3_SOURCES += \
417 Storage/DevBusLogic.cpp \
418 Storage/VBoxSCSI.cpp
419 endif
420
421 ifdef VBOX_WITH_LSILOGIC
422 DevicesR3_DEFS += VBOX_WITH_LSILOGIC
423 DevicesR3_SOURCES += \
424 Storage/DevLsiLogicSCSI.cpp
425 endif
426
427 ifdef VBOX_WITH_EFI
428 DevicesR3_DEFS += VBOX_WITH_EFI
429 ifdef VBOX_WITH_ALT_EFITHUNK
430 DevicesR3_DEFS += VBOX_WITH_ALT_EFITHUNK
431 endif
432 DevicesR3_SOURCES += EFI/DevEFI.cpp
433 EFI/DevEFI.cpp_INCS += EFI/tools/include
434 EFI/DevEFI.cpp_INCS.x86 += EFI/tools/include/Ia32
435 EFI/DevEFI.cpp_INCS.amd64 += EFI/tools/include/X64
436 endif
437
438 ifdef VBOX_WITH_MSI_DEVICES
439 DevicesR3_DEFS += VBOX_WITH_MSI_DEVICES
440 endif
441
442 ifdef VBOX_WITH_DYNAMIC_DSDT
443 DevicesR3_DEFS += VBOX_WITH_DYNAMIC_DSDT
444 endif
445
446 ifdef VBOX_WITH_VUSB
447 DevicesR3_DEFS += VBOX_WITH_VUSB
448 DevicesR3_SOURCES += \
449 USB/DevOHCI.cpp
450 endif
451 ifdef VBOX_WITH_USB
452 DevicesR3_DEFS += VBOX_WITH_USB
453 if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
454 DevicesR3_DEFS += VBOX_WITH_EHCI_IMPL
455 DevicesR3_SOURCES += \
456 USB/DevEHCI.cpp
457 endif
458 endif
459 if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
460 DevicesR3_DEFS += VBOX_WITH_PCI_PASSTHROUGH_IMPL
461 DevicesR3_SOURCES += \
462 Bus/DevPciRaw.cpp
463
464 endif
465
466 ifdef VBOX_WITH_DTRACE_R3
467 DevicesR3_DEFS += VBOX_WITH_DTRACE
468 DevicesR3_INCS += $(DevicesR3_0_OUTDIR)
469 DevicesR3_INTERMEDIATES += $(DevicesR3_0_OUTDIR)/VBoxDD-dtrace.h
470 $$(DevicesR3_0_OUTDIR)/VBoxDD-dtrace.h: $(PATH_SUB_CURRENT)/build/VBoxDD-dtrace.d | $$(dir $$@)
471 dtrace -C -h -o $@ -s $<
472 endif
473
474 ifdef VBOX_WITH_DYNAMIC_DSDT
475 DevicesR3_CLEAN += $(DevicesR3_0_OUTDIR)/vboxdsl.hex
476 PC/ACPI/VBoxAcpi.cpp_DEPS = $(DevicesR3_0_OUTDIR)/vboxdsl.hex
477
478 $$(DevicesR3_0_OUTDIR)/vboxdsl.hex: $(PATH_SUB_CURRENT)/PC/vbox.dsl | $$(dir $$@)
479 $(call MSG_TOOL,bin2c,DevicesR3,$<,$@)
480 $(QUIET)$(VBOX_BIN2C) -export VboxDslSource $< $@
481
482 vboxdsl.hex:: $$(DevicesR3_0_OUTDIR)/vboxdsl.hex
483
484 else # !VBOX_WITH_DYNAMIC_DSDT
485 # VBoxAcpi.cpp needs vboxaml.hex which we generate from PC/vbox.dsl
486 DevicesR3_CLEAN += \
487 $(DevicesR3_0_OUTDIR)/vboxaml.hex \
488 $(DevicesR3_0_OUTDIR)/vboxaml.aml \
489 $(DevicesR3_0_OUTDIR)/vboxssdt-standard.hex \
490 $(DevicesR3_0_OUTDIR)/vboxssdt-standard.aml \
491 $(DevicesR3_0_OUTDIR)/vboxssdt-standard.aml.tmp \
492 $(DevicesR3_0_OUTDIR)/vboxssdt-cpuhotplug.hex \
493 $(DevicesR3_0_OUTDIR)/vboxssdt-cpuhotplug.aml \
494 $(DevicesR3_0_OUTDIR)/vboxssdt-cpuhotplug.aml.tmp \
495 $(DevicesR3_0_OUTDIR)/vboxssdt-cpuhotplug.aml.pre
496 PC/ACPI/VBoxAcpi.cpp_DEPS = \
497 $(DevicesR3_0_OUTDIR)/vboxaml.hex \
498 $(DevicesR3_0_OUTDIR)/vboxssdt-standard.hex \
499 $(DevicesR3_0_OUTDIR)/vboxssdt-cpuhotplug.hex
500
501 $$(DevicesR3_0_OUTDIR)/vboxaml.hex: $(PATH_SUB_CURRENT)/PC/vbox.dsl | $$(dir $$@)
502 $(call MSG_TOOL,iasl,DevicesR3,$<,$@)
503 $(QUIET)$(VBOX_IASLCMD) -tc -vs -p $@ $<
504
505 vboxaml.hex:: $$(DevicesR3_0_OUTDIR)/vboxaml.hex
506
507 $$(DevicesR3_0_OUTDIR)/vboxssdt-standard.hex: $(PATH_SUB_CURRENT)/PC/vbox-standard.dsl | $$(dir $$@)
508 $(call MSG_TOOL,iasl,DevicesR3,$<,$@)
509 $(QUIET)$(RM) -f $@ [email protected]
510 $(QUIET)$(VBOX_IASLCMD) -tc -vs -p $@ $<
511 $(QUIET)$(MV) -f $@ [email protected]
512 $(QUIET)$(SED) "s/AmlCode/AmlCodeSsdtStandard/g" \
513 --output $@ [email protected]
514 $(QUIET)$(RM) -f [email protected]
515
516
517 vboxssdt-standard.hex:: $$(DevicesR3_0_OUTDIR)/vboxssdt-standard.hex
518
519 $$(DevicesR3_0_OUTDIR)/vboxssdt-cpuhotplug.hex: $(PATH_SUB_CURRENT)/PC/vbox-cpuhotplug.dsl | $$(dir $$@)
520 $(call MSG_TOOL,iasl,DevicesR3,$<,$@)
521 $(QUIET)$(RM) -f $@ [email protected] [email protected]
522 $(QUIET)$(TOOL_$(VBOX_GCC_TOOL)_CC) -E -P -x c -o [email protected] $<
523 $(QUIET)$(VBOX_IASLCMD) -tc -vs -p $@ [email protected]
524 $(QUIET)$(MV) -f $@ [email protected]
525 $(QUIET)$(SED) "s/AmlCode/AmlCodeSsdtCpuHotPlug/g" \
526 --output $@ [email protected]
527 $(QUIET)$(RM) -f [email protected] [email protected]
528
529
530 vboxssdt-cpuhotplug.hex:: $$(DevicesR3_0_OUTDIR)/vboxssdt-cpuhotplug.hex
531
532 endif # !VBOX_WITH_DYNAMIC_DSDT
533 PC/ACPI/VBoxAcpi.cpp_INCS = $(DevicesR3_0_OUTDIR)
534
535 # For finding PCIInternal.h from VBox/pci.h.
536 Bus/DevPCI.cpp_INCS = Bus
537 Bus/DevPciIch9.cpp_INCS = Bus
538 Bus/MsiCommon.cpp_INCS = Bus
539 Bus/MsixCommon.cpp_INCS = Bus
540 Bus/DevPciRaw.cpp_INCS = Bus
541
542 # For finding and generating vbetables.h (see Graphics/BIOS/Makefile.kmk).
543 Graphics/DevVGA.cpp_INCS = $(VgaBiosBin_0_OUTDIR)
544 Graphics/DevVGA.cpp_DEPS = $(VgaBiosBin_0_OUTDIR)/vbetables.h
545
546
547 ifdef VBOX_WITH_RAW_MODE
548 #
549 # VBoxDDGC (sysmod)
550 #
551 VBoxDDGC_TEMPLATE = VBoxRc
552 ifeq ($(KBUILD_TARGET_ARCH),x86)
553 VBoxDDGC_DEFS.darwin = VBOX_WITH_2X_4GB_ADDR_SPACE
554 endif
555 VBoxDDGC_DEFS = VBOX_WITH_HGCM
556 VBoxDDGC_INCS = build
557 VBoxDDGC_SOURCES = \
558 Bus/DevPCI.cpp \
559 Bus/DevPciIch9.cpp \
560 Bus/MsiCommon.cpp \
561 Bus/MsixCommon.cpp \
562 Graphics/DevVGA.cpp \
563 Input/DevPS2.cpp \
564 Input/PS2K.cpp \
565 PC/DevACPI.cpp \
566 PC/DevPit-i8254.cpp \
567 PC/DevPIC.cpp \
568 PC/DevRTC.cpp \
569 PC/DevHPET.cpp \
570 Storage/DevATA.cpp \
571 Network/DevPCNet.cpp \
572 Serial/DevSerial.cpp \
573 Parallel/DevParallel.cpp \
574 VMMDev/VMMDevTesting.cpp
575
576 ifdef VBOX_WITH_E1000
577 VBoxDDGC_DEFS += VBOX_WITH_E1000
578 VBoxDDGC_SOURCES += \
579 Network/DevE1000.cpp \
580 Network/DevE1000Phy.cpp
581 endif
582
583 ifdef VBOX_WITH_VIRTIO
584 VBoxDDGC_DEFS += VBOX_WITH_VIRTIO
585 VBoxDDGC_SOURCES += \
586 VirtIO/Virtio.cpp \
587 Network/DevVirtioNet.cpp
588 endif
589
590 ifdef VBOX_WITH_HGSMI
591 VBoxDDGC_DEFS += VBOX_WITH_HGSMI
592 endif
593 ifdef VBOX_WITH_WDDM
594 VBoxDDGC_DEFS += VBOX_WITH_WDDM
595 endif
596 ifdef VBOX_WITH_VDMA
597 VBoxDDGC_DEFS += VBOX_WITH_VDMA
598 endif
599 ifdef VBOX_WITH_CRHGSMI
600 VBoxDDGC_DEFS += VBOX_WITH_CRHGSMI
601 endif
602
603 ifdef VBOXWDDM_WITH_VBVA
604 VBoxDDGC_DEFS += VBOXWDDM_WITH_VBVA
605 endif
606
607 ifdef VBOX_WITH_VUSB
608 VBoxDDGC_DEFS += VBOX_WITH_VUSB
609 VBoxDDGC_SOURCES += \
610 USB/DevOHCI.cpp
611 endif
612
613 ifdef VBOX_WITH_USB
614 VBoxDDGC_DEFS += VBOX_WITH_USB
615 if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
616 VBoxDDGC_DEFS += VBOX_WITH_EHCI_IMPL
617 VBoxDDGC_SOURCES += \
618 USB/DevEHCI.cpp
619 endif
620 endif
621
622 ifdef VBOX_WITH_VIDEOHWACCEL
623 VBoxDDGC_DEFS += VBOX_WITH_VIDEOHWACCEL
624 endif
625
626 ifdef VBOX_WITH_AHCI
627 VBoxDDGC_DEFS += VBOX_WITH_AHCI IN_AHCI_GC
628 VBoxDDGC_SOURCES += \
629 Storage/DevAHCI.cpp \
630 Storage/ATAController.cpp
631 endif
632
633 ifdef VBOX_WITH_BUSLOGIC
634 VBoxDDGC_DEFS += VBOX_WITH_BUSLOGIC
635 VBoxDDGC_SOURCES += \
636 Storage/DevBusLogic.cpp
637 endif
638
639 ifdef VBOX_WITH_LSILOGIC
640 VBoxDDGC_DEFS += VBOX_WITH_LSILOGIC
641 VBoxDDGC_SOURCES += \
642 Storage/DevLsiLogicSCSI.cpp
643 endif
644
645 if1of ($(VBOX_LDR_FMT32), pe lx)
646 VBoxDDGC_LIBS = \
647 $(PATH_STAGE_LIB)/VMMRCBuiltin$(VBOX_SUFF_LIB) \
648 $(PATH_STAGE_LIB)/VMMRCImp$(VBOX_SUFF_LIB)
649 endif
650 endif # VBOX_WITH_RAW_MODE
651
652
653 #
654 # VBoxDDR0 (sysmod)
655 #
656 VBoxDDR0_TEMPLATE = VBoxR0
657 VBoxDDR0_DEFS.darwin.x86= VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0 VBOX_WITH_2X_4GB_ADDR_SPACE
658 VBoxDDR0_DEFS = IN_RT_R0 VBOX_WITH_HGCM # - WTF is IN_RT_R0 doing here?
659 VBoxDDR0_INCS = build
660 VBoxDDR0_SOURCES = \
661 build/VBoxDDR0.cpp \
662 Bus/DevPCI.cpp \
663 Bus/DevPciIch9.cpp \
664 Bus/MsiCommon.cpp \
665 Bus/MsixCommon.cpp \
666 Graphics/DevVGA.cpp \
667 Input/DevPS2.cpp \
668 Input/PS2K.cpp \
669 PC/DevACPI.cpp \
670 PC/DevPit-i8254.cpp \
671 PC/DevPIC.cpp \
672 PC/DevRTC.cpp \
673 PC/DevHPET.cpp \
674 Storage/DevATA.cpp \
675 Network/DevPCNet.cpp \
676 Serial/DevSerial.cpp \
677 Parallel/DevParallel.cpp \
678 VMMDev/VMMDevTesting.cpp \
679 \
680 Network/DrvIntNet.cpp \
681 Network/DrvDedicatedNic.cpp
682
683 ifdef VBOX_WITH_E1000
684 VBoxDDR0_DEFS += VBOX_WITH_E1000
685 VBoxDDR0_SOURCES += \
686 Network/DevE1000.cpp \
687 Network/DevE1000Phy.cpp
688 endif
689
690 ifdef VBOX_WITH_VIRTIO
691 VBoxDDR0_DEFS += VBOX_WITH_VIRTIO
692 VBoxDDR0_SOURCES += \
693 VirtIO/Virtio.cpp \
694 Network/DevVirtioNet.cpp
695 endif
696
697 ifdef VBOX_WITH_HGSMI
698 VBoxDDR0_DEFS += VBOX_WITH_HGSMI
699 endif
700 ifdef VBOX_WITH_WDDM
701 VBoxDDR0_DEFS += VBOX_WITH_WDDM
702 endif
703 ifdef VBOX_WITH_VDMA
704 VBoxDDR0_DEFS += VBOX_WITH_VDMA
705 endif
706 ifdef VBOX_WITH_CRHGSMI
707 VBoxDDR0_DEFS += VBOX_WITH_CRHGSMI
708 endif
709 ifdef VBOXWDDM_WITH_VBVA
710 VBoxDDR0_DEFS += VBOXWDDM_WITH_VBVA
711 endif
712
713 ifdef VBOX_WITH_VUSB
714 VBoxDDR0_DEFS += VBOX_WITH_VUSB
715 VBoxDDR0_SOURCES += \
716 USB/DevOHCI.cpp
717 endif
718 ifdef VBOX_WITH_USB
719 VBoxDDR0_DEFS += VBOX_WITH_USB
720 if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
721 VBoxDDR0_DEFS += VBOX_WITH_EHCI_IMPL
722 VBoxDDR0_SOURCES += \
723 USB/DevEHCI.cpp
724 endif
725 endif
726
727 if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
728 VBoxDDR0_SOURCES += \
729 Bus/DevPciRaw.cpp
730 endif
731
732 ifdef VBOX_WITH_AHCI
733 VBoxDDR0_DEFS += VBOX_WITH_AHCI IN_AHCI_R0
734 VBoxDDR0_SOURCES += \
735 Storage/DevAHCI.cpp \
736 Storage/ATAController.cpp
737 endif
738
739 ifdef VBOX_WITH_BUSLOGIC
740 VBoxDDR0_DEFS += VBOX_WITH_BUSLOGIC
741 VBoxDDR0_SOURCES += \
742 Storage/DevBusLogic.cpp
743 endif
744
745 ifdef VBOX_WITH_LSILOGIC
746 VBoxDDR0_DEFS += VBOX_WITH_LSILOGIC
747 VBoxDDR0_SOURCES += \
748 Storage/DevLsiLogicSCSI.cpp
749 endif
750
751 ifdef VBOX_WITH_HGSMI
752 VBoxDDR0_DEFS += VBOX_WITH_HGSMI
753 endif
754 ifdef VBOX_WITH_VIDEOHWACCEL
755 VBoxDDR0_DEFS += VBOX_WITH_VIDEOHWACCEL
756 endif
757
758 if1of ($(VBOX_LDR_FMT), pe lx)
759 VBoxDDR0_LIBS = \
760 $(PATH_STAGE_LIB)/VMMR0Imp$(VBOX_SUFF_LIB) \
761 $(PATH_STAGE_LIB)/SUPR0$(VBOX_SUFF_LIB)
762 endif
763
764
765 ifdef VBOX_WITH_RAW_MODE
766 #
767 # VBoxDD2GC (LGPL sysmod)
768 #
769 VBoxDD2GC_TEMPLATE = VBoxRc
770 VBoxDD2GC_DEFS =
771 VBoxDD2GC_INCS = build
772 VBoxDD2GC_SOURCES = \
773 PC/DevAPIC.cpp \
774 PC/DevIoApic.cpp \
775 PC/DevSMC.cpp
776 if1of ($(VBOX_LDR_FMT32), pe lx)
777 VBoxDD2GC_LIBS = \
778 $(PATH_STAGE_LIB)/VMMRCBuiltin$(VBOX_SUFF_LIB) \
779 $(PATH_STAGE_LIB)/VMMRCImp$(VBOX_SUFF_LIB)
780 endif
781 endif
782
783 #
784 # VBoxDD2R0 (LGPL sysmod)
785 #
786 VBoxDD2R0_TEMPLATE = VBoxR0
787 VBoxDD2R0_DEFS = IN_RT_R0
788 VBoxDD2R0_INCS = build
789 VBoxDD2R0_SOURCES = \
790 build/VBoxDD2R0.cpp \
791 PC/DevAPIC.cpp \
792 PC/DevIoApic.cpp \
793 PC/DevSMC.cpp
794
795 if1of ($(VBOX_LDR_FMT), pe lx)
796 VBoxDD2R0_LIBS = \
797 $(PATH_STAGE_LIB)/VMMR0Imp$(VBOX_SUFF_LIB) \
798 $(PATH_STAGE_LIB)/SUPR0$(VBOX_SUFF_LIB)
799 endif
800
801
802 #
803 # Drivers (library)
804 #
805 ifeq ($(KBUILD_TARGET),l4) # We are using real Linux headers, not the cleaned up user space ones
806 Drivers_TEMPLATE = VBOXR3NP
807 else
808 Drivers_TEMPLATE = VBoxR3DllWarnNoPic
809 endif
810 Drivers_SDKS.win = WINPSDK W2K3DDK
811 Storage/DrvHostDVD.cpp_SDKS.win = W2K3DDK
812 Drivers_DEFS.win += _WIN32_WINNT=0x0510
813 Drivers_DEFS = \
814 IN_IDE_R3 \
815 $(if $(VBOX_WITH_NETFLT),VBOX_WITH_NETFLT,) \
816 $(if $(VBOX_WITH_INIP),VBOX_WITH_INIP,) \
817 $(if $(VBOX_WITH_DRV_DISK_INTEGRITY),VBOX_WITH_DRV_DISK_INTEGRITY,) \
818
819 Drivers_INCS := \
820 build \
821 Network/slirp
822 Drivers_SOURCES = \
823 Audio/audio.c \
824 Audio/audiosniffer.c \
825 Audio/mixeng.c \
826 Audio/noaudio.c \
827 Audio/filteraudio.c \
828 Input/DrvKeyboardQueue.cpp \
829 Input/DrvMouseQueue.cpp \
830 Network/DrvIntNet.cpp \
831 Network/DrvDedicatedNic.cpp \
832 PC/DrvACPI.cpp \
833 PC/DrvAcpiCpu.cpp \
834 Serial/DrvChar.cpp \
835 Serial/DrvNamedPipe.cpp \
836 Serial/DrvRawFile.cpp \
837 Storage/DrvBlock.cpp \
838 Storage/DrvHostBase.cpp \
839 Storage/DrvHostDVD.cpp \
840 Storage/DrvHostFloppy.cpp \
841 Storage/DrvMediaISO.cpp \
842 Storage/DrvRawImage.cpp \
843 Storage/Debug.cpp \
844 Storage/DrvVD.cpp \
845 Network/DrvNetSniffer.cpp \
846 Network/Pcap.cpp
847
848 VBOX_SLIRP_SOURCES = \
849 Network/DrvNAT.cpp \
850 Network/slirp/bootp.c \
851 Network/slirp/debug.c \
852 Network/slirp/ip_icmp.c \
853 Network/slirp/ip_input.c \
854 Network/slirp/ip_output.c \
855 Network/slirp/misc.c \
856 Network/slirp/sbuf.c \
857 Network/slirp/slirp.c \
858 Network/slirp/socket.c \
859 Network/slirp/tcp_input.c \
860 Network/slirp/tcp_output.c \
861 Network/slirp/tcp_subr.c \
862 Network/slirp/tcp_timer.c \
863 Network/slirp/udp.c \
864 Network/slirp/dnsproxy/hash.c \
865 Network/slirp/tftp.c \
866 Network/slirp/dnsproxy/dnsproxy.c
867
868 ifdef VBOX_WITH_SLIRP_BSD_SBUF
869 VBOX_SLIRP_SOURCES += Network/slirp/bsd/kern/subr_sbuf.c
870 endif
871
872 VBOX_SLIRP_BSD_ARCH = $(subst x86,i386,$(KBUILD_TARGET_ARCH))
873 VBOX_SLIRP_BSD_SOURCES += \
874 Network/slirp/bsd/kern/kern_mbuf.c \
875 Network/slirp/bsd/kern/uipc_mbuf.c \
876 Network/slirp/bsd/kern/uipc_mbuf2.c \
877 Network/slirp/bsd/$(VBOX_SLIRP_BSD_ARCH)/in_cksum.c
878
879 VBOX_SLIRP_ALIAS_SOURCES = \
880 Network/slirp/libalias/alias.c \
881 Network/slirp/libalias/alias_db.c \
882 Network/slirp/libalias/alias_mod.c \
883 Network/slirp/libalias/alias_proxy.c \
884 Network/slirp/libalias/alias_ftp.c \
885 Network/slirp/libalias/alias_dns.c \
886 Network/slirp/libalias/alias_nbt.c \
887 Network/slirp/libalias/alias_util.c
888
889 # Enable VBOX_WITH_DNSMAPPING_IN_HOSTRESOLVER here for a while, then move to $(file)_DEFS or clean the code
890 # disabled with this definition
891 VBOX_WITH_DNSMAPPING_IN_HOSTRESOLVER=1
892
893 # dump memory related operations.
894 Network/slirp/misc.c_DEFS += $(if $(VBOX_NAT_MEM_DEBUG),VBOX_NAT_MEM_DEBUG,)
895
896 Drivers_SOURCES += $(VBOX_SLIRP_SOURCES)
897 define def_vbox_slirp_cflags
898 $(file)_DEFS += \
899 $(if $(VBOX_WITH_SLIRP_BSD_SBUF),VBOX_WITH_SLIRP_BSD_SBUF,) \
900 $(if $(VBOX_WITH_SLIRP_MEMORY_CHECK),RTMEM_WRAP_TO_EF_APIS,) \
901 $(if $(VBOX_WITH_DEBUG_NAT_SOCKETS),VBOX_WITH_DEBUG_NAT_SOCKETS,) \
902 $(if $(VBOX_WITH_DNSMAPPING_IN_HOSTRESOLVER),VBOX_WITH_DNSMAPPING_IN_HOSTRESOLVER,) \
903 $(if $(VBOX_WITH_NAT_UDP_SOCKET_CLONE),VBOX_WITH_NAT_UDP_SOCKET_CLONE,) \
904 $(if $(VBOX_WITH_NAT_SEND2HOME),VBOX_WITH_NAT_SEND2HOME,) \
905 $(if $(VBOX_WITH_SLIRP_MT),VBOX_WITH_SLIRP_MT,)
906 $(file)_INCS += $(1)/slirp/bsd/sys
907 $(file)_INCS += $(1)/slirp/bsd/sys/sys
908 $(file)_INCS += $(1)/slirp/bsd/$(VBOX_SLIRP_BSD_ARCH)/include
909 $(file)_INCS += $(1)/slirp/bsd/netinet
910 $(file)_INCS += $(1)/slirp
911 $(file)_INCS += $(1)/slirp/libalias
912 ifeq ($(KBUILD_TARGET),win)
913 $(file)_CFLAGS = -wd4018
914 else
915 $(file)_CFLAGS += -Wno-sign-compare
916 $(file)_CFLAGS += -Wno-format
917 $(file)_CFLAGS += -Wno-bad-function-cast
918 endif
919 endef
920
921 $(foreach file,$(VBOX_SLIRP_SOURCES),$(eval $(call def_vbox_slirp_cflags, Network)))
922
923 Drivers_SOURCES += $(VBOX_SLIRP_ALIAS_SOURCES)
924 define def_vbox_slirp_alias_cflags
925 $(file)_DEFS += VBOX_SLIRP_ALIAS \
926 $(if $(VBOX_WITH_DEBUG_LIBALIAS),VBOX_WITH_DEBUG_LIBALIAS,)
927 $(file)_INCS += $(1)/slirp/libalias
928 $(file)_INCS += $(1)/slirp
929 $(file)_INCS += $(1)/slirp/dnsproxy
930 ifneq ($(KBUILD_TARGET),win)
931 $(file)_CFLAGS += -Wno-shadow
932 endif
933 endef
934 $(foreach file,$(VBOX_SLIRP_ALIAS_SOURCES),$(eval $(call def_vbox_slirp_cflags, Network)))
935 $(foreach file,$(VBOX_SLIRP_ALIAS_SOURCES),$(eval $(call def_vbox_slirp_alias_cflags, Network)))
936
937 VBOX_SLIRP_BSD_SOURCES += $(VBOX_SLIRP_BSD_SOURCES.${KBUILD_TARGET_ARCH})
938 Drivers_SOURCES += $(VBOX_SLIRP_BSD_SOURCES)
939 define def_vbox_slirp_bsd_cflags
940 $(file)_DEFS += VBOX_SLIRP_BSD
941 $(file)_INCS += $(1)/slirp/dnsproxy
942 endef
943 $(foreach file,$(VBOX_SLIRP_BSD_SOURCES),$(eval $(call def_vbox_slirp_cflags, Network)))
944 $(foreach file,$(VBOX_SLIRP_BSD_SOURCES),$(eval $(call def_vbox_slirp_bsd_cflags, Network)))
945
946 ifdef VBOX_WITH_DRV_DISK_INTEGRITY
947 Drivers_SOURCES += \
948 Storage/DrvDiskIntegrity.cpp
949 endif
950
951 ifdef VBOX_WITH_UDPTUNNEL
952 Drivers_SOURCES += \
953 Network/DrvUDPTunnel.cpp
954 Drivers_DEFS += VBOX_WITH_UDPTUNNEL
955 endif
956 ifdef VBOX_WITH_VDE
957 Drivers_SOURCES += \
958 Network/DrvVDE.cpp \
959 Network/VDEPlug.cpp
960 Drivers_DEFS += VBOX_WITH_VDE
961 endif
962 if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
963 Drivers_SOURCES += \
964 Bus/DrvPciRaw.cpp
965 Drivers_DEFS += VBOX_WITH_PCI_PASSTHROUGH_IMPL
966 endif
967
968 # -- OS specific --
969
970 ifeq ($(KBUILD_TARGET),darwin)
971 Drivers_SOURCES := $(filter-out \
972 Storage/DrvHostRaw% \
973 Storage/DrvHostFloppy% \
974 , $(Drivers_SOURCES)) \
975 Audio/coreaudio.c
976 Drivers_SOURCES.darwin = \
977 Serial/DrvHostSerial.cpp
978 endif # darwin
979
980 ifeq ($(KBUILD_TARGET),freebsd)
981 Drivers_SOURCES := $(filter-out \
982 Storage/DrvHostFloppy% \
983 , $(Drivers_SOURCES)) \
984 Audio/ossaudio.c \
985 Serial/DrvHostSerial.cpp
986 Drivers_SOURCES.freebsd = \
987 Network/DrvTAP.cpp
988 endif # freebsd
989
990
991 ifeq ($(KBUILD_TARGET),l4)
992 Drivers_SOURCES = \
993 Input/DrvMouseQueue.cpp \
994 Input/DrvKeyboardQueue.cpp \
995 Storage/DrvBlock.cpp \
996 Storage/DrvMediaISO.cpp \
997 Storage/DrvRawImage.cpp \
998 Storage/DrvHostBase.cpp \
999 Storage/DrvHostDVD.cpp \
1000 Storage/DrvVD.cpp \
1001 PC/DrvACPI.cpp \
1002 Network/DrvIntNet.cpp \
1003 Network/DHCPServerRunner.cpp \
1004 Network/DrvNetSniffer.cpp \
1005 Network/Pcap.cpp \
1006 Audio/audio.c \
1007 Audio/mixeng.c \
1008 Audio/noaudio.c \
1009 Audio/audiosniffer.c
1010
1011 Drivers_SOURCES.l4 = \
1012 Audio/ossaudio.c
1013 endif # l4
1014
1015 Drivers_SOURCES.linux = \
1016 Network/DrvTAP.cpp \
1017 Audio/ossaudio.c \
1018 Parallel/DrvHostParallel.cpp \
1019 Serial/DrvHostSerial.cpp
1020
1021 ifeq ($(KBUILD_TARGET),os2)
1022 Drivers_SOURCES := $(filter-out \
1023 Storage/DrvHost% \
1024 , $(Drivers_SOURCES))
1025 endif
1026
1027 ifeq ($(KBUILD_TARGET),solaris)
1028 Drivers_SOURCES := $(filter-out \
1029 Storage/DrvHost% \
1030 , $(Drivers_SOURCES))
1031 Drivers_SOURCES.solaris = \
1032 Audio/solaudio.c \
1033 Storage/DrvHostBase.cpp \
1034 Storage/DrvHostDVD.cpp \
1035 Serial/DrvHostSerial.cpp
1036 ifdef VBOX_WITH_SOLARIS_OSS
1037 Drivers_SOURCES += Audio/ossaudio.c
1038 Drivers_DEFS += VBOX_WITH_SOLARIS_OSS
1039 endif
1040 ifdef VBOX_WITH_SUID_WRAPPER
1041 Drivers_DEFS += VBOX_WITH_SUID_WRAPPER
1042 endif
1043 endif
1044
1045 Drivers_SOURCES.win = \
1046 Audio/dsoundaudio.c \
1047 Serial/DrvHostSerial.cpp
1048
1049 if defined(VBOX_WITH_NETFLT)
1050 if defined(VBOX_NETFLT_ONDEMAND_BIND)
1051 Drivers_DEFS.win += VBOX_NETFLT_ONDEMAND_BIND
1052 endif
1053 endif
1054
1055 # -- features --
1056
1057 ifdef VBOX_WITH_ISCSI
1058 Storage/DrvVD.cpp_INCS = \
1059 Network/lwip/src/include \
1060 Network/lwip/src/include/ipv4 \
1061 Network/lwip/vbox/include
1062 endif # VBOX_WITH_ISCSI
1063
1064 ifdef VBOX_WITH_ALSA
1065 Drivers_DEFS.linux += VBOX_WITH_ALSA
1066 Drivers_SOURCES.linux+= \
1067 Audio/alsaaudio.c \
1068 Audio/alsa_stubs.c
1069 endif
1070
1071 ifdef VBOX_WITH_PULSE
1072 Drivers_DEFS.linux += VBOX_WITH_PULSE
1073 Drivers_SOURCES.linux+= \
1074 Audio/pulseaudio.c \
1075 Audio/pulse_stubs.c
1076 Drivers_DEFS.freebsd += VBOX_WITH_PULSE
1077 Drivers_SOURCES.freebsd+= \
1078 Audio/pulseaudio.c \
1079 Audio/pulse_stubs.c
1080 endif
1081
1082 ifdef VBOX_WITH_VUSB
1083 Drivers_DEFS += VBOX_WITH_VUSB
1084 Drivers_SOURCES += \
1085 USB/DrvVUSBRootHub.cpp \
1086 USB/VUSBDevice.cpp \
1087 USB/VUSBReadAhead.cpp \
1088 USB/VUSBUrb.cpp
1089
1090 endif # VBOX_WITH_VUSB
1091
1092 ifdef VBOX_WITH_USB
1093 Drivers_DEFS += VBOX_WITH_USB
1094
1095 Drivers_SOURCES += \
1096 USB/vrdp/USBProxyDevice-vrdp.cpp
1097
1098 Drivers_DEFS.darwin += VUSB_HAVE_USBPROXY_DEVICE
1099 ifdef VBOX_WITH_NEW_USB_CODE_ON_DARWIN
1100 Drivers_DEFS.darwin += VBOX_WITH_NEW_USB_CODE_ON_DARWIN
1101 endif
1102 Drivers_SOURCES.darwin += \
1103 USB/USBProxyDevice.cpp \
1104 USB/darwin/USBProxyDevice-darwin.cpp
1105
1106 Drivers_DEFS.linux += \
1107 VUSB_HAVE_USBPROXY_DEVICE \
1108 $(if $(VBOX_WITH_LINUX_COMPILER_H),VBOX_WITH_LINUX_COMPILER_H,) \
1109 $(if $(VBOX_USB_WITH_SYSFS),VBOX_USB_WITH_SYSFS,)
1110 Drivers_SOURCES.linux += \
1111 USB/USBProxyDevice.cpp \
1112 USB/linux/USBProxyDevice-linux.cpp
1113
1114 Drivers_DEFS.l4 += VUSB_HAVE_USBPROXY_DEVICE
1115 Drivers_SOURCES.l4 += \
1116 USB/USBProxyDevice.cpp \
1117 USB/linux/USBProxyDevice-linux.cpp
1118
1119 Drivers_DEFS.os2 += VUSB_HAVE_USBPROXY_DEVICE
1120 Drivers_INCS.os2 += $(PATH_ROOT)/src/VBox/HostDrivers/VBoxUSB/os2
1121 Drivers_SOURCES.os2 += \
1122 USB/USBProxyDevice.cpp \
1123 USB/os2/USBProxyDevice-os2.cpp
1124
1125 Drivers_DEFS.win += VUSB_HAVE_USBPROXY_DEVICE
1126 Drivers_SOURCES.win += \
1127 USB/USBProxyDevice.cpp \
1128 USB/win/USBProxyDevice-win.cpp
1129
1130 Drivers_DEFS.solaris += VUSB_HAVE_USBPROXY_DEVICE
1131 Drivers_SOURCES.solaris += \
1132 USB/USBProxyDevice.cpp \
1133 USB/solaris/USBProxyDevice-solaris.cpp
1134
1135 Drivers_DEFS.freebsd += VUSB_HAVE_USBPROXY_DEVICE
1136 Drivers_SOURCES.freebsd += \
1137 USB/USBProxyDevice.cpp \
1138 USB/freebsd/USBProxyDevice-freebsd.cpp
1139
1140 ifdef VBOX_WITH_SCSI
1141 Drivers_SOURCES += \
1142 Storage/UsbMsd.cpp
1143 endif
1144
1145 endif # VBOX_WITH_USB
1146
1147 ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
1148 Drivers_DEFS += VBOX_WITH_PDM_ASYNC_COMPLETION
1149 endif #VBOX_WITH_PDM_ASYNC_COMPLETION
1150
1151 ifdef VBOX_WITH_SCSI
1152 Drivers_DEFS += VBOX_WITH_SCSI
1153 Drivers_SOURCES += \
1154 Storage/DrvSCSI.cpp
1155 Drivers_SOURCES.linux += \
1156 Storage/DrvSCSIHost.cpp
1157 endif # VBOX_WITH_SCSI
1158
1159 #
1160 # Ring-0 Services (library, linked into VMMR0.r0)
1161 #
1162 ServicesR0_TEMPLATE = VBoxR0
1163 ServicesR0_DEFS = IN_INTNET_R0 IN_RT_R0 $(if $(VBOX_WITH_PCI_PASSTHROUGH),IN_PCIRAW_R0,)
1164 ServicesR0_SOURCES = \
1165 Network/SrvIntNetR0.cpp \
1166 $(if $(VBOX_WITH_PCI_PASSTHROUGH),Bus/SrvPciRawR0.cpp,)
1167 Network/SrvIntNetR0.cpp_CXXFLAGS := $(if-expr $(KBUILD_TARGET) == "win",,$(VBOX_GCC_Wno-array_bounds))
1168
1169 #
1170 # Internal Networking - Ring-3 Testcase for the Ring-0 code (a bit hackish).
1171 #
1172 ifdef VBOX_WITH_TESTCASES
1173 PROGRAMS += tstIntNetR0
1174 tstIntNetR0_TEMPLATE = VBOXR3TSTEXE
1175 tstIntNetR0_DEFS = IN_INTNET_R0
1176 tstIntNetR0_SOURCES = \
1177 Network/testcase/tstIntNetR0.cpp
1178 endif
1179
1180 #
1181 # Internal Networking - Ring-3 Testcase for the Ring-0 code (a bit hackish).
1182 #
1183 ifdef VBOX_WITH_TESTCASES
1184 PROGRAMS += tstIntNet-1
1185 tstIntNet-1_TEMPLATE = VBOXR3TSTEXE
1186 tstIntNet-1_SOURCES = \
1187 Network/testcase/tstIntNet-1.cpp \
1188 Network/Pcap.cpp
1189 endif
1190
1191
1192 #
1193 # EEPROM device unit test requires cppunit
1194 #
1195 ifdef VBOX_WITH_CPPUNIT_TESTCASES
1196 ifdef VBOX_WITH_E1000
1197 PROGRAMS += tstDevEEPROM
1198 tstDevEEPROM_TEMPLATE = VBOXCPPUNITEXE
1199 tstDevEEPROM_SOURCES = \
1200 Network/testcase/tstDevEEPROM.cpp
1201 tstDevEEPROM_LIBS = \
1202 $(TARGET_DevicesR3)
1203 PROGRAMS += tstDevPhy
1204 tstDevPhy_TEMPLATE = VBOXCPPUNITEXE
1205 tstDevPhy_SOURCES = \
1206 Network/testcase/tstDevPhy.cpp \
1207 Network/DevE1000Phy.cpp
1208 tstDevPhy_DEFS = PHY_UNIT_TEST
1209 endif
1210 endif
1211
1212endif # !VBOX_ONLY_EXTPACKS
1213
1214ifdef VBOX_WITH_EXTPACK_PUEL
1215 #
1216 # The EHCI (USB 2.0) Extension Pack Modules.
1217 #
1218 if defined(VBOX_WITH_USB)
1219 DLLS += VBoxEhciR3
1220 VBoxEhciR3_TEMPLATE = VBoxR3ExtPackPuel
1221 VBoxEhciR3_SOURCES = USB/DevEHCI.cpp
1222
1223 SYSMODS += VBoxEhciR0
1224 VBoxEhciR0_TEMPLATE = VBoxR0ExtPackPuel
1225 VBoxEhciR0_SOURCES = USB/DevEHCI.cpp
1226
1227 ifdef VBOX_WITH_RAW_MODE
1228 SYSMODS += VBoxEhciRC
1229 VBoxEhciRC_TEMPLATE = VBoxRcExtPackPuel
1230 VBoxEhciRC_SOURCES = USB/DevEHCI.cpp
1231 endif
1232 endif
1233
1234 if defined(VBOX_WITH_PCI_PASSTHROUGH)
1235 DLLS += VBoxPciRawR3
1236 VBoxPciRawR3_TEMPLATE = VBoxR3ExtPackPuel
1237 VBoxPciRawR3_SOURCES = Bus/DevPciRaw.cpp
1238
1239 DLLS += VBoxPciRawDrv
1240 VBoxPciRawDrv_TEMPLATE = VBoxR3ExtPackPuel
1241 VBoxPciRawDrv_SOURCES = Bus/DrvPciRaw.cpp
1242
1243 SYSMODS += VBoxPciRawR0
1244 VBoxPciRawR0_TEMPLATE = VBoxR0ExtPackPuel
1245 VBoxPciRawR0_SOURCES = Bus/DevPciRaw.cpp
1246
1247 Bus/DevPciRaw.cpp_INCS = Bus
1248 endif
1249
1250 #
1251 # The Intel PXE rom.
1252 #
1253 INSTALLS += VBoxExtPackPuelInsRoms
1254 VBoxExtPackPuelInsRoms_TEMPLATE = VBoxInsExtPackPuel
1255 VBoxExtPackPuelInsRoms_SOURCES = PC/PXE/PXE-Intel.rom=>PXE-Intel.rom
1256endif # VBOX_WITH_EXTPACK_PUEL
1257
1258include $(KBUILD_PATH)/subfooter.kmk
1259
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