VirtualBox

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

Last change on this file since 47143 was 46799, checked in by vboxsync, 12 years ago

Devices/Input/UsbMouse: new unit test harness.

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