VirtualBox

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

Last change on this file since 72302 was 72302, checked in by vboxsync, 7 years ago

Devices/Makefile.kmk: Make it work with recent iasl versions, the generated headers have include guards based on the filename now but iasl doesn't convert dashes in the filename to underscores breaking the build. They also generate the identifier for the array containing the tables based on filename instead of the using the standard AmlCode we expect (missing file for cleaning)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 47.2 KB
Line 
1# $Id: Makefile.kmk 72302 2018-05-23 15:32:47Z vboxsync $
2## @file
3# Top-level sub-makefile for the devices, drivers and services.
4#
5
6#
7# Copyright (C) 2006-2017 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# Make sure our Config.kmk is included.
22ifndef VBOX_DEVICES_CONFIG_KMK_INCLUDED
23 include $(PATH_SUB_CURRENT)/Config.kmk
24endif
25
26# Include sub-makefiles.
27include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
28include $(PATH_SUB_CURRENT)/Audio/testcase/Makefile.kmk
29include $(PATH_SUB_CURRENT)/Input/testcase/Makefile.kmk
30ifdef VBOX_WITH_TESTCASES
31 include $(PATH_SUB_CURRENT)/Samples/Makefile.kmk
32endif
33if defined(VBOX_WITH_INTEL_PXE) || defined(VBOX_ONLY_EXTPACKS)
34 include $(PATH_SUB_CURRENT)/PC/PXE/Makefile.kmk
35else if defined(VBOX_WITH_PXE_ROM)
36 if !defined(VBOX_WITHOUT_IPXE)
37 include $(PATH_SUB_CURRENT)/PC/ipxe/Makefile.kmk
38 endif
39endif
40if !defined(VBOX_ONLY_EXTPACKS) # Goes on almost to the end of the file.
41 include $(PATH_SUB_CURRENT)/BiosCommonCode/Makefile.kmk
42 include $(PATH_SUB_CURRENT)/PC/BIOS/Makefile.kmk
43 include $(PATH_SUB_CURRENT)/Graphics/BIOS/Makefile.kmk
44
45 #
46 # Main targets.
47 #
48 LIBRARIES += ServicesR0
49 DLLS += VBoxDDU VBoxDD VBoxDD2
50 SYSMODS += VBoxDDR0 VBoxDD2R0
51 ifdef VBOX_WITH_RAW_MODE
52 SYSMODS += VBoxDDRC VBoxDD2RC
53 endif
54
55
56 #
57 # VBoxDDU (shared object)
58 #
59 VBoxDDU_TEMPLATE = VBoxR3DllWarnNoPic
60 VBoxDDU_NAME = $(basename $(notdir $(LIB_DDU)))
61 VBoxDDU_INST.darwin = $(INST_DLL) $(INST_TESTCASE)
62 VBoxDDU_DEFS = IN_VBOXDDU
63 ifdef VBOX_WITH_VUSB
64 VBoxDDU_DEFS += VBOX_WITH_VUSB
65 endif
66 ifdef VBOX_WITH_USB
67 VBoxDDU_DEFS += VBOX_WITH_USB IN_USBLIB
68 VBoxDDU_SDKS.win = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK)
69 if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
70 VBoxDDU_DEFS += VBOX_WITH_EHCI_IMPL
71 endif
72 if defined(VBOX_WITH_XHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
73 VBoxDDU_DEFS += VBOX_WITH_XHCI_IMPL
74 endif
75 else
76 VBoxDDU_SDKS.win = ReorderCompilerIncs $(VBOX_WINPSDK)
77 endif
78 VBoxDDU_SOURCES = \
79 Storage/VSCSI/VSCSIDevice.cpp \
80 Storage/VSCSI/VSCSILun.cpp \
81 Storage/VSCSI/VSCSILunSbc.cpp \
82 Storage/VSCSI/VSCSILunMmc.cpp \
83 Storage/VSCSI/VSCSISense.cpp \
84 Storage/VSCSI/VSCSIIoReq.cpp \
85 Storage/VSCSI/VSCSIVpdPagePool.cpp \
86 build/VBoxDDUDeps.cpp
87
88 ifdef VBOX_WITH_VSCSI_SSC
89 VBoxDDU_SOURCES += Storage/VSCSI/VSCSILunSsc.cpp
90 VBoxDDU_DEFS += VBOX_WITH_VSCSI_SSC
91 endif
92 ifdef VBOX_WITH_USB
93 VBoxDDU_INCS.os2 += \
94 $(PATH_ROOT)/src/VBox/HostDrivers/VBoxUSB/os2
95 endif
96 VBoxDDU_LIBS = \
97 $(LIB_RUNTIME) \
98 $(PATH_STAGE_LIB)/StorageLib$(VBOX_SUFF_LIB)
99 ifdef VBOX_WITH_USB
100 VBoxDDU_LIBS += \
101 $(PATH_STAGE_LIB)/USBLib$(VBOX_SUFF_LIB)
102 VBoxDDU_LIBS.win += \
103 $(PATH_STAGE_LIB)/VBoxDrvCfg$(VBOX_SUFF_LIB) \
104 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/Newdev.lib
105 endif
106 VBoxDDU_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxDDU.dylib
107 ifdef VBOX_WITH_USB
108 VBoxDDU_LDFLAGS.darwin += -framework IOKit
109 endif
110
111 VBoxDDU_LDFLAGS.linux = $(VBOX_GCC_NO_UNDEFINED)
112 $(call VBOX_SET_VER_INFO_DLL,VBoxDDU,VirtualBox VMM Devices and Drivers Utilities)
113
114 #
115 # VBoxDD (shared object)
116 #
117 VBoxDD_TEMPLATE = VBoxR3DllWarnNoPic
118 VBoxDD_SDKS.win = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK) VBOX_NTDLL
119 Storage/DrvHostDVD.cpp_SDKS.win = ReorderCompilerIncs $(VBOX_WINDDK)
120 VBoxDD_INCS = \
121 build \
122 Network/slirp \
123 $(VBOX_GRAPHICS_INCS)
124 VBoxDD_DEFS = \
125 VBOX_ACPI \
126 VBOX_HGCM_HOST_CODE \
127 $(if $(VBOX_WITH_HGCM),VBOX_WITH_HGCM,) \
128 $(if $(VBOX_BIOS_DMI_FALLBACK),VBOX_BIOS_DMI_FALLBACK,) \
129 VBOX_WITH_DMI_CHASSIS \
130 VBOX_WITH_DMI_OEMSTRINGS \
131 $(if $(VBOX_WITH_NEW_LPC_DEVICE),VBOX_WITH_NEW_LPC_DEVICE,)
132 VBoxDD_DEFS.win = _WIN32_WINNT=0x0510
133 ifeq ($(KBUILD_TARGET_ARCH),x86)
134 VBoxDD_DEFS.darwin = VBOX_WITH_2X_4GB_ADDR_SPACE
135 endif
136 VBoxDD_SOURCES = \
137 build/VBoxDD.cpp \
138 \
139 Input/DevPS2.cpp \
140 Input/PS2K.cpp \
141 Input/PS2M.cpp \
142 Input/UsbKbd.cpp \
143 Input/UsbMouse.cpp \
144 Bus/DevPCI.cpp \
145 Bus/DevPciIch9.cpp \
146 Bus/MsiCommon.cpp \
147 Bus/MsixCommon.cpp \
148 EFI/DevSmc.cpp \
149 Graphics/DevVGA.cpp \
150 Storage/DevATA.cpp \
151 PC/DevPit-i8254.cpp \
152 PC/DevPIC.cpp \
153 PC/DevACPI.cpp \
154 PC/ACPI/VBoxAcpi.cpp \
155 PC/DevRTC.cpp \
156 PC/DevPcBios.cpp \
157 PC/DevFwCommon.cpp \
158 PC/DevPcArch.cpp \
159 $(if $(VBOX_WITH_NEW_LPC_DEVICE),PC/DevLpc-new.cpp,) \
160 GIMDev/GIMDev.cpp \
161 GIMDev/DrvUDP.cpp \
162 VMMDev/VMMDev.cpp \
163 $(if $(VBOX_WITH_HGCM),VMMDev/VMMDevHGCM.cpp,) \
164 VMMDev/VMMDevTesting.cpp \
165 Network/DevPCNet.cpp \
166 PC/DevDMA.cpp \
167 PC/DevHPET.cpp \
168 PC/DevIoApic.cpp \
169 Storage/DevFdc.cpp \
170 Parallel/DevParallel.cpp \
171 \
172 Input/DrvKeyboardQueue.cpp \
173 Input/DrvMouseQueue.cpp \
174 Network/DrvIntNet.cpp \
175 Network/DrvDedicatedNic.cpp \
176 PC/DrvACPI.cpp \
177 PC/DrvAcpiCpu.cpp \
178 Serial/DrvNamedPipe.cpp \
179 Serial/DrvTCP.cpp \
180 Serial/DrvRawFile.cpp \
181 Storage/Debug.cpp \
182 Storage/DrvVD.cpp \
183 Storage/ATAPIPassthrough.cpp \
184 Storage/IOBufMgmt.cpp \
185 Network/DrvNetSniffer.cpp \
186 Network/Pcap.cpp
187 ifn1of ($(KBUILD_TARGET), os2)
188 VBoxDD_SOURCES += Storage/DrvHostBase.cpp
189 endif
190 ifn1of ($(KBUILD_TARGET), os2)
191 VBoxDD_SOURCES += Storage/DrvHostDVD.cpp
192 endif
193 ifn1of ($(KBUILD_TARGET), darwin freebsd os2 solaris)
194 VBoxDD_SOURCES += Storage/DrvHostFloppy.cpp
195 endif
196
197 if defined(VBOX_WITH_NEW_SERIAL)
198 VBoxDD_SOURCES += \
199 Serial/DevSerialNew.cpp \
200 Serial/DrvCharNew.cpp \
201 Serial/DrvHostSerialNew.cpp
202 else
203 VBoxDD_SOURCES += \
204 Serial/DevSerial.cpp \
205 Serial/DrvChar.cpp
206 ifn1of ($(KBUILD_TARGET), os2)
207 VBoxDD_SOURCES += \
208 Serial/DrvHostSerial.cpp
209 endif
210 endif
211
212 ifn1of ($(KBUILD_TARGET), darwin)
213 VBoxDD_SOURCES += Storage/HBDMgmt-generic.cpp
214 endif
215
216 VBoxDD_SOURCES.darwin += \
217 Storage/HBDMgmt-darwin.cpp \
218 Storage/DrvHostBase-darwin.cpp
219
220 VBoxDD_SOURCES.freebsd += \
221 Storage/DrvHostBase-freebsd.cpp
222
223 VBoxDD_SOURCES.linux += \
224 Storage/DrvHostBase-linux.cpp
225
226 VBoxDD_SOURCES.solaris += \
227 Storage/DrvHostBase-solaris.cpp
228
229 VBoxDD_SOURCES.win += \
230 Storage/DrvHostBase-win.cpp
231
232 #VBoxDD_SOURCES.win += Storage/HBDMgmt-win.cpp #Disabled until remaining issues are sorted out
233
234 VBoxDD_LIBS = # more later.
235 VBoxDD_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxDD.dylib \
236 -framework CoreAudio \
237 -framework AudioUnit \
238 -framework AudioToolbox \
239 -framework IOKit \
240 -framework Carbon \
241 -framework DiskArbitration \
242 -framework SystemConfiguration
243 VBoxDD_LDFLAGS.linux = $(VBOX_GCC_NO_UNDEFINED)
244
245 # --- Tracing bits. ---
246
247 ifdef VBOX_WITH_DTRACE_R3
248 VBoxDD_DEFS += VBOX_WITH_DTRACE
249 VBoxDD_USES += dtrace
250 VBoxDD_SOURCES += build/VBoxDD.d
251 endif
252
253 # --- Graphics bits. ---
254
255 ifdef VBOX_WITH_CRHGSMI
256 VBoxDD_DEFS += VBOX_WITH_CRHGSMI
257 endif
258 ifdef VBOXWDDM_TEST_UHGSMI
259 VBoxDD_DEFS += VBOXWDDM_TEST_UHGSMI
260 endif
261 ifdef VBOXWDDM_WITH_VBVA
262 VBoxDD_DEFS += VBOXWDDM_WITH_VBVA
263 endif
264 ifdef VBOX_WITH_VIDEOHWACCEL
265 VBoxDD_DEFS += VBOX_WITH_VIDEOHWACCEL
266 endif
267
268 ifdef VBOX_WITH_HGSMI
269 VBoxDD_DEFS += VBOX_WITH_HGSMI
270 VBoxDD_SOURCES += \
271 Graphics/DevVGA_VBVA.cpp \
272 Graphics/HGSMI/HGSMIHost.cpp
273 VBoxDD_LIBS += \
274 $(PATH_STAGE_LIB)/HGSMIHostR3Lib$(VBOX_SUFF_LIB)
275 endif
276
277 ifdef VBOX_WITH_WDDM
278 VBoxDD_DEFS += VBOX_WITH_WDDM
279 VBoxDD_SOURCES += \
280 Graphics/HGSMI/SHGSMIHost.cpp
281 endif
282
283 ifdef VBOX_WITH_VMSVGA
284 VBoxDD_DEFS += VBOX_WITH_VMSVGA
285 VBoxDD_SOURCES += Graphics/DevVGA-SVGA.cpp
286 endif
287 ifdef VBOX_WITH_VMSVGA3D
288 VBoxDD_DEFS += VBOX_WITH_VMSVGA3D
289 VBoxDD_SOURCES += \
290 Graphics/DevVGA-SVGA3d.cpp \
291 Graphics/DevVGA-SVGA3d-info.cpp \
292 Graphics/DevVGA-SVGA3d-shared.cpp \
293 Graphics/DevVGA-SVGA3d-savedstate.cpp
294 if "$(KBUILD_TARGET)" == "win" && !defined(VBOX_WITH_VMSVGA3D_USE_OPENGL)
295 VBoxDD_DEFS += VMSVGA3D_DIRECT3D
296 VBoxDD_SOURCES += Graphics/DevVGA-SVGA3d-win.cpp
297 VBoxDD_LIBS.win += d3d9.lib $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib
298 VBoxDD_LDFLAGS.win += /DELAYLOAD:d3d9.dll
299 else
300 VBoxDD_DEFS += VMSVGA3D_OPENGL
301 VBoxDD_SOURCES += \
302 Graphics/DevVGA-SVGA3d-ogl.cpp \
303 $(VBoxDD_0_OUTDIR)/VBoxSVGA3DLazyLoad.asm
304 VBoxDD_SOURCES.darwin += \
305 $(VBoxDD_0_OUTDIR)/VBoxSVGA3DObjCLazyLoad.asm
306 VBoxDD_CLEAN += $(VBoxDD_0_OUTDIR)/VBoxSVGA3DLazyLoad.asm
307 $$(VBoxDD_0_OUTDIR)/VBoxSVGA3DLazyLoad.asm: $(PATH_SUB_CURRENT)/Graphics/VBoxSVGA3D.def $(VBOX_DEF_2_LAZY_LOAD) | $$(dir $$@)
308 $(call MSG_TOOL,VBoxDef2LazyLoad,VBoxDD,$(filter %.def, $^),$@)
309 $(QUIET)$(RM) -f -- "$@"
310 $(VBOX_DEF_2_LAZY_LOAD) --explicit-load-function --library VBoxSVGA3D --output "$@" $(filter %.def, $^)
311 $$(VBoxDD_0_OUTDIR)/VBoxSVGA3DObjCLazyLoad.asm: $(PATH_SUB_CURRENT)/Graphics/VBoxSVGA3DObjC.def $(VBOX_DEF_2_LAZY_LOAD) | $$(dir $$@)
312 $(call MSG_TOOL,VBoxDef2LazyLoad,VBoxDD,$(filter %.def, $^),$@)
313 $(QUIET)$(RM) -f -- "$@"
314 $(VBOX_DEF_2_LAZY_LOAD) --explicit-load-function --library VBoxSVGA3DObjC --output "$@" $(filter %.def, $^)
315
316 VBoxDD_LIBS.linux += GL X11
317 VBoxDD_LIBS.win += $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Opengl32.lib
318 VBoxDD_LDFLAGS.darwin += -framework OpenGL
319 VBoxDD_DEFS.darwin += VBOX_VMSVGA3D_DUAL_OPENGL_PROFILE
320 if 0 # Use the OpenGL 3.2 Core profile (see also VBoxSVGA3D_DEFS.darwin and VBoxSVGA3DObjC_DEFS.darwin).
321 VBoxDD_DEFS.darwin += VBOX_VMSVGA3D_DEFAULT_OGL_PROFILE=3.2 VBOX_VMSVGA3D_OTHER_OGL_PROFILE=2.1
322 else
323 VBoxDD_DEFS.darwin += VBOX_VMSVGA3D_DEFAULT_OGL_PROFILE=2.1 VBOX_VMSVGA3D_OTHER_OGL_PROFILE=3.2
324 endif
325 endif
326 if1of ($(VBOX_DEF_MACOSX_VERSION_MIN), 10.6 10.5 10.4)
327 Graphics/DevVGA-SVGA3d.cpp_CXXFLAGS.darwin = -F$(VBOX_PATH_MACOSX_SDK_10_7)/System/Library/Frameworks/
328 Graphics/DevVGA-SVGA3d-info.cpp_CXXFLAGS.darwin = -F$(VBOX_PATH_MACOSX_SDK_10_7)/System/Library/Frameworks/
329 Graphics/DevVGA-SVGA3d-shared.cpp_CXXFLAGS.darwin = -F$(VBOX_PATH_MACOSX_SDK_10_7)/System/Library/Frameworks/
330 Graphics/DevVGA-SVGA3d-savedstate.cpp_CXXFLAGS.darwin = -F$(VBOX_PATH_MACOSX_SDK_10_7)/System/Library/Frameworks/
331 Graphics/DevVGA-SVGA3d-ogl.cpp_CXXFLAGS.darwin = -F$(VBOX_PATH_MACOSX_SDK_10_7)/System/Library/Frameworks/
332 endif
333 endif
334
335 ifdef VBOX_WITH_VDMA
336 VBoxDD_DEFS += VBOX_WITH_VDMA
337 VBoxDD_SOURCES += \
338 Graphics/DevVGA_VDMA.cpp
339 endif
340
341 ifdef VBOX_VDMA_WITH_WATCHDOG
342 VBoxDD_DEFS += VBOX_VDMA_WITH_WATCHDOG
343 endif
344
345 ifdef VBOX_WITH_PXE_ROM
346 VBoxDD_DEFS += VBOX_WITH_PXE_ROM
347 endif
348
349 # --- USB bits. ---
350
351 ifdef VBOX_WITH_USB
352 VBoxDD_DEFS += VBOX_WITH_USB
353 VBoxDD_SOURCES += \
354 USB/vrdp/USBProxyDevice-vrdp.cpp \
355 USB/usbip/USBProxyDevice-usbip.cpp
356
357 VBoxDD_DEFS.darwin += VUSB_HAVE_USBPROXY_DEVICE
358 VBoxDD_SOURCES.darwin += \
359 USB/USBProxyDevice.cpp \
360 USB/darwin/USBProxyDevice-darwin.cpp
361
362 VBoxDD_DEFS.linux += \
363 VUSB_HAVE_USBPROXY_DEVICE \
364 $(if $(VBOX_WITH_LINUX_COMPILER_H),VBOX_WITH_LINUX_COMPILER_H,) \
365 $(if $(VBOX_USB_WITH_SYSFS),VBOX_USB_WITH_SYSFS,)
366 VBoxDD_SOURCES.linux += \
367 USB/USBProxyDevice.cpp \
368 USB/linux/USBProxyDevice-linux.cpp
369
370 VBoxDD_DEFS.os2 += VUSB_HAVE_USBPROXY_DEVICE
371 VBoxDD_INCS.os2 += $(PATH_ROOT)/src/VBox/HostDrivers/VBoxUSB/os2
372 VBoxDD_SOURCES.os2 += \
373 USB/USBProxyDevice.cpp \
374 USB/os2/USBProxyDevice-os2.cpp
375
376 VBoxDD_DEFS.win += VUSB_HAVE_USBPROXY_DEVICE
377 VBoxDD_SOURCES.win += \
378 USB/USBProxyDevice.cpp \
379 USB/win/USBProxyDevice-win.cpp
380
381 VBoxDD_DEFS.solaris += VUSB_HAVE_USBPROXY_DEVICE
382 VBoxDD_SOURCES.solaris+= \
383 USB/USBProxyDevice.cpp \
384 USB/solaris/USBProxyDevice-solaris.cpp
385
386 VBoxDD_DEFS.freebsd += VUSB_HAVE_USBPROXY_DEVICE
387 VBoxDD_SOURCES.freebsd+= \
388 USB/USBProxyDevice.cpp \
389 USB/freebsd/USBProxyDevice-freebsd.cpp
390
391 ifdef VBOX_WITH_SCSI
392 VBoxDD_SOURCES += \
393 Storage/UsbMsd.cpp
394 endif
395
396 if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
397 VBoxDD_DEFS += VBOX_WITH_EHCI_IMPL
398 VBoxDD_SOURCES += \
399 USB/DevEHCI.cpp
400 endif
401
402 if defined(VBOX_WITH_XHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
403 VBoxDD_DEFS += VBOX_WITH_XHCI_IMPL
404 VBoxDD_SOURCES += \
405 USB/DevXHCI.cpp
406 endif
407
408 if defined(VBOX_WITH_USB_VIDEO_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
409 if1of ($(KBUILD_TARGET), linux)
410 VBoxDD_DEFS += VBOX_WITH_USB_VIDEO_IMPL
411 VBoxDD_SOURCES += \
412 $(PATH_ROOT)/src/VBox/ExtPacks/Puel/UsbWebcam/UsbWebcam.cpp \
413 $(PATH_ROOT)/src/VBox/ExtPacks/Puel/UsbWebcam/UsbWebcamDesc.cpp \
414 $(PATH_ROOT)/src/VBox/ExtPacks/Puel/UsbWebcam/jpggen.cpp \
415 $(PATH_ROOT)/src/VBox/ExtPacks/Puel/UsbWebcam/DrvHostWebcam/DrvHostWebcam.cpp \
416 $(PATH_ROOT)/src/VBox/ExtPacks/Puel/UsbWebcam/DrvHostWebcam/JPEGEnc.cpp
417 $(PATH_ROOT)/src/VBox/ExtPacks/Puel/UsbWebcam/DrvHostWebcam/JPEGEnc.cpp_INCS = \
418 $(VBOX_JPEG_INCS)
419 VBoxDD_SOURCES.linux += \
420 $(PATH_ROOT)/src/VBox/ExtPacks/Puel/UsbWebcam/DrvHostWebcam/HostWebcam-v4l2.cpp
421 VBoxDD_LIBS += \
422 $(PATH_STAGE_LIB)/VBox-libjpeg$(VBOX_SUFF_LIB)
423 endif
424 endif
425
426 endif # VBOX_WITH_USB
427
428 ifdef VBOX_WITH_VUSB
429 VBoxDD_DEFS += VBOX_WITH_VUSB
430 VBoxDD_SOURCES += \
431 USB/DevOHCI.cpp \
432 USB/DrvVUSBRootHub.cpp \
433 USB/VUSBDevice.cpp \
434 USB/VUSBSniffer.cpp \
435 USB/VUSBSnifferPcapNg.cpp \
436 USB/VUSBSnifferUsbMon.cpp \
437 USB/VUSBSnifferVmx.cpp \
438 USB/VUSBUrb.cpp \
439 USB/VUSBUrbPool.cpp \
440 USB/VUSBUrbTrace.cpp
441 endif
442
443 # --- Networking bits. ---
444
445 ifdef VBOX_WITH_INIP
446 ifndef LWIP_SOURCES
447 include $(PATH_SUB_CURRENT)/Network/lwip-new/Config.kmk
448 endif
449 VBoxDD_DEFS += VBOX_WITH_INIP
450 VBoxDD_SOURCES += \
451 Network/DevINIP.cpp \
452 $(addprefix Network/lwip-new/,$(LWIP_SOURCES))
453 VBoxDD_INCS += \
454 Network \
455 $(addprefix Network/lwip-new/,$(LWIP_INCS))
456 endif # VBOX_WITH_INIP
457
458 ifdef VBOX_WITH_E1000
459 VBoxDD_DEFS += VBOX_WITH_E1000
460 VBoxDD_SOURCES += \
461 Network/DevE1000.cpp \
462 Network/DevE1000Phy.cpp \
463 Network/DevEEPROM.cpp
464 endif
465
466 ifdef VBOX_WITH_VIRTIO
467 VBoxDD_DEFS += VBOX_WITH_VIRTIO
468 VBoxDD_SOURCES += \
469 VirtIO/Virtio.cpp \
470 Network/DevVirtioNet.cpp
471 endif
472
473 ifdef VBOX_WITH_UDPTUNNEL
474 VBoxDD_DEFS += VBOX_WITH_UDPTUNNEL
475 VBoxDD_SOURCES += \
476 Network/DrvUDPTunnel.cpp
477 endif
478
479 ifdef VBOX_WITH_VDE
480 VBoxDD_DEFS += VBOX_WITH_VDE
481 VBoxDD_SOURCES += \
482 Network/DrvVDE.cpp \
483 Network/VDEPlug.cpp
484 endif
485
486 ifdef VBOX_WITH_NETSHAPER
487 VBoxDD_DEFS += VBOX_WITH_NETSHAPER
488 VBoxDD_SOURCES += \
489 Network/DrvNetShaper.cpp
490 endif
491
492 # --- Storage bits. ---
493
494 ifdef VBOX_WITH_AHCI
495 VBoxDD_DEFS += VBOX_WITH_AHCI IN_AHCI_R3
496 VBoxDD_SOURCES += \
497 Storage/DevAHCI.cpp
498 endif
499
500 ifdef VBOX_WITH_BUSLOGIC
501 VBoxDD_DEFS += VBOX_WITH_BUSLOGIC
502 VBoxDD_SOURCES += \
503 Storage/DevBusLogic.cpp \
504 Storage/VBoxSCSI.cpp
505 endif
506
507 ifdef VBOX_WITH_LSILOGIC
508 VBoxDD_DEFS += VBOX_WITH_LSILOGIC
509 VBoxDD_SOURCES += \
510 Storage/DevLsiLogicSCSI.cpp
511 endif
512
513 if defined(VBOX_WITH_NVME_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
514 VBoxDD_DEFS += VBOX_WITH_NVME_IMPL
515 VBoxDD_SOURCES += \
516 Storage/DevNVMe.cpp
517 endif
518
519 ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
520 VBoxDD_DEFS += VBOX_WITH_PDM_ASYNC_COMPLETION
521 endif
522
523 ifdef VBOX_WITH_SCSI
524 VBoxDD_DEFS += VBOX_WITH_SCSI
525 VBoxDD_SOURCES += \
526 Storage/DrvSCSI.cpp
527 endif
528
529 ifdef VBOX_WITH_ISCSI
530 $(eval $(call def_vbox_lwip_flags, \
531 VBoxDD, Storage/DrvVD.cpp, Network/lwip-new))
532 endif
533
534 ifdef VBOX_WITH_DRV_DISK_INTEGRITY
535 VBoxDD_DEFS += VBOX_WITH_DRV_DISK_INTEGRITY
536 VBoxDD_SOURCES += \
537 Storage/DrvDiskIntegrity.cpp \
538 Storage/DrvRamDisk.cpp
539 VBoxDD_LIBS += \
540 $(PATH_STAGE_LIB)/StorageDbgLib$(VBOX_SUFF_LIB)
541 endif
542
543 ifdef VBOX_WITH_EFI
544 VBoxDD_DEFS += VBOX_WITH_EFI
545 VBoxDD_SOURCES += EFI/DevEFI.cpp
546 EFI/DevEFI.cpp_INCS += EFI/Firmware/BaseTools/Source/C/Include
547 EFI/DevEFI.cpp_INCS.x86 += EFI/Firmware/BaseTools/Source/C/Include/Ia32
548 EFI/DevEFI.cpp_INCS.amd64 += EFI/Firmware/BaseTools/Source/C/Include/X64
549 endif
550
551 if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
552 VBoxDD_DEFS += VBOX_WITH_PCI_PASSTHROUGH_IMPL
553 VBoxDD_SOURCES += \
554 Bus/DevPciRaw.cpp \
555 Bus/DrvPciRaw.cpp
556 endif
557
558 ifdef VBOX_WITH_MSI_DEVICES
559 VBoxDD_DEFS += VBOX_WITH_MSI_DEVICES
560 endif
561
562 ifdef VBOX_WITH_DYNAMIC_DSDT
563 VBoxDD_DEFS += VBOX_WITH_DYNAMIC_DSDT
564 endif
565
566 # --- Audio bits (see also VBOX_AUDIO_DEFS in ./Config.kmk). ---
567
568 VBoxDD_DEFS += $(VBOX_AUDIO_DEFS)
569 VBoxDD_SOURCES += \
570 Audio/DevIchAc97.cpp \
571 Audio/DevSB16.cpp \
572 Audio/DevHDA.cpp \
573 Audio/DevHDACommon.cpp \
574 Audio/HDACodec.cpp \
575 Audio/HDAStream.cpp \
576 Audio/HDAStreamChannel.cpp \
577 Audio/HDAStreamMap.cpp \
578 Audio/HDAStreamPeriod.cpp \
579 Audio/AudioMixBuffer.cpp \
580 Audio/AudioMixer.cpp \
581 Audio/DrvAudio.cpp \
582 Audio/DrvAudioCommon.cpp \
583 Audio/DrvHostNullAudio.cpp
584
585 ifdef VBOX_WITH_AUDIO_DEBUG
586 VBoxDD_DEFS += VBOX_WITH_AUDIO_DEBUG
587 VBoxDD_SOURCES += \
588 Audio/DrvHostDebugAudio.cpp
589 endif
590
591 ifdef VBOX_WITH_AUDIO_VALIDATIONKIT
592 VBoxDD_DEFS += VBOX_WITH_AUDIO_VALIDATIONKIT
593 VBoxDD_SOURCES += \
594 Audio/DrvHostValidationKit.cpp
595 endif
596
597 ifeq ($(KBUILD_TARGET),darwin)
598 VBoxDD_SOURCES += \
599 Audio/DrvHostCoreAudio.cpp
600 endif
601
602 ifeq ($(KBUILD_TARGET),win)
603 VBoxDD_SOURCES += \
604 Audio/DrvHostDSound.cpp
605 ifdef VBOX_WITH_AUDIO_MMNOTIFICATION_CLIENT
606 VBoxDD_SOURCES += \
607 Audio/VBoxMMNotificationClient.cpp
608 VBoxDD_DEFS += VBOX_WITH_AUDIO_MMNOTIFICATION_CLIENT
609 endif
610 endif
611
612 ifdef VBOX_WITH_AUDIO_OSS
613 VBoxDD_DEFS += VBOX_WITH_AUDIO_OSS
614 VBoxDD_SOURCES += \
615 Audio/DrvHostOSSAudio.cpp
616 endif
617
618 ifdef VBOX_WITH_AUDIO_ALSA
619 VBoxDD_DEFS += VBOX_WITH_AUDIO_ALSA
620 VBoxDD_SOURCES += \
621 Audio/DrvHostALSAAudio.cpp \
622 Audio/alsa_stubs.c
623 endif
624
625 ifdef VBOX_WITH_AUDIO_PULSE
626 VBoxDD_DEFS += VBOX_WITH_AUDIO_PULSE
627 VBoxDD_SOURCES += \
628 Audio/DrvHostPulseAudio.cpp \
629 Audio/pulse_stubs.c
630 endif
631
632 # --- WARNING! SLIRP MESS AHEAD! ;-) ---
633 VBOX_SLIRP_SOURCES = \
634 Network/DrvNAT.cpp \
635 Network/slirp/bootp.c \
636 Network/slirp/debug.c \
637 Network/slirp/ip_icmp.c \
638 Network/slirp/ip_input.c \
639 Network/slirp/ip_output.c \
640 Network/slirp/misc.c \
641 Network/slirp/sbuf.c \
642 Network/slirp/slirp.c \
643 Network/slirp/slirp_dns.c \
644 Network/slirp/socket.c \
645 Network/slirp/tcp_input.c \
646 Network/slirp/tcp_output.c \
647 Network/slirp/tcp_subr.c \
648 Network/slirp/tcp_timer.c \
649 Network/slirp/udp.c \
650 Network/slirp/hostres.c \
651 Network/slirp/dnsproxy/hash.c \
652 Network/slirp/tftp.c \
653 Network/slirp/dnsproxy/dnsproxy.c
654
655 ifeq ($(KBUILD_TARGET), win)
656 VBOX_SLIRP_SOURCES += Network/slirp/ip_icmpwin.c
657 else ifneq ($(KBUILD_TARGET),darwin)
658 # helper for debugging unprivileged
659# Network/slirp/ip_icmp.c_DEFS += VBOX_RAWSOCK_DEBUG_HELPER
660# VBOX_SLIRP_SOURCES += ../NetworkServices/NAT/getrawsock.c
661 endif
662
663 ifneq ($(KBUILD_TARGET), win)
664 VBOX_SLIRP_SOURCES += Network/slirp/resolv_conf_parser.c
665 endif
666
667 VBOX_SLIRP_BSD_ARCH = $(subst x86,i386,$(KBUILD_TARGET_ARCH))
668 VBOX_SLIRP_BSD_SOURCES += \
669 Network/slirp/bsd/kern/kern_mbuf.c \
670 Network/slirp/bsd/kern/uipc_mbuf.c \
671 Network/slirp/bsd/kern/uipc_mbuf2.c \
672 Network/slirp/bsd/$(VBOX_SLIRP_BSD_ARCH)/in_cksum.c
673 VBOX_SLIRP_ALIAS_SOURCES = \
674 Network/slirp/libalias/alias.c \
675 Network/slirp/libalias/alias_db.c \
676 Network/slirp/libalias/alias_mod.c \
677 Network/slirp/libalias/alias_proxy.c \
678 Network/slirp/libalias/alias_ftp.c \
679 Network/slirp/libalias/alias_nbt.c \
680 Network/slirp/libalias/alias_util.c
681
682 # Enable VBOX_WITH_DNSMAPPING_IN_HOSTRESOLVER here for a while, then move to
683 # $(file)_DEFS or clean the code disabled with this definition.
684 VBOX_WITH_DNSMAPPING_IN_HOSTRESOLVER=1
685
686 # dump memory related operations.
687 Network/slirp/misc.c_DEFS += $(if $(VBOX_NAT_MEM_DEBUG),VBOX_NAT_MEM_DEBUG,)
688
689 VBoxDD_SOURCES += $(VBOX_SLIRP_SOURCES)
690 define def_vbox_slirp_cflags
691 $(file)_DEFS += \
692 $(if $(VBOX_WITH_SLIRP_MEMORY_CHECK),RTMEM_WRAP_TO_EF_APIS,) \
693 $(if $(VBOX_WITH_DEBUG_NAT_SOCKETS),VBOX_WITH_DEBUG_NAT_SOCKETS,) \
694 $(if $(VBOX_WITH_DNSMAPPING_IN_HOSTRESOLVER),VBOX_WITH_DNSMAPPING_IN_HOSTRESOLVER,) \
695 $(if $(VBOX_WITH_NAT_SEND2HOME),VBOX_WITH_NAT_SEND2HOME,) \
696 $(if $(VBOX_WITH_HIDDEN_TCPTEMPLATE),VBOX_WITH_HIDDEN_TCPTEMPLATE,) \
697 $(if $(VBOX_WITH_SLIRP_MT),VBOX_WITH_SLIRP_MT,)
698 $(file)_INCS += \
699 $(1)/slirp/bsd/sys \
700 $(1)/slirp/bsd/sys/sys \
701 $(1)/slirp/bsd/$(VBOX_SLIRP_BSD_ARCH)/include \
702 $(1)/slirp/bsd/netinet \
703 $(1)/slirp \
704 $(1)/slirp/libalias
705 ifeq ($(KBUILD_TARGET),win)
706 $(file)_CFLAGS = -wd4018
707 else
708 $(file)_CFLAGS += -Wno-sign-compare -Wno-format -Wno-bad-function-cast
709 endif
710 endef
711
712 $(foreach file,$(VBOX_SLIRP_SOURCES),$(eval $(call def_vbox_slirp_cflags, Network)))
713
714 VBoxDD_SOURCES += $(VBOX_SLIRP_ALIAS_SOURCES)
715 define def_vbox_slirp_alias_cflags
716 $(file)_DEFS += VBOX_SLIRP_ALIAS \
717 $(if $(VBOX_WITH_DEBUG_LIBALIAS),VBOX_WITH_DEBUG_LIBALIAS,)
718 $(file)_INCS += \
719 $(1)/slirp/libalias \
720 $(1)/slirp \
721 $(1)/slirp/dnsproxy
722 ifneq ($(KBUILD_TARGET),win)
723 $(file)_CFLAGS += -Wno-shadow
724 endif
725 endef
726 $(foreach file,$(VBOX_SLIRP_ALIAS_SOURCES),$(eval $(call def_vbox_slirp_cflags, Network)))
727 $(foreach file,$(VBOX_SLIRP_ALIAS_SOURCES),$(eval $(call def_vbox_slirp_alias_cflags, Network)))
728
729 VBOX_SLIRP_BSD_SOURCES += $(VBOX_SLIRP_BSD_SOURCES.${KBUILD_TARGET_ARCH})
730 VBoxDD_SOURCES += $(VBOX_SLIRP_BSD_SOURCES)
731 define def_vbox_slirp_bsd_cflags
732 $(file)_DEFS += VBOX_SLIRP_BSD
733 $(file)_INCS += $(1)/slirp/dnsproxy
734 endef
735 $(foreach file,$(VBOX_SLIRP_BSD_SOURCES),$(eval $(call def_vbox_slirp_cflags, Network)))
736 $(foreach file,$(VBOX_SLIRP_BSD_SOURCES),$(eval $(call def_vbox_slirp_bsd_cflags, Network)))
737
738
739 # --- OS specific driver hacks. ---
740
741 ifeq ($(KBUILD_TARGET),freebsd)
742 VBoxDD_SOURCES.freebsd += Network/DrvTAP.cpp
743 endif # freebsd
744
745 VBoxDD_SOURCES.linux += \
746 Network/DrvTAP.cpp \
747 Parallel/DrvHostParallel.cpp
748
749 ifeq ($(KBUILD_TARGET),solaris)
750 ifdef VBOX_WITH_SUID_WRAPPER
751 VBoxDD_DEFS += VBOX_WITH_SUID_WRAPPER
752 endif
753 endif
754
755 VBoxDD_DEFS.win += VBOX_WITH_WIN_PARPORT_SUP
756 VBoxDD_SOURCES.win += \
757 Parallel/DrvHostParallel.cpp
758
759 ifdef VBOX_WITH_VIRTUALKD
760 VBoxDD_DEFS.win += VBOX_WITH_VIRTUALKD
761 VBoxDD_SOURCES.win += \
762 Misc/VirtualKD.cpp
763 endif
764
765 if defined(VBOX_WITH_NETFLT)
766 VBoxDD_DEFS += VBOX_WITH_NETFLT
767 if defined(VBOX_NETFLT_ONDEMAND_BIND)
768 VBoxDD_DEFS.win += VBOX_NETFLT_ONDEMAND_BIND
769 endif
770 endif
771
772 # --- Final bits, mostly libraries for order dependant linkers. ---
773
774 VBoxDD_LIBS += \
775 $(PATH_STAGE_LIB)/VgaDefBiosLogo$(VBOX_SUFF_LIB) \
776 $(LIB_VMM) \
777 $(LIB_RUNTIME)
778 ifeq ($(KBUILD_TARGET),win)
779 VBoxDD_LIBS += \
780 $(LIB_DDU) \
781 $(PATH_STAGE_LIB)/VBoxDD2.lib \
782 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/dxguid.lib
783 else
784 VBoxDD_LIBS += \
785 $(VBoxDDU_1_STAGE_TARGET) \
786 $(VBoxDD2_1_STAGE_TARGET)
787 endif
788
789 ifdef VBOX_WITH_NETFLT
790 VBoxDD_LIBS.win += $(PATH_STAGE_LIB)/WinNetConfig.lib
791 endif
792
793 ifeq ($(KBUILD_TARGET),solaris)
794 VBoxDD_LIBS += adm
795 ifdef VBOX_WITH_SUID_WRAPPER
796 VBoxDD_LIBS += secdb
797 endif
798 ifdef VBOX_WITH_USB
799 VBoxDD_LIBS += aio
800 endif
801 endif
802
803 VBoxDD_LIBS.darwin += \
804 $(LIB_REM)
805
806
807 ifdef VBOX_WITH_DYNAMIC_DSDT
808 VBoxDD_CLEAN += $(VBoxDD_0_OUTDIR)/vboxdsl.hex
809 PC/ACPI/VBoxAcpi.cpp_DEPS = $(VBoxDD_0_OUTDIR)/vboxdsl.hex
810
811 $$(VBoxDD_0_OUTDIR)/vboxdsl.hex: $(PATH_SUB_CURRENT)/PC/vbox.dsl | $$(dir $$@)
812 $(call MSG_TOOL,bin2c,VBoxDD,$<,$@)
813 $(QUIET)$(VBOX_BIN2C) -export VboxDslSource $< $@
814
815 vboxdsl.hex:: $$(VBoxDD_0_OUTDIR)/vboxdsl.hex
816
817 else # !VBOX_WITH_DYNAMIC_DSDT
818 # VBoxAcpi.cpp needs vboxaml.hex which we generate from PC/vbox.dsl
819 VBoxDD_CLEAN += \
820 $(VBoxDD_0_OUTDIR)/vboxaml.hex \
821 $(VBoxDD_0_OUTDIR)/vboxaml.aml \
822 $(VBoxDD_0_OUTDIR)/vboxaml.aml.tmp \
823 $(VBoxDD_0_OUTDIR)/vboxssdt_standard.hex \
824 $(VBoxDD_0_OUTDIR)/vboxssdt_standard.aml \
825 $(VBoxDD_0_OUTDIR)/vboxssdt_standard.aml.tmp \
826 $(VBoxDD_0_OUTDIR)/vboxssdt_cpuhotplug.hex \
827 $(VBoxDD_0_OUTDIR)/vboxssdt_cpuhotplug.aml \
828 $(VBoxDD_0_OUTDIR)/vboxssdt_cpuhotplug.aml.tmp \
829 $(VBoxDD_0_OUTDIR)/vboxssdt_cpuhotplug.aml.pre
830 PC/ACPI/VBoxAcpi.cpp_DEPS = \
831 $(VBoxDD_0_OUTDIR)/vboxaml.hex \
832 $(VBoxDD_0_OUTDIR)/vboxssdt_standard.hex \
833 $(VBoxDD_0_OUTDIR)/vboxssdt_cpuhotplug.hex
834
835 $$(VBoxDD_0_OUTDIR)/vboxaml.hex: $(PATH_SUB_CURRENT)/PC/vbox.dsl | $$(dir $$@)
836 $(call MSG_TOOL,iasl,VBoxDD,$<,$@)
837 $(QUIET)$(VBOX_IASLCMD) -tc -vs -p $@ $<
838 $(QUIET)$(MV) -f $@ $@.tmp
839 $(QUIET)$(SED) -e "s/vboxaml_aml_code/AmlCode/g" \
840 --output $@ $@.tmp
841 $(QUIET)$(RM) -f $@.tmp
842
843 vboxaml.hex:: $$(VBoxDD_0_OUTDIR)/vboxaml.hex
844
845 $$(VBoxDD_0_OUTDIR)/vboxssdt_standard.hex: $(PATH_SUB_CURRENT)/PC/vbox-standard.dsl | $$(dir $$@)
846 $(call MSG_TOOL,iasl,VBoxDD,$<,$@)
847 $(QUIET)$(RM) -f $@ $@.tmp
848 $(QUIET)$(VBOX_IASLCMD) -tc -vs -p $@ $<
849 $(QUIET)$(MV) -f $@ $@.tmp
850 $(QUIET)$(SED) -e "s/AmlCode\|vboxssdt_standard_aml_code/AmlCodeSsdtStandard/g" \
851 --output $@ $@.tmp
852 $(QUIET)$(RM) -f $@.tmp
853
854
855 vboxssdt_standard.hex:: $$(VBoxDD_0_OUTDIR)/vboxssdt_standard.hex
856
857 $$(VBoxDD_0_OUTDIR)/vboxssdt_cpuhotplug.hex: $(PATH_SUB_CURRENT)/PC/vbox-cpuhotplug.dsl | $$(dir $$@)
858 $(call MSG_TOOL,iasl,VBoxDD,$<,$@)
859 $(QUIET)$(RM) -f $@ $@.tmp $@.pre
860 $(QUIET)$(TOOL_$(VBOX_GCC_TOOL)_CC) -E -P -x c -o $@.pre $<
861 $(QUIET)$(SED) -e "s/<NL>/\n/g" \
862 --output $@.pre1 $@.pre
863 $(QUIET)$(VBOX_IASLCMD) -tc -vs -p $@ $@.pre1
864 $(QUIET)$(MV) -f $@ $@.tmp
865 $(QUIET)$(SED) -e "s/AmlCode\|vboxssdt_cpuhotplug_aml_code/AmlCodeSsdtCpuHotPlug/g" \
866 --output $@ $@.tmp
867 $(QUIET)$(RM) -f $@.tmp $@.pre $@.pre1
868
869
870 vboxssdt_cpuhotplug.hex:: $$(VBoxDD_0_OUTDIR)/vboxssdt_cpuhotplug.hex
871
872 endif # !VBOX_WITH_DYNAMIC_DSDT
873 PC/ACPI/VBoxAcpi.cpp_INCS = $(VBoxDD_0_OUTDIR)
874
875 # For finding PCIInternal.h from VBox/pci.h.
876 Bus/DevPCI.cpp_INCS = Bus
877 Bus/DevPciIch9.cpp_INCS = Bus
878 Bus/MsiCommon.cpp_INCS = Bus
879 Bus/MsixCommon.cpp_INCS = Bus
880 Bus/DevPciRaw.cpp_INCS = Bus
881
882 # For finding and generating vbetables.h (see Graphics/BIOS/Makefile.kmk).
883 Graphics/DevVGA.cpp_INCS = $(VgaBiosBin_0_OUTDIR) $(VBOX_GRAPHICS_INCS)
884 Graphics/DevVGA.cpp_DEPS = $(VgaBiosBin_0_OUTDIR)/vbetables.h
885
886 $(call VBOX_SET_VER_INFO_DLL,VBoxDD,VirtualBox VMM Devices and Drivers) # (last!)
887
888
889 ifdef VBOX_WITH_RAW_MODE
890 #
891 # VBoxDDRC (sysmod)
892 #
893 VBoxDDRC_TEMPLATE = VBoxRc
894 ifeq ($(KBUILD_TARGET_ARCH),x86)
895 VBoxDDRC_DEFS.darwin = VBOX_WITH_2X_4GB_ADDR_SPACE
896 endif
897 VBoxDDRC_DEFS = $(if $(VBOX_WITH_HGCM),VBOX_WITH_HGCM,)
898 VBoxDDRC_INCS = build $(VBOX_GRAPHICS_INCS)
899 VBoxDDRC_SOURCES = \
900 Bus/DevPCI.cpp \
901 Bus/DevPciIch9.cpp \
902 Bus/MsiCommon.cpp \
903 Bus/MsixCommon.cpp \
904 EFI/DevSmc.cpp \
905 Graphics/DevVGA.cpp \
906 Input/DevPS2.cpp \
907 Input/PS2K.cpp \
908 Input/PS2M.cpp \
909 PC/DevACPI.cpp \
910 PC/DevIoApic.cpp \
911 PC/DevPit-i8254.cpp \
912 PC/DevPIC.cpp \
913 PC/DevRTC.cpp \
914 PC/DevDMA.cpp \
915 PC/DevHPET.cpp \
916 Storage/DevATA.cpp \
917 Network/DevPCNet.cpp \
918 Serial/DevSerial.cpp \
919 Parallel/DevParallel.cpp \
920 VMMDev/VMMDevTesting.cpp
921
922 VBoxDDRC_DEFS += $(VBOX_AUDIO_DEFS)
923 VBoxDDRC_SOURCES += \
924 Audio/DevHDA.cpp \
925 Audio/DevHDACommon.cpp \
926 Audio/DevIchAc97.cpp
927
928 VBoxDDRC_DEFS += \
929 $(if $(VBOX_WITH_HP_HDA),VBOX_WITH_HP_HDA,) \
930 $(if $(VBOX_WITH_INTEL_HDA),VBOX_WITH_INTEL_HDA,) \
931 $(if $(VBOX_WITH_NVIDIA_HDA),VBOX_WITH_NVIDIA_HDA,)
932
933 ifdef VBOX_WITH_E1000
934 VBoxDDRC_DEFS += VBOX_WITH_E1000
935 VBoxDDRC_SOURCES += \
936 Network/DevE1000.cpp \
937 Network/DevE1000Phy.cpp
938 endif
939
940 ifdef VBOX_WITH_VIRTIO
941 VBoxDDRC_DEFS += VBOX_WITH_VIRTIO
942 VBoxDDRC_SOURCES += \
943 VirtIO/Virtio.cpp \
944 Network/DevVirtioNet.cpp
945 endif
946
947 ifdef VBOX_WITH_HGSMI
948 VBoxDDRC_DEFS += VBOX_WITH_HGSMI
949 endif
950 ifdef VBOX_WITH_WDDM
951 VBoxDDRC_DEFS += VBOX_WITH_WDDM
952 endif
953 ifdef VBOX_WITH_VDMA
954 VBoxDDRC_DEFS += VBOX_WITH_VDMA
955 endif
956 ifdef VBOX_WITH_CRHGSMI
957 VBoxDDRC_DEFS += VBOX_WITH_CRHGSMI
958 endif
959 ifdef VBOXWDDM_WITH_VBVA
960 VBoxDDRC_DEFS += VBOXWDDM_WITH_VBVA
961 endif
962 ifdef VBOX_WITH_VMSVGA
963 VBoxDDRC_DEFS += VBOX_WITH_VMSVGA
964 VBoxDDRC_SOURCES += \
965 Graphics/DevVGA-SVGA.cpp
966 endif
967 ifdef VBOX_WITH_VMSVGA3D
968 VBoxDDRC_DEFS += VBOX_WITH_VMSVGA3D
969 endif
970 ifdef VBOX_VDMA_WITH_WATCHDOG
971 VBoxDDRC_DEFS += VBOX_VDMA_WITH_WATCHDOG
972 endif
973
974 ifdef VBOX_WITH_VUSB
975 VBoxDDRC_DEFS += VBOX_WITH_VUSB
976 VBoxDDRC_SOURCES += \
977 USB/DevOHCI.cpp
978 endif
979
980 ifdef VBOX_WITH_USB
981 VBoxDDRC_DEFS += VBOX_WITH_USB
982 if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
983 VBoxDDRC_DEFS += VBOX_WITH_EHCI_IMPL
984 VBoxDDRC_SOURCES += \
985 USB/DevEHCI.cpp
986 endif
987 if defined(VBOX_WITH_XHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
988 VBoxDDRC_DEFS += VBOX_WITH_XHCI_IMPL
989 VBoxDDRC_SOURCES += \
990 USB/DevXHCI.cpp
991 endif
992 endif
993
994 ifdef VBOX_WITH_VIDEOHWACCEL
995 VBoxDDRC_DEFS += VBOX_WITH_VIDEOHWACCEL
996 endif
997
998 ifdef VBOX_WITH_AHCI
999 VBoxDDRC_DEFS += VBOX_WITH_AHCI IN_AHCI_GC
1000 VBoxDDRC_SOURCES += \
1001 Storage/DevAHCI.cpp
1002 endif
1003
1004 ifdef VBOX_WITH_BUSLOGIC
1005 VBoxDDRC_DEFS += VBOX_WITH_BUSLOGIC
1006 VBoxDDRC_SOURCES += \
1007 Storage/DevBusLogic.cpp
1008 endif
1009
1010 ifdef VBOX_WITH_LSILOGIC
1011 VBoxDDRC_DEFS += VBOX_WITH_LSILOGIC
1012 VBoxDDRC_SOURCES += \
1013 Storage/DevLsiLogicSCSI.cpp
1014 endif
1015
1016 if defined(VBOX_WITH_NVME_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
1017 VBoxDDGC_DEFS += VBOX_WITH_NVME_IMPL
1018 VBoxDDGC_SOURCES += \
1019 Storage/DevNVMe.cpp
1020 endif
1021
1022 if defined(VBOX_WITH_NEW_SERIAL)
1023 VBoxDDRC_SOURCES := \
1024 $(filter-out Serial/DevSerial.cpp, $(VBoxDDRC_SOURCES)) \
1025 Serial/DevSerialNew.cpp
1026 endif
1027
1028 if1of ($(VBOX_LDR_FMT32), pe lx)
1029 VBoxDDRC_LIBS = \
1030 $(PATH_STAGE_LIB)/VMMRCBuiltin$(VBOX_SUFF_LIB) \
1031 $(PATH_STAGE_LIB)/VMMRCImp$(VBOX_SUFF_LIB)
1032 endif
1033 endif # VBOX_WITH_RAW_MODE
1034
1035 $(call VBOX_SET_VER_INFO_RC,VBoxDDRC,VirtualBox VMM Devices and Drivers$(COMMA) raw-mode) # last!
1036
1037
1038 #
1039 # VBoxDD2 (shared object)
1040 #
1041 VBoxDD2_TEMPLATE = VBoxR3DllWarnNoPic
1042 VBoxDD2_DEFS = \
1043 IN_VBOXDD2 \
1044 $(if $(VBOX_WITH_PXE_ROM),VBOX_WITH_PXE_ROM,) \
1045 $(if $(VBOX_WITH_NEW_LPC_DEVICE),VBOX_WITH_NEW_LPC_DEVICE,)
1046 VBoxDD2_INCS := \
1047 build \
1048 $(PATH_SUB_CURRENT)
1049 VBoxDD2_SOURCES = \
1050 build/VBoxDD2.cpp \
1051 $(if $(VBOX_WITH_NEW_LPC_DEVICE),,PC/DevLPC.cpp)
1052 VBoxDD2_LIBS = \
1053 $(PATH_STAGE_LIB)/PcBiosBin$(VBOX_SUFF_LIB) \
1054 $(PATH_STAGE_LIB)/VgaBiosBin$(VBOX_SUFF_LIB) \
1055 $(if $(VBOX_WITH_PXE_ROM),\
1056 $(if $(VBOX_WITH_INTEL_PXE),\
1057 $(PATH_STAGE_LIB)/NetBiosBin$(VBOX_SUFF_LIB),\
1058 $(PATH_STAGE_LIB)/iPxeBiosBin$(VBOX_SUFF_LIB)),) \
1059 $(LIB_VMM) \
1060 $(LIB_RUNTIME)
1061 VBoxDD2_LIBS.darwin += $(LIB_REM)
1062 VBoxDD2_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxDD2.dylib
1063 VBoxDD2_LDFLAGS.linux = $(VBOX_GCC_NO_UNDEFINED)
1064
1065 $(call VBOX_SET_VER_INFO_DLL,VBoxDD2,VirtualBox VMM Devices and Drivers 2) # (last!)
1066
1067 #
1068 # VBoxDDR0 (sysmod)
1069 #
1070 VBoxDDR0_TEMPLATE = VBoxR0
1071 VBoxDDR0_DEFS = IN_RT_R0 $(if $(VBOX_WITH_HGCM),VBOX_WITH_HGCM,) # - WTF is IN_RT_R0 doing here?
1072 VBoxDDR0_DEFS.win += VBOX_WITH_WIN_PARPORT_SUP
1073 VBoxDDR0_INCS = build $(VBOX_GRAPHICS_INCS)
1074 VBoxDDR0_SDKS.win = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK)
1075 VBoxDDR0_SOURCES = \
1076 build/VBoxDDR0.cpp \
1077 Bus/DevPCI.cpp \
1078 Bus/DevPciIch9.cpp \
1079 Bus/MsiCommon.cpp \
1080 Bus/MsixCommon.cpp \
1081 EFI/DevSmc.cpp \
1082 Graphics/DevVGA.cpp \
1083 Input/DevPS2.cpp \
1084 Input/PS2K.cpp \
1085 Input/PS2M.cpp \
1086 PC/DevACPI.cpp \
1087 PC/DevIoApic.cpp \
1088 PC/DevPit-i8254.cpp \
1089 PC/DevPIC.cpp \
1090 PC/DevRTC.cpp \
1091 PC/DevDMA.cpp \
1092 PC/DevHPET.cpp \
1093 Storage/DevATA.cpp \
1094 Network/DevPCNet.cpp \
1095 Serial/DevSerial.cpp \
1096 Parallel/DevParallel.cpp \
1097 VMMDev/VMMDevTesting.cpp \
1098 Network/DrvIntNet.cpp \
1099 Network/DrvDedicatedNic.cpp
1100
1101 VBoxDDR0_SOURCES.win += Parallel/DrvHostParallel.cpp
1102
1103 VBoxDDR0_DEFS += \
1104 $(if $(VBOX_WITH_HGSMI),VBOX_WITH_HGSMI,) \
1105 $(if $(VBOX_WITH_WDDM),VBOX_WITH_WDDM,) \
1106 $(if $(VBOX_WITH_VDMA),VBOX_WITH_VDMA,) \
1107 $(if $(VBOX_WITH_CRHGSMI),VBOX_WITH_CRHGSMI,) \
1108 $(if $(VBOXWDDM_WITH_VBVA),VBOXWDDM_WITH_VBVA,) \
1109 $(if $(VBOX_VDMA_WITH_WATCHDOG),VBOX_VDMA_WITH_WATCHDOG,) \
1110 $(if $(VBOX_WITH_HP_HDA),VBOX_WITH_HP_HDA,) \
1111 $(if $(VBOX_WITH_INTEL_HDA),VBOX_WITH_INTEL_HDA,) \
1112 $(if $(VBOX_WITH_NVIDIA_HDA),VBOX_WITH_NVIDIA_HDA,)
1113
1114 VBoxDDR0_DEFS += $(VBOX_AUDIO_DEFS)
1115 VBoxDDR0_SOURCES += \
1116 Audio/DevHDA.cpp \
1117 Audio/DevHDACommon.cpp \
1118 Audio/DevIchAc97.cpp
1119
1120 ifdef VBOX_WITH_E1000
1121 VBoxDDR0_DEFS += VBOX_WITH_E1000
1122 VBoxDDR0_SOURCES += \
1123 Network/DevE1000.cpp \
1124 Network/DevE1000Phy.cpp
1125 endif
1126
1127 ifdef VBOX_WITH_VIRTIO
1128 VBoxDDR0_DEFS += VBOX_WITH_VIRTIO
1129 VBoxDDR0_SOURCES += \
1130 VirtIO/Virtio.cpp \
1131 Network/DevVirtioNet.cpp
1132 endif
1133
1134 ifdef VBOX_WITH_NETSHAPER
1135 VBoxDDR0_DEFS += VBOX_WITH_NETSHAPER
1136 VBoxDDR0_SOURCES += \
1137 Network/DrvNetShaper.cpp
1138 endif
1139
1140 ifdef VBOX_WITH_VMSVGA
1141 VBoxDDR0_DEFS += VBOX_WITH_VMSVGA
1142 VBoxDDR0_SOURCES += \
1143 Graphics/DevVGA-SVGA.cpp
1144 endif
1145 ifdef VBOX_WITH_VMSVGA3D
1146 VBoxDDR0_DEFS += VBOX_WITH_VMSVGA3D
1147 endif
1148
1149 ifdef VBOX_WITH_VUSB
1150 VBoxDDR0_DEFS += VBOX_WITH_VUSB
1151 VBoxDDR0_SOURCES += \
1152 USB/DevOHCI.cpp
1153 endif
1154 ifdef VBOX_WITH_USB
1155 VBoxDDR0_DEFS += VBOX_WITH_USB
1156 if defined(VBOX_WITH_EHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
1157 VBoxDDR0_DEFS += VBOX_WITH_EHCI_IMPL
1158 VBoxDDR0_SOURCES += \
1159 USB/DevEHCI.cpp
1160 endif
1161 if defined(VBOX_WITH_XHCI_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
1162 VBoxDDR0_DEFS += VBOX_WITH_XHCI_IMPL
1163 VBoxDDR0_SOURCES += \
1164 USB/DevXHCI.cpp
1165 endif
1166 endif
1167
1168 if defined(VBOX_WITH_PCI_PASSTHROUGH_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
1169 VBoxDDR0_SOURCES += \
1170 Bus/DevPciRaw.cpp
1171 endif
1172
1173 ifdef VBOX_WITH_AHCI
1174 VBoxDDR0_DEFS += VBOX_WITH_AHCI IN_AHCI_R0
1175 VBoxDDR0_SOURCES += \
1176 Storage/DevAHCI.cpp
1177 endif
1178
1179 ifdef VBOX_WITH_BUSLOGIC
1180 VBoxDDR0_DEFS += VBOX_WITH_BUSLOGIC
1181 VBoxDDR0_SOURCES += \
1182 Storage/DevBusLogic.cpp
1183 endif
1184
1185 ifdef VBOX_WITH_LSILOGIC
1186 VBoxDDR0_DEFS += VBOX_WITH_LSILOGIC
1187 VBoxDDR0_SOURCES += \
1188 Storage/DevLsiLogicSCSI.cpp
1189 endif
1190
1191 if defined(VBOX_WITH_NVME_IMPL) && !defined(VBOX_WITH_EXTPACK_PUEL)
1192 VBoxDDR0_DEFS += VBOX_WITH_NVME_IMPL
1193 VBoxDDR0_SOURCES += \
1194 Storage/DevNVMe.cpp
1195 endif
1196
1197 if defined(VBOX_WITH_NEW_SERIAL)
1198 VBoxDDR0_SOURCES := \
1199 $(filter-out Serial/DevSerial.cpp, $(VBoxDDR0_SOURCES)) \
1200 Serial/DevSerialNew.cpp
1201 endif
1202
1203 ifdef VBOX_WITH_HGSMI
1204 VBoxDDR0_DEFS += VBOX_WITH_HGSMI
1205 endif
1206 ifdef VBOX_WITH_VIDEOHWACCEL
1207 VBoxDDR0_DEFS += VBOX_WITH_VIDEOHWACCEL
1208 endif
1209
1210 if1of ($(VBOX_LDR_FMT), pe lx)
1211 VBoxDDR0_LIBS = \
1212 $(PATH_STAGE_LIB)/VMMR0Imp$(VBOX_SUFF_LIB) \
1213 $(PATH_STAGE_LIB)/SUPR0$(VBOX_SUFF_LIB)
1214 endif
1215
1216 $(call VBOX_SET_VER_INFO_R0,VBoxDDR0,VirtualBox VMM Devices and Drivers$(COMMA) ring-0) # (last!)
1217
1218
1219 ifdef VBOX_WITH_RAW_MODE
1220 #
1221 # VBoxDD2RC (LGPL sysmod)
1222 #
1223 VBoxDD2RC_TEMPLATE = VBoxRc
1224 VBoxDD2RC_INCS = build
1225 VBoxDD2RC_SOURCES = \
1226 build/VBoxDD2R0.cpp # Dummy to prevent linking errors.
1227 if1of ($(VBOX_LDR_FMT32), pe lx)
1228 VBoxDD2RC_LIBS = \
1229 $(PATH_STAGE_LIB)/VMMRCBuiltin$(VBOX_SUFF_LIB) \
1230 $(PATH_STAGE_LIB)/VMMRCImp$(VBOX_SUFF_LIB)
1231 endif
1232 $(call VBOX_SET_VER_INFO_RC,VBoxDD2RC,VirtualBox VMM Devices and Drivers 2$(COMMA) raw-mode)
1233 endif
1234
1235
1236 #
1237 # VBoxDD2R0 (LGPL sysmod)
1238 #
1239 VBoxDD2R0_TEMPLATE = VBoxR0
1240 VBoxDD2R0_DEFS = IN_RT_R0
1241 VBoxDD2R0_INCS = build
1242 VBoxDD2R0_SOURCES = \
1243 build/VBoxDD2R0.cpp
1244 if1of ($(VBOX_LDR_FMT), pe lx)
1245 VBoxDD2R0_LIBS = \
1246 $(PATH_STAGE_LIB)/VMMR0Imp$(VBOX_SUFF_LIB) \
1247 $(PATH_STAGE_LIB)/SUPR0$(VBOX_SUFF_LIB)
1248 endif
1249 $(call VBOX_SET_VER_INFO_R0,VBoxDD2R0,VirtualBox VMM Devices and Drivers 2$(COMMA) ring-0) # (last!)
1250
1251
1252 #
1253 # Ring-0 Services (library, linked into VMMR0.r0)
1254 #
1255 ServicesR0_TEMPLATE = VBoxR0
1256 ServicesR0_DEFS = IN_INTNET_R0 IN_RT_R0 \
1257 $(if $(VBOX_WITH_PCI_PASSTHROUGH),IN_PCIRAW_R0,) \
1258 $(if $(VBOX_WITH_NAT_SERVICE),VBOX_WITH_NAT_SERVICE,)
1259 ServicesR0_SOURCES = \
1260 Network/SrvIntNetR0.cpp \
1261 $(if $(VBOX_WITH_PCI_PASSTHROUGH),Bus/SrvPciRawR0.cpp,)
1262 Network/SrvIntNetR0.cpp_CXXFLAGS := $(if-expr $(KBUILD_TARGET) == "win",,$(VBOX_GCC_Wno-array_bounds))
1263
1264
1265 #
1266 # Internal Networking - Ring-3 Testcase for the Ring-0 code (a bit hackish).
1267 #
1268 ifdef VBOX_WITH_TESTCASES
1269 PROGRAMS += tstIntNetR0
1270 tstIntNetR0_TEMPLATE = VBOXR3TSTEXE
1271 tstIntNetR0_DEFS = IN_INTNET_R0
1272 tstIntNetR0_SOURCES = \
1273 Network/testcase/tstIntNetR0.cpp
1274 ifneq ($(KBUILD_TARGET),win)
1275 Network/testcase/tstIntNetR0.cpp_CXXFLAGS = $(VBOX_GCC_Wno-array_bounds)
1276 endif
1277 endif
1278
1279
1280 #
1281 # Internal Networking - Ring-3 Testcase for the Ring-0 code (a bit hackish).
1282 #
1283 ifdef VBOX_WITH_TESTCASES
1284 if defined(VBOX_WITH_HARDENING) && "$(KBUILD_TARGET)" == "win"
1285 PROGRAMS += tstIntNetHardened-1
1286 tstIntNetHardened-1_TEMPLATE = VBoxR3HardenedTstExe
1287 tstIntNetHardened-1_NAME = tstIntNet-1
1288 tstIntNetHardened-1_DEFS = PROGRAM_NAME_STR=\"tstIntNet-1\"
1289 tstIntNetHardened-1_SOURCES = ../HostDrivers/Support/SUPR3HardenedMainTemplateTestcase.cpp
1290
1291 DLLS += tstIntNet-1
1292 tstIntNet-1_TEMPLATE = VBoxR3HardenedTstDll
1293 else
1294 PROGRAMS += tstIntNet-1
1295 tstIntNet-1_TEMPLATE = VBOXR3TSTEXE
1296 endif
1297 tstIntNet-1_SOURCES = \
1298 Network/testcase/tstIntNet-1.cpp \
1299 Network/Pcap.cpp
1300 endif
1301
1302
1303 #
1304 # EEPROM device unit test requires cppunit
1305 #
1306 ifdef VBOX_WITH_CPPUNIT_TESTCASES
1307 ifdef VBOX_WITH_E1000
1308 PROGRAMS += tstDevEEPROM
1309 tstDevEEPROM_TEMPLATE = VBOXCPPUNITEXE
1310 tstDevEEPROM_SOURCES = \
1311 Network/testcase/tstDevEEPROM.cpp
1312 tstDevEEPROM_LIBS = \
1313 $(TARGET_VBoxDD)
1314 PROGRAMS += tstDevPhy
1315 tstDevPhy_TEMPLATE = VBOXCPPUNITEXE
1316 tstDevPhy_SOURCES = \
1317 Network/testcase/tstDevPhy.cpp \
1318 Network/DevE1000Phy.cpp
1319 tstDevPhy_DEFS = PHY_UNIT_TEST
1320 endif
1321 endif
1322
1323 #
1324 # Apple SMC Utility.
1325 #
1326 ifdef VBOX_WITH_TESTCASES
1327 PROGRAMS.darwin += VBoxSmcUtil-darwin
1328 VBoxSmcUtil-darwin_TEMPLATE = VBOXR3TSTEXE
1329 VBoxSmcUtil-darwin_SOURCES = EFI/VBoxSmcUtil-darwin.cpp
1330 VBoxSmcUtil-darwin_LDFLAGS = -framework IOKit
1331 endif
1332
1333 #
1334 # PDM device testcase framework.
1335 #
1336 ifdef VBOX_WITH_TESTCASES_TSTDEV
1337 DLLS += tstDeviceVBoxVMMStubs
1338 tstDeviceVBoxVMMStubs_TEMPLATE = VBoxR3DllNoPic
1339 tstDeviceVBoxVMMStubs_SONAME.linux = tstDeviceVBoxVMMStubs.so
1340 tstDeviceVBoxVMMStubs_SONAME.darwin = tstDeviceVBoxVMMStubs.dylib
1341 tstDeviceVBoxVMMStubs_DEFS = IN_VMM_R3 IN_DIS IN_GMM_R3 IN_DBG $(VMM_COMMON_DEFS)
1342 tstDeviceVBoxVMMStubs_LIBS = $(LIB_RUNTIME)
1343
1344 tstDeviceVBoxVMMStubs_SOURCES = \
1345 testcase/tstDeviceVMMStubs.cpp
1346
1347 PROGRAMS += tstDevice
1348 tstDevice_TEMPLATE = VBOXR3TSTEXE
1349 tstDevice_DEFS += IN_SUP_R3
1350 tstDevice_LIBS.linux = $(PATH_STAGE_BIN)/tstDeviceVBoxVMMStubs.so
1351 tstDevice_LIBS.darwin = $(PATH_STAGE_BIN)/tstDeviceVBoxVMMStubs.dylib
1352 # Required on OS X to prevent resolving symbols in the real VBoxVMM.dylib when VBoxDD.dylib is loaded
1353 tstDevice_LDFLAGS.darwin += -force_flat_namespace
1354 tstDevice_SOURCES = \
1355 testcase/tstDevice.cpp \
1356 testcase/tstDevicePdmDevHlp.cpp \
1357 testcase/tstDeviceVMM.cpp \
1358 testcase/tstDeviceSUP.cpp
1359 endif
1360
1361endif # !VBOX_ONLY_EXTPACKS
1362
1363
1364if defined(VBOX_WITH_EXTPACK_PUEL) && defined(VBOX_WITH_EXTPACK_PUEL_BUILD)
1365 #
1366 # The EHCI (USB 2.0) Extension Pack Modules.
1367 #
1368 if defined(VBOX_WITH_USB)
1369 DLLS += VBoxEhciR3
1370 VBoxEhciR3_TEMPLATE = VBoxR3ExtPackPuel
1371 VBoxEhciR3_SOURCES = \
1372 USB/DevEHCI.cpp \
1373 USB/DevXHCI.cpp
1374 $(call VBOX_SET_VER_INFO_DLL,VBoxEhciR3,PUEL Extension Pack - EHCI Device)
1375
1376 SYSMODS += VBoxEhciR0
1377 VBoxEhciR0_TEMPLATE = VBoxR0ExtPackPuel
1378 VBoxEhciR0_SOURCES = \
1379 USB/DevEHCI.cpp \
1380 USB/DevXHCI.cpp
1381 $(call VBOX_SET_VER_INFO_R0,VBoxEhciR0,PUEL Extension Pack - EHCI Device$(COMMA) ring-0)
1382
1383 ifdef VBOX_WITH_RAW_MODE
1384 SYSMODS += VBoxEhciRC
1385 VBoxEhciRC_TEMPLATE = VBoxRcExtPackPuel
1386 VBoxEhciRC_SOURCES = \
1387 USB/DevEHCI.cpp \
1388 USB/DevXHCI.cpp
1389 $(call VBOX_SET_VER_INFO_RC,VBoxEhciRC,PUEL Extension Pack - EHCI Device$(COMMA) raw-mode)
1390 endif
1391
1392 # Hacky but MSI support *must* be enabled
1393 ifdef VBOX_WITH_MSI_DEVICES
1394 VBoxEhciR3_DEFS += VBOX_WITH_MSI_DEVICES
1395 VBoxEhciR0_DEFS += VBOX_WITH_MSI_DEVICES
1396 VBoxEhciRC_DEFS += VBOX_WITH_MSI_DEVICES
1397 endif
1398
1399 endif
1400
1401 if defined(VBOX_WITH_PCI_PASSTHROUGH)
1402 DLLS += VBoxPciRawR3
1403 VBoxPciRawR3_TEMPLATE = VBoxR3ExtPackPuel
1404 VBoxPciRawR3_SOURCES = Bus/DevPciRaw.cpp
1405 $(call VBOX_SET_VER_INFO_DLL,VBoxPciRawR3,PUEL Extension Pack - PCI Passthrough Device)
1406
1407 DLLS += VBoxPciRawDrv
1408 VBoxPciRawDrv_TEMPLATE = VBoxR3ExtPackPuel
1409 VBoxPciRawDrv_SOURCES = Bus/DrvPciRaw.cpp
1410 $(call VBOX_SET_VER_INFO_DLL,VBoxPciRawDrv,PUEL Extension Pack - PCI Passthrough Driver)
1411
1412 SYSMODS += VBoxPciRawR0
1413 VBoxPciRawR0_TEMPLATE = VBoxR0ExtPackPuel
1414 VBoxPciRawR0_SOURCES = Bus/DevPciRaw.cpp
1415 $(call VBOX_SET_VER_INFO_R0,VBoxPciRawR0,PUEL Extension Pack - PCI Passthrough Driver$(COMMA) ring-0)
1416
1417 Bus/DevPciRaw.cpp_INCS = Bus
1418 endif
1419
1420 #
1421 # The NVMe Extension Pack Modules.
1422 #
1423 if defined(VBOX_WITH_NVME_IMPL)
1424 DLLS += VBoxNvmeR3
1425 VBoxNvmeR3_TEMPLATE = VBoxR3ExtPackPuel
1426 VBoxNvmeR3_SOURCES = \
1427 Storage/DevNVMe.cpp
1428 $(call VBOX_SET_VER_INFO_DLL,VBoxNvmeR3,PUEL Extension Pack - NVMe Device)
1429
1430 SYSMODS += VBoxNvmeR0
1431 VBoxNvmeR0_TEMPLATE = VBoxR0ExtPackPuel
1432 VBoxNvmeR0_SOURCES = \
1433 Storage/DevNVMe.cpp
1434 $(call VBOX_SET_VER_INFO_R0,VBoxNvmeR0,PUEL Extension Pack - NVMe Device$(COMMA) ring-0)
1435
1436 ifdef VBOX_WITH_RAW_MODE
1437 SYSMODS += VBoxNvmeRC
1438 VBoxNvmeRC_TEMPLATE = VBoxRcExtPackPuel
1439 VBoxNvmeRC_SOURCES = \
1440 Storage/DevNVMe.cpp
1441 $(call VBOX_SET_VER_INFO_RC,VBoxNvmeRC,PUEL Extension Pack - NVMe Device$(COMMA) raw-mode)
1442 endif
1443
1444 # Hacky but MSI support *must* be enabled
1445 ifdef VBOX_WITH_MSI_DEVICES
1446 VBoxNvmeR3_DEFS += VBOX_WITH_MSI_DEVICES
1447 VBoxNvmeR0_DEFS += VBOX_WITH_MSI_DEVICES
1448 VBoxNvmeRC_DEFS += VBOX_WITH_MSI_DEVICES
1449 endif
1450
1451 endif
1452
1453
1454 #
1455 # The Intel PXE ROM.
1456 #
1457 INSTALLS += VBoxExtPackPuelInsRoms
1458 VBoxExtPackPuelInsRoms_TEMPLATE = VBoxInsExtPackPuel
1459 VBoxExtPackPuelInsRoms_SOURCES = PC/PXE/PXE-Intel.rom=>PXE-Intel.rom
1460endif # VBOX_WITH_EXTPACK_PUEL
1461
1462
1463if defined(VBOX_WITH_VMSVGA3D) && !defined(VBOX_ONLY_EXTPACKS)
1464 #
1465 # Template used for VBoxSVGA3D. (Strips away compiler options.)
1466 #
1467 TEMPLATE_VBoxSVGA3D := VBoxSVGA3D
1468 TEMPLATE_VBoxSVGA3D_EXTENDS := $(if-expr "$(KBUILD_TARGET)" == "darwin" && !defined(VBOX_WITH_NEW_XCODE),VBoxR3DllOsX107,VBOXR3)
1469 TEMPLATE_VBoxSVGA3D_CFLAGS = $(filter-out -pedantic -Wstrict-prototypes,$(TEMPLATE_$(TEMPLATE_VBoxSVGA3D_EXTENDS)_CFLAGS))
1470 TEMPLATE_VBoxSVGA3D_CXXFLAGS = $(filter-out -pedantic,$(TEMPLATE_$(TEMPLATE_VBoxSVGA3D_EXTENDS)_CXXFLAGS))
1471 TEMPLATE_VBoxSVGA3D_OBJCFLAGS = $(filter-out -pedantic,$(TEMPLATE_$(TEMPLATE_VBoxSVGA3D_EXTENDS)_OBJCFLAGS))
1472 TEMPLATE_VBoxSVGA3D_OBJCXXFLAGS = $(filter-out -pedantic,$(TEMPLATE_$(TEMPLATE_VBoxSVGA3D_EXTENDS)_OBJCXXFLAGS))
1473 TEMPLATE_VBoxSVGA3D_LDFLAGS.darwin = $(TEMPLATE_$(TEMPLATE_VBoxSVGA3D_EXTENDS)_LDFLAGS.darwin) \
1474 -framework AppKit -framework OpenGL -framework IOKit
1475
1476 #
1477 # The shader library used by the SVGA3D implementation.
1478 #
1479 DLLS += VBoxSVGA3D
1480 VBoxSVGA3D_TEMPLATE = VBoxSVGA3D
1481 VBoxSVGA3D_SDKS = ReorderCompilerIncs
1482 VBoxSVGA3D_DEFS = \
1483 __WINESRC__ \
1484 WINE_UNICODE_API="" \
1485 _REENTRANT \
1486 WINE_NOWINSOCK \
1487 VBOX_WITH_VMSVGA \
1488 VBOX_WITH_VMSVGA3D \
1489 DLLDIR=\"\" \
1490 BINDIR=\"\" \
1491 LIB_TO_BINDIR=\"\" \
1492 LIB_TO_DLLDIR=\"\" \
1493 BIN_TO_DLLDIR=\"\" \
1494 LIB_TO_DATADIR=\"\" \
1495 BIN_TO_DATADIR=\"\" \
1496 _USE_MATH_DEFINES \
1497 VBOX_USING_WINDDK_W7_OR_LATER \
1498 VBOX_WINE_WITH_SINGLE_SWAPCHAIN_CONTEXT \
1499 IN_vmsvgashader_STATIC \
1500 IN_VMSVGA3D \
1501 VBOX_WINE_WITH_IPRT
1502 if "$(KBUILD_TYPE)" != "debug" || defined(VBOX_WINE_NO_DEBUG_MSGS)
1503 VBoxSVGA3D_DEFS += WINE_NO_DEBUG_MSGS
1504 endif
1505 VBoxSVGA3D_DEFS.x86 += __i386__
1506 VBoxSVGA3D_DEFS.amd64 += __x86_64__
1507 VBoxSVGA3D_DEFS.win += \
1508 USE_WIN32_OPENGL \
1509 VBOX_WINE_WITHOUT_LIBWINE
1510 VBoxSVGA3D_DEFS.darwin += VBOX_VMSVGA3D_DUAL_OPENGL_PROFILE
1511 if 0 # Use the OpenGL 3.2 Core profile (VBoxSVGA3D_DEFS.darwin).
1512 VBoxSVGA3D_DEFS.darwin += VBOX_VMSVGA3D_DEFAULT_OGL_PROFILE=3.2 VBOX_VMSVGA3D_OTHER_OGL_PROFILE=2.1
1513 else
1514 VBoxSVGA3D_DEFS.darwin += VBOX_VMSVGA3D_DEFAULT_OGL_PROFILE=2.1 VBOX_VMSVGA3D_OTHER_OGL_PROFILE=3.2
1515 endif
1516
1517 # WINE relies on a gcc 4.4 feature but we have 4.2 on Darwin
1518 VBoxSVGA3D_DEFS.darwin += \
1519 __builtin_ms_va_list=va_list \
1520 __stdcall= \
1521 ms_abi=
1522 VBoxSVGA3D_INCS = $(VBOX_GRAPHICS_INCS)
1523 VBoxSVGA3D_INCS.win := \
1524 Graphics/shaderlib/libWineStub/include
1525 VBoxSVGA3D_INCS.linux := \
1526 Graphics/shaderlib/wine/include
1527 VBoxSVGA3D_INCS.darwin := \
1528 Graphics/ \
1529 Graphics/shaderlib/wine/include
1530 VBoxSVGA3D_SOURCES := \
1531 Graphics/shaderlib/glsl_shader.c \
1532 Graphics/shaderlib/shader.c \
1533 Graphics/shaderlib/shader_sm1.c \
1534 Graphics/shaderlib/shader_sm4.c \
1535 Graphics/shaderlib/shaderapi.c \
1536 Graphics/shaderlib/utils.c \
1537 Graphics/shaderlib/stateblock.c \
1538 Graphics/shaderlib/directx.c \
1539 Graphics/shaderlib/libWineStub/debug.c
1540 VBoxSVGA3D_LIBS = $(LIB_RUNTIME)
1541 VBoxSVGA3D_LIBS.win += $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Opengl32.lib
1542 if1of ($(KBUILD_TARGET), solaris linux freebsd)
1543 VBoxSVGA3D_LIBS += GL
1544 endif
1545 VBoxSVGA3D_LDFLAGS.darwin += \
1546 -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxSVGA3D.dylib
1547 $(call VBOX_SET_VER_INFO_DLL,VBoxSVGA3D,VirtualBox VMSVGA 3D)
1548 # -wd4100: unreferenced format parameter
1549 # -wd4204: nonstandard extension used : non-constant initializer
1550 # -wd4245: '=' : conversion from 'int' to 'DWORD', signed/unsigned mismatch
1551 # -wd4305: 'function' : truncation from 'double' to 'GLclampf'
1552 VBoxSVGA3D_CFLAGS.win = -wd4100 -wd4204 -wd4245 -wd4305
1553 ifneq ($(KBUILD_TARGET),win)
1554 VBoxSVGA3D_CFLAGS += -Wno-unused-parameter -Wno-unused-function
1555 endif
1556
1557 #
1558 # The Objective C code needs to be separate since the shaderlib redefines most
1559 # GL functions as pointers, making it impossible to mix with code calling OpenGL
1560 # functions directly. This module must be compiled for 10.7 or later, thus it
1561 # needs to be separate from VBoxDD.dylib, or at least that's our belief...
1562 #
1563 DLLS.darwin += VBoxSVGA3DObjC
1564 VBoxSVGA3DObjC_TEMPLATE = VBoxSVGA3D
1565 VBoxSVGA3DObjC_DEFS = $(VBoxSVGA3D_DEFS) IN_VMSVGA3DCOCOA
1566 VBoxSVGA3DObjC_DEFS.x86 = __i386__
1567 VBoxSVGA3DObjC_DEFS.amd64 = __x86_64__
1568 VBoxSVGA3DObjC_DEFS.darwin = $(VBoxSVGA3D_DEFS.darwin)
1569 VBoxSVGA3DObjC_INCS = $(VBoxSVGA3D_INCS)
1570 VBoxSVGA3DObjC_INCS.darwin = $(VBoxSVGA3D_INCS.darwin)
1571 VBoxSVGA3DObjC_LIBS = $(LIB_RUNTIME)
1572 VBoxSVGA3DObjC_LDFLAGS.darwin = \
1573 -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxSVGA3DObjC.dylib \
1574 -framework OpenGL
1575 if 1
1576 VBoxSVGA3DObjC_SOURCES.darwin += \
1577 Graphics/DevVGA-SVGA3d-cocoa.m
1578 else
1579 VBoxSVGA3DObjC_SOURCES.darwin += \
1580 ../HostServices/SharedOpenGL/render/renderspu_cocoa_helper.m \
1581 ../HostServices/SharedOpenGL/OpenGLTest/OpenGLTestDarwin.cpp
1582 endif
1583
1584
1585endif # defined(VBOX_WITH_VMSVGA3D) && !defined(VBOX_ONLY_EXTPACKS)
1586
1587include $(FILE_KBUILD_SUB_FOOTER)
1588
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