# $Id: Makefile.kmk 93322 2022-01-18 15:23:38Z vboxsync $ ## @file # Makefile for the Windows guest video driver. # # # Copyright (C) 2011-2022 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 # Include sub-makefiles. include $(PATH_SUB_CURRENT)/mp/Makefile.kmk include $(PATH_SUB_CURRENT)/disp/Makefile.kmk # # Install the inf & cat. # This has to be done here since it depends on both the # miniport driver and the display dll. # INSTALLS += VBoxVideo-inf VBoxVideo-inf_INST = $(INST_ADDITIONS) VBoxVideo-inf_MODE = a+r,u+w VBoxVideo-inf_SOURCES = \ $(PATH_TARGET)/VBoxVideoCat.dir/VBoxVideo.inf ifdef VBOX_SIGN_ADDITIONS VBoxVideo-inf_SOURCES += \ $(PATH_TARGET)/VBoxVideoCat.dir/VBoxVideo.sys \ $(PATH_TARGET)/VBoxVideoCat.dir/VBoxDisp.dll \ $(PATH_TARGET)/VBoxVideoCat.dir/VBoxVideo.cat endif VBoxVideo-inf_CLEAN = $(VBoxVideo-inf_SOURCES) VBoxVideo-inf_BLDDIRS = \ $(PATH_TARGET)/VBoxVideoCat.dir $(PATH_TARGET)/VBoxVideoCat.dir/VBoxVideo.inf: $(PATH_SUB_CURRENT)/mp/xpdm/VBoxVideo.inf $(MAKEFILE_CURRENT) | $$(dir $$@) $(call MSG_GENERATE,VBoxVideo-inf,$@,$<) $(call VBOX_EDIT_INF_FN,$<,$@) $(PATH_TARGET)/VBoxVideoCat.dir/VBoxVideo.sys: $$(VBoxVideo_1_TARGET) | $$(dir $$@) $(INSTALL) -m 644 $< $(@D) $(PATH_TARGET)/VBoxVideoCat.dir/VBoxDisp.dll: $$(VBoxDisp_1_TARGET) | $$(dir $$@) $(INSTALL) -m 644 $< $(@D) $(PATH_TARGET)/VBoxVideoCat.dir/VBoxVideo.cat: \ $(PATH_TARGET)/VBoxVideoCat.dir/VBoxVideo.inf \ $(PATH_TARGET)/VBoxVideoCat.dir/VBoxVideo.sys \ $(PATH_TARGET)/VBoxVideoCat.dir/VBoxDisp.dll $(call MSG_TOOL,Inf2Cat,VBoxVideo-inf,$@,$<) $(call VBOX_MAKE_CAT_FN, $(@D),$@) ifdef VBOX_WITH_WDDM VBOXWDDM_WITH_DISPD3D = 1 # # Install the inf & cat. # This has to be done here since it depends on both the # miniport driver and the display dll. # INSTALLS += VBoxWddm-inf VBoxWddm-inf_INST = $(INST_ADDITIONS) VBoxWddm-inf_MODE = a+r,u+w VBoxWddm-inf_SOURCES = \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxWddm.inf ifdef VBOX_SIGN_ADDITIONS VBoxWddm-inf_SOURCES += \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxWddm.sys \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxWddm.cat ifdef VBOXWDDM_WITH_DISPD3D VBoxWddm-inf_SOURCES += \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxDispD3D.dll VBoxWddm-inf_SOURCES.amd64 += \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxDispD3D-x86.dll endif # VBOXWDDM_WITH_DISPD3D ifdef VBOX_WITH_MESA3D VBoxWddm-inf_SOURCES += \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxNine.dll \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxSVGA.dll \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxICD.dll \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxGL.dll VBoxWddm-inf_SOURCES.amd64 += \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxNine-x86.dll \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxSVGA-x86.dll \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxICD-x86.dll \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxGL-x86.dll endif endif # VBOX_SIGN_ADDITIONS VBoxWddm-inf_CLEAN = $(VBoxWddm-inf_SOURCES) VBoxWddm-inf_CLEAN.amd64 = $(VBoxWddm-inf_SOURCES.amd64) VBoxWddm-inf_BLDDIRS = \ $(PATH_TARGET)/VBoxWddmCat.dir VBOXWDDM_EDIT_INF_DISPD3D_FN_ARG = $(if $(VBOXWDDM_WITH_DISPD3D),-e 's/^;dispd3d *//', -e '/^;dispd3d /d') VBOXWDDM_EDIT_INF_MESA3D_FN_ARG = $(if $(VBOX_WITH_MESA3D),-e 's/^;mesa3d *//', -e '/^;mesa3d /d') $(PATH_TARGET)/VBoxWddmCat.dir/VBoxWddm.inf: \ $(PATH_SUB_CURRENT)/mp/wddm/VBoxWddm.inf $(MAKEFILE_CURRENT) | $$(dir $$@) $(call MSG_GENERATE,VBoxWddm-inf,$@,$<) $(call VBOX_EDIT_INF_FN,$<,$@ $(VBOXWDDM_EDIT_INF_DISPD3D_FN_ARG) $(VBOXWDDM_EDIT_INF_MESA3D_FN_ARG)) $(PATH_TARGET)/VBoxWddmCat.dir/VBoxWddm.sys: $$(VBoxWddm_1_TARGET) | $$(dir $$@) $(INSTALL) -m 644 $< $(@D) ifdef VBOXWDDM_WITH_DISPD3D $(PATH_TARGET)/VBoxWddmCat.dir/VBoxDispD3D.dll: $$(VBoxDispD3D_1_TARGET) | $$(dir $$@) $(INSTALL) -m 644 $< $(@D) ifeq ($(KBUILD_TARGET_ARCH),amd64) $(PATH_TARGET)/VBoxWddmCat.dir/VBoxDispD3D-x86.dll: $$(VBoxDispD3D-x86_1_TARGET) | $$(dir $$@) $(INSTALL) -m 644 $< $(@D) endif endif # VBOXWDDM_WITH_DISPD3D ifdef VBOX_WITH_MESA3D $(PATH_TARGET)/VBoxWddmCat.dir/VBoxNine.dll: $$(VBoxNine_1_TARGET) | $$(dir $$@) $(INSTALL) -m 644 "$<" "$(@D)" $(PATH_TARGET)/VBoxWddmCat.dir/VBoxSVGA.dll: $$(VBoxSVGA_1_TARGET) | $$(dir $$@) $(INSTALL) -m 644 "$<" "$(@D)" $(PATH_TARGET)/VBoxWddmCat.dir/VBoxICD.dll: $$(VBoxICD_1_TARGET) | $$(dir $$@) $(INSTALL) -m 644 "$<" "$(@D)" $(PATH_TARGET)/VBoxWddmCat.dir/VBoxGL.dll: $$(VBoxGL_1_TARGET) | $$(dir $$@) $(INSTALL) -m 644 "$<" "$(@D)" ifeq ($(KBUILD_TARGET_ARCH),amd64) $(PATH_TARGET)/VBoxWddmCat.dir/VBoxNine-x86.dll: $$(VBoxNine-x86_1_TARGET) | $$(dir $$@) $(INSTALL) -m 644 $< $(@D) $(PATH_TARGET)/VBoxWddmCat.dir/VBoxSVGA-x86.dll: $$(VBoxSVGA-x86_1_TARGET) | $$(dir $$@) $(INSTALL) -m 644 $< $(@D) $(PATH_TARGET)/VBoxWddmCat.dir/VBoxICD-x86.dll: $$(VBoxICD-x86_1_TARGET) | $$(dir $$@) $(INSTALL) -m 644 $< $(@D) $(PATH_TARGET)/VBoxWddmCat.dir/VBoxGL-x86.dll: $$(VBoxGL-x86_1_TARGET) | $$(dir $$@) $(INSTALL) -m 644 $< $(@D) endif endif $(PATH_TARGET)/VBoxWddmCat.dir/VBoxWddm.cat: \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxWddm.inf \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxWddm.sys \ $(if $(VBOXWDDM_WITH_DISPD3D), $(PATH_TARGET)/VBoxWddmCat.dir/VBoxDispD3D.dll, ) \ $(if $(VBOXWDDM_WITH_DISPD3D), $(if-expr "$(KBUILD_TARGET_ARCH)" == "amd64", $(PATH_TARGET)/VBoxWddmCat.dir/VBoxDispD3D-x86.dll, ), ) \ $(if $(VBOX_WITH_MESA3D), \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxNine.dll \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxSVGA.dll \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxICD.dll \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxGL.dll \ $(if-expr "$(KBUILD_TARGET_ARCH)" == "amd64", \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxNine-x86.dll \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxSVGA-x86.dll \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxICD-x86.dll \ $(PATH_TARGET)/VBoxWddmCat.dir/VBoxGL-x86.dll, ), ) $(call MSG_TOOL,Inf2Cat,VBoxWddm-inf,$@,$<) $(call VBOX_MAKE_CAT_FN, $(@D),$@) endif # VBOX_WITH_WDDM include $(FILE_KBUILD_SUB_FOOTER)