Makefile.kmk revision 443e1ef1db2bde801e0f9f1f9ef696fe6594036a
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync# Top-level sub-makefile for the devices, drivers and services.
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync# Copyright (C) 2006-2010 Sun Microsystems, Inc.
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync# available from http://www.virtualbox.org. This file is free software;
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync# you can redistribute it and/or modify it under the terms of the GNU
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync# General Public License (GPL) as published by the Free Software
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync# Clara, CA 95054 USA or visit http://www.sun.com if you need
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync# additional information or have any questions.
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncSUB_DEPTH = ../../..
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncinclude $(KBUILD_PATH)/subheader.kmk
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncVBOX_PATH_DEVICES_SRC := $(PATH_SUB_CURRENT)
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync# Include sub-makefiles.
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncinclude $(PATH_SUB_CURRENT)/PC/BIOS/Makefile.kmk
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncifdef VBOX_WITH_VMI
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync include $(PATH_SUB_CURRENT)/PC/VMI/Makefile.kmk
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncinclude $(PATH_SUB_CURRENT)/Graphics/BIOS/Makefile.kmk
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncinclude $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncinclude $(PATH_SUB_CURRENT)/Storage/testcase/Makefile.kmk
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncifndef VBOX_OSE
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync include $(PATH_SUB_CURRENT)/Storage/VBoxHDDFormats/Makefile.kmk
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncifdef VBOX_WITH_EFI
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync include $(PATH_SUB_CURRENT)/EFI/Thunk/Makefile.kmk
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncifdef VBOX_WITH_INTEL_PXE
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync include $(PATH_SUB_CURRENT)/PC/PXE/Makefile.kmk
292dc462b10ba7ef37b871434e332aecf8ad97dfvboxsync # Subdir with complex makefile.
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync SUBDIRS_LIBRARIES += $(VBOX_PATH_DEVICES_SRC)/PC/Etherboot-src
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync SUBDIRS_CLEAN += $(VBOX_PATH_DEVICES_SRC)/PC/Etherboot-src
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync # Disable the unsafe pass order optimizations.
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync KBUILD_SAFE_PARALLEL = 1
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync# Main targets.
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncLIBRARIES += DevicesR3 Drivers ServicesR0
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncDLLS += VBoxDDU VBoxDD VBoxDD2
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncSYSMODS += VBoxDDR0 VBoxDD2R0
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncifdef VBOX_WITH_RAW_MODE
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync SYSMODS += VBoxDDGC VBoxDD2GC
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync# VBoxDDU (shared object)
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncVBoxDDU_TEMPLATE = VBOXR3
43e4d3b7a2a08b95b9e6a91abf08c6fb89ff0f51vboxsyncVBoxDDU_NAME = $(basename $(notdir $(LIB_DDU)))
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncVBoxDDU_INST.darwin = $(INST_DLL) $(INST_TESTCASE)
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncVBoxDDU_DEFS = IN_VBOXDDU
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncifdef VBOX_WITH_USB
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync VBoxDDU_DEFS += VBOX_WITH_USB IN_USBLIB
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync VBoxDDU_SDKS.win = WINPSDK W2K3DDK
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync ifdef VBOX_WITH_EHCI
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync VBoxDDU_DEFS += VBOX_WITH_EHCI
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync ifdef VBOX_WITH_NEW_USB_CODE_ON_DARWIN
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync VBoxDDU_DEFS.darwin += VBOX_WITH_NEW_USB_CODE_ON_DARWIN
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncifdef VBOX_WITH_NEW_IO_CODE
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync VBoxDDU_DEFS += VBOX_WITH_NEW_IO_CODE
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncVBoxDDU_SOURCES = \
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncifdef VBOX_WITH_USB
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncVBoxDDU_LIBS = \
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync $(LIB_RUNTIME)
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncifdef VBOX_WITH_USB
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync VBoxDDU_LIBS += \
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync $(PATH_LIB)/USBLib$(VBOX_SUFF_LIB)
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncifeq ($(KBUILD_TARGET),l4)
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync VBoxDDU_LIBS += \
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncVBoxDDU_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxDDU.dylib
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncifdef VBOX_WITH_USB
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync ifdef VBOX_WITH_NEW_USB_CODE_ON_DARWIN
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync VBoxDDU_LDFLAGS.darwin += -framework IOKit
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncVBoxDDU_LDFLAGS.linux = -Wl,--no-undefined
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncVBoxDDU_LDFLAGS.l4 = -Wl,--no-undefined
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync# VBoxDDULnxHostR3 (Only needed for l4, currently for executing vditool on L4Linux.)
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncifeq ($(KBUILD_TARGET),l4)
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync LIBRARIES += VBoxDDULnxHostR3
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync VBoxDDULnxHostR3_TEMPLATE = VBOXLNXHOSTR3LIB
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync VBoxDDULnxHostR3_DEFS = IN_VBOXDDU
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync VBoxDDULnxHostR3_SOURCES = $(VBoxDDU_SOURCES)
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync# VBoxDD (shared object)
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncVBoxDD_TEMPLATE = VBOXR3
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncifdef VBOX_WITH_DTRACE_R3
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsync VBoxDD_TEMPLATE = VBOXR3OSX105
078edd33e3a22f968a7aee5a9e042bca314c2f03vboxsyncVBoxDD_SDKS.win = WINPSDK DXSDK W2K3DDK VBOX_NTDLL
97f795f0be0c10aae9b31cc8f8d5cdf8ea2ab421vboxsyncVBoxDD_SOURCES = \
$(PATH_LIB)/VBoxDD2.lib \
$(PATH_SDK_DXSDK_LIB)/dxguid.lib
$(L4_LIBDIR)/libl4sys.p.a
VBoxDD_LIBS.darwin += \
VBoxDD_LDFLAGS.linux = -Wl,--no-undefined
VBoxDD_LDFLAGS.l4 = -Wl,--no-undefined
$(L4_LIBDIR)/libl4sys.p.a
VBoxDD2_LIBS.darwin += $(LIB_REM)
VBoxDD2_LDFLAGS.linux = -Wl,--no-undefined
VBoxDD2_LDFLAGS.l4 = -Wl,--no-undefined
DevicesR3_SDKS.win = WINPSDK W2K3DDK
DevicesR3_DEFS.darwin.x86 = VBOX_WITH_2X_4GB_ADDR_SPACE
DevicesR3_DEFS.linux += _GNU_SOURCE
DevicesR3_DEFS.l4 += _GNU_SOURCE
DevicesR3_SOURCES += PC/DevHPET.cpp
DevicesR3_SOURCES += PC/DevSMC.cpp
DevicesR3_SOURCES += PC/DevLPC.cpp
DevicesR3_SOURCES += EFI/DevEFI.cpp
DevicesR3_INTERMEDIATES += $(DevicesR3_0_OUTDIR)/VBoxDD-dtrace.h
DevicesR3_CLEAN += $(PATH_DevicesR3)/vboxdsl.hex
$(PATH_DevicesR3)/vboxaml.hex \
$(PATH_DevicesR3)/vboxaml.aml \
$(PATH_DevicesR3)/vboxssdt-standard.hex \
$(PATH_DevicesR3)/vboxssdt-standard.aml \
$(PATH_DevicesR3)/vboxssdt-standard.aml.tmp \
$(PATH_DevicesR3)/vboxssdt-cpuhotplug.hex \
$(PATH_DevicesR3)/vboxssdt-cpuhotplug.aml \
$(PATH_DevicesR3)/vboxssdt-cpuhotplug.aml.tmp
$(PATH_DevicesR3)/vboxaml.hex \
$(PATH_DevicesR3)/vboxssdt-standard.hex \
$(PATH_DevicesR3)/vboxssdt-cpuhotplug.hex
$(QUIET)$(SED) "s/AmlCode/AmlCodeSsdtStandard/g" \
$$(PATH_DevicesR3)/vboxssdt-cpuhotplug.hex: $(PATH_SUB_CURRENT)/PC/vbox-cpuhotplug.dsl | $$(dir $$@)
$(QUIET)$(SED) "s/AmlCode/AmlCodeSsdtCpuHotPlug/g" \
PC/ACPI/VBoxAcpi.cpp_INCS = $(PATH_DevicesR3)
Bus/DevPCI.cpp_INCS = Bus
Graphics/DevVGA.cpp_INCS = $(PATH_VgaBiosBin)
VBoxDDGC_DEFS.darwin = VBOX_WITH_2X_4GB_ADDR_SPACE
VBoxDDGC_SOURCES += PC/DevHPET.cpp
VBoxDDR0_DEFS.darwin.x86= VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0 VBOX_WITH_2X_4GB_ADDR_SPACE
VBoxDDR0_SOURCES += PC/DevHPET.cpp
Drivers_SDKS.win = WINPSDK W2K3DDK
Storage/DrvHostDVD.cpp_SDKS.win = W2K3DDK
Drivers_DEFS.win += _WIN32_WINNT=0x0510
$(file)_INCS += $(1)/slirp/bsd/sys
$(file)_INCS += $(1)/slirp/bsd/sys/sys
$(file)_INCS += $(1)/slirp/bsd/$(VBOX_SLIRP_BSD_ARCH)/include
$(file)_INCS += $(1)/slirp/bsd/netinet
$(file)_INCS += $(1)/slirp/libalias
$(file)_INCS += $(1)/slirp/libalias
$(file)_INCS += $(1)/slirp/dnsproxy
$(file)_INCS += $(1)/slirp/dnsproxy
Drivers_SOURCES += Audio/ossaudio.c
Drivers_SOURCES += Network/solaris/vbox-libdlpi.cpp
Drivers_DEFS.win += VBOX_NETFLT_ONDEMAND_BIND
Drivers_DEFS.linux += VBOX_WITH_ALSA
Drivers_DEFS.linux += VBOX_WITH_PULSE
Drivers_DEFS.freebsd += VBOX_WITH_PULSE
Drivers_DEFS.darwin += VUSB_HAVE_USBPROXY_DEVICE
Drivers_DEFS.darwin += VBOX_WITH_NEW_USB_CODE_ON_DARWIN
Drivers_DEFS.linux += \
Drivers_DEFS.l4 += VUSB_HAVE_USBPROXY_DEVICE
Drivers_SOURCES.l4 += \
Drivers_DEFS.os2 += VUSB_HAVE_USBPROXY_DEVICE
Drivers_SOURCES.os2 += \
Drivers_DEFS.win += VUSB_HAVE_USBPROXY_DEVICE
Drivers_SOURCES.win += \
Drivers_DEFS.solaris += VUSB_HAVE_USBPROXY_DEVICE
USB/solaris/$(if $(VBOX_WITH_NEW_USB_CODE_ON_SOLARIS),USBProxyDevice2-solaris.cpp,USBProxyDevice-solaris.cpp)
Drivers_DEFS.freebsd += VUSB_HAVE_USBPROXY_DEVICE
# Ring-0 Services (library, linked into VMMR0.r0)
include $(KBUILD_PATH)/subfooter.kmk