# $Id: Makefile.kmk 42226 2012-07-19 12:02:15Z vboxsync $ ## @file # Makefile for the Windows guest display 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 # # VBoxDisp - Windows Guest Additions XPDM Display Driver # # Note. This has to run on NT4! (*_NT4 => *_W2K3 when targetting 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.amd64 = _WIN32_WINNT=0x0500 # <- otherwise the build will fail due to DDK header inconsistencies 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 .. 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 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 \ .. VBoxDispD3D_SOURCES = \ wddm/VBoxDispD3D.cpp \ wddm/VBoxDispD3DIf.cpp \ wddm/VBoxDispCm.cpp \ wddm/VBoxDispMp.cpp \ wddm/VBoxScreen.cpp \ wddm/VBoxDispMpTst.cpp \ wddm/VBoxDispKmt.cpp \ wddm/VBoxDispDbg.cpp \ wddm/VBoxDispD3D.rc \ wddm/VBoxDispD3D.def \ #ifdef VBOX_WITH_CRHGSMI #VBoxDispD3D_SOURCES += \ # wddm/VBoxUhgsmiDisp.cpp \ # wddm/VBoxUhgsmiKmt.cpp #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) # # 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) 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) VBoxCrHgsmi_DEFS = UNICODE _UNICODE VBOX_WITH_CRHGSMI IN_VBOXCRHGSMI VBOX_WITH_WDDM VBOX_WITH_VDMA VBOX_WITH_HGCM VBoxCrHgsmi_INCS = ../../../include .. VBoxCrHgsmi_SOURCES = \ wddm/VBoxCrHgsmi.cpp \ wddm/VBoxDispKmt.cpp \ wddm/VBoxDispDbg.cpp \ wddm/VBoxUhgsmiKmt.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 .. 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 = $(LIB_RUNTIME) 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 = $(LIB_RUNTIME) DumpD3DCaps9_LDFLAGS.win = /SUBSYSTEM:CONSOLE endif #VBOXVIDEOWINDBG include $(FILE_KBUILD_SUB_FOOTER)