VirtualBox

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

Last change on this file since 50690 was 50686, checked in by vboxsync, 11 years ago

src/VBox/Devices/Audio, src/VBox/Main/src-client, include/VBox/vmm:

src/VBox/Devices/Audio: part of restructuring of audio code. Devices files correspondin to Hda, AC97 and SB16 audio. The structure of files have been modifed as per PDM specs. The modified code is under #ifdef VBOX_WITH_PDM_AUDIO_DRIVER

src/VBox/Main/src-client: Driver for the VRDE that interacts with DrvAudio. Enhancement of the CFGM tree for audio.

Config.kmk : addition of one configuration parameter that will control whether new audio code is disabled or enabled. "VBOX_WITH_PDM_AUDIO_DRIVER"

pdmaudioifs.h: common header file between Device , Intermediate audio driver and Backends specific to audio.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 35.5 KB
Line 
1# $Id: Makefile.kmk 50686 2014-03-04 19:21:18Z vboxsync $
2## @file
3# Top-level sub-makefile for the devices, drivers and services.
4#
5
6#
7# Copyright (C) 2006-2013 Oracle Corporation
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
18SUB_DEPTH = ../../..
19include $(KBUILD_PATH)/subheader.kmk
20
21# Enable the new SMC code.
22VBOX_WITH_SMC_NEW = 1
23
24# Make sure our Config.kmk is included.
25ifndef VBOX_DEVICES_CONFIG_KMK_INCLUDED
26 include $(PATH_SUB_CURRENT)/Config.kmk
27endif
28
29# Include sub-makefiles.
30include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
31include $(PATH_SUB_CURRENT)/Input/testcase/Makefile.kmk
32if defined(VBOX_WITH_INTEL_PXE) || defined(VBOX_ONLY_EXTPACKS)
33 include $(PATH_SUB_CURRENT)/PC/PXE/Makefile.kmk
34else if defined(VBOX_WITH_PXE_ROM)
35 if !defined(VBOX_WITHOUT_IPXE)
36 include $(PATH_SUB_CURRENT)/PC/ipxe/Makefile.kmk
37 endif
38endif
39if !defined(VBOX_ONLY_EXTPACKS) # Goes on almost to the end of the file.
40 include $(PATH_SUB_CURRENT)/BiosCommonCode/Makefile.kmk
41 include $(PATH_SUB_CURRENT)/PC/BIOS/Makefile.kmk
42 include $(PATH_SUB_CURRENT)/Graphics/BIOS/Makefile.kmk
43
44 #
45 # Main targets.
46 #
47 LIBRARIES += ServicesR0
48 DLLS += VBoxDDU VBoxDD VBoxDD2
49 SYSMODS += VBoxDDR0 VBoxDD2R0
50 ifdef VBOX_WITH_RAW_MODE
51 SYSMODS += VBoxDDGC VBoxDD2GC
52 endif
53
54
55 #
56 # VBoxDDU (shared object)
57 #
58 VBoxDDU_TEMPLATE = VBoxR3DllWarnNoPic
59 VBoxDDU_NAME = $(basename $(notdir $(LIB_DDU)))
60 VBoxDDU_INST.darwin = $(INST_DLL) $(INST_TESTCASE)
61 VBoxDDU_DEFS = IN_VBOXDDU
62 ifdef VBOX_WITH_VUSB
63 VBoxDDU_DEFS += VBOX_WITH_VUSB
64 endif
65 ifdef VBOX_WITH_USB
66 VBoxDDU_DEFS += VBOX_WITH_USB IN_USBLIB
67 VBoxDDU_SDKS.win = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK)
68 if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
69 VBoxDDU_DEFS += VBOX_WITH_EHCI_IMPL
70 endif
71 ifdef VBOX_WITH_NEW_USB_CODE_ON_DARWIN
72 VBoxDDU_DEFS.darwin += VBOX_WITH_NEW_USB_CODE_ON_DARWIN
73 endif
74 else
75 VBoxDDU_SDKS.win = ReorderCompilerIncs $(VBOX_WINPSDK)
76 endif
77 VBoxDDU_SOURCES = \
78 Storage/VSCSI/VSCSIDevice.cpp \
79 Storage/VSCSI/VSCSILun.cpp \
80 Storage/VSCSI/VSCSILunSbc.cpp \
81 Storage/VSCSI/VSCSILunMmc.cpp \
82 Storage/VSCSI/VSCSISense.cpp \
83 Storage/VSCSI/VSCSIIoReq.cpp \
84 Storage/VSCSI/VSCSIVpdPagePool.cpp \
85 build/VBoxDDUDeps.cpp
86 ifdef VBOX_WITH_USB
87 VBoxDDU_INCS.os2 += \
88 $(PATH_ROOT)/src/VBox/HostDrivers/VBoxUSB/os2
89 endif
90 VBoxDDU_LIBS = \
91 $(LIB_RUNTIME) \
92 $(PATH_STAGE_LIB)/StorageLib$(VBOX_SUFF_LIB)
93 ifdef VBOX_WITH_USB
94 VBoxDDU_LIBS += \
95 $(PATH_STAGE_LIB)/USBLib$(VBOX_SUFF_LIB)
96 VBoxDDU_LIBS.win += \
97 $(PATH_STAGE_LIB)/VBoxDrvCfg$(VBOX_SUFF_LIB) \
98 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/Newdev.lib
99 endif
100 VBoxDDU_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxDDU.dylib
101 ifdef VBOX_WITH_USB
102 ifdef VBOX_WITH_NEW_USB_CODE_ON_DARWIN
103 VBoxDDU_LDFLAGS.darwin += -framework IOKit
104 endif
105 endif
106
107 VBoxDDU_LDFLAGS.linux = -Wl,--no-undefined
108
109 #
110 # VBoxDD (shared object)
111 #
112 VBoxDD_TEMPLATE = VBoxR3DllWarnNoPic
113 VBoxDD_SDKS.win = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK) VBOX_NTDLL
114 Storage/DrvHostDVD.cpp_SDKS.win = ReorderCompilerIncs $(VBOX_WINDDK)
115 VBoxDD_INCS = \
116 build \
117 Network/slirp
118 VBoxDD_DEFS = \
119 VBOX_ACPI \
120 VBOX_HGCM_HOST_CODE \
121 $(if $(VBOX_WITH_HGCM),VBOX_WITH_HGCM,) \
122 $(if $(VBOX_BIOS_DMI_FALLBACK),VBOX_BIOS_DMI_FALLBACK,) \
123 VBOX_WITH_DMI_CHASSIS \
124 VBOX_WITH_DMI_OEMSTRINGS \
125 $(if $(VBOX_WITH_SMC_NEW),VBOX_WITH_SMC_NEW,)
126 VBoxDD_DEFS.win = _WIN32_WINNT=0x0510
127 ifeq ($(KBUILD_TARGET_ARCH),x86)
128 VBoxDD_DEFS.darwin = VBOX_WITH_2X_4GB_ADDR_SPACE
129 endif
130 VBoxDD_SOURCES = \
131 build/VBoxDD.cpp \
132 \
133 Input/DevPS2.cpp \
134 Input/PS2K.cpp \
135 Input/PS2M.cpp \
136 Input/UsbKbd.cpp \
137 Input/UsbMouse.cpp \
138 Bus/DevPCI.cpp \
139 Bus/DevPciIch9.cpp \
140 Bus/MsiCommon.cpp \
141 Bus/MsixCommon.cpp \
142 $(if $(VBOX_WITH_SMC_NEW),EFI/DevSmc.cpp,) \
143 Graphics/DevVGA.cpp \
144 Storage/DevATA.cpp \
145 PC/DevPit-i8254.cpp \
146 PC/DevPIC.cpp \
147 PC/DevACPI.cpp \
148 PC/ACPI/VBoxAcpi.cpp \
149 PC/DevRTC.cpp \
150 PC/DevPcBios.cpp \
151 PC/DevFwCommon.cpp \
152 PC/DevPcArch.cpp \
153 VMMDev/VMMDev.cpp \
154 $(if $(VBOX_WITH_HGCM),VMMDev/VMMDevHGCM.cpp,) \
155 VMMDev/VMMDevTesting.cpp \
156 Network/DevPCNet.cpp \
157 Audio/DevIchAc97.cpp \
158 Audio/DevSB16.cpp \
159 Audio/DevIchHda.cpp \
160 Audio/DevIchHdaCodec.cpp \
161 PC/DevDMA.cpp \
162 PC/DevHPET.cpp \
163 Storage/DevFdc.cpp \
164 Serial/DevSerial.cpp \
165 Parallel/DevParallel.cpp \
166 \
167 Audio/mixeng.c \
168 Input/DrvKeyboardQueue.cpp \
169 Input/DrvMouseQueue.cpp \
170 Network/DrvIntNet.cpp \
171 Network/DrvDedicatedNic.cpp \
172 PC/DrvACPI.cpp \
173 PC/DrvAcpiCpu.cpp \
174 Serial/DrvChar.cpp \
175 Serial/DrvNamedPipe.cpp \
176 Serial/DrvRawFile.cpp \
177 Storage/DrvBlock.cpp \
178 Storage/DrvHostBase.cpp \
179 Storage/DrvHostDVD.cpp \
180 Storage/DrvHostFloppy.cpp \
181 Storage/DrvMediaISO.cpp \
182 Storage/DrvRawImage.cpp \
183 Storage/Debug.cpp \
184 Storage/DrvVD.cpp \
185 Storage/ATAPIPassthrough.cpp \
186 Network/DrvNetSniffer.cpp \
187 Network/Pcap.cpp
188 VBoxDD_LIBS = # more later.
189 VBoxDD_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxDD.dylib \
190 -framework CoreAudio \
191 -framework AudioUnit \
192 -framework AudioToolbox \
193 -framework IOKit \
194 -framework Carbon \
195 -framework DiskArbitration \
196 -framework SystemConfiguration
197 VBoxDD_LDFLAGS.linux = -Wl,--no-undefined
198
199 # --- Tracing bits. ---
200
201 ifdef VBOX_WITH_DTRACE_R3
202 VBoxDD_DEFS += VBOX_WITH_DTRACE
203 VBoxDD_USES += dtrace
204 VBoxDD_SOURCES += build/VBoxDD.d
205 endif
206
207 # --- Graphics bits. ---
208
209 ifdef VBOX_WITH_CRHGSMI
210 VBoxDD_DEFS += VBOX_WITH_CRHGSMI
211 endif
212 ifdef VBOXWDDM_TEST_UHGSMI
213 VBoxDD_DEFS += VBOXWDDM_TEST_UHGSMI
214 endif
215 ifdef VBOXWDDM_WITH_VBVA
216 VBoxDD_DEFS += VBOXWDDM_WITH_VBVA
217 endif
218 ifdef VBOX_WITH_VIDEOHWACCEL
219 VBoxDD_DEFS += VBOX_WITH_VIDEOHWACCEL
220 endif
221
222 ifdef VBOX_WITH_HGSMI
223 VBoxDD_DEFS += VBOX_WITH_HGSMI
224 VBoxDD_SOURCES += \
225 Graphics/DevVGA_VBVA.cpp \
226 Graphics/HGSMI/HGSMIHost.cpp
227 VBoxDD_LIBS += \
228 $(PATH_STAGE_LIB)/HGSMIHostR3Lib$(VBOX_SUFF_LIB)
229 endif
230
231 ifdef VBOX_WITH_WDDM
232 VBoxDD_DEFS += VBOX_WITH_WDDM
233 VBoxDD_SOURCES += \
234 Graphics/HGSMI/SHGSMIHost.cpp
235 endif
236
237 ifdef VBOX_WITH_VMSVGA
238 VBoxDD_DEFS += VBOX_WITH_VMSVGA
239 VBoxDD_SOURCES += Graphics/DevVGA-SVGA.cpp
240 endif
241 ifdef VBOX_WITH_VMSVGA3D
242 VBoxDD_DEFS += VBOX_WITH_VMSVGA3D
243 VBoxDD_SOURCES += Graphics/DevVGA-SVGA3d-shared.cpp
244 ifeq ($(KBUILD_TARGET),win)
245 VBoxDD_SOURCES += Graphics/DevVGA-SVGA3d-win.cpp
246 else
247 VBoxDD_SOURCES += Graphics/DevVGA-SVGA3d-ogl.cpp
248 VBoxDD_LIBS += $(PATH_STAGE_BIN)/vmsvgashader$(VBOX_SUFF_DLL)
249 endif
250 VBoxDD_LIBS.win += d3d9.lib
251 VBoxDD_LIBS.linux += GL X11
252 endif
253
254 ifdef VBOX_WITH_VDMA
255 VBoxDD_DEFS += VBOX_WITH_VDMA
256 VBoxDD_SOURCES += \
257 Graphics/DevVGA_VDMA.cpp
258 endif
259
260 ifdef VBOX_VDMA_WITH_WATCHDOG
261 VBoxDD_DEFS += VBOX_VDMA_WITH_WATCHDOG
262 endif
263
264 ifdef VBOX_WITH_PXE_ROM
265 VBoxDD_DEFS += VBOX_WITH_PXE_ROM
266 endif
267
268 # --- USB bits. ---
269
270 ifdef VBOX_WITH_USB
271 VBoxDD_DEFS += VBOX_WITH_USB
272 VBoxDD_SOURCES += \
273 USB/vrdp/USBProxyDevice-vrdp.cpp
274
275 VBoxDD_DEFS.darwin += VUSB_HAVE_USBPROXY_DEVICE
276 ifdef VBOX_WITH_NEW_USB_CODE_ON_DARWIN
277 VBoxDD_DEFS.darwin += VBOX_WITH_NEW_USB_CODE_ON_DARWIN
278 endif
279 VBoxDD_SOURCES.darwin += \
280 USB/USBProxyDevice.cpp \
281 USB/darwin/USBProxyDevice-darwin.cpp
282
283 VBoxDD_DEFS.linux += \
284 VUSB_HAVE_USBPROXY_DEVICE \
285 $(if $(VBOX_WITH_LINUX_COMPILER_H),VBOX_WITH_LINUX_COMPILER_H,) \
286 $(if $(VBOX_USB_WITH_SYSFS),VBOX_USB_WITH_SYSFS,)
287 VBoxDD_SOURCES.linux += \
288 USB/USBProxyDevice.cpp \
289 USB/linux/USBProxyDevice-linux.cpp
290
291 VBoxDD_DEFS.os2 += VUSB_HAVE_USBPROXY_DEVICE
292 VBoxDD_INCS.os2 += $(PATH_ROOT)/src/VBox/HostDrivers/VBoxUSB/os2
293 VBoxDD_SOURCES.os2 += \
294 USB/USBProxyDevice.cpp \
295 USB/os2/USBProxyDevice-os2.cpp
296
297 VBoxDD_DEFS.win += VUSB_HAVE_USBPROXY_DEVICE
298 VBoxDD_SOURCES.win += \
299 USB/USBProxyDevice.cpp \
300 USB/win/USBProxyDevice-win.cpp
301
302 VBoxDD_DEFS.solaris += VUSB_HAVE_USBPROXY_DEVICE
303 VBoxDD_SOURCES.solaris+= \
304 USB/USBProxyDevice.cpp \
305 USB/solaris/USBProxyDevice-solaris.cpp
306
307 VBoxDD_DEFS.freebsd += VUSB_HAVE_USBPROXY_DEVICE
308 VBoxDD_SOURCES.freebsd+= \
309 USB/USBProxyDevice.cpp \
310 USB/freebsd/USBProxyDevice-freebsd.cpp
311
312 ifdef VBOX_WITH_SCSI
313 VBoxDD_SOURCES += \
314 Storage/UsbMsd.cpp
315 endif
316
317 if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
318 VBoxDD_DEFS += VBOX_WITH_EHCI_IMPL
319 VBoxDD_SOURCES += \
320 USB/DevEHCI.cpp
321 endif
322
323 if defined(VBOX_WITH_USB_VIDEO_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
324 if1of ($(KBUILD_TARGET), linux)
325 VBoxDD_DEFS += VBOX_WITH_USB_VIDEO_IMPL
326 VBoxDD_SOURCES += \
327 $(PATH_ROOT)/src/VBox/ExtPacks/Puel/UsbWebcam/UsbWebcam.cpp \
328 $(PATH_ROOT)/src/VBox/ExtPacks/Puel/UsbWebcam/UsbWebcamDesc.cpp \
329 $(PATH_ROOT)/src/VBox/ExtPacks/Puel/UsbWebcam/jpggen.cpp \
330 $(PATH_ROOT)/src/VBox/ExtPacks/Puel/UsbWebcam/DrvHostWebcam/DrvHostWebcam.cpp \
331 $(PATH_ROOT)/src/VBox/ExtPacks/Puel/UsbWebcam/DrvHostWebcam/JPEGEnc.cpp
332 $(PATH_ROOT)/src/VBox/ExtPacks/Puel/UsbWebcam/DrvHostWebcam/JPEGEnc.cpp_INCS = \
333 $(PATH_ROOT)/src/libs/jpeg-8a
334 VBoxDD_SOURCES.linux += \
335 $(PATH_ROOT)/src/VBox/ExtPacks/Puel/UsbWebcam/DrvHostWebcam/HostWebcam-v4l2.cpp
336 VBoxDD_LIBS += \
337 $(PATH_STAGE_LIB)/VBox-libjpeg$(VBOX_SUFF_LIB)
338 endif
339 endif
340
341 endif # VBOX_WITH_USB
342
343 ifdef VBOX_WITH_VUSB
344 VBoxDD_DEFS += VBOX_WITH_VUSB
345 VBoxDD_SOURCES += \
346 USB/DevOHCI.cpp \
347 USB/DrvVUSBRootHub.cpp \
348 USB/VUSBDevice.cpp \
349 USB/VUSBReadAhead.cpp \
350 USB/VUSBUrb.cpp
351 endif
352
353 # --- Networking bits. ---
354
355 ifdef VBOX_WITH_INIP
356 VBoxDD_DEFS += VBOX_WITH_INIP
357 VBoxDD_SOURCES += \
358 Network/DevINIP.cpp
359 ifndef VBOX_WITH_NEW_LWIP
360 include $(PATH_SUB_CURRENT)/Network/lwip/Makefile.kmk
361 VBoxDD_INCS += $(LWIP_INCS)
362 VBoxDD_SOURCES += $(LWIP_SOURCES)
363 else
364 # XXX: do not depend on order
365 ifndef LWIP_SOURCES
366 include $(PATH_SUB_CURRENT)/Network/lwip-new/Makefile.kmk
367 endif
368 Network/DevINIP.cpp_DEFS += VBOX_WITH_NEW_LWIP
369 VBoxDD_LWIP_INCS += Network # for lwipopts.h
370 $(eval $(call def_vbox_lwip_private, \
371 VBoxDD, Network/lwip-new))
372 $(eval $(call def_vbox_lwip_flags, \
373 VBoxDD, Network/DevINIP.cpp, Network/lwip-new))
374 endif
375 endif # VBOX_WITH_INIP
376
377 ifdef VBOX_WITH_E1000
378 VBoxDD_DEFS += VBOX_WITH_E1000
379 VBoxDD_SOURCES += \
380 Network/DevE1000.cpp \
381 Network/DevE1000Phy.cpp \
382 Network/DevEEPROM.cpp
383 endif
384
385 ifdef VBOX_WITH_VIRTIO
386 VBoxDD_DEFS += VBOX_WITH_VIRTIO
387 VBoxDD_SOURCES += \
388 VirtIO/Virtio.cpp \
389 Network/DevVirtioNet.cpp
390 endif
391
392 ifdef VBOX_WITH_UDPTUNNEL
393 VBoxDD_DEFS += VBOX_WITH_UDPTUNNEL
394 VBoxDD_SOURCES += \
395 Network/DrvUDPTunnel.cpp
396 endif
397
398 ifdef VBOX_WITH_VDE
399 VBoxDD_DEFS += VBOX_WITH_VDE
400 VBoxDD_SOURCES += \
401 Network/DrvVDE.cpp \
402 Network/VDEPlug.cpp
403 endif
404
405 ifdef VBOX_WITH_NETSHAPER
406 VBoxDD_DEFS += VBOX_WITH_NETSHAPER
407 VBoxDD_SOURCES += \
408 Network/DrvNetShaper.cpp
409 endif
410
411 # --- Storage bits. ---
412
413 ifdef VBOX_WITH_AHCI
414 VBoxDD_DEFS += VBOX_WITH_AHCI IN_AHCI_R3
415 VBoxDD_SOURCES += \
416 Storage/DevAHCI.cpp
417 endif
418
419 ifdef VBOX_WITH_BUSLOGIC
420 VBoxDD_DEFS += VBOX_WITH_BUSLOGIC
421 VBoxDD_SOURCES += \
422 Storage/DevBusLogic.cpp \
423 Storage/VBoxSCSI.cpp
424 endif
425
426 ifdef VBOX_WITH_LSILOGIC
427 VBoxDD_DEFS += VBOX_WITH_LSILOGIC
428 VBoxDD_SOURCES += \
429 Storage/DevLsiLogicSCSI.cpp
430 endif
431
432 ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
433 VBoxDD_DEFS += VBOX_WITH_PDM_ASYNC_COMPLETION
434 endif
435
436 ifdef VBOX_WITH_SCSI
437 VBoxDD_DEFS += VBOX_WITH_SCSI
438 VBoxDD_SOURCES += \
439 Storage/DrvSCSI.cpp
440 VBoxDD_SOURCES.linux += \
441 Storage/DrvSCSIHost.cpp
442 endif
443
444 ifdef VBOX_WITH_ISCSI
445 ifdef VBOX_WITH_NEW_LWIP
446 Storage/DrvVD.cpp_DEFS += VBOX_WITH_NEW_LWIP
447 $(eval $(call def_vbox_lwip_flags, \
448 VBoxDD, Storage/DrvVD.cpp, Network/lwip-new))
449 else
450 Storage/DrvVD.cpp_INCS = $(LWIP_INCS)
451 endif
452 endif
453
454 ifdef VBOX_WITH_DRV_DISK_INTEGRITY
455 VBoxDD_DEFS += VBOX_WITH_DRV_DISK_INTEGRITY
456 VBoxDD_SOURCES += \
457 Storage/DrvDiskIntegrity.cpp
458 VBoxDD_LIBS += \
459 $(PATH_STAGE_LIB)/StorageDbgLib$(VBOX_SUFF_LIB)
460 endif
461
462 ifdef VBOX_WITH_EFI
463 VBoxDD_DEFS += VBOX_WITH_EFI
464 VBoxDD_SOURCES += EFI/DevEFI.cpp
465 EFI/DevEFI.cpp_INCS += EFI/Firmware/BaseTools/Source/C/Include
466 EFI/DevEFI.cpp_INCS.x86 += EFI/Firmware/BaseTools/Source/C/Include/Ia32
467 EFI/DevEFI.cpp_INCS.amd64 += EFI/Firmware/BaseTools/Source/C/Include/X64
468 endif
469
470 if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
471 VBoxDD_DEFS += VBOX_WITH_PCI_PASSTHROUGH_IMPL
472 VBoxDD_SOURCES += \
473 Bus/DevPciRaw.cpp \
474 Bus/DrvPciRaw.cpp
475 endif
476
477 ifdef VBOX_WITH_MSI_DEVICES
478 VBoxDD_DEFS += VBOX_WITH_MSI_DEVICES
479 endif
480
481 ifdef VBOX_WITH_DYNAMIC_DSDT
482 VBoxDD_DEFS += VBOX_WITH_DYNAMIC_DSDT
483 endif
484
485
486 # --- Input bits. ---
487
488 ifdef VBOX_WITH_NEW_PS2M
489 VBoxDD_DEFS += VBOX_WITH_NEW_PS2M
490 endif
491
492
493 # --- Audio bits. ---
494
495 ifdef VBOX_WITH_PDM_AUDIO_DRIVER
496 VBoxDD_DEFS +=VBOX_WITH_PDM_AUDIO_DRIVER
497 endif
498 ifdef VBOX_WITH_PDM_AUDIO_DRIVER
499 VBoxDD_SOURCES += Audio/DrvAudio.c \
500 Audio/DrvAudioUtil.c \
501 Audio/DrvHostNullAudio.c
502 else
503 VBoxDD_SOURCES += Audio/audio.c \
504 Audio/audiosniffer.c \
505 Audio/noaudio.c \
506 Audio/filteraudio.c
507 endif
508
509 ifdef VBOX_WITH_ALSA
510 VBoxDD_DEFS.linux += VBOX_WITH_ALSA
511 ifdef VBOX_WITH_PDM_AUDIO_DRIVER
512 VBoxDD_DEFS.linux += VBOX_WITH_WITH_PDM_AUDIO_DRIVER
513 VBoxDD_SOURCES.linux += \
514 Audio/DrvHostAlsaAudio.c \
515 Audio/alsa_stubs.c
516 else
517 VBoxDD_SOURCES.linux += \
518 Audio/alsaaudio.c \
519 Audio/alsa_stubs.c
520 endif
521 endif
522
523 ifdef VBOX_WITH_PULSE
524 VBoxDD_DEFS.linux += VBOX_WITH_PULSE
525 ifdef VBOX_WITH_PDM_AUDIO_DRIVER
526 VBoxDD_DEFS.linux += VBOX_WITH_PDM_AUDIO_DRIVER
527 VBoxDD_SOURCES.linux += \
528 Audio/DrvHostPulseAudio.c \
529 Audio/pulse_stubs.c
530 else
531 VBoxDD_SOURCES.linux += \
532 Audio/pulseaudio.c \
533 Audio/pulse_stubs.c
534 endif
535 VBoxDD_DEFS.freebsd += VBOX_WITH_PULSE
536 ifdef VBOX_WITH_PDM_AUDIO_DRIVER
537 VBoxDD_SOURCES.freebsd+= \
538 Audio/DrvHostPulseAudio.c \
539 Audio/pulse_stubs.c
540 else
541 VBoxDD_SOURCES.freebsd+= \
542 Audio/pulseaudio.c \
543 Audio/pulse_stubs.c
544 endif
545 endif
546
547
548 # --- WARNING! SLIRP MESS AHEAD! ;-) ---
549 VBOX_SLIRP_SOURCES = \
550 Network/DrvNAT.cpp \
551 Network/slirp/bootp.c \
552 Network/slirp/debug.c \
553 Network/slirp/ip_icmp.c \
554 Network/slirp/ip_input.c \
555 Network/slirp/ip_output.c \
556 Network/slirp/misc.c \
557 Network/slirp/sbuf.c \
558 Network/slirp/slirp.c \
559 Network/slirp/slirp_dns.c \
560 Network/slirp/socket.c \
561 Network/slirp/tcp_input.c \
562 Network/slirp/tcp_output.c \
563 Network/slirp/tcp_subr.c \
564 Network/slirp/tcp_timer.c \
565 Network/slirp/udp.c \
566 Network/slirp/dnsproxy/hash.c \
567 Network/slirp/tftp.c \
568 Network/slirp/dnsproxy/dnsproxy.c
569
570 ifneq ($(KBUILD_TARGET), win)
571 VBOX_SLIRP_SOURCES += Network/slirp/resolv_conf_parser.c
572 endif
573
574 ifdef VBOX_WITH_SLIRP_BSD_SBUF
575 VBOX_SLIRP_SOURCES += Network/slirp/bsd/kern/subr_sbuf.c
576 endif
577 VBOX_SLIRP_BSD_ARCH = $(subst x86,i386,$(KBUILD_TARGET_ARCH))
578 VBOX_SLIRP_BSD_SOURCES += \
579 Network/slirp/bsd/kern/kern_mbuf.c \
580 Network/slirp/bsd/kern/uipc_mbuf.c \
581 Network/slirp/bsd/kern/uipc_mbuf2.c \
582 Network/slirp/bsd/$(VBOX_SLIRP_BSD_ARCH)/in_cksum.c
583 VBOX_SLIRP_ALIAS_SOURCES = \
584 Network/slirp/libalias/alias.c \
585 Network/slirp/libalias/alias_db.c \
586 Network/slirp/libalias/alias_mod.c \
587 Network/slirp/libalias/alias_proxy.c \
588 Network/slirp/libalias/alias_ftp.c \
589 Network/slirp/libalias/alias_dns.c \
590 Network/slirp/libalias/alias_nbt.c \
591 Network/slirp/libalias/alias_util.c
592
593 # Enable VBOX_WITH_DNSMAPPING_IN_HOSTRESOLVER here for a while, then move to
594 # $(file)_DEFS or clean the code disabled with this definition.
595 VBOX_WITH_DNSMAPPING_IN_HOSTRESOLVER=1
596
597 # dump memory related operations.
598 Network/slirp/misc.c_DEFS += $(if $(VBOX_NAT_MEM_DEBUG),VBOX_NAT_MEM_DEBUG,)
599
600 VBoxDD_SOURCES += $(VBOX_SLIRP_SOURCES)
601 define def_vbox_slirp_cflags
602 $(file)_DEFS += \
603 $(if $(VBOX_WITH_SLIRP_BSD_SBUF),VBOX_WITH_SLIRP_BSD_SBUF,) \
604 $(if $(VBOX_WITH_SLIRP_MEMORY_CHECK),RTMEM_WRAP_TO_EF_APIS,) \
605 $(if $(VBOX_WITH_DEBUG_NAT_SOCKETS),VBOX_WITH_DEBUG_NAT_SOCKETS,) \
606 $(if $(VBOX_WITH_DNSMAPPING_IN_HOSTRESOLVER),VBOX_WITH_DNSMAPPING_IN_HOSTRESOLVER,) \
607 $(if $(VBOX_WITH_NAT_UDP_SOCKET_CLONE),VBOX_WITH_NAT_UDP_SOCKET_CLONE,) \
608 $(if $(VBOX_WITH_NAT_SEND2HOME),VBOX_WITH_NAT_SEND2HOME,) \
609 $(if $(VBOX_WITH_HIDDEN_TCPTEMPLATE),VBOX_WITH_HIDDEN_TCPTEMPLATE,) \
610 $(if $(VBOX_WITH_SLIRP_MT),VBOX_WITH_SLIRP_MT,)
611 $(file)_INCS += \
612 $(1)/slirp/bsd/sys \
613 $(1)/slirp/bsd/sys/sys \
614 $(1)/slirp/bsd/$(VBOX_SLIRP_BSD_ARCH)/include \
615 $(1)/slirp/bsd/netinet \
616 $(1)/slirp \
617 $(1)/slirp/libalias
618 ifeq ($(KBUILD_TARGET),win)
619 $(file)_CFLAGS = -wd4018
620 else
621 $(file)_CFLAGS += -Wno-sign-compare -Wno-format -Wno-bad-function-cast
622 endif
623 endef
624
625 $(foreach file,$(VBOX_SLIRP_SOURCES),$(eval $(call def_vbox_slirp_cflags, Network)))
626
627 VBoxDD_SOURCES += $(VBOX_SLIRP_ALIAS_SOURCES)
628 define def_vbox_slirp_alias_cflags
629 $(file)_DEFS += VBOX_SLIRP_ALIAS \
630 $(if $(VBOX_WITH_DEBUG_LIBALIAS),VBOX_WITH_DEBUG_LIBALIAS,)
631 $(file)_INCS += \
632 $(1)/slirp/libalias \
633 $(1)/slirp \
634 $(1)/slirp/dnsproxy
635 ifneq ($(KBUILD_TARGET),win)
636 $(file)_CFLAGS += -Wno-shadow
637 endif
638 endef
639 $(foreach file,$(VBOX_SLIRP_ALIAS_SOURCES),$(eval $(call def_vbox_slirp_cflags, Network)))
640 $(foreach file,$(VBOX_SLIRP_ALIAS_SOURCES),$(eval $(call def_vbox_slirp_alias_cflags, Network)))
641
642 VBOX_SLIRP_BSD_SOURCES += $(VBOX_SLIRP_BSD_SOURCES.${KBUILD_TARGET_ARCH})
643 VBoxDD_SOURCES += $(VBOX_SLIRP_BSD_SOURCES)
644 define def_vbox_slirp_bsd_cflags
645 $(file)_DEFS += VBOX_SLIRP_BSD
646 $(file)_INCS += $(1)/slirp/dnsproxy
647 endef
648 $(foreach file,$(VBOX_SLIRP_BSD_SOURCES),$(eval $(call def_vbox_slirp_cflags, Network)))
649 $(foreach file,$(VBOX_SLIRP_BSD_SOURCES),$(eval $(call def_vbox_slirp_bsd_cflags, Network)))
650
651
652 # --- OS specific driver hacks. ---
653
654 ifeq ($(KBUILD_TARGET),darwin)
655 VBoxDD_SOURCES := \
656 $(filter-out Storage/DrvHostRaw% Storage/DrvHostFloppy%, $(VBoxDD_SOURCES)) \
657 Audio/coreaudio.c
658 VBoxDD_SOURCES.darwin += \
659 Serial/DrvHostSerial.cpp
660 endif # darwin
661
662 ifeq ($(KBUILD_TARGET),freebsd)
663 ifdef VBOX_WITH_PDM_AUDIO_DRIVER
664 VBoxDD_SOURCES := \
665 $(filter-out Storage/DrvHostFloppy%, $(VBoxDD_SOURCES)) \
666 Audio/DrvHostOssAudio.c \
667 Serial/DrvHostSerial.cpp
668 VBoxDD_SOURCES.freebsd += \
669 Network/DrvTAP.cpp
670 else
671 VBoxDD_SOURCES := \
672 $(filter-out Storage/DrvHostFloppy%, $(VBoxDD_SOURCES)) \
673 Audio/ossaudio.c \
674 Serial/DrvHostSerial.cpp
675 VBoxDD_SOURCES.freebsd += \
676 Network/DrvTAP.cpp
677 endif
678 endif # freebsd
679
680 VBoxDD_SOURCES.linux += \
681 Network/DrvTAP.cpp \
682 Parallel/DrvHostParallel.cpp \
683 Serial/DrvHostSerial.cpp
684
685 ifdef VBOX_WITH_PDM_AUDIO_DRIVER
686 VBoxDD_SOURCES.linux += \
687 Audio/DrvHostOssAudio.c
688 else
689 VBoxDD_SOURCES.linux += \
690 Audio/ossaudio.c
691 endif
692
693 ifeq ($(KBUILD_TARGET),os2)
694 VBoxDD_SOURCES := $(filter-out Storage/DrvHost%, $(VBoxDD_SOURCES))
695 endif
696
697 ifeq ($(KBUILD_TARGET),solaris)
698 VBoxDD_SOURCES := $(filter-out Storage/DrvHostFloppy%, $(VBoxDD_SOURCES))
699 VBoxDD_SOURCES.solaris += \
700 Serial/DrvHostSerial.cpp
701 ifdef VBOX_WITH_PDM_AUDIO_DRIVER
702 VBoxDD_SOURCES.solaris += \
703 Audio/DrvHostSolAudio.c
704 else
705 VBoxDD_SOURCES.solaris += \
706 Audio/solaudio.c
707 endif
708 ifdef VBOX_WITH_SOLARIS_OSS
709 ifdef VBOX_WITH_PDM_AUDIO_DRIVER
710 VBoxDD_SOURCES += Audio/DrvHostOssAudio.c
711 else
712 VBoxDD_SOURCES += Audio/ossaudio.c
713 endif
714 VBoxDD_DEFS += VBOX_WITH_SOLARIS_OSS
715 endif
716 ifdef VBOX_WITH_SUID_WRAPPER
717 VBoxDD_DEFS += VBOX_WITH_SUID_WRAPPER
718 endif
719 endif
720
721 VBoxDD_DEFS.win += VBOX_WITH_WIN_PARPORT_SUP
722 ifdef VBOX_WITH_PDM_AUDIO_DRIVER
723 VBoxDD_DEFS.win += VBOX_WITH_PDM_AUDIO_DRIVER
724 endif
725 VBoxDD_SOURCES.win += \
726 Serial/DrvHostSerial.cpp \
727 Parallel/DrvHostParallel.cpp
728
729 ifdef VBOX_WITH_PDM_AUDIO_DRIVER
730 VBoxDD_SOURCES.win += \
731 Audio/DrvHostDSound.c
732 else
733 VBoxDD_SOURCES.win += \
734 Audio/dsoundaudio.c
735 endif
736
737 if defined(VBOX_WITH_NETFLT)
738 VBoxDD_DEFS += VBOX_WITH_NETFLT
739 if defined(VBOX_NETFLT_ONDEMAND_BIND)
740 VBoxDD_DEFS.win += VBOX_NETFLT_ONDEMAND_BIND
741 endif
742 endif
743
744
745 # --- Final bits, mostly libraries for order dependant linkers. ---
746
747 VBoxDD_LIBS += \
748 $(PATH_STAGE_LIB)/VgaDefBiosLogo$(VBOX_SUFF_LIB) \
749 $(LIB_VMM) \
750 $(LIB_RUNTIME)
751 ifeq ($(KBUILD_TARGET),win)
752 VBoxDD_LIBS += \
753 $(LIB_DDU) \
754 $(PATH_STAGE_LIB)/VBoxDD2.lib \
755 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/dxguid.lib
756 else
757 VBoxDD_LIBS += \
758 $(VBoxDDU_1_STAGE_TARGET) \
759 $(VBoxDD2_1_STAGE_TARGET)
760 endif
761
762 ifdef VBOX_WITH_NETFLT
763 VBoxDD_LIBS.win += $(PATH_STAGE_LIB)/WinNetConfig.lib
764 endif
765
766 ifeq ($(KBUILD_TARGET),solaris)
767 VBoxDD_LIBS += adm
768 ifdef VBOX_WITH_SUID_WRAPPER
769 VBoxDD_LIBS += secdb
770 endif
771 ifdef VBOX_WITH_USB
772 VBoxDD_LIBS += aio
773 endif
774 endif
775
776 VBoxDD_LIBS.darwin += \
777 $(LIB_REM)
778
779
780 ifdef VBOX_WITH_DYNAMIC_DSDT
781 VBoxDD_CLEAN += $(VBoxDD_0_OUTDIR)/vboxdsl.hex
782 PC/ACPI/VBoxAcpi.cpp_DEPS = $(VBoxDD_0_OUTDIR)/vboxdsl.hex
783
784 $$(VBoxDD_0_OUTDIR)/vboxdsl.hex: $(PATH_SUB_CURRENT)/PC/vbox.dsl | $$(dir $$@)
785 $(call MSG_TOOL,bin2c,VBoxDD,$<,$@)
786 $(QUIET)$(VBOX_BIN2C) -export VboxDslSource $< $@
787
788 vboxdsl.hex:: $$(VBoxDD_0_OUTDIR)/vboxdsl.hex
789
790 else # !VBOX_WITH_DYNAMIC_DSDT
791 # VBoxAcpi.cpp needs vboxaml.hex which we generate from PC/vbox.dsl
792 VBoxDD_CLEAN += \
793 $(VBoxDD_0_OUTDIR)/vboxaml.hex \
794 $(VBoxDD_0_OUTDIR)/vboxaml.aml \
795 $(VBoxDD_0_OUTDIR)/vboxssdt-standard.hex \
796 $(VBoxDD_0_OUTDIR)/vboxssdt-standard.aml \
797 $(VBoxDD_0_OUTDIR)/vboxssdt-standard.aml.tmp \
798 $(VBoxDD_0_OUTDIR)/vboxssdt-cpuhotplug.hex \
799 $(VBoxDD_0_OUTDIR)/vboxssdt-cpuhotplug.aml \
800 $(VBoxDD_0_OUTDIR)/vboxssdt-cpuhotplug.aml.tmp \
801 $(VBoxDD_0_OUTDIR)/vboxssdt-cpuhotplug.aml.pre
802 PC/ACPI/VBoxAcpi.cpp_DEPS = \
803 $(VBoxDD_0_OUTDIR)/vboxaml.hex \
804 $(VBoxDD_0_OUTDIR)/vboxssdt-standard.hex \
805 $(VBoxDD_0_OUTDIR)/vboxssdt-cpuhotplug.hex
806
807 $$(VBoxDD_0_OUTDIR)/vboxaml.hex: $(PATH_SUB_CURRENT)/PC/vbox.dsl | $$(dir $$@)
808 $(call MSG_TOOL,iasl,VBoxDD,$<,$@)
809 $(QUIET)$(VBOX_IASLCMD) -tc -vs -p $@ $<
810
811 vboxaml.hex:: $$(VBoxDD_0_OUTDIR)/vboxaml.hex
812
813 $$(VBoxDD_0_OUTDIR)/vboxssdt-standard.hex: $(PATH_SUB_CURRENT)/PC/vbox-standard.dsl | $$(dir $$@)
814 $(call MSG_TOOL,iasl,VBoxDD,$<,$@)
815 $(QUIET)$(RM) -f $@ [email protected]
816 $(QUIET)$(VBOX_IASLCMD) -tc -vs -p $@ $<
817 $(QUIET)$(MV) -f $@ [email protected]
818 $(QUIET)$(SED) "s/AmlCode/AmlCodeSsdtStandard/g" \
819 --output $@ [email protected]
820 $(QUIET)$(RM) -f [email protected]
821
822
823 vboxssdt-standard.hex:: $$(VBoxDD_0_OUTDIR)/vboxssdt-standard.hex
824
825 $$(VBoxDD_0_OUTDIR)/vboxssdt-cpuhotplug.hex: $(PATH_SUB_CURRENT)/PC/vbox-cpuhotplug.dsl | $$(dir $$@)
826 $(call MSG_TOOL,iasl,VBoxDD,$<,$@)
827 $(QUIET)$(RM) -f $@ [email protected] [email protected]
828 $(QUIET)$(TOOL_$(VBOX_GCC_TOOL)_CC) -E -P -x c -o [email protected] $<
829 $(QUIET)$(VBOX_IASLCMD) -tc -vs -p $@ [email protected]
830 $(QUIET)$(MV) -f $@ [email protected]
831 $(QUIET)$(SED) "s/AmlCode/AmlCodeSsdtCpuHotPlug/g" \
832 --output $@ [email protected]
833 $(QUIET)$(RM) -f [email protected] [email protected]
834
835
836 vboxssdt-cpuhotplug.hex:: $$(VBoxDD_0_OUTDIR)/vboxssdt-cpuhotplug.hex
837
838 endif # !VBOX_WITH_DYNAMIC_DSDT
839 PC/ACPI/VBoxAcpi.cpp_INCS = $(VBoxDD_0_OUTDIR)
840
841 # For finding PCIInternal.h from VBox/pci.h.
842 Bus/DevPCI.cpp_INCS = Bus
843 Bus/DevPciIch9.cpp_INCS = Bus
844 Bus/MsiCommon.cpp_INCS = Bus
845 Bus/MsixCommon.cpp_INCS = Bus
846 Bus/DevPciRaw.cpp_INCS = Bus
847
848 # For finding and generating vbetables.h (see Graphics/BIOS/Makefile.kmk).
849 Graphics/DevVGA.cpp_INCS = $(VgaBiosBin_0_OUTDIR)
850 Graphics/DevVGA.cpp_DEPS = $(VgaBiosBin_0_OUTDIR)/vbetables.h
851
852
853 ifdef VBOX_WITH_RAW_MODE
854 #
855 # VBoxDDGC (sysmod)
856 #
857 VBoxDDGC_TEMPLATE = VBoxRc
858 ifeq ($(KBUILD_TARGET_ARCH),x86)
859 VBoxDDGC_DEFS.darwin = VBOX_WITH_2X_4GB_ADDR_SPACE
860 endif
861 VBoxDDGC_DEFS = $(if $(VBOX_WITH_HGCM),VBOX_WITH_HGCM,)
862 VBoxDDGC_INCS = build
863 VBoxDDGC_SOURCES = \
864 Audio/DevIchHda.cpp \
865 Bus/DevPCI.cpp \
866 Bus/DevPciIch9.cpp \
867 Bus/MsiCommon.cpp \
868 Bus/MsixCommon.cpp \
869 $(if $(VBOX_WITH_SMC_NEW),EFI/DevSmc.cpp,) \
870 Graphics/DevVGA.cpp \
871 Input/DevPS2.cpp \
872 Input/PS2K.cpp \
873 Input/PS2M.cpp \
874 PC/DevACPI.cpp \
875 PC/DevPit-i8254.cpp \
876 PC/DevPIC.cpp \
877 PC/DevRTC.cpp \
878 PC/DevHPET.cpp \
879 Storage/DevATA.cpp \
880 Network/DevPCNet.cpp \
881 Serial/DevSerial.cpp \
882 Parallel/DevParallel.cpp \
883 VMMDev/VMMDevTesting.cpp
884
885 ifdef VBOX_WITH_E1000
886 VBoxDDGC_DEFS += VBOX_WITH_E1000
887 VBoxDDGC_SOURCES += \
888 Network/DevE1000.cpp \
889 Network/DevE1000Phy.cpp
890 endif
891
892 ifdef VBOX_WITH_VIRTIO
893 VBoxDDGC_DEFS += VBOX_WITH_VIRTIO
894 VBoxDDGC_SOURCES += \
895 VirtIO/Virtio.cpp \
896 Network/DevVirtioNet.cpp
897 endif
898
899 ifdef VBOX_WITH_HGSMI
900 VBoxDDGC_DEFS += VBOX_WITH_HGSMI
901 endif
902 ifdef VBOX_WITH_WDDM
903 VBoxDDGC_DEFS += VBOX_WITH_WDDM
904 endif
905 ifdef VBOX_WITH_VDMA
906 VBoxDDGC_DEFS += VBOX_WITH_VDMA
907 endif
908 ifdef VBOX_WITH_CRHGSMI
909 VBoxDDGC_DEFS += VBOX_WITH_CRHGSMI
910 endif
911 ifdef VBOXWDDM_WITH_VBVA
912 VBoxDDGC_DEFS += VBOXWDDM_WITH_VBVA
913 endif
914 ifdef VBOX_WITH_VMSVGA
915 VBoxDDGC_DEFS += VBOX_WITH_VMSVGA
916 VBoxDDGC_SOURCES += \
917 Graphics/DevVGA-SVGA.cpp
918 endif
919 ifdef VBOX_WITH_VMSVGA3D
920 VBoxDDGC_DEFS += VBOX_WITH_VMSVGA3D
921 endif
922 ifdef VBOX_VDMA_WITH_WATCHDOG
923 VBoxDDGC_DEFS += VBOX_VDMA_WITH_WATCHDOG
924 endif
925
926 ifdef VBOX_WITH_VUSB
927 VBoxDDGC_DEFS += VBOX_WITH_VUSB
928 VBoxDDGC_SOURCES += \
929 USB/DevOHCI.cpp
930 endif
931
932 ifdef VBOX_WITH_USB
933 VBoxDDGC_DEFS += VBOX_WITH_USB
934 if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
935 VBoxDDGC_DEFS += VBOX_WITH_EHCI_IMPL
936 VBoxDDGC_SOURCES += \
937 USB/DevEHCI.cpp
938 endif
939 endif
940
941 ifdef VBOX_WITH_VIDEOHWACCEL
942 VBoxDDGC_DEFS += VBOX_WITH_VIDEOHWACCEL
943 endif
944
945 ifdef VBOX_WITH_AHCI
946 VBoxDDGC_DEFS += VBOX_WITH_AHCI IN_AHCI_GC
947 VBoxDDGC_SOURCES += \
948 Storage/DevAHCI.cpp
949 endif
950
951 ifdef VBOX_WITH_BUSLOGIC
952 VBoxDDGC_DEFS += VBOX_WITH_BUSLOGIC
953 VBoxDDGC_SOURCES += \
954 Storage/DevBusLogic.cpp
955 endif
956
957 ifdef VBOX_WITH_LSILOGIC
958 VBoxDDGC_DEFS += VBOX_WITH_LSILOGIC
959 VBoxDDGC_SOURCES += \
960 Storage/DevLsiLogicSCSI.cpp
961 endif
962
963 ifdef VBOX_WITH_NEW_PS2M
964 VBoxDDGC_DEFS += VBOX_WITH_NEW_PS2M
965 endif
966
967 if1of ($(VBOX_LDR_FMT32), pe lx)
968 VBoxDDGC_LIBS = \
969 $(PATH_STAGE_LIB)/VMMRCBuiltin$(VBOX_SUFF_LIB) \
970 $(PATH_STAGE_LIB)/VMMRCImp$(VBOX_SUFF_LIB)
971 endif
972 endif # VBOX_WITH_RAW_MODE
973
974
975 #
976 # VBoxDD2 (shared object)
977 #
978 VBoxDD2_TEMPLATE = VBoxR3DllWarnNoPic
979 VBoxDD2_DEFS = IN_VBOXDD2 $(if $(VBOX_WITH_SMC_NEW),VBOX_WITH_SMC_NEW,)
980 VBoxDD2_INCS := \
981 build \
982 $(PATH_SUB_CURRENT)
983 VBoxDD2_SOURCES = \
984 build/VBoxDD2.cpp \
985 PC/DevAPIC.cpp \
986 PC/DevIoApic.cpp \
987 $(if $(VBOX_WITH_SMC_NEW),,PC/DevSMC.cpp) \
988 PC/DevLPC.cpp
989 VBoxDD2_LIBS = \
990 $(PATH_STAGE_LIB)/PcBiosBin$(VBOX_SUFF_LIB) \
991 $(PATH_STAGE_LIB)/VgaBiosBin$(VBOX_SUFF_LIB) \
992 $(if $(VBOX_WITH_PXE_ROM),\
993 $(if $(VBOX_WITH_INTEL_PXE),\
994 $(PATH_STAGE_LIB)/NetBiosBin$(VBOX_SUFF_LIB),\
995 $(PATH_STAGE_LIB)/iPxeBiosBin$(VBOX_SUFF_LIB)),) \
996 $(LIB_VMM) \
997 $(LIB_RUNTIME)
998 VBoxDD2_LIBS.darwin += $(LIB_REM)
999 VBoxDD2_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxDD2.dylib
1000 VBoxDD2_LDFLAGS.linux = -Wl,--no-undefined
1001
1002 ifdef VBOX_WITH_PXE_ROM
1003 VBoxDD2_DEFS += VBOX_WITH_PXE_ROM
1004 endif
1005
1006
1007 #
1008 # VBoxDDR0 (sysmod)
1009 #
1010 VBoxDDR0_TEMPLATE = VBoxR0
1011 VBoxDDR0_DEFS.darwin.x86= VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0 VBOX_WITH_2X_4GB_ADDR_SPACE
1012 VBoxDDR0_DEFS = IN_RT_R0 $(if $(VBOX_WITH_HGCM),VBOX_WITH_HGCM,) # - WTF is IN_RT_R0 doing here?
1013 VBoxDDR0_DEFS.win += VBOX_WITH_WIN_PARPORT_SUP
1014 VBoxDDR0_INCS = build
1015 VBoxDDR0_SDKS.win = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK)
1016 VBoxDDR0_SOURCES = \
1017 build/VBoxDDR0.cpp \
1018 Audio/DevIchHda.cpp \
1019 Bus/DevPCI.cpp \
1020 Bus/DevPciIch9.cpp \
1021 Bus/MsiCommon.cpp \
1022 Bus/MsixCommon.cpp \
1023 $(if $(VBOX_WITH_SMC_NEW),EFI/DevSmc.cpp,) \
1024 Graphics/DevVGA.cpp \
1025 Input/DevPS2.cpp \
1026 Input/PS2K.cpp \
1027 Input/PS2M.cpp \
1028 PC/DevACPI.cpp \
1029 PC/DevPit-i8254.cpp \
1030 PC/DevPIC.cpp \
1031 PC/DevRTC.cpp \
1032 PC/DevHPET.cpp \
1033 Storage/DevATA.cpp \
1034 Network/DevPCNet.cpp \
1035 Serial/DevSerial.cpp \
1036 Parallel/DevParallel.cpp \
1037 VMMDev/VMMDevTesting.cpp \
1038 \
1039 Network/DrvIntNet.cpp \
1040 Network/DrvDedicatedNic.cpp
1041
1042 VBoxDDR0_SOURCES.win += Parallel/DrvHostParallel.cpp
1043
1044 ifdef VBOX_WITH_E1000
1045 VBoxDDR0_DEFS += VBOX_WITH_E1000
1046 VBoxDDR0_SOURCES += \
1047 Network/DevE1000.cpp \
1048 Network/DevE1000Phy.cpp
1049 endif
1050
1051 ifdef VBOX_WITH_VIRTIO
1052 VBoxDDR0_DEFS += VBOX_WITH_VIRTIO
1053 VBoxDDR0_SOURCES += \
1054 VirtIO/Virtio.cpp \
1055 Network/DevVirtioNet.cpp
1056 endif
1057
1058 ifdef VBOX_WITH_NETSHAPER
1059 VBoxDDR0_DEFS += VBOX_WITH_NETSHAPER
1060 VBoxDDR0_SOURCES += \
1061 Network/DrvNetShaper.cpp
1062 endif
1063
1064 ifdef VBOX_WITH_VMSVGA
1065 VBoxDDR0_DEFS += VBOX_WITH_VMSVGA
1066 VBoxDDR0_SOURCES += \
1067 Graphics/DevVGA-SVGA.cpp
1068 endif
1069 ifdef VBOX_WITH_VMSVGA3D
1070 VBoxDDR0_DEFS += VBOX_WITH_VMSVGA3D
1071 endif
1072
1073 ifdef VBOX_WITH_HGSMI
1074 VBoxDDR0_DEFS += VBOX_WITH_HGSMI
1075 endif
1076 ifdef VBOX_WITH_WDDM
1077 VBoxDDR0_DEFS += VBOX_WITH_WDDM
1078 endif
1079 ifdef VBOX_WITH_VDMA
1080 VBoxDDR0_DEFS += VBOX_WITH_VDMA
1081 endif
1082 ifdef VBOX_WITH_CRHGSMI
1083 VBoxDDR0_DEFS += VBOX_WITH_CRHGSMI
1084 endif
1085 ifdef VBOXWDDM_WITH_VBVA
1086 VBoxDDR0_DEFS += VBOXWDDM_WITH_VBVA
1087 endif
1088 ifdef VBOX_VDMA_WITH_WATCHDOG
1089 VBoxDDR0_DEFS += VBOX_VDMA_WITH_WATCHDOG
1090 endif
1091
1092 ifdef VBOX_WITH_VUSB
1093 VBoxDDR0_DEFS += VBOX_WITH_VUSB
1094 VBoxDDR0_SOURCES += \
1095 USB/DevOHCI.cpp
1096 endif
1097 ifdef VBOX_WITH_USB
1098 VBoxDDR0_DEFS += VBOX_WITH_USB
1099 if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
1100 VBoxDDR0_DEFS += VBOX_WITH_EHCI_IMPL
1101 VBoxDDR0_SOURCES += \
1102 USB/DevEHCI.cpp
1103 endif
1104 endif
1105
1106 if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
1107 VBoxDDR0_SOURCES += \
1108 Bus/DevPciRaw.cpp
1109 endif
1110
1111 ifdef VBOX_WITH_AHCI
1112 VBoxDDR0_DEFS += VBOX_WITH_AHCI IN_AHCI_R0
1113 VBoxDDR0_SOURCES += \
1114 Storage/DevAHCI.cpp
1115 endif
1116
1117 ifdef VBOX_WITH_BUSLOGIC
1118 VBoxDDR0_DEFS += VBOX_WITH_BUSLOGIC
1119 VBoxDDR0_SOURCES += \
1120 Storage/DevBusLogic.cpp
1121 endif
1122
1123 ifdef VBOX_WITH_LSILOGIC
1124 VBoxDDR0_DEFS += VBOX_WITH_LSILOGIC
1125 VBoxDDR0_SOURCES += \
1126 Storage/DevLsiLogicSCSI.cpp
1127 endif
1128
1129 ifdef VBOX_WITH_NEW_PS2M
1130 VBoxDDR0_DEFS += VBOX_WITH_NEW_PS2M
1131 endif
1132
1133 ifdef VBOX_WITH_HGSMI
1134 VBoxDDR0_DEFS += VBOX_WITH_HGSMI
1135 endif
1136 ifdef VBOX_WITH_VIDEOHWACCEL
1137 VBoxDDR0_DEFS += VBOX_WITH_VIDEOHWACCEL
1138 endif
1139
1140 if1of ($(VBOX_LDR_FMT), pe lx)
1141 VBoxDDR0_LIBS = \
1142 $(PATH_STAGE_LIB)/VMMR0Imp$(VBOX_SUFF_LIB) \
1143 $(PATH_STAGE_LIB)/SUPR0$(VBOX_SUFF_LIB)
1144 endif
1145
1146
1147 ifdef VBOX_WITH_RAW_MODE
1148 #
1149 # VBoxDD2GC (LGPL sysmod)
1150 #
1151 VBoxDD2GC_TEMPLATE = VBoxRc
1152 VBoxDD2GC_DEFS = $(if $(VBOX_WITH_SMC_NEW),VBOX_WITH_SMC_NEW,)
1153 VBoxDD2GC_INCS = build
1154 VBoxDD2GC_SOURCES = \
1155 PC/DevAPIC.cpp \
1156 PC/DevIoApic.cpp \
1157 $(if $(VBOX_WITH_SMC_NEW),,PC/DevSMC.cpp)
1158 if1of ($(VBOX_LDR_FMT32), pe lx)
1159 VBoxDD2GC_LIBS = \
1160 $(PATH_STAGE_LIB)/VMMRCBuiltin$(VBOX_SUFF_LIB) \
1161 $(PATH_STAGE_LIB)/VMMRCImp$(VBOX_SUFF_LIB)
1162 endif
1163 endif
1164
1165
1166 #
1167 # VBoxDD2R0 (LGPL sysmod)
1168 #
1169 VBoxDD2R0_TEMPLATE = VBoxR0
1170 VBoxDD2R0_DEFS = IN_RT_R0 $(if $(VBOX_WITH_SMC_NEW),VBOX_WITH_SMC_NEW,)
1171 VBoxDD2R0_INCS = build
1172 VBoxDD2R0_SOURCES = \
1173 build/VBoxDD2R0.cpp \
1174 PC/DevAPIC.cpp \
1175 PC/DevIoApic.cpp \
1176 $(if $(VBOX_WITH_SMC_NEW),,PC/DevSMC.cpp)
1177
1178 if1of ($(VBOX_LDR_FMT), pe lx)
1179 VBoxDD2R0_LIBS = \
1180 $(PATH_STAGE_LIB)/VMMR0Imp$(VBOX_SUFF_LIB) \
1181 $(PATH_STAGE_LIB)/SUPR0$(VBOX_SUFF_LIB)
1182 endif
1183
1184
1185 #
1186 # Ring-0 Services (library, linked into VMMR0.r0)
1187 #
1188 ServicesR0_TEMPLATE = VBoxR0
1189 ServicesR0_DEFS = IN_INTNET_R0 IN_RT_R0 \
1190 $(if $(VBOX_WITH_PCI_PASSTHROUGH),IN_PCIRAW_R0,) \
1191 $(if $(VBOX_WITH_NAT_SERVICE),VBOX_WITH_NAT_SERVICE,)
1192 ServicesR0_SOURCES = \
1193 Network/SrvIntNetR0.cpp \
1194 $(if $(VBOX_WITH_PCI_PASSTHROUGH),Bus/SrvPciRawR0.cpp,)
1195 Network/SrvIntNetR0.cpp_CXXFLAGS := $(if-expr $(KBUILD_TARGET) == "win",,$(VBOX_GCC_Wno-array_bounds))
1196
1197
1198 #
1199 # Internal Networking - Ring-3 Testcase for the Ring-0 code (a bit hackish).
1200 #
1201 ifdef VBOX_WITH_TESTCASES
1202 PROGRAMS += tstIntNetR0
1203 tstIntNetR0_TEMPLATE = VBOXR3TSTEXE
1204 tstIntNetR0_DEFS = IN_INTNET_R0
1205 tstIntNetR0_SOURCES = \
1206 Network/testcase/tstIntNetR0.cpp
1207 ifneq ($(KBUILD_TARGET),win)
1208 Network/testcase/tstIntNetR0.cpp_CXXFLAGS = $(VBOX_GCC_Wno-array_bounds)
1209 endif
1210 endif
1211
1212
1213 #
1214 # Internal Networking - Ring-3 Testcase for the Ring-0 code (a bit hackish).
1215 #
1216 ifdef VBOX_WITH_TESTCASES
1217 PROGRAMS += tstIntNet-1
1218 tstIntNet-1_TEMPLATE = VBOXR3TSTEXE
1219 tstIntNet-1_SOURCES = \
1220 Network/testcase/tstIntNet-1.cpp \
1221 Network/Pcap.cpp
1222 endif
1223
1224
1225 #
1226 # EEPROM device unit test requires cppunit
1227 #
1228 ifdef VBOX_WITH_CPPUNIT_TESTCASES
1229 ifdef VBOX_WITH_E1000
1230 PROGRAMS += tstDevEEPROM
1231 tstDevEEPROM_TEMPLATE = VBOXCPPUNITEXE
1232 tstDevEEPROM_SOURCES = \
1233 Network/testcase/tstDevEEPROM.cpp
1234 tstDevEEPROM_LIBS = \
1235 $(TARGET_VBoxDD)
1236 PROGRAMS += tstDevPhy
1237 tstDevPhy_TEMPLATE = VBOXCPPUNITEXE
1238 tstDevPhy_SOURCES = \
1239 Network/testcase/tstDevPhy.cpp \
1240 Network/DevE1000Phy.cpp
1241 tstDevPhy_DEFS = PHY_UNIT_TEST
1242 endif
1243 endif
1244
1245 #
1246 # Apple SMC Utility.
1247 #
1248 ifdef VBOX_WITH_TESTCASES
1249 PROGRAMS.darwin += VBoxSmcUtil-darwin
1250 VBoxSmcUtil-darwin_TEMPLATE = VBOXR3TSTEXE
1251 VBoxSmcUtil-darwin_SOURCES = EFI/VBoxSmcUtil-darwin.cpp
1252 VBoxSmcUtil-darwin_LDFLAGS = -framework IOKit
1253 endif
1254
1255endif # !VBOX_ONLY_EXTPACKS
1256
1257
1258if defined(VBOX_WITH_EXTPACK_PUEL) && defined(VBOX_WITH_EXTPACK_PUEL_BUILD)
1259 #
1260 # The EHCI (USB 2.0) Extension Pack Modules.
1261 #
1262 if defined(VBOX_WITH_USB)
1263 DLLS += VBoxEhciR3
1264 VBoxEhciR3_TEMPLATE = VBoxR3ExtPackPuel
1265 VBoxEhciR3_SOURCES = USB/DevEHCI.cpp
1266
1267 SYSMODS += VBoxEhciR0
1268 VBoxEhciR0_TEMPLATE = VBoxR0ExtPackPuel
1269 VBoxEhciR0_SOURCES = USB/DevEHCI.cpp
1270
1271 ifdef VBOX_WITH_RAW_MODE
1272 SYSMODS += VBoxEhciRC
1273 VBoxEhciRC_TEMPLATE = VBoxRcExtPackPuel
1274 VBoxEhciRC_SOURCES = USB/DevEHCI.cpp
1275 endif
1276 endif
1277
1278 if defined(VBOX_WITH_PCI_PASSTHROUGH)
1279 DLLS += VBoxPciRawR3
1280 VBoxPciRawR3_TEMPLATE = VBoxR3ExtPackPuel
1281 VBoxPciRawR3_SOURCES = Bus/DevPciRaw.cpp
1282
1283 DLLS += VBoxPciRawDrv
1284 VBoxPciRawDrv_TEMPLATE = VBoxR3ExtPackPuel
1285 VBoxPciRawDrv_SOURCES = Bus/DrvPciRaw.cpp
1286
1287 SYSMODS += VBoxPciRawR0
1288 VBoxPciRawR0_TEMPLATE = VBoxR0ExtPackPuel
1289 VBoxPciRawR0_SOURCES = Bus/DevPciRaw.cpp
1290
1291 Bus/DevPciRaw.cpp_INCS = Bus
1292 endif
1293
1294
1295 #
1296 # The Intel PXE rom.
1297 #
1298 INSTALLS += VBoxExtPackPuelInsRoms
1299 VBoxExtPackPuelInsRoms_TEMPLATE = VBoxInsExtPackPuel
1300 VBoxExtPackPuelInsRoms_SOURCES = PC/PXE/PXE-Intel.rom=>PXE-Intel.rom
1301endif # VBOX_WITH_EXTPACK_PUEL
1302
1303include $(FILE_KBUILD_SUB_FOOTER)
1304
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