VirtualBox

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

Last change on this file since 13762 was 13720, checked in by vboxsync, 16 years ago

win/NetFlt: NetConfig functionality moved to a separate lib

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 25.3 KB
Line 
1# $Id: Makefile.kmk 13720 2008-10-31 15:02:40Z 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
22SUB_DEPTH = ../../..
23include $(KBUILD_PATH)/subheader.kmk
24
25# Include sub-makefiles.
26include $(PATH_SUB_CURRENT)/PC/BIOS/Makefile.kmk
27ifdef VBOX_WITH_VMI
28 include $(PATH_SUB_CURRENT)/PC/VMI/Makefile.kmk
29endif
30include $(PATH_SUB_CURRENT)/Graphics/BIOS/Makefile.kmk
31include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
32include $(PATH_SUB_CURRENT)/Storage/testcase/Makefile.kmk
33ifndef VBOX_OSE
34 include $(PATH_SUB_CURRENT)/Storage/VBoxHDDFormats/Makefile.kmk
35endif
36ifdef VBOX_WITH_INTEL_PXE
37 include $(PATH_SUB_CURRENT)/PC/PXE/Makefile.kmk
38else
39 # Subdir with complex makefile.
40 SUBDIRS_LIBRARIES += PC/Etherboot-src
41 SUBDIRS_CLEAN += PC/Etherboot-src
42endif
43
44#
45# Main targets.
46#
47LIBRARIES += DevicesR3 Drivers ServicesR0
48ifdef VBOX_USE_NAT
49LIBRARIES += NatAlias
50endif
51DLLS += VBoxDDU VBoxDD VBoxDD2
52SYSMODS += VBoxDDGC VBoxDD2GC VBoxDDR0 VBoxDD2R0
53
54
55#
56# VBoxDDU (shared object)
57#
58VBoxDDU_TEMPLATE = VBOXR3
59VBoxDDU_NAME = $(basename $(notdir $(LIB_DDU)))
60VBoxDDU_DEFS = IN_VBOXDDU
61ifdef VBOX_WITH_USB
62 VBoxDDU_DEFS += VBOX_WITH_USB IN_USBLIB
63 VBoxDDU_SDKS.win = WINPSDK W2K3DDK
64 ifdef VBOX_WITH_EHCI
65 VBoxDDU_DEFS += VBOX_WITH_EHCI
66 endif
67 ifdef VBOX_WITH_NEW_USB_CODE_ON_DARWIN
68 VBoxDDU_DEFS.darwin += VBOX_WITH_NEW_USB_CODE_ON_DARWIN
69 endif
70else
71 VBoxDDU_SDKS.win = WINPSDK
72endif
73VBoxDDU_SOURCES = \
74 Storage/VBoxHDD-new.cpp \
75 Storage/VDICore.cpp \
76 Storage/VDIHDDCore.cpp \
77 Storage/VHDHDDCore.cpp \
78 Storage/VmdkHDDCore.cpp \
79 Storage/RawHDDCore.cpp \
80 VBoxDDUDeps.cpp
81ifdef VBOX_WITH_USB
82 VBoxDDU_INCS.os2 += \
83 $(PATH_ROOT)/src/VBox/HostDrivers/VBoxUSB/os2
84endif
85VBoxDDU_LIBS = \
86 $(LIB_RUNTIME)
87ifdef VBOX_WITH_USB
88 VBoxDDU_LIBS += \
89 $(PATH_LIB)/USBLib$(VBOX_SUFF_LIB)
90endif
91ifeq ($(KBUILD_TARGET),l4)
92 VBoxDDU_LIBS += \
93 $(L4_LIBDIR)/libl4sys.p.a
94endif
95VBoxDDU_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxDDU.dylib
96ifdef VBOX_WITH_USB
97 ifdef VBOX_WITH_NEW_USB_CODE_ON_DARWIN
98 VBoxDDU_LDFLAGS.darwin += -framework IOKit
99 endif
100endif
101
102VBoxDDU_LDFLAGS.linux = -Wl,--no-undefined
103VBoxDDU_LDFLAGS.l4 = -Wl,--no-undefined
104
105#
106# VBoxDDULnxHostR3 (Only needed for l4, currently for executing vditool on L4Linux.)
107#
108ifeq ($(KBUILD_TARGET),l4)
109 LIBRARIES += VBoxDDULnxHostR3
110 VBoxDDULnxHostR3_TEMPLATE = VBOXLNXHOSTR3LIB
111 VBoxDDULnxHostR3_DEFS = IN_VBOXDDU
112 VBoxDDULnxHostR3_SOURCES = $(VBoxDDU_SOURCES)
113endif
114
115#
116# VBoxDD (shared object)
117#
118VBoxDD_TEMPLATE = VBOXR3
119VBoxDD_SDKS.win = WINPSDK DXSDK W2K3DDK VBOX_NTDLL
120VBoxDD_SOURCES = \
121 Builtins.cpp
122VBoxDD_DEFS = VBOX_ACPI
123ifdef VBOX_WITH_USB
124 VBoxDD_DEFS += VBOX_WITH_USB IN_USB_R3
125 ifdef VBOX_WITH_EHCI
126 VBoxDD_DEFS += VBOX_WITH_EHCI
127 endif
128endif
129ifdef VBOX_WITH_AHCI
130 VBoxDD_DEFS += VBOX_WITH_AHCI
131endif
132ifdef VBOX_WITH_ISCSI
133 VBoxDD_DEFS += VBOX_WITH_ISCSI
134endif
135ifdef VBOX_WITH_E1000
136 VBoxDD_DEFS += VBOX_WITH_E1000
137endif
138ifdef VBOX_WITH_BUSLOGIC
139 VBoxDD_DEFS += VBOX_WITH_BUSLOGIC
140endif
141ifndef VBOX_OSE
142 VBoxDD_DEFS += VBOX_WITH_INIP
143endif
144ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
145 VBoxDD_DEFS += VBOX_WITH_PDM_ASYNC_COMPLETION
146endif
147ifdef VBOX_WITH_SCSI
148 VBoxDD_DEFS += VBOX_WITH_SCSI
149endif
150VBoxDD_LIBS = \
151 $(PATH_LIB)/DevicesR3$(VBOX_SUFF_LIB) \
152 $(PATH_LIB)/Drivers$(VBOX_SUFF_LIB) \
153 $(PATH_LIB)/VgaDefBiosLogo$(VBOX_SUFF_LIB) \
154 $(LIB_VMM) \
155 $(LIB_RUNTIME)
156ifeq ($(KBUILD_TARGET),win)
157 VBoxDD_LIBS += \
158 $(LIB_DDU) \
159 $(PATH_LIB)/VBoxDD2.lib \
160 $(PATH_SDK_DXSDK_LIB)/dxguid.lib
161else
162 VBoxDD_LIBS += \
163 $(INSTARGET_VBoxDDU) \
164 $(INSTARGET_VBoxDD2)
165endif
166ifeq ($(KBUILD_TARGET),l4)
167 VBoxDD_LIBS += \
168 $(L4_LIBDIR)/libl4sys.p.a
169endif
170
171ifdef VBOX_USE_NAT
172VBoxDD_LIBS += $(PATH_LIB)/NatAlias$(VBOX_SUFF_LIB)
173endif
174
175ifdef VBOX_WITH_NETFLT
176VBoxDD_LIBS.win += $(PATH_LIB)/WinNetConfig.lib
177endif
178
179ifeq ($(KBUILD_TARGET),solaris)
180 VBoxDD_LIBS += adm
181 ifdef VBOX_WITH_SUID_WRAPPER
182 VBoxDD_LIBS += secdb
183 endif
184 ifdef VBOX_WITH_USB
185 VBoxDD_LIBS += aio
186 endif
187endif
188VBoxDD_LIBS.darwin += \
189 $(LIB_REM)
190VBoxDD_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxDD.dylib \
191 -framework CoreAudio \
192 -framework IOKit \
193 -framework Carbon \
194 -framework DiskArbitration
195VBoxDD_LDFLAGS.linux = -Wl,--no-undefined
196VBoxDD_LDFLAGS.l4 = -Wl,--no-undefined
197
198#
199# VBoxDD2 (shared object)
200#
201VBoxDD2_TEMPLATE = VBOXR3
202VBoxDD2_DEFS = IN_VBOXDD2 \
203 $(if $(VBOX_WITH_VMI),VBOX_WITH_VMI,)
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 $(if $(VBOX_WITH_VMI),$(PATH_LIB)/VmiBiosBin$(VBOX_SUFF_LIB)) \
214 $(LIB_VMM) \
215 $(LIB_RUNTIME)
216ifeq ($(KBUILD_TARGET),l4)
217VBoxDD2_LIBS += \
218 $(L4_LIBDIR)/libl4sys.p.a
219endif
220VBoxDD2_LIBS.darwin += $(LIB_REM)
221VBoxDD2_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxDD2.dylib
222VBoxDD2_LDFLAGS.linux = -Wl,--no-undefined
223VBoxDD2_LDFLAGS.l4 = -Wl,--no-undefined
224
225
226#
227# DevicesR3 (library)
228#
229DevicesR3_TEMPLATE = VBOXR3
230DevicesR3_SDKS.win = WINPSDK W2K3DDK
231DevicesR3_DEFS += VBOX_HGCM_HOST_CODE \
232 $(if $(VBOX_WITH_VMI),VBOX_WITH_VMI,)
233DevicesR3_INCS := \
234 $(PATH_SUB_CURRENT)
235DevicesR3_SOURCES = \
236 Input/DevPS2.cpp \
237 Bus/DevPCI.cpp \
238 Graphics/DevVGA.cpp \
239 Storage/DevATA.cpp \
240 PC/DevPit-i8254.cpp \
241 PC/DevPIC.cpp \
242 PC/DevACPI.cpp \
243 PC/DevRTC.cpp \
244 PC/DevPcBios.cpp \
245 PC/DevPcArch.c \
246 VMMDev/VBoxDev.cpp \
247 VMMDev/VMMDevHGCM.cpp \
248 Network/DevPCNet.cpp \
249 Audio/DevIchAc97.cpp \
250 Audio/DevSB16.cpp \
251 PC/DevDMA.cpp \
252 Storage/fdc.c \
253 Serial/DevSerial.cpp \
254 Parallel/DevParallel.cpp
255
256DevicesR3_SOURCES.debug = \
257 Storage/Debug.cpp
258
259ifdef VBOX_WITH_E1000
260 DevicesR3_DEFS += VBOX_WITH_E1000
261 DevicesR3_SOURCES += \
262 Network/DevE1000.cpp \
263 Network/DevE1000Phy.cpp \
264 Network/DevEEPROM.cpp
265endif
266
267ifndef VBOX_OSE
268DevicesR3_INCS += \
269 Network/lwip/src/include \
270 Network/lwip/src/include/ipv4 \
271 Network/lwip/vbox/include
272DevicesR3_SOURCES += \
273 Network/lwip/src/api/api_lib.c \
274 Network/lwip/src/api/api_msg.c \
275 Network/lwip/src/api/err.c \
276 Network/lwip/src/api/sockets.c \
277 Network/lwip/src/api/tcpip.c \
278 Network/lwip/src/core/tcp_in.c \
279 Network/lwip/src/core/dhcp.c \
280 Network/lwip/src/core/inet.c \
281 Network/lwip/src/core/mem.c \
282 Network/lwip/src/core/memp.c \
283 Network/lwip/src/core/netif.c \
284 Network/lwip/src/core/pbuf.c \
285 Network/lwip/src/core/raw.c \
286 Network/lwip/src/core/stats.c \
287 Network/lwip/src/core/sys.c \
288 Network/lwip/src/core/tcp.c \
289 Network/lwip/src/core/ipv4/ip_addr.c \
290 Network/lwip/src/core/ipv4/icmp.c \
291 Network/lwip/src/core/ipv4/ip.c \
292 Network/lwip/src/core/ipv4/ip_frag.c \
293 Network/lwip/src/core/tcp_out.c \
294 Network/lwip/src/core/udp.c \
295 Network/lwip/src/netif/etharp.c \
296 Network/lwip/vbox/sys_arch.c \
297 Network/DevINIP.cpp
298DevicesR3_DEFS += VBOX_WITH_INIP
299endif
300
301ifdef VBOX_WITH_AHCI
302DevicesR3_DEFS += VBOX_WITH_AHCI IN_AHCI_R3
303DevicesR3_SOURCES += \
304 Storage/DevAHCI.cpp \
305 Storage/ATAController.cpp
306endif
307
308ifdef VBOX_WITH_BUSLOGIC
309DevicesR3_DEFS += VBOX_WITH_BUSLOGIC
310DevicesR3_SOURCES += \
311 Storage/DevBusLogic.cpp \
312 Storage/VBoxSCSI.cpp
313endif
314
315ifdef VBOX_WITH_USB
316DevicesR3_DEFS += VBOX_WITH_USB IN_USB_R3
317
318DevicesR3_SOURCES += \
319 USB/DevOHCI.cpp
320
321 ifdef VBOX_WITH_EHCI
322 DevicesR3_DEFS += VBOX_WITH_EHCI
323 DevicesR3_SOURCES += \
324 USB/DevEHCI.cpp
325 endif
326
327endif
328
329DevicesR3_DEFS += VBOX_WITH_HGCM
330DevicesR3_DEFS.linux += _GNU_SOURCE
331DevicesR3_DEFS.l4 += _GNU_SOURCE
332
333# DevACPI.cpp needs vboxaml.hex which we generate from PC/vbox.dsl. (bird: What's vboxaml.aml?)
334DevicesR3_CLEAN += $(PATH_DevicesR3)/vboxaml.hex $(PATH_DevicesR3)/vboxaml.aml
335PC/DevACPI.cpp_DEPS = $(PATH_DevicesR3)/vboxaml.hex
336PC/DevACPI.cpp_INCS = $(PATH_DevicesR3)
337
338$$(PATH_DevicesR3)/vboxaml.hex: $(PATH_SUB_CURRENT)/PC/vbox.dsl | $$(dir $$@)
339 $(call MSG_TOOL,iasl,DevicesR3,$<,$@)
340 $(QUIET)$(VBOX_IASLCMD) -tc -vs -p $@ $<
341
342# For finding PCIInternal.h from VBox/pci.h.
343Bus/DevPCI.cpp_INCS = Bus
344
345# For finding and generating vbetables.h (see Graphics/BIOS/Makefile.kmk).
346Graphics/DevVGA.cpp_INCS = $(PATH_VgaBiosBin)
347Graphics/DevVGA.cpp_DEPS = $(PATH_VgaBiosBin)/vbetables.h
348
349
350
351#
352# VBoxDDGC (sysmod)
353#
354VBoxDDGC_TEMPLATE = VBOXGC
355VBoxDDGC_DEFS =
356VBoxDDGC_SYSSUFF = .gc
357VBoxDDGC_INCS := \
358 $(PATH_SUB_CURRENT)
359VBoxDDGC_SOURCES = \
360 Bus/DevPCI.cpp \
361 Graphics/DevVGA.cpp \
362 Input/DevPS2.cpp \
363 PC/DevACPI.cpp \
364 PC/DevPit-i8254.cpp \
365 PC/DevPIC.cpp \
366 PC/DevRTC.cpp \
367 Storage/DevATA.cpp \
368 Network/DevPCNet.cpp \
369 Serial/DevSerial.cpp \
370 Parallel/DevParallel.cpp
371
372ifdef VBOX_WITH_E1000
373 VBoxDDGC_DEFS += VBOX_WITH_E1000
374 VBoxDDGC_SOURCES += \
375 Network/DevE1000.cpp \
376 Network/DevE1000Phy.cpp
377endif
378
379ifdef VBOX_WITH_USB
380VBoxDDGC_DEFS += VBOX_WITH_USB IN_USB_GC
381VBoxDDGC_SOURCES += \
382 USB/DevOHCI.cpp
383
384 ifdef VBOX_WITH_EHCI
385 VBoxDDGC_DEFS += VBOX_WITH_EHCI
386 VBoxDDGC_SOURCES += \
387 USB/DevEHCI.cpp
388 endif
389
390endif
391
392ifdef VBOX_WITH_AHCI
393VBoxDDGC_DEFS += VBOX_WITH_AHCI IN_AHCI_GC
394VBoxDDGC_SOURCES += \
395 Storage/DevAHCI.cpp \
396 Storage/ATAController.cpp
397endif
398
399ifdef VBOX_WITH_BUSLOGIC
400VBoxDDGC_DEFS += VBOX_WITH_BUSLOGIC
401VBoxDDGC_SOURCES += \
402 Storage/DevBusLogic.cpp
403endif
404
405ifeq ($(VBOX_LDR_FMT32),pe)
406VBoxDDGC_LDFLAGS = -Entry:vgaMMIOWrite
407endif
408ifneq ($(filter pe lx,$(VBOX_LDR_FMT32)),)
409VBoxDDGC_LIBS = \
410 $(PATH_LIB)/VMMGCBuiltin$(VBOX_SUFF_LIB) \
411 $(PATH_LIB)/VMMGCImp$(VBOX_SUFF_LIB)
412endif
413
414
415#
416# VBoxDDR0 (sysmod)
417#
418VBoxDDR0_TEMPLATE = VBOXR0
419VBoxDDR0_SYSSUFF = .r0
420VBoxDDR0_DEFS = IN_RT_R0
421VBoxDDR0_INCS := \
422 $(PATH_SUB_CURRENT)
423VBoxDDR0_SOURCES = \
424 Bus/DevPCI.cpp \
425 Graphics/DevVGA.cpp \
426 Input/DevPS2.cpp \
427 PC/DevACPI.cpp \
428 PC/DevPit-i8254.cpp \
429 PC/DevPIC.cpp \
430 PC/DevRTC.cpp \
431 Storage/DevATA.cpp \
432 Network/DevPCNet.cpp \
433 Serial/DevSerial.cpp \
434 Parallel/DevParallel.cpp
435
436ifdef VBOX_WITH_E1000
437 VBoxDDR0_DEFS += VBOX_WITH_E1000
438 VBoxDDR0_SOURCES += \
439 Network/DevE1000.cpp \
440 Network/DevE1000Phy.cpp
441endif
442
443ifdef VBOX_WITH_USB
444VBoxDDR0_DEFS += VBOX_WITH_USB IN_USB_R0
445VBoxDDR0_SOURCES += \
446 USB/DevOHCI.cpp
447
448 ifdef VBOX_WITH_EHCI
449 VBoxDDR0_DEFS += VBOX_WITH_EHCI
450 VBoxDDR0_SOURCES += \
451 USB/DevEHCI.cpp
452 endif
453endif
454
455ifdef VBOX_WITH_AHCI
456VBoxDDR0_DEFS += VBOX_WITH_AHCI IN_AHCI_R0
457VBoxDDR0_SOURCES += \
458 Storage/DevAHCI.cpp \
459 Storage/ATAController.cpp
460endif
461
462ifdef VBOX_WITH_BUSLOGIC
463VBoxDDR0_DEFS += VBOX_WITH_BUSLOGIC
464VBoxDDR0_SOURCES += \
465 Storage/DevBusLogic.cpp
466endif
467
468ifeq ($(VBOX_LDR_FMT32),pe)
469VBoxDDR0_LDFLAGS = -Entry:vgaMMIOWrite
470endif
471ifneq ($(filter pe lx,$(VBOX_LDR_FMT32)),)
472VBoxDDR0_LIBS = $(PATH_LIB)/VMMR0Imp$(VBOX_SUFF_LIB)
473endif
474VBoxDDR0_LIBS += $(PATH_LIB)/RuntimeR0$(VBOX_SUFF_LIB)
475ifeq ($(VBOX_LDR_FMT32),elf) # this is template stuff!
476VBoxDDR0_LIBS += $(VBOX_GCC_LIBGCC)
477endif
478
479
480#
481# VBoxDD2GC (LGPL sysmod)
482#
483VBoxDD2GC_TEMPLATE = VBOXGC
484VBoxDD2GC_DEFS =
485VBoxDD2GC_SYSSUFF = .gc
486VBoxDD2GC_INCS := \
487 $(PATH_SUB_CURRENT)
488VBoxDD2GC_SOURCES = \
489 PC/DevAPIC.cpp
490ifeq ($(VBOX_LDR_FMT32),pe)
491VBoxDD2GC_LDFLAGS = -Entry:apicMMIOWrite
492endif
493ifneq ($(filter pe lx,$(VBOX_LDR_FMT32)),)
494VBoxDD2GC_LIBS = \
495 $(PATH_LIB)/VMMGCBuiltin$(VBOX_SUFF_LIB) \
496 $(PATH_LIB)/VMMGCImp$(VBOX_SUFF_LIB)
497endif
498
499
500#
501# VBoxDD2R0 (LGPL sysmod)
502#
503VBoxDD2R0_TEMPLATE = VBOXR0
504VBoxDD2R0_DEFS = IN_RT_R0
505VBoxDD2R0_SYSSUFF = .r0
506VBoxDD2R0_INCS := \
507 $(PATH_SUB_CURRENT)
508VBoxDD2R0_SOURCES = \
509 PC/DevAPIC.cpp
510ifeq ($(VBOX_LDR_FMT),pe)
511VBoxDD2R0_LDFLAGS = -Entry:apicMMIOWrite
512endif
513ifneq ($(filter pe lx,$(VBOX_LDR_FMT)),)
514VBoxDD2R0_LIBS = $(PATH_LIB)/VMMR0Imp$(VBOX_SUFF_LIB)
515endif
516VBoxDD2R0_LIBS += $(PATH_LIB)/RuntimeR0$(VBOX_SUFF_LIB)
517ifeq ($(VBOX_LDR_FMT),elf)
518VBoxDD2R0_LIBS += $(VBOX_GCC_LIBGCC)
519endif
520
521
522#
523# Drivers (library)
524#
525ifeq ($(KBUILD_TARGET),l4) # We are using real Linux headers, not the cleaned up user space ones
526Drivers_TEMPLATE = VBOXR3NP
527else
528Drivers_TEMPLATE = VBOXR3
529endif
530Drivers_SDKS.win = WINPSDK W2K3DDK
531Storage/DrvHostDVD.cpp_SDKS.win = W2K3DDK
532Drivers_DEFS.win += _WIN32_WINNT=0x0510
533Drivers_DEFS = IN_IDE_R3
534ifdef VBOX_WITH_NETFLT
535Drivers_DEFS = VBOX_WITH_NETFLT
536endif
537ifdef VBOX_WITH_SYNC_SLIRP
538Drivers_DEFS = VBOX_WITH_SYNC_SLIRP
539endif
540Drivers_INCS := \
541 $(PATH_SUB_CURRENT) \
542 Network/slirp
543Drivers_SOURCES = \
544 Audio/audio.c \
545 Audio/audiosniffer.c \
546 Audio/mixeng.c \
547 Audio/noaudio.c \
548 Input/DrvKeyboardQueue.cpp \
549 Input/DrvMouseQueue.cpp \
550 Network/DrvIntNet.cpp \
551 PC/DrvACPI.cpp \
552 Serial/DrvChar.cpp \
553 Serial/DrvNamedPipe.cpp \
554 Storage/DrvBlock.cpp \
555 Storage/DrvHostBase.cpp \
556 Storage/DrvHostDVD.cpp \
557 Storage/DrvHostFloppy.cpp \
558 Storage/DrvMediaISO.cpp \
559 Storage/DrvRawImage.cpp \
560 Storage/DrvVD.cpp \
561 Storage/VBoxHDD.cpp \
562 Network/DrvNetSniffer.cpp \
563 Network/Pcap.cpp
564ifndef VBOX_USE_NAT
565Drivers_SOURCES += \
566 Network/DrvNAT.cpp \
567 Network/slirp/bootp.c \
568 Network/slirp/cksum.c \
569 Network/slirp/debug.c \
570 Network/slirp/if.c \
571 Network/slirp/ip_icmp.c \
572 Network/slirp/ip_input.c \
573 Network/slirp/ip_output.c \
574 Network/slirp/mbuf.c \
575 Network/slirp/misc.c \
576 Network/slirp/sbuf.c \
577 Network/slirp/slirp.c \
578 Network/slirp/socket.c \
579 Network/slirp/tcp_input.c \
580 Network/slirp/tcp_output.c \
581 Network/slirp/tcp_subr.c \
582 Network/slirp/tcp_timer.c \
583 Network/slirp/tftp.c \
584 Network/slirp/udp.c
585else
586NatAlias_TEMPLATE = VBOXR3NP
587
588
589Drivers_SOURCES += Network/DrvNAT.cpp
590
591Network/DrvNAT.cpp_DEFS += VBOX_NAT_SOURCES
592Network/nat/src/sys/net/if_clone.c_CFLAGS.linux += -std=c99
593
594Drivers_SOURCES += Network/nat/nat_socket.c
595
596NatAlias_CFLAGS += -include Network/nat/bsd.h
597#NatAlias_CFLAGS += -Werror -Wall -Wno-unused -Wno-pointer-sign
598NatAlias_DEFS += VBOX_NAT_SOURCES
599NatAlias_DEFS += __BSD_VISIBLE=1
600NatAlias_DEFS += INET
601NatAlias_DEFS += IPFIREWALL_NAT
602NatAlias_DEFS += RWLOCK_NOINLINE
603NatAlias_DEFS += MUTEX_NOINLINE
604NatAlias_DEFS += IPFIREWALL_FORWARD
605NatAlias_DEFS += IPFIREWALL
606NatAlias_DEFS += IPFIREWALL_DEFAULT_TO_ACCEPT
607
608NatAlias_DEFS += IN_NAT # used in Network/nat/nat.h (which glues VBox and *BSD sources)
609
610NatAlias_DEFS.linux += _GNU_SOURCE
611
612NatAlias_SOURCES += Network/nat/nat_utils.c
613NatAlias_SOURCES += Network/nat/src/sys/netinet/ip_fw_nat.c
614NatAlias_SOURCES += Network/nat/src/sys/netinet/in_cksum.c
615NatAlias_SOURCES += Network/nat/src/sys/net/if.c
616NatAlias_SOURCES += Network/nat/src/sys/net/if_clone.c
617NatAlias_SOURCES += Network/nat/src/sys/net/bpf.c
618NatAlias_SOURCES += Network/nat/src/sys/net/if_loop.c
619NatAlias_SOURCES += Network/nat/src/sys/net/if_ef.c
620NatAlias_SOURCES += Network/nat/src/sys/net/if_ethersubr.c
621NatAlias_SOURCES += Network/nat/src/sys/net/route.c
622NatAlias_SOURCES += Network/nat/src/sys/net/pfil.c
623NatAlias_SOURCES += Network/nat/src/sys/net/netisr.c
624NatAlias_SOURCES += Network/nat/src/sys/net/radix.c
625NatAlias_SOURCES += Network/nat/src/sys/netinet/ip_options.c
626NatAlias_SOURCES += Network/nat/src/sys/netinet/tcp_timewait.c
627NatAlias_SOURCES += Network/nat/src/sys/netinet/tcp_timer.c
628NatAlias_SOURCES += Network/nat/src/sys/netinet/if_ether.c
629NatAlias_SOURCES += Network/nat/src/sys/netinet/in.c
630NatAlias_SOURCES += Network/nat/src/sys/netinet/in_pcb.c
631NatAlias_SOURCES += Network/nat/src/sys/netinet/in_proto.c
632NatAlias_SOURCES += Network/nat/src/sys/netinet/in_rmx.c
633NatAlias_SOURCES += Network/nat/src/sys/netinet/in_mcast.c
634NatAlias_SOURCES += Network/nat/src/sys/netinet/ip_icmp.c
635NatAlias_SOURCES += Network/nat/src/sys/netinet/ip_fastfwd.c
636NatAlias_SOURCES += Network/nat/src/sys/netinet/ip_output.c
637NatAlias_SOURCES += Network/nat/src/sys/netinet/ip_input.c
638NatAlias_SOURCES += Network/nat/src/sys/netinet/ip_mroute.c
639NatAlias_SOURCES += Network/nat/src/sys/netinet/ip_id.c
640NatAlias_SOURCES += Network/nat/src/sys/netinet/ip_divert.c
641NatAlias_SOURCES += Network/nat/src/sys/netinet/raw_ip.c
642NatAlias_SOURCES += Network/nat/src/sys/netinet/tcp_syncache.c
643NatAlias_SOURCES += Network/nat/src/sys/netinet/tcp_sack.c
644NatAlias_SOURCES += Network/nat/src/sys/netinet/tcp_subr.c
645NatAlias_SOURCES += Network/nat/src/sys/netinet/tcp_input.c
646NatAlias_SOURCES += Network/nat/src/sys/netinet/tcp_output.c
647NatAlias_SOURCES += Network/nat/src/sys/netinet/tcp_reass.c
648NatAlias_SOURCES += Network/nat/src/sys/netinet/tcp_hostcache.c
649NatAlias_SOURCES += Network/nat/src/sys/netinet/tcp_usrreq.c
650NatAlias_SOURCES += Network/nat/src/sys/netinet/udp_usrreq.c
651NatAlias_SOURCES += Network/nat/src/sys/kern/subr_eventhandler.c
652NatAlias_SOURCES += Network/nat/src/sys/kern/kern_mbuf.c
653NatAlias_SOURCES += Network/nat/src/sys/kern/kern_subr.c
654NatAlias_SOURCES += Network/nat/src/sys/kern/kern_resource.c
655NatAlias_SOURCES += Network/nat/src/sys/kern/kern_time.c
656NatAlias_SOURCES += Network/nat/src/sys/kern/kern_clock.c
657#NatAlias_SOURCES += Network/nat/src/sys/kern/kern_timeout.c
658NatAlias_SOURCES += Network/nat/src/sys/kern/subr_sbuf.c
659NatAlias_SOURCES += Network/nat/src/sys/kern/uipc_mbuf.c
660NatAlias_SOURCES += Network/nat/src/sys/kern/uipc_mbuf2.c
661NatAlias_SOURCES += Network/nat/src/sys/kern/uipc_sockbuf.c
662NatAlias_SOURCES += Network/nat/src/sys/kern/uipc_socket.c
663NatAlias_SOURCES += Network/nat/src/sys/kern/uipc_domain.c
664NatAlias_SOURCES += Network/nat/src/sys/vm/uma_core.c
665NatAlias_SOURCES += Network/nat/src/sys/netinet/ip_fw2.c
666NatAlias_SOURCES += Network/nat/src/sys/netinet/ip_fw_pfil.c
667NatAlias_SOURCES += Network/nat/src/sys/netinet/libalias/alias.c
668#NatAlias_SOURCES += Network/nat/src/sys/netinet/libalias/alias_cuseeme.c
669NatAlias_SOURCES += Network/nat/src/sys/netinet/libalias/alias_db.c
670NatAlias_SOURCES += Network/nat/src/sys/netinet/libalias/alias_dummy.c
671#NatAlias_SOURCES += Network/nat/src/sys/libalias/alias_ftp.c
672#NatAlias_SOURCES += Network/nat/src/sys/libalias/alias_irc.c
673NatAlias_SOURCES += Network/nat/src/sys/netinet/libalias/alias_mod.c
674#NatAlias_SOURCES += Network/nat/src/sys/libalias/alias_nbt.c
675#NatAlias_SOURCES += Network/nat/src/sys/libalias/alias_pptp.c
676NatAlias_SOURCES += Network/nat/src/sys/netinet/libalias/alias_proxy.c
677#NatAlias_SOURCES += Network/nat/src/sys/libalias/alias_skinny.c
678#NatAlias_SOURCES += Network/nat/src/sys/libalias/alias_smedia.c
679NatAlias_SOURCES += Network/nat/src/sys/netinet/libalias/alias_util.c
680
681NatAlias_SOURCES.amd64 += Network/nat/src/sys/amd64/amd64/in_cksum.c
682NatAlias_SOURCES.x86 += Network/nat/src/sys/i386/i386/in_cksum.c
683
684NatAlias_INCS += Network/nat
685NatAlias_INCS += Network/nat/src/sys
686NatAlias_INCS += Network/nat/src/sys/contrib/altq
687NatAlias_INCS.amd64 += Network/nat/src/sys/amd64/include
688NatAlias_INCS.x86 += Network/nat/src/sys/i386/include
689endif
690
691# -- OS specific --
692
693ifeq ($(KBUILD_TARGET),darwin)
694Drivers_SOURCES := $(filter-out \
695 Storage/DrvHostRaw% \
696 Storage/DrvHostFloppy% \
697 , $(Drivers_SOURCES)) \
698 Audio/coreaudio.c
699Drivers_SOURCES.darwin = \
700 Serial/DrvHostSerial.cpp
701endif # darwin
702
703ifeq ($(KBUILD_TARGET),freebsd)
704Drivers_SOURCES := $(filter-out \
705 Storage/DrvHost% \
706 , $(Drivers_SOURCES))
707Drivers_SOURCES.freebsd =
708endif # freebsd
709
710
711ifeq ($(KBUILD_TARGET),l4)
712Drivers_SOURCES = \
713 Input/DrvMouseQueue.cpp \
714 Input/DrvKeyboardQueue.cpp \
715 Storage/VBoxHDD.cpp \
716 Storage/DrvBlock.cpp \
717 Storage/DrvMediaISO.cpp \
718 Storage/DrvRawImage.cpp \
719 Storage/DrvHostBase.cpp \
720 Storage/DrvHostDVD.cpp \
721 Storage/DrvVD.cpp \
722 PC/DrvACPI.cpp \
723 Network/DrvIntNet.cpp \
724 Network/DrvNetSniffer.cpp \
725 Network/Pcap.cpp \
726 Audio/audio.c \
727 Audio/mixeng.c \
728 Audio/noaudio.c \
729 Audio/audiosniffer.c
730
731Drivers_SOURCES.l4 = \
732 Network/DrvTAP.cpp \
733 Audio/ossaudio.c
734endif # l4
735
736Drivers_SOURCES.linux = \
737 Network/DrvTAP.cpp \
738 Audio/ossaudio.c \
739 Parallel/DrvHostParallel.cpp \
740 Serial/DrvHostSerial.cpp
741
742ifeq ($(KBUILD_TARGET),os2)
743Drivers_SOURCES := $(filter-out \
744 Storage/DrvHost% \
745 , $(Drivers_SOURCES))
746Drivers_SOURCES.os2 = \
747 Network/DrvTAPOs2.cpp
748endif
749
750ifeq ($(KBUILD_TARGET),solaris)
751Drivers_SOURCES := $(filter-out \
752 Storage/DrvHost% \
753 , $(Drivers_SOURCES))
754Drivers_SOURCES.solaris = \
755 Audio/solaudio.c \
756 $(if $(VBOX_SOLARIS_10),,Network/DrvTAP.cpp) \
757 Storage/DrvHostBase.cpp \
758 Storage/DrvHostDVD.cpp
759 ifdef VBOX_WITH_CROSSBOW
760 Drivers_SOURCES += Network/solaris/vbox-libdlpi.cpp
761 Drivers_DEFS += VBOX_WITH_CROSSBOW
762 endif
763 ifdef VBOX_WITH_SUID_WRAPPER
764 Drivers_DEFS += VBOX_WITH_SUID_WRAPPER
765 endif
766endif
767
768Drivers_SOURCES.win = \
769 Network/DrvTAPWin.cpp \
770 Audio/dsoundaudio.c \
771 Serial/DrvHostSerial.cpp
772
773if defined(VBOX_WITH_NETFLT)
774 if defined(VBOX_NETFLT_ONDEMAND_BIND)
775 Drivers_DEFS.win += VBOX_NETFLT_ONDEMAND_BIND
776 endif
777 Drivers_SOURCES.win += Network/win/DrvIntNet-win.cpp
778endif
779
780# -- features --
781
782ifdef VBOX_WITH_ISCSI
783 Drivers_SOURCES += \
784 Storage/DrvISCSI.cpp \
785 Storage/DrvISCSITransportTCP.cpp
786 Drivers_DEFS += VBOX_WITH_ISCSI
787 Storage/DrvISCSITransportTCP.cpp_INCS = \
788 Network/lwip/src/include \
789 Network/lwip/src/include/ipv4 \
790 Network/lwip/vbox/include
791 VBoxDDU_SOURCES += \
792 Storage/ISCSIHDDCore.cpp
793 VBoxDDU_DEFS += VBOX_WITH_ISCSI
794endif # VBOX_WITH_ISCSI
795
796ifdef VBOX_WITH_ALSA
797 Drivers_DEFS.linux += VBOX_WITH_ALSA
798 Drivers_SOURCES.linux+= \
799 Audio/alsaaudio.c \
800 Audio/alsa_stubs.c
801# VBoxDD_LIBS.linux += asound
802endif
803
804ifdef VBOX_WITH_PULSE
805 Drivers_DEFS.linux += VBOX_WITH_PULSE
806 Drivers_SOURCES.linux+= \
807 Audio/pulseaudio.c \
808 Audio/pulse_stubs.c
809# VBoxDD_LIBS.linux += pulse
810endif
811
812ifdef VBOX_WITH_USB
813 Drivers_DEFS += VBOX_WITH_USB IN_USB_R3
814 Drivers_SOURCES += \
815 USB/DrvVUSBRootHub.cpp \
816 USB/VUSBDevice.cpp \
817 USB/VUSBUrb.cpp
818 ifdef VBOX_WITH_VRDP
819 Drivers_DEFS += VBOX_WITH_VRDP
820 Drivers_SOURCES += \
821 USB/vrdp/USBProxyDevice-vrdp.cpp
822 endif
823
824 Drivers_DEFS.darwin += VUSB_HAVE_USBPROXY_DEVICE
825 ifdef VBOX_WITH_NEW_USB_CODE_ON_DARWIN
826 Drivers_DEFS.darwin += VBOX_WITH_NEW_USB_CODE_ON_DARWIN
827 endif
828 Drivers_SOURCES.darwin += \
829 USB/USBProxyDevice.cpp \
830 USB/darwin/USBProxyDevice-darwin.cpp
831
832 Drivers_DEFS.linux += VUSB_HAVE_USBPROXY_DEVICE
833 ifdef VBOX_WITHOUT_LINUX_COMPILER_H
834 Drivers_DEFS.linux += VBOX_WITHOUT_LINUX_COMPILER_H
835 endif
836 Drivers_SOURCES.linux+= \
837 USB/USBProxyDevice.cpp \
838 USB/linux/USBProxyDevice-linux.cpp
839
840 Drivers_DEFS.l4 += VUSB_HAVE_USBPROXY_DEVICE
841 Drivers_SOURCES.l4 += \
842 USB/USBProxyDevice.cpp \
843 USB/linux/USBProxyDevice-linux.cpp
844
845 Drivers_DEFS.os2 += VUSB_HAVE_USBPROXY_DEVICE
846 Drivers_INCS.os2 += $(PATH_ROOT)/src/VBox/HostDrivers/VBoxUSB/os2
847 Drivers_SOURCES.os2 += \
848 USB/USBProxyDevice.cpp \
849 USB/os2/USBProxyDevice-os2.cpp
850
851 Drivers_DEFS.win += VUSB_HAVE_USBPROXY_DEVICE
852 Drivers_SOURCES.win += \
853 USB/USBProxyDevice.cpp \
854 USB/win/USBProxyDevice-win.cpp
855
856 Drivers_DEFS.solaris += VUSB_HAVE_USBPROXY_DEVICE
857 Drivers_SOURCES.solaris += \
858 USB/USBProxyDevice.cpp \
859 USB/solaris/USBProxyDevice-solaris.cpp
860endif # VBOX_WITH_USB
861
862ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
863 Drivers_DEFS += VBOX_WITH_PDM_ASYNC_COMPLETION
864 Drivers_SOURCES += \
865 Storage/DrvRawImageAsync.cpp \
866 Storage/DrvTransportAsync.cpp
867endif #VBOX_WITH_PDM_ASYNC_COMPLETION
868
869ifdef VBOX_WITH_SCSI
870 Drivers_DEFS += VBOX_WITH_SCSI
871 Drivers_SOURCES += \
872 Storage/DrvSCSI.cpp
873 Drivers_SOURCES.linux += \
874 Storage/DrvSCSIHost.cpp
875endif # VBOX_WITH_SCSI
876
877#
878# Ring-0 Services (library, linked into VMMR0.r0)
879#
880ServicesR0_TEMPLATE = VBOXR0
881ServicesR0_DEFS = IN_INTNET_R0 IN_RT_R0
882ServicesR0_SOURCES = \
883 Network/SrvIntNetR0.cpp
884
885if defined(VBOX_WITH_NETFLT)
886 ServicesR0_SOURCES.win.amd64 += Network/win/SrvIntNetR0A-win.asm
887 ServicesR0_DEFS.win.amd64 += RT_WITH_W64_UNWIND_HACK
888endif
889
890
891#
892# Internal Networking - Ring-3 Testcase for the Ring-0 code (a bit hackish).
893#
894ifdef VBOX_WITH_TESTCASES
895 PROGRAMS += tstIntNetR0
896 tstIntNetR0_TEMPLATE = VBOXR3TSTEXE
897 tstIntNetR0_DEFS = IN_INTNET_R0
898 tstIntNetR0_SOURCES = \
899 Network/testcase/tstIntNetR0.cpp
900endif
901
902#
903# Internal Networking - Ring-3 Testcase for the Ring-0 code (a bit hackish).
904#
905ifdef VBOX_WITH_TESTCASES
906 PROGRAMS += tstIntNet-1
907 tstIntNet-1_TEMPLATE = VBOXR3TSTEXE
908 tstIntNet-1_SOURCES = \
909 Network/testcase/tstIntNet-1.cpp \
910 Network/Pcap.cpp
911endif
912
913
914#
915# EEPROM device unit test requires cppunit
916#
917ifdef VBOX_WITH_CPPUNIT_TESTCASES
918ifdef VBOX_WITH_E1000
919 PROGRAMS += tstDevEEPROM
920 tstDevEEPROM_TEMPLATE = VBOXCPPUNITEXE
921 tstDevEEPROM_SOURCES = \
922 Network/testcase/tstDevEEPROM.cpp
923 tstDevEEPROM_LIBS = \
924 $(TARGET_DevicesR3)
925 PROGRAMS += tstDevPhy
926 tstDevPhy_TEMPLATE = VBOXCPPUNITEXE
927 tstDevPhy_SOURCES = \
928 Network/testcase/tstDevPhy.cpp \
929 Network/DevE1000Phy.cpp
930 tstDevPhy_DEFS = PHY_UNIT_TEST
931endif
932endif
933
934include $(KBUILD_PATH)/subfooter.kmk
935
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use