Makefile.kmk revision 612ab06c3d17ed10137724a3745004d09566f53a
# $Id$
## @file
# Makefile for the Windows guest miniport driver.
#
#
# Copyright (C) 2011-2012 Oracle Corporation
#
# This file is part of VirtualBox Open Source Edition (OSE), as
# available from http://www.virtualbox.org. This file is free software;
# you can redistribute it and/or modify it under the terms of the GNU
# General Public License (GPL) as published by the Free Software
# Foundation, in version 2 as it comes in the "COPYING" file of the
# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
#
SUB_DEPTH = ../../../../../../..
include $(KBUILD_PATH)/subheader.kmk
#
# VBoxVideo - Windows Guest Additions XPDM Miniport Video Driver
#
# Note. This has to run on NT4!
# (VBOX_LIB_IPRT_GUEST_R0_NT4 == VBOX_LIB_IPRT_GUEST_R0 on 64-bit)
#
SYSMODS += VBoxVideo
VBoxVideo_TEMPLATE = VBOXGUESTR0
VBoxVideo_DEFS = VBOX_XPDM_MINIPORT VBOX_WITH_8BPP_MODES
VBoxVideo_DEFS += LOG_TO_BACKDOOR #LOG_ENABLED
ifdef VBOX_WITH_VIDEOHWACCEL
VBoxVideo_DEFS += VBOX_WITH_VIDEOHWACCEL
endif
VBoxVideo_INCS = ../../../include .. .
VBoxVideo_LDFLAGS.x86 = /Entry:DriverEntry@8
VBoxVideo_LDFLAGS.amd64 = /Entry:DriverEntry
VBoxVideo_SOURCES = \
xpdm/VBoxMPDriver.cpp \
xpdm/VBoxMP.def \
xpdm/VBoxMP.rc \
xpdm/VBoxMPVideoPortAPI.cpp \
xpdm/VBoxMPInternal.cpp \
xpdm/VBoxMPRegistry.cpp \
xpdm/VBoxMPIOCTL.cpp \
common/VBoxMPUtils.cpp \
common/VBoxMPCommon.cpp \
common/VBoxMPHGSMI.cpp \
common/VBoxMPVidModes.cpp \
$(PATH_ROOT)/src/VBox/Additions/common/VBoxVideo/HGSMIBase.cpp \
$(PATH_ROOT)/src/VBox/Additions/common/VBoxVideo/Modesetting.cpp
VBoxVideo_LIBS = \
$(PATH_SDK_W2K3DDK_LIB)/videoprt.lib \
$(PATH_SDK_W2K3DDK_LIB)/ntoskrnl.lib \
$(PATH_SDK_W2K3DDK_LIB)/hal.lib \
$(VBOX_LIB_VBGL_R0) \
$(VBOX_LIB_IPRT_GUEST_R0_NT4) \
$(VBOX_PATH_ADDITIONS_LIB)/HGSMIGuestR0Lib$(VBOX_SUFF_LIB)
VBoxVideo_LIBS.x86 = \
$(PATH_SDK_W2K3DDK_LIB)/exsup.lib
ifdef VBOX_WITH_WDDM
#
# VBoxVideoWddm - Windows Guest Additions WDDM Miniport Video Driver
#
SYSMODS += VBoxVideoWddm
VBoxVideoWddm_TEMPLATE = VBOXGUESTR0
VBoxVideoWddm_DEFS += VBOX_WITH_8BPP_MODES
VBoxVideoWddm_DEFS += VBOX_WDDM_MINIPORT VBOX_WITH_WDDM VBOX_WITH_HGCM
ifdef VBOX_WITH_VIDEOHWACCEL
VBoxVideoWddm_DEFS += VBOX_WITH_VIDEOHWACCEL
endif
ifdef VBOXWDDM_WITH_VBVA
VBoxVideoWddm_DEFS += VBOXWDDM_WITH_VBVA
VBoxVideoWddm_DEFS += VBOXWDDM_RENDER_FROM_SHADOW
ifdef VBOXVDMA_WITH_VBVA
VBoxVideoWddm_DEFS += VBOXVDMA_WITH_VBVA
endif
endif
ifdef VBOX_WITH_VDMA
VBoxVideoWddm_DEFS += VBOX_WITH_VDMA
endif
ifdef VBOX_WITH_CRHGSMI
VBoxVideoWddm_DEFS += VBOX_WITH_CRHGSMI
endif
ifdef DEBUG_misha
VBoxVideoWddm_DEFS += LOG_ENABLED
endif
VBoxVideoWddm_DEFS += LOG_TO_BACKDOOR
ifdef VBOX_WITH_CROGL
VBoxVideoWddm_DEFS += VBOX_WITH_CROGL
endif
ifdef VBOX_VDMA_WITH_WATCHDOG
VBoxVideoWddm_DEFS += VBOX_VDMA_WITH_WATCHDOG
endif
VBoxVideoWddm_INCS += \
../../../include \
.. \
. \
../../../../common/VBoxGuestLib \
$(VBOX_PATH_CROGL_INCLUDE) \
$(VBOX_PATH_CROGL_GENFILES) \
$(PATH_ROOT)/src/VBox/GuestHost/OpenGL/packer
VBoxVideoWddm_LDFLAGS.x86 += /Entry:DriverEntry@8
VBoxVideoWddm_LDFLAGS.amd64 += /Entry:DriverEntry
VBoxVideoWddm_SDKS = WINDDKWLH
VBoxVideoWddm_SOURCES = \
wddm/VBoxMPWddm.cpp \
wddm/VBoxMPVidPn.cpp \
wddm/VBoxMPVdma.cpp \
wddm/VBoxMPShgsmi.cpp \
wddm/VBoxMPCm.cpp \
wddm/VBoxMPCr.cpp \
wddm/VBoxMPMisc.cpp \
wddm/VBoxMPWddm.rc \
wddm/VBoxMPRegistry.cpp \
common/VBoxMPUtils.cpp \
common/VBoxMPCommon.cpp \
common/VBoxMPHGSMI.cpp \
common/VBoxMPVidModes.cpp \
$(PATH_ROOT)/src/VBox/Additions/common/VBoxVideo/HGSMIBase.cpp \
$(PATH_ROOT)/src/VBox/Additions/common/VBoxVideo/Modesetting.cpp
if defined(VBOX_WITH_CROGL) && defined(VBOX_WDDM_WITH_CRCMD)
VBoxVideoWddm_SOURCES += \
$(PATH_ROOT)/src/VBox/GuestHost/OpenGL/packer/pack_buffer.c \
$(PATH_ROOT)/src/VBox/GuestHost/OpenGL/packer/pack_bounds.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_bounds_swap.c \
wddm/VBoxMPCrUtil.cpp
VBoxVideoWddm_DEFS + VBOX_WDDM_WITH_CRCMD
endif
ifdef VBOXWDDM_WITH_VBVA
VBoxVideoWddm_SOURCES += \
wddm/VBoxMPVbva.cpp
endif
ifdef VBOX_WITH_VIDEOHWACCEL
VBoxVideoWddm_SOURCES += \
wddm/VBoxMPVhwa.cpp
endif
VBoxVideoWddm_LIBS.x86 = \
$(PATH_SDK_WINDDKWLH_LIB)/BufferOverflowK.lib
#VBoxVideoWddm_LIBS.x86 += \
# $(PATH_SDK_WINDDKWLH_LIB)/exsup.lib
VBoxVideoWddm_LIBS = \
$(PATH_SDK_WINDDKWLH_LIB)/ntoskrnl.lib \
$(PATH_SDK_WINDDKWLH_LIB)/hal.lib \
$(PATH_SDK_WINDDKWLH_LIB)/displib.lib \
$(VBOX_LIB_VBGL_R0) \
$(VBOX_LIB_IPRT_GUEST_R0_NT4) \
$(VBOX_PATH_ADDITIONS_LIB)/HGSMIGuestR0Lib$(VBOX_SUFF_LIB)
endif # VBOX_WITH_WDDM
# Signing requires both miniport and display drivers
# so it'd be dealt with in the parent makefile.
ifdef VBOX_SIGN_ADDITIONS
VBoxVideo_INSTTYPE = none
VBoxVideo_DEBUG_INSTTYPE = both
ifdef VBOX_WITH_WDDM
VBoxVideoWddm_INSTTYPE = none
VBoxVideoWddm_DEBUG_INSTTYPE = both
endif
endif
include $(FILE_KBUILD_SUB_FOOTER)