VirtualBox

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

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

PATH_KBUILD -> KBUILD_PATH.

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