VirtualBox

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

Last change on this file since 9515 was 9435, checked in by vboxsync, 17 years ago

Extend HGCM interface to support 64 bit pointers.

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