VirtualBox

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

Last change on this file since 33567 was 33567, checked in by vboxsync, 14 years ago

VD: Move the generic virtual disk framework + backends to src/VBox/Storage and rename the files to get rid of the HDD part because it supports floppy and DVD images too

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