VirtualBox

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

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

The building rules for NAT was introduced (NatAlias name probably will change)

The flag to enable NAT engine compilation and linking is VBOX_USE_NAT.

XXX: some definitions are involving to compilation with "-include Network/nat/bsd.h". Need to fix that.

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

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette