VirtualBox

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

最後變更 在這個檔案從62580是 62580,由 vboxsync 提交於 9 年 前

Audio: Initial commit of audio debug backend. This can dump the output streams to single .WAV files and also will later act as an input mockup object for testing input (capturing) audio data.

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

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