# $Id: Makefile.kmk 65381 2017-01-20 09:23:53Z vboxsync $ ## @file # Makefile for the Windows guest display driver. # # # Copyright (C) 2011-2016 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 # # VBoxDisp - Windows Guest Additions XPDM Display Driver # # Note. This has to run on NT4! (*_NT4 => *_W2K3 when targeting 64-bit.) # SYSMODS += VBoxDisp VBoxDisp_TEMPLATE = VBOXGUESTR0 VBoxDisp_SYSSUFF = .dll VBoxDisp_SDKS = ReorderCompilerIncs $(VBOX_WINDDK_GST_NT4) VBoxDisp_DEFS.x86 = _WIN32_WINNT=0x0501 VBoxDisp_DEFS = VBOX_WITH_DDRAW VBoxDisp_DEFS += LOG_TO_BACKDOOR #LOG_ENABLED ifdef VBOX_WITH_VIDEOHWACCEL VBoxDisp_DEFS += VBOX_WITH_VIDEOHWACCEL endif ifdef VBOX_WITH_CROGL VBoxDisp_DEFS += VBOX_WITH_CROGL endif #VBoxDisp_DEFS += VBOX_VBVA_ADJUST_RECT VBoxDisp_INCS = ../../../include .. $(VBOX_GRAPHICS_INCS) VBoxDisp_LDFLAGS.x86 = /Entry:DrvEnableDriver@12 VBoxDisp_LDFLAGS.amd64 = /Entry:DrvEnableDriver VBoxDisp_SOURCES = \ xpdm/VBoxDispDriver.cpp \ xpdm/VBoxDispMini.cpp \ xpdm/VBoxDispMouse.cpp \ xpdm/VBoxDispPalette.cpp \ xpdm/VBoxDispVBVA.cpp \ xpdm/VBoxDispDrawCmd.cpp \ xpdm/VBoxDispVRDP.cpp \ xpdm/VBoxDispVrdpBmp.cpp \ xpdm/VBoxDispVrdpTxt.cpp \ xpdm/VBoxDispDriverDDraw.cpp \ xpdm/VBoxDispDDraw.cpp \ xpdm/VBoxDisp.def \ xpdm/VBoxDisp.rc \ $(PATH_ROOT)/src/VBox/Additions/common/VBoxVideo/HGSMIBase.cpp \ $(PATH_ROOT)/src/VBox/Additions/common/VBoxVideo/VBVABase.cpp \ $(PATH_ROOT)/src/VBox/Additions/common/VBoxVideo/Modesetting.cpp ifdef VBOX_WITH_VIDEOHWACCEL VBoxDisp_SOURCES += \ xpdm/VBoxDispVHWA.cpp \ xpdm/VBoxDispDDrawVHWA.cpp endif VBoxDisp_LIBS = \ $(PATH_SDK_$(VBOX_WINDDK_GST_NT4)_LIB)/win32k.lib \ $(VBOX_LIB_IPRT_GUEST_R0_NT4) \ $(VBOX_PATH_ADDITIONS_LIB)/HGSMIGuestR0Lib$(VBOX_SUFF_LIB) # Signing requires both miniport and display drivers # so it'd be dealt with in the parent makefile. ifdef VBOX_SIGN_ADDITIONS VBoxDisp_INSTTYPE = none VBoxDisp_DEBUG_INSTTYPE = both ifdef VBOX_WITH_WDDM VBoxDispD3D_INSTTYPE = none VBoxDispD3D_DEBUG_INSTTYPE = both endif endif ifdef VBOX_WITH_WDDM # # VBoxDispD3D - Windows Guest Additions WDDM R3 Display Driver # DLLS += VBoxDispD3D VBoxDispD3D_TEMPLATE = VBoxGuestR3Dll VBoxDispD3D_SDKS = ReorderCompilerIncs $(VBOX_WINDDK_GST_WLH) VBoxDispD3D_DEFS = UNICODE _UNICODE VBOX_WITH_WDDM VBOXWDDMDISP LOG_TO_BACKDOOR LOG_TO_BACKDOOR_DRV VBOX_WITH_HGCM D3D_UMD_INTERFACE_VERSION=0x000C ifdef DEBUG_misha VBoxDispD3D_DEFS += LOG_ENABLED endif ifdef VBOXWDDM_WITH_VBVA VBoxDispD3D_DEFS += VBOXWDDM_WITH_VBVA endif ifdef VBOX_WITH_VIDEOHWACCEL VBoxDispD3D_DEFS += VBOX_WITH_VIDEOHWACCEL endif ifdef VBOX_WDDMDISP_WITH_PROFILE VBoxDispD3D_DEFS += VBOX_WDDMDISP_WITH_PROFILE endif ifdef VBOXWDDM_TEST_UHGSMI VBoxDispD3D_DEFS += VBOXWDDM_TEST_UHGSMI endif ifdef VBOX_WITH_CROGL VBoxDispD3D_DEFS += VBOX_WITH_CROGL endif VBoxDispD3D_INCS = \ ../../../include \ .. \ $(VBOX_PATH_CROGL_INCLUDE) \ $(VBOX_GRAPHICS_INCS) VBoxDispD3D_SOURCES = \ wddm/VBoxDispD3D.cpp \ wddm/VBoxDispD3DIf.cpp \ wddm/VBoxDispCm.cpp \ wddm/VBoxDispKmt.cpp \ wddm/VBoxDispDbg.cpp \ wddm/VBoxD3DIf.cpp \ wddm/VBoxDispD3D.rc \ wddm/VBoxDispD3D.def ifdef VBOX_WITH_CRHGSMI VBoxDispD3D_DEFS += VBOX_WITH_CRHGSMI endif VBoxDispD3D_LIBS = \ $(VBOX_LIB_IPRT_GUEST_R3) \ $(VBOX_LIB_VBGL_R3) \ Psapi.lib \ $(VBOX_PATH_ADDITIONS_LIB)/VBoxDispMpLogger$(VBOX_SUFF_LIB) \ $(VBOX_PATH_ADDITIONS_LIB)/VBoxCrHgsmi$(VBOX_SUFF_LIB) # # 64-bit systems needs a 32-bit version of VBoxDispD3D. # DLLS.amd64 += VBoxDispD3D-x86 VBoxDispD3D-x86_EXTENDS = VBoxDispD3D VBoxDispD3D-x86_BLD_TRG_ARCH = x86 VBoxDispD3D-x86_LIBS = \ $(VBOX_LIB_IPRT_GUEST_R3_X86) \ $(VBOX_LIB_VBGL_R3_X86) \ Psapi.lib \ $(VBOX_PATH_ADDITIONS_LIB)/VBoxDispMpLogger-x86$(VBOX_SUFF_LIB) \ $(VBOX_PATH_ADDITIONS_LIB)/VBoxCrHgsmi-x86$(VBOX_SUFF_LIB) VBoxDispD3D-x86_DEFS = $(VBoxDispD3D_DEFS) VBOX_WDDM_WOW64 ifdef VBOX_WITH_CRHGSMI # # VBoxCrHgsmi - Chromium HGSMI API library # LIBRARIES += VBoxCrHgsmi VBoxCrHgsmi_TEMPLATE = VBoxGuestR3Lib VBoxCrHgsmi_SDKS = ReorderCompilerIncs $(VBOX_WINDDK_GST_WLH) #use same defines as VBoxDispD3D to ensure structure definitions match VBoxCrHgsmi_DEFS = $(subst VBOXWDDMDISP,IN_VBOXCRHGSMI,$(VBoxDispD3D_DEFS)) VBoxCrHgsmi_INCS = \ ../../../include \ .. \ $(VBOX_PATH_CROGL_INCLUDE) \ $(VBOX_GRAPHICS_INCS) VBoxCrHgsmi_SOURCES = \ wddm/VBoxCrHgsmi.cpp \ wddm/VBoxDispKmt.cpp \ wddm/VBoxDispDbg.cpp \ wddm/VBoxUhgsmiKmt.cpp \ wddm/VBoxUhgsmiBase.cpp \ wddm/VBoxUhgsmiDisp.cpp # # 64-bit systems needs a 32-bit version of VBoxCrHgsmi. # LIBRARIES.amd64 += VBoxCrHgsmi-x86 VBoxCrHgsmi-x86_TEMPLATE = VBoxGuestR3Lib VBoxCrHgsmi-x86_EXTENDS = VBoxCrHgsmi VBoxCrHgsmi-x86_BLD_TRG_ARCH = x86 VBoxCrHgsmi-x86_DEFS = $(VBoxCrHgsmi_DEFS) VBOX_WDDM_WOW64 endif #VBOX_WITH_CRHGSMI # # VBoxDispMpLogger - display backdoor logger library # LIBRARIES += VBoxDispMpLogger VBoxDispMpLogger_TEMPLATE = VBoxGuestR3Lib VBoxDispMpLogger_SDKS = ReorderCompilerIncs $(VBOX_WINDDK_GST_WLH) VBoxDispMpLogger_DEFS = UNICODE _UNICODE VBOX_WITH_CRHGSMI IN_VBOXCRHGSMI VBOX_WITH_WDDM VBOX_WITH_VDMA VBOX_WITH_HGCM VBoxDispMpLogger_INCS = ../../../include .. $(VBOX_GRAPHICS_INCS) VBoxDispMpLogger_SOURCES = \ wddm/VBoxDispMpLogger.cpp # # 64-bit systems needs a 32-bit version of VBoxCrHgsmi. # LIBRARIES.amd64 += VBoxDispMpLogger-x86 VBoxDispMpLogger-x86_TEMPLATE = VBoxGuestR3Lib VBoxDispMpLogger-x86_EXTENDS = VBoxDispMpLogger VBoxDispMpLogger-x86_BLD_TRG_ARCH = x86 VBoxDispMpLogger-x86_DEFS = $(VBoxDispMpLogger_DEFS) VBOX_WDDM_WOW64 endif #ifdef VBOX_WITH_WDDM ifdef VBOXVIDEOWINDBG DLLS += vbvdbg vbvdbg_TEMPLATE = VBOXR3STATIC vbvdbg_SDKS = ReorderCompilerIncs $(VBOX_WINDDK_GST_WLH) vbvdbg_DEFS = UNICODE _UNICODE vbvdbg_SOURCES = \ wddm/dbg/VBoxVideoWinDbg.cpp \ wddm/dbg/VBoxVideoWinDbg.def PROGRAMS += tstMvWnd tstMvWnd_TEMPLATE = VBOXR3EXE tstMvWnd_DEFS = UNICODE _UNICODE tstMvWnd_SOURCES = \ wddm/dbg/tstMvWnd.cpp tstMvWnd_LIBS = $(VBOX_LIB_IPRT_GUEST_R3) tstMvWnd_LDFLAGS.win = /SUBSYSTEM:windows PROGRAMS += DumpD3DCaps9 DumpD3DCaps9_TEMPLATE = VBOXR3EXE DumpD3DCaps9_SDKS = ReorderCompilerIncs $(VBOX_WINDDK_GST_WLH) DumpD3DCaps9_DEFS = UNICODE _UNICODE DumpD3DCaps9_SOURCES = \ wddm/dbg/DumpD3DCaps9.cpp DumpD3DCaps9_LIBS = $(VBOX_LIB_IPRT_GUEST_R3) d3d9.lib DumpD3DCaps9_LDFLAGS.win = /SUBSYSTEM:CONSOLE PROGRAMS += D3DFeatureLevel D3DFeatureLevel_TEMPLATE = VBOXR3EXE D3DFeatureLevel_SDKS = ReorderCompilerIncs $(VBOX_WINDDK_GST_WLH) D3DFeatureLevel_SOURCES = \ wddm/dbg/D3DFeatureLevel.cpp D3DFeatureLevel_LIBS = $(VBOX_LIB_IPRT_GUEST_R3) d3d11.lib D3DFeatureLevel_LDFLAGS.win = /SUBSYSTEM:CONSOLE endif #VBOXVIDEOWINDBG include $(FILE_KBUILD_SUB_FOOTER)