VirtualBox

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

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

NAT: Slirp don't use ether address of guest anymore
instead it calculates ethernet address of destination
with lookup operation. Currently it's very simple looks
over send addresses via dhcp or assume destination in outer
network and gets Slirp's ethernet address.

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