VirtualBox

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

Last change on this file since 6483 was 6468, checked in by vboxsync, 17 years ago

Use $(LIB_DDU) instead of VBoxDDU$(VBOX_SUFF...).

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 16.6 KB
Line 
1# $Id: Makefile.kmk 6468 2008-01-23 21:29:55Z vboxsync $
2## @file
3# Top-level makefile for the devices, drivers and services.
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 (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
18DEPTH = ../../..
19include $(PATH_KBUILD)/subheader.kmk
20
21# Include sub-makefiles.
22include $(PATH_SUB_CURRENT)/PC/BIOS/Makefile.kmk
23include $(PATH_SUB_CURRENT)/Graphics/BIOS/Makefile.kmk
24include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
25include $(PATH_SUB_CURRENT)/Storage/testcase/Makefile.kmk
26
27# Subdirs with complex makefiles.
28ifdef VBOX_WITH_INTEL_PXE
29SUBDIRS_LIBRARIES = PC/PXE
30SUBDIRS_CLEAN = PC/PXE
31else
32SUBDIRS_LIBRARIES = PC/Etherboot-src
33SUBDIRS_CLEAN = PC/Etherboot-src
34endif
35
36ifndef VBOX_OSE
37SUBDIRS_LIBRARIES += Storage/VBoxHDDFormats
38endif
39
40#
41# Main targets.
42#
43LIBRARIES += DevicesR3 Drivers ServicesR0
44DLLS += VBoxDDU VBoxDD VBoxDD2
45SYSMODS += VBoxDDGC VBoxDD2GC VBoxDDR0 VBoxDD2R0
46
47
48##
49## Enable the pdm lock (experimental).
50##
51#DEFS += VBOX_WITH_PDM_LOCK
52
53
54#
55# VBoxDDU (shared object)
56#
57VBoxDDU_TEMPLATE = VBOXR3
58VBoxDDU_NAME = $(basename $(notdir $(LIB_DDU)))
59VBoxDDU_DEFS = IN_VBOXDDU
60ifdef VBOX_WITH_USB
61 VBoxDDU_DEFS += VBOX_WITH_USB IN_USBLIB
62 VBoxDDU_SDKS.win = WINPSDK W2K3DDK
63 ifdef VBOX_WITH_EHCI
64 VBoxDDU_DEFS += VBOX_WITH_EHCI
65 endif
66else
67 VBoxDDU_SDKS.win = WINPSDK
68endif
69VBoxDDU_SOURCES = \
70 Storage/VBoxHDD-new.cpp \
71 Storage/VDICore.cpp \
72 Storage/VmdkHDDCore.cpp \
73 VBoxDDUDeps.cpp
74ifndef VBOX_OSE
75VBoxDDU_SOURCES += \
76 Storage/VHDHDDCore.cpp
77endif
78ifdef VBOX_WITH_USB
79 VBoxDDU_SOURCES.win = \
80 USB/win32/USBLib-win32.cpp
81 VBoxDDU_INCS.os2 += \
82 $(PATH_ROOT)/src/VBox/HostDrivers/VBoxUSB/os2
83endif
84VBoxDDU_LIBS = \
85 $(LIB_RUNTIME)
86ifdef VBOX_WITH_USB
87 VBoxDDU_LIBS += \
88 $(PATH_LIB)/USBLib$(VBOX_SUFF_LIB)
89endif
90ifeq ($(BUILD_TARGET),l4)
91 VBoxDDU_LIBS += \
92 $(L4_LIBDIR)/libl4sys.p.a
93endif
94VBoxDDU_LDFLAGS.darwin = -install_name @executable_path/VBoxDDU.dylib
95VBoxDDU_LDFLAGS.linux = -Wl,--no-undefined
96VBoxDDU_LDFLAGS.l4 = -Wl,--no-undefined
97
98
99#
100# VBoxDD (shared object)
101#
102VBoxDD_TEMPLATE = VBOXR3
103VBoxDD_SDKS.win = WINPSDK DXSDK W2K3DDK VBOX_NTDLL
104VBoxDD_SOURCES = \
105 Builtins.cpp
106VBoxDD_DEFS = VBOX_ACPI
107ifdef VBOX_WITH_USB
108 VBoxDD_DEFS += VBOX_WITH_USB IN_USB_R3
109 ifdef VBOX_WITH_EHCI
110 VBoxDD_DEFS += VBOX_WITH_EHCI
111 endif
112endif
113ifdef VBOX_WITH_AHCI
114 VBoxDD_DEFS += VBOX_WITH_AHCI
115endif
116ifdef VBOX_WITH_ISCSI
117 VBoxDD_DEFS += VBOX_WITH_ISCSI
118endif
119ifndef VBOX_OSE
120 VBoxDD_DEFS += VBOX_WITH_E1000
121 VBoxDD_DEFS += VBOX_WITH_INIP
122endif
123ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
124 VBoxDD_DEFS += VBOX_WITH_PDM_ASYNC_COMPLETION
125endif
126VBoxDD_LIBS = \
127 $(PATH_LIB)/DevicesR3$(VBOX_SUFF_LIB) \
128 $(PATH_LIB)/Drivers$(VBOX_SUFF_LIB) \
129 $(PATH_LIB)/PcDefBiosLogo$(VBOX_SUFF_LIB) \
130 $(LIB_VMM) \
131 $(LIB_RUNTIME)
132ifeq ($(BUILD_TARGET),win)
133 VBoxDD_LIBS += \
134 $(LIB_DDU) \
135 $(PATH_LIB)/VBoxDD2.lib \
136 $(PATH_SDK_DXSDK_LIB)/dxguid.lib
137else
138 VBoxDD_LIBS += \
139 $(INSTARGET_VBoxDDU) \
140 $(INSTARGET_VBoxDD2)
141endif
142ifeq ($(BUILD_TARGET),l4)
143 VBoxDD_LIBS += \
144 $(L4_LIBDIR)/libl4sys.p.a
145endif
146ifeq ($(BUILD_TARGET),solaris)
147 VBoxDD_LIBS += adm
148 ifdef VBOX_WITH_CROSSBOW
149 VBoxDD_LIBS += dlpi
150 endif
151 ifdef VBOX_WITH_SUID_WRAPPER
152 VBoxDD_LIBS += secdb
153 endif
154endif
155VBoxDD_LIBS.darwin += \
156 $(LIB_REM)
157VBoxDD_LDFLAGS.darwin = -install_name @executable_path/VBoxDD.dylib \
158 -framework CoreAudio \
159 -framework IOKit \
160 -framework Carbon \
161 -framework DiskArbitration
162VBoxDD_LDFLAGS.linux = -Wl,--no-undefined
163VBoxDD_LDFLAGS.l4 = -Wl,--no-undefined
164
165
166# damn, fix this.
167ifeq ($(BUILD_TARGET),win)
168$(PATH_LIB)/VBoxDD2.lib: $(PATH_BIN)/VBoxDD2.dll
169$(PATH_LIB)/VBoxDDU.lib: $(PATH_BIN)/VBoxDDU.dll
170endif
171
172
173#
174# VBoxDD2 (shared object)
175#
176VBoxDD2_TEMPLATE = VBOXR3
177VBoxDD2_DEFS = IN_VBOXDD2
178VBoxDD2_INCS := \
179 $(PATH_SUB_CURRENT)
180VBoxDD2_SOURCES = \
181 Builtins2.cpp \
182 PC/DevAPIC.cpp
183VBoxDD2_LIBS = \
184 $(PATH_LIB)/PcBiosBin$(VBOX_SUFF_LIB) \
185 $(PATH_LIB)/VgaBiosBin$(VBOX_SUFF_LIB) \
186 $(PATH_LIB)/NetBiosBin$(VBOX_SUFF_LIB) \
187 $(LIB_VMM) \
188 $(LIB_RUNTIME)
189ifeq ($(BUILD_TARGET),l4)
190VBoxDD2_LIBS += \
191 $(L4_LIBDIR)/libl4sys.p.a
192endif
193VBoxDD2_LIBS.darwin += $(LIB_REM)
194VBoxDD2_LDFLAGS.darwin = -install_name @executable_path/VBoxDD2.dylib
195VBoxDD2_LDFLAGS.linux = -Wl,--no-undefined
196VBoxDD2_LDFLAGS.l4 = -Wl,--no-undefined
197
198
199#
200# DevicesR3 (library)
201#
202DevicesR3_TEMPLATE = VBOXR3
203DevicesR3_SDKS.win = WINPSDK W2K3DDK
204DevicesR3_INCS := \
205 $(PATH_SUB_CURRENT)
206DevicesR3_SOURCES = \
207 Input/DevPS2.cpp \
208 Bus/DevPCI.cpp \
209 Graphics/DevVGA.cpp \
210 Storage/DevATA.cpp \
211 PC/DevPit-i8254.cpp \
212 PC/DevPIC.cpp \
213 PC/DevACPI.cpp \
214 PC/DevRTC.cpp \
215 PC/DevPcBios.cpp \
216 PC/DevPcArch.c \
217 VMMDev/VBoxDev.cpp \
218 VMMDev/VMMDevHGCM.cpp \
219 Network/DevPCNet.cpp \
220 Audio/DevIchAc97.cpp \
221 PC/DevDMA.cpp \
222 Storage/fdc.c \
223 Serial/DevSerial.cpp \
224 Parallel/DevParallel.cpp
225
226ifndef VBOX_OSE
227DevicesR3_INCS += \
228 Network/lwip/src/include \
229 Network/lwip/src/include/ipv4 \
230 Network/lwip/vbox/include
231DevicesR3_SOURCES += \
232 Network/DevE1000.cpp \
233 Network/DevE1000Phy.cpp \
234 Network/DevEEPROM.cpp \
235 Network/lwip/src/api/api_lib.c \
236 Network/lwip/src/api/api_msg.c \
237 Network/lwip/src/api/err.c \
238 Network/lwip/src/api/sockets.c \
239 Network/lwip/src/api/tcpip.c \
240 Network/lwip/src/core/tcp_in.c \
241 Network/lwip/src/core/dhcp.c \
242 Network/lwip/src/core/inet.c \
243 Network/lwip/src/core/mem.c \
244 Network/lwip/src/core/memp.c \
245 Network/lwip/src/core/netif.c \
246 Network/lwip/src/core/pbuf.c \
247 Network/lwip/src/core/raw.c \
248 Network/lwip/src/core/stats.c \
249 Network/lwip/src/core/sys.c \
250 Network/lwip/src/core/tcp.c \
251 Network/lwip/src/core/ipv4/ip_addr.c \
252 Network/lwip/src/core/ipv4/icmp.c \
253 Network/lwip/src/core/ipv4/ip.c \
254 Network/lwip/src/core/ipv4/ip_frag.c \
255 Network/lwip/src/core/tcp_out.c \
256 Network/lwip/src/core/udp.c \
257 Network/lwip/src/netif/etharp.c \
258 Network/lwip/vbox/sys_arch.c \
259 Network/DevINIP.cpp
260DevicesR3_DEFS += VBOX_WITH_E1000
261DevicesR3_DEFS += VBOX_WITH_INIP
262endif
263
264ifdef VBOX_WITH_AHCI
265DevicesR3_DEFS += VBOX_WITH_AHCI IN_AHCI_R3
266DevicesR3_SOURCES += \
267 Storage/DevAHCI.cpp
268endif
269
270ifdef VBOX_WITH_USB
271DevicesR3_DEFS += VBOX_WITH_USB IN_USB_R3
272
273DevicesR3_SOURCES += \
274 USB/DevOHCI.cpp
275
276 ifdef VBOX_WITH_EHCI
277 DevicesR3_DEFS += VBOX_WITH_EHCI
278 DevicesR3_SOURCES += \
279 USB/DevEHCI.cpp
280 endif
281
282endif
283
284DevicesR3_DEFS += VBOX_HGCM
285DevicesR3_DEFS.linux += _GNU_SOURCE
286DevicesR3_DEFS.l4 += _GNU_SOURCE
287
288# DevACPI.cpp needs vboxaml.hex which we generate from PC/vbox.dsl.
289DevicesR3_CLEAN += $(PATH_TARGET)/vboxaml.hex $(PATH_TARGET)/vboxaml.aml
290PC/DevACPI.cpp_DEPS = $(PATH_TARGET)/vboxaml.hex
291PC/DevACPI.cpp_INCS = $(PATH_TARGET)
292
293$(PATH_TARGET)/vboxaml.hex: PC/vbox.dsl
294 $(call MSG_TOOL,iasl,DevicesR3,$<,$@)
295 $(QUIET)$(VBOX_IASLCMD) -tc -vs -p $@ $<
296
297# For finding PCIInternal.h from VBox/pci.h.
298Bus/DevPCI.cpp_INCS = Bus
299
300# for finding vbetables.h
301Graphics/DevVGA.cpp_INCS = $(PATH_TARGET)
302
303
304
305#
306# VBoxDDGC (sysmod)
307#
308VBoxDDGC_TEMPLATE = VBOXGC
309VBoxDDGC_DEFS =
310VBoxDDGC_SYSSUFF = .gc
311VBoxDDGC_INCS := \
312 $(PATH_SUB_CURRENT)
313VBoxDDGC_SOURCES = \
314 Bus/DevPCI.cpp \
315 Graphics/DevVGA.cpp \
316 Input/DevPS2.cpp \
317 PC/DevACPI.cpp \
318 PC/DevPit-i8254.cpp \
319 PC/DevPIC.cpp \
320 PC/DevRTC.cpp \
321 Storage/DevATA.cpp \
322 Network/DevPCNet.cpp \
323 Serial/DevSerial.cpp \
324 Parallel/DevParallel.cpp
325
326ifdef VBOX_WITH_USB
327VBoxDDGC_DEFS += VBOX_WITH_USB IN_USB_GC
328VBoxDDGC_SOURCES += \
329 USB/DevOHCI.cpp
330
331 ifdef VBOX_WITH_EHCI
332 VBoxDDGC_DEFS += VBOX_WITH_EHCI
333 VBoxDDGC_SOURCES += \
334 USB/DevEHCI.cpp
335 endif
336
337endif
338
339ifdef VBOX_WITH_AHCI
340VBoxDDGC_DEFS += VBOX_WITH_AHCI IN_AHCI_GC
341VBoxDDGC_SOURCES += \
342 Storage/DevAHCI.cpp
343endif
344
345ifeq ($(VBOX_LDR_FMT32),pe)
346VBoxDDGC_LDFLAGS = -Entry:vgaMMIOWrite
347endif
348ifneq ($(filter pe lx,$(VBOX_LDR_FMT32)),)
349VBoxDDGC_LIBS = \
350 $(PATH_LIB)/VMMGCBuiltin$(VBOX_SUFF_LIB) \
351 $(PATH_LIB)/VMMGCImp$(VBOX_SUFF_LIB)
352endif
353
354
355#
356# VBoxDDR0 (sysmod)
357#
358VBoxDDR0_TEMPLATE = VBOXR0
359VBoxDDR0_SYSSUFF = .r0
360VBoxDDR0_DEFS = IN_RT_R0
361VBoxDDR0_INCS := \
362 $(PATH_SUB_CURRENT)
363VBoxDDR0_SOURCES = \
364 Bus/DevPCI.cpp \
365 Graphics/DevVGA.cpp \
366 Input/DevPS2.cpp \
367 PC/DevACPI.cpp \
368 PC/DevPit-i8254.cpp \
369 PC/DevPIC.cpp \
370 PC/DevRTC.cpp \
371 Storage/DevATA.cpp \
372 Network/DevPCNet.cpp \
373 Serial/DevSerial.cpp \
374 Parallel/DevParallel.cpp
375
376ifdef VBOX_WITH_USB
377VBoxDDR0_DEFS += VBOX_WITH_USB IN_USB_R0
378VBoxDDR0_SOURCES += \
379 USB/DevOHCI.cpp
380
381 ifdef VBOX_WITH_EHCI
382 VBoxDDR0_DEFS += VBOX_WITH_EHCI
383 VBoxDDR0_SOURCES += \
384 USB/DevEHCI.cpp
385 endif
386endif
387
388ifdef VBOX_WITH_AHCI
389VBoxDDR0_DEFS += VBOX_WITH_AHCI IN_AHCI_R0
390VBoxDDR0_SOURCES += \
391 Storage/DevAHCI.cpp
392endif
393
394ifeq ($(VBOX_LDR_FMT32),pe)
395VBoxDDR0_LDFLAGS = -Entry:vgaMMIOWrite
396endif
397ifneq ($(filter pe lx,$(VBOX_LDR_FMT32)),)
398VBoxDDR0_LIBS = $(PATH_LIB)/VMMR0Imp$(VBOX_SUFF_LIB)
399endif
400VBoxDDR0_LIBS += $(PATH_LIB)/RuntimeR0$(VBOX_SUFF_LIB)
401ifeq ($(VBOX_LDR_FMT32),elf) # this is template stuff!
402VBoxDDR0_LIBS += $(VBOX_GCC_LIBGCC)
403endif
404
405
406#
407# VBoxDD2GC (LGPL sysmod)
408#
409VBoxDD2GC_TEMPLATE = VBOXGC
410VBoxDD2GC_DEFS =
411VBoxDD2GC_SYSSUFF = .gc
412VBoxDD2GC_INCS := \
413 $(PATH_SUB_CURRENT)
414VBoxDD2GC_SOURCES = \
415 PC/DevAPIC.cpp
416ifeq ($(VBOX_LDR_FMT32),pe)
417VBoxDD2GC_LDFLAGS = -Entry:apicMMIOWrite
418endif
419ifneq ($(filter pe lx,$(VBOX_LDR_FMT32)),)
420VBoxDD2GC_LIBS = \
421 $(PATH_LIB)/VMMGCBuiltin$(VBOX_SUFF_LIB) \
422 $(PATH_LIB)/VMMGCImp$(VBOX_SUFF_LIB)
423endif
424
425
426#
427# VBoxDD2R0 (LGPL sysmod)
428#
429VBoxDD2R0_TEMPLATE = VBOXR0
430VBoxDD2R0_DEFS = IN_RT_R0
431VBoxDD2R0_SYSSUFF = .r0
432VBoxDD2R0_INCS := \
433 $(PATH_SUB_CURRENT)
434VBoxDD2R0_SOURCES = \
435 PC/DevAPIC.cpp
436ifeq ($(VBOX_LDR_FMT),pe)
437VBoxDD2R0_LDFLAGS = -Entry:apicMMIOWrite
438endif
439ifneq ($(filter pe lx,$(VBOX_LDR_FMT)),)
440VBoxDD2R0_LIBS = $(PATH_LIB)/VMMR0Imp$(VBOX_SUFF_LIB)
441endif
442VBoxDD2R0_LIBS += $(PATH_LIB)/RuntimeR0$(VBOX_SUFF_LIB)
443ifeq ($(VBOX_LDR_FMT),elf)
444VBoxDD2R0_LIBS += $(VBOX_GCC_LIBGCC)
445endif
446
447
448#
449# Drivers (library)
450#
451ifeq ($(BUILD_TARGET),l4) # We are using real Linux headers, not the cleaned up user space ones
452Drivers_TEMPLATE = VBOXR3NP
453else
454Drivers_TEMPLATE = VBOXR3
455endif
456Drivers_SDKS.win = WINPSDK W2K3DDK
457Storage/DrvHostDVD.cpp_SDKS.win = W2K3DDK
458Drivers_DEFS = IN_IDE_R3
459Drivers_DEFS.win += _WIN32_WINNT=0x0510
460Drivers_INCS := \
461 $(PATH_SUB_CURRENT) \
462 Network/slirp
463Drivers_SOURCES = \
464 Audio/audio.c \
465 Audio/audiosniffer.c \
466 Audio/mixeng.c \
467 Audio/noaudio.c \
468 Input/DrvKeyboardQueue.cpp \
469 Input/DrvMouseQueue.cpp \
470 Network/DrvIntNet.cpp \
471 Network/DrvNAT.cpp \
472 Network/DrvNetSniffer.cpp \
473 Network/slirp/bootp.c \
474 Network/slirp/cksum.c \
475 Network/slirp/debug.c \
476 Network/slirp/if.c \
477 Network/slirp/ip_icmp.c \
478 Network/slirp/ip_input.c \
479 Network/slirp/ip_output.c \
480 Network/slirp/mbuf.c \
481 Network/slirp/misc.c \
482 Network/slirp/sbuf.c \
483 Network/slirp/slirp.c \
484 Network/slirp/socket.c \
485 Network/slirp/tcp_input.c \
486 Network/slirp/tcp_output.c \
487 Network/slirp/tcp_subr.c \
488 Network/slirp/tcp_timer.c \
489 Network/slirp/tftp.c \
490 Network/slirp/udp.c \
491 PC/DrvACPI.cpp \
492 Serial/DrvChar.cpp \
493 Serial/DrvNamedPipe.cpp \
494 Storage/DrvBlock.cpp \
495 Storage/DrvHostBase.cpp \
496 Storage/DrvHostDVD.cpp \
497 Storage/DrvHostFloppy.cpp \
498 Storage/DrvMediaISO.cpp \
499 Storage/DrvRawImage.cpp \
500 Storage/DrvVD.cpp \
501 Storage/VBoxHDD.cpp
502
503# -- OS specific --
504
505ifeq ($(BUILD_TARGET),darwin)
506Drivers_SOURCES := $(filter-out \
507 Storage/DrvHostRaw% \
508 Storage/DrvHostFloppy% \
509 , $(Drivers_SOURCES)) \
510 Audio/coreaudio.c
511Drivers_SOURCES.darwin =
512endif # darwin
513
514ifeq ($(BUILD_TARGET),freebsd)
515Drivers_SOURCES := $(filter-out \
516 Storage/DrvHost% \
517 , $(Drivers_SOURCES))
518Drivers_SOURCES.freebsd =
519endif # freebsd
520
521
522ifeq ($(BUILD_TARGET),l4)
523Drivers_SOURCES = \
524 Input/DrvMouseQueue.cpp \
525 Input/DrvKeyboardQueue.cpp \
526 Storage/VBoxHDD.cpp \
527 Storage/DrvBlock.cpp \
528 Storage/DrvMediaISO.cpp \
529 Storage/DrvRawImage.cpp \
530 Storage/DrvHostBase.cpp \
531 Storage/DrvHostDVD.cpp \
532 Storage/DrvVD.cpp \
533 PC/DrvACPI.cpp \
534 Network/DrvIntNet.cpp \
535 Network/DrvNetSniffer.cpp \
536 Audio/audio.c \
537 Audio/mixeng.c \
538 Audio/noaudio.c \
539 Audio/audiosniffer.c
540
541Drivers_SOURCES.l4 = \
542 Network/DrvTAP.cpp \
543 Audio/ossaudio.c
544endif # l4
545
546Drivers_SOURCES.linux = \
547 Network/DrvTAP.cpp \
548 Audio/ossaudio.c \
549 Parallel/DrvHostParallel.cpp \
550 Serial/DrvHostSerial.cpp
551
552ifeq ($(BUILD_TARGET),os2)
553Drivers_SOURCES := $(filter-out \
554 Storage/DrvHost% \
555 , $(Drivers_SOURCES))
556Drivers_SOURCES.os2 = \
557 Network/DrvTAPOs2.cpp
558endif
559
560ifeq ($(BUILD_TARGET),solaris)
561Drivers_SOURCES := $(filter-out \
562 Storage/DrvHost% \
563 , $(Drivers_SOURCES))
564Drivers_SOURCES.solaris = \
565 Audio/solaudio.c \
566 Network/DrvTAP.cpp \
567 Storage/DrvHostBase.cpp \
568 Storage/DrvHostDVD.cpp
569 ifdef VBOX_WITH_CROSSBOW
570 Drivers_DEFS += VBOX_WITH_CROSSBOW
571 endif
572 ifdef VBOX_WITH_SUID_WRAPPER
573 Drivers_DEFS += VBOX_WITH_SUID_WRAPPER
574 endif
575endif
576
577Drivers_SOURCES.win = \
578 Network/DrvTAPWin32.cpp \
579 Audio/dsoundaudio.c \
580 Serial/DrvHostSerial.cpp
581
582
583# -- features --
584
585ifdef VBOX_WITH_ISCSI
586 Drivers_SOURCES += \
587 Storage/DrvISCSI.cpp \
588 Storage/DrvISCSITransportTCP.cpp
589 Drivers_DEFS += VBOX_WITH_ISCSI
590 Storage/DrvISCSITransportTCP.cpp_INCS = \
591 Network/lwip/src/include \
592 Network/lwip/src/include/ipv4 \
593 Network/lwip/vbox/include
594endif # VBOX_WITH_ISCSI
595
596ifdef VBOX_WITH_ALSA
597 Drivers_DEFS.linux += VBOX_WITH_ALSA
598 Drivers_SOURCES.linux+= \
599 Audio/alsaaudio.c \
600 Audio/alsa_stubs.c
601# VBoxDD_LIBS.linux += asound
602endif
603
604ifdef VBOX_WITH_PULSE
605 Drivers_DEFS.linux += VBOX_WITH_PULSE
606 Drivers_SOURCES.linux+= \
607 Audio/pulseaudio.c \
608 Audio/pulse_stubs.c
609# VBoxDD_LIBS.linux += pulse
610endif
611
612ifdef VBOX_WITH_USB
613 Drivers_DEFS += VBOX_WITH_USB IN_USB_R3
614 Drivers_SOURCES += \
615 USB/DrvVUSBRootHub.cpp \
616 USB/VUSBDevice.cpp \
617 USB/VUSBUrb.cpp
618 ifdef VBOX_WITH_VRDP
619 Drivers_DEFS += VBOX_VRDP
620 Drivers_SOURCES += \
621 USB/vrdp/USBProxyDevice-vrdp.cpp
622 endif
623
624 Drivers_DEFS.darwin += VUSB_HAVE_USBPROXY_DEVICE
625 #Drivers_DEFS.darwin += VBOX_WITH_USBFILTER
626 Drivers_SOURCES.darwin += \
627 USB/USBProxyDevice.cpp \
628 USB/darwin/USBProxyDevice-darwin.cpp
629
630 Drivers_DEFS.linux += VUSB_HAVE_USBPROXY_DEVICE
631 ifdef VBOX_WITHOUT_LINUX_COMPILER_H
632 Drivers_DEFS.linux += VBOX_WITHOUT_LINUX_COMPILER_H
633 endif
634 Drivers_SOURCES.linux+= \
635 USB/USBProxyDevice.cpp \
636 USB/linux/USBProxyDevice-linux.cpp
637
638 Drivers_DEFS.l4 += VUSB_HAVE_USBPROXY_DEVICE
639 Drivers_SOURCES.l4 += \
640 USB/USBProxyDevice.cpp \
641 USB/linux/USBProxyDevice-linux.cpp
642
643 Drivers_DEFS.os2 += VUSB_HAVE_USBPROXY_DEVICE
644 Drivers_INCS.os2 += $(PATH_ROOT)/src/VBox/HostDrivers/VBoxUSB/os2
645 Drivers_SOURCES.os2 += \
646 USB/USBProxyDevice.cpp \
647 USB/os2/USBProxyDevice-os2.cpp
648
649 Drivers_DEFS.win += VUSB_HAVE_USBPROXY_DEVICE
650 Drivers_SOURCES.win += \
651 USB/USBProxyDevice.cpp \
652 USB/win32/USBProxyDevice-win32.cpp
653endif # VBOX_WITH_USB
654
655ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
656 Drivers_DEFS += VBOX_WITH_PDM_ASYNC_COMPLETION
657 Drivers_SOURCES.linux += \
658 Storage/DrvRawImageAsync.cpp \
659 Storage/DrvTransportAsync.cpp
660
661 Drivers_SOURCES.win += \
662 Storage/DrvRawImageAsync.cpp \
663 Storage/DrvTransportAsync.cpp
664endif #VBOX_WITH_PDM_ASYNC_COMPLETION
665
666#
667# Ring-0 Services (library, linked into VMMR0.r0)
668#
669ServicesR0_TEMPLATE = VBOXR0
670ServicesR0_DEFS = IN_INTNET_R0 IN_RT_R0
671ServicesR0_SOURCES = \
672 Network/SrvIntNetR0.cpp
673
674#
675# Internal Networking - Ring-3 Testcase for the Ring-0 code (a bit hackish).
676#
677ifdef VBOX_WITH_TESTCASES
678 PROGRAMS += tstIntNetR0
679 tstIntNetR0_TEMPLATE = VBOXR3TSTEXE
680 tstIntNetR0_DEFS = IN_INTNET_R0
681 tstIntNetR0_SOURCES = \
682 Network/testcase/tstIntNetR0.cpp
683endif
684
685#
686# EEPROM device unit test requires cppunit
687#
688ifdef VBOX_WITH_CPPUNIT_TESTCASES
689ifndef VBOX_OSE
690 PROGRAMS += tstDevEEPROM
691 tstDevEEPROM_TEMPLATE = VBOXCPPUNITEXE
692 tstDevEEPROM_SOURCES = \
693 Network/testcase/tstDevEEPROM.cpp
694 tstDevEEPROM_LIBS = \
695 $(TARGET_DevicesR3)
696endif
697endif
698
699include $(PATH_KBUILD)/subfooter.kmk
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