Makefile.kmk revision 5389e77b2ca4ea0a153c5dd1577f9771fb9ec330
# $Id$
## @file
# Makefile for the Wine D3D related dlls for VirtualBox.
#
#
# Copyright (C) 2009-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
#
# Template for building wine stuff.
#
TEMPLATE_VBoxGuestWineDLL = Template for building a wine DLL.
TEMPLATE_VBoxGuestWineDLL_EXTENDS = VBOXGUESTR3NPDLL
TEMPLATE_VBoxGuestWineDLL_DEFS = $(TEMPLATE_VBOXGUESTR3NPDLL_DEFS) \
__WINESRC__ \
WINE_UNICODE_API="" \
_REENTRANT \
WINE_NOWINSOCK \
USE_WIN32_OPENGL \
DLLDIR=\"\" \
BINDIR=\"\" \
LIB_TO_BINDIR=\"\" \
LIB_TO_DLLDIR=\"\" \
BIN_TO_DLLDIR=\"\" \
LIB_TO_DATADIR=\"\" \
BIN_TO_DATADIR=\"\"
TEMPLATE_VBoxGuestWineDLL_DEFS.x86 = __i386__
#
# Template for building the D3D[89] stuff.
#
TEMPLATE_VBoxGuestWineD3DxDLL = Template for building the D3D8/9 stuff.
TEMPLATE_VBoxGuestWineD3DxDLL_EXTENDS = VBOXGUESTR3NPDLL
TEMPLATE_VBoxGuestWineD3DxDLL_EXTENDS_BY = appending
TEMPLATE_VBoxGuestWineD3DxDLL_SDKS = ReorderCompilerIncs $(VBOX_WINDDK_GST_WLH)
TEMPLATE_VBoxGuestWineD3DxDLL_DEFS = VBOX_USING_WINDDK_W7_OR_LATER
TEMPLATE_VBoxGuestWineD3DxDLL_DEFS.x86 = __i386__
TEMPLATE_VBoxGuestWineD3DxDLL_DEFS = VBOX_WINE_WITH_IPRT
TEMPLATE_VBoxGuestWineD3DxDLL_LIBS = \
$(VBOX_LIB_IPRT_GUEST_R3) \
$(VBOX_LIB_VBGL_R3)
if 0
#
# libWine - ???.
#
DLLS.x86 += libWine
libWine_TEMPLATE = VBoxGuestWineDLL
libWine_INCS = \
include
libWine_SOURCES := \
endif # 0
#
# wined3d - ???.
#
DLLS += wined3d
wined3d_TEMPLATE = VBoxGuestWineDLL
wined3d_SDKS = ReorderCompilerIncs $(VBOX_WINDDK_GST_WLH)
wined3d_DEFS = \
_USE_MATH_DEFINES \
VBOX_USING_WINDDK_W7_OR_LATER \
VBOX_WINE_WITHOUT_LIBWINE \
VBOX_WINE_WITH_SINGLE_CONTEXT \
VBOX_WINE_WITH_IPRT
# ^^^^ wined3d is now using iprt/asm.h, which includes iprt/assert.h, so iprt is required.
if "$(KBUILD_TYPE)" != "debug" || defined(VBOX_WINE_NO_DEBUG_MSGS)
wined3d_DEFS += WINE_NO_DEBUG_MSGS
endif
wined3d_DEFS += \
VBOX_WITH_WINE_FIX_IBMTMR \
VBOX_WITH_WINE_FIX_BUFOFFSET \
VBOX_WITH_WINE_FIX_QUIRKS \
VBOX_WITH_WINE_FIX_PBOPSM \
VBOX_WITH_WINE_FIX_INITCLEAR \
VBOX_WITH_WINE_DBG
#wined3d_DEFS += VBOX_WITH_WINE_FIXES
wined3d_INCS := \
wined3d_SOURCES := \
wined3d_LIBS = \
$(VBOX_LIB_IPRT_GUEST_R3) \
$(VBOX_LIB_VBGL_R3) \
$(PATH_STAGE_LIB)/VBoxOGL$(VBOX_SUFF_LIB)
ifdef VBOX_WITH_WDDM
#
# wined3dwddm - ???
#
DLLS += wined3dwddm
wined3dwddm_EXTENDS = wined3d
if defined(VBOX_SIGNING_MODE)
wined3dwddm_INSTTYPE.win = none
endif
wined3dwddm_DEFS = $(wined3d_DEFS) \
VBOX_WITH_WDDM \
IN_VBOXLIBWINE \
VBOX_WINE_WITH_SHADER_CACHE
ifdef VBOX_WINE_WITH_PROFILE
wined3dwddm_DEFS += VBOX_WINE_WITH_PROFILE
endif
wined3dwddm_INCS = $(wined3d_INCS) \
wined3dwddm_SOURCES = $(subst wined3d.def,wined3dwddm.def,$(wined3d_SOURCES))
wined3dwddm_LIBS = $(wined3d_LIBS) \
$(VBOX_PATH_ADDITIONS_LIB)/VBoxDispMpLogger$(VBOX_SUFF_LIB) \
$(VBOX_PATH_ADDITIONS_LIB)/VBoxCrHgsmi$(VBOX_SUFF_LIB)
#
# wined3dwddm-x86 - ???.
#
DLLS.amd64 += wined3dwddm-x86
wined3dwddm-x86_EXTENDS = wined3dwddm
wined3dwddm-x86_BLD_TRG_ARCH = x86
wined3dwddm-x86_DEFS = $(wined3dwddm_DEFS) VBOX_WDDM_WOW64
wined3dwddm-x86_LIBS = \
$(VBOX_LIB_IPRT_GUEST_R3_X86) \
$(VBOX_LIB_VBGL_R3_X86) \
$(VBOX_PATH_ADDITIONS_LIB)/VBoxDispMpLogger-x86$(VBOX_SUFF_LIB) \
$(VBOX_PATH_ADDITIONS_LIB)/VBoxCrHgsmi-x86$(VBOX_SUFF_LIB) \
$(PATH_STAGE_LIB)/VBoxOGL-x86$(VBOX_SUFF_LIB)
endif # ifdef VBOX_WITH_WDDM
#
# VBoxD3D8 - ???.
#
DLLS += VBoxD3D8
VBoxD3D8_TEMPLATE = VBoxGuestWineDLL
VBoxD3D8_SDKS = ReorderCompilerIncs $(VBOX_WINDDK_GST_WLH)
VBoxD3D8_DEFS = _USE_MATH_DEFINES \
VBOX_USING_WINDDK \
VBOX_WINE_WITHOUT_LIBWINE
if "$(KBUILD_TYPE)" != "debug" || defined(VBOX_WINE_NO_DEBUG_MSGS)
VBoxD3D8_DEFS += WINE_NO_DEBUG_MSGS
endif
VBoxD3D8_INCS := \
VBoxD3D8_SOURCES := \
VBoxD3D8_LIBS = \
$(PATH_STAGE_LIB)/wined3d$(VBOX_SUFF_LIB)
VBoxD3D8_DEFS += VBOX_WINE_WITH_IPRT
VBoxD3D8_LIBS += \
$(VBOX_LIB_IPRT_GUEST_R3) \
$(VBOX_LIB_VBGL_R3)
#
# VBoxD3D9 - ???.
#
DLLS += VBoxD3D9
VBoxD3D9_TEMPLATE = VBoxGuestWineDLL
VBoxD3D9_SDKS = ReorderCompilerIncs $(VBOX_WINDDK_GST_WLH)
VBoxD3D9_DEFS = _USE_MATH_DEFINES \
VBOX_USING_WINDDK \
VBOX_WINE_WITHOUT_LIBWINE
if "$(KBUILD_TYPE)" != "debug" || defined(VBOX_WINE_NO_DEBUG_MSGS)
VBoxD3D9_DEFS += WINE_NO_DEBUG_MSGS
endif
#@todo: do we actually need this?
#VBoxD3D9_DEFS += VBOX_WITH_WINE_FIX_NO9EX
VBoxD3D9_INCS := \
VBoxD3D9_SOURCES := \
VBoxD3D9_LIBS = \
$(PATH_STAGE_LIB)/wined3d$(VBOX_SUFF_LIB)
VBoxD3D9_DEFS += VBOX_WINE_WITH_IPRT
VBoxD3D9_LIBS += \
$(VBOX_LIB_IPRT_GUEST_R3) \
$(VBOX_LIB_VBGL_R3)
ifdef VBOX_WITH_WDDM
#
# VBoxD3D9wddm - ???.
#
DLLS += VBoxD3D9wddm
VBoxD3D9wddm_EXTENDS = VBoxD3D9
if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_WDDM)
VBoxD3D9wddm_INSTTYPE = none
VBoxD3D9wddm_DEBUG_INSTTYPE = both
endif
VBoxD3D9wddm_INCS = $(VBoxD3D9_INCS) \
VBoxD3D9wddm_DEFS += $(VBoxD3D9_DEFS) \
VBOX_WITH_WDDM \
IN_VBOXWINEEX \
VBOX_WINE_NO_LOCK
VBoxD3D9wddm_SOURCES = $(subst d3d9xpdm.def,d3d9wddm.def,$(VBoxD3D9_SOURCES))
VBoxD3D9wddm_LIBS = \
$(subst $(PATH_STAGE_LIB)/wined3d$(VBOX_SUFF_LIB),$(PATH_STAGE_LIB)/wined3dwddm$(VBOX_SUFF_LIB),$(VBoxD3D9_LIBS)) \
$(VBOX_PATH_ADDITIONS_LIB)/VBoxDispMpLogger$(VBOX_SUFF_LIB) \
$(VBOX_PATH_ADDITIONS_LIB)/VBoxCrHgsmi$(VBOX_SUFF_LIB)
#
# VBoxD3D9wddm-x86 - For WOW64.
#
DLLS.amd64 += VBoxD3D9wddm-x86
VBoxD3D9wddm-x86_EXTENDS = VBoxD3D9wddm
VBoxD3D9wddm-x86_BLD_TRG_ARCH = x86
VBoxD3D9wddm-x86_DEFS = $(VBoxD3D9wddm_DEFS) VBOX_WDDM_WOW64
VBoxD3D9wddm-x86_LIBS = $(PATH_STAGE_LIB)/wined3dwddm-x86$(VBOX_SUFF_LIB)
VBoxD3D9wddm-x86_LIBS += \
$(VBOX_LIB_IPRT_GUEST_R3_X86) \
$(VBOX_LIB_VBGL_R3_X86)
VBoxD3D9wddm-x86_LIBS += \
$(VBOX_PATH_ADDITIONS_LIB)/VBoxDispMpLogger-x86$(VBOX_SUFF_LIB) \
$(VBOX_PATH_ADDITIONS_LIB)/VBoxCrHgsmi-x86$(VBOX_SUFF_LIB)
endif # VBOX_WITH_WDDM
#
# d3d8 - ???.
#
DLLS += d3d8
d3d8_TEMPLATE = VBoxGuestWineD3DxDLL
d3d8_SOURCES = \
#
# d3d9 - ???.
#
DLLS += d3d9
d3d9_TEMPLATE = VBoxGuestWineD3DxDLL
d3d9_SOURCES = \
d3d9_SOURCES.x86 = \
include $(FILE_KBUILD_SUB_FOOTER)