Makefile.kmk revision aae15a3015041f7ed6043344bf4939736254acf6
# $Id$
## @file
# Sub-Makefile for the VirtualBox Guest/Host OpenGL part
#
#
# Copyright (C) 2008 Sun Microsystems, Inc.
#
# 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.
#
# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
# Clara, CA 95054 USA or visit http://www.sun.com if you need
# additional information or have any questions.
#
SUB_DEPTH = ../../../..
include $(KBUILD_PATH)/subheader.kmk
if1of ($(KBUILD_HOST), win)
VBOX_CROGL_GUEST_HOST_PYTHONPATH := $(VBOX_PATH_CROGL_GLAPI);$(PATH_ROOT)/src/VBox/GuestHost/OpenGL/packer;$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib
else
VBOX_CROGL_GUEST_HOST_PYTHONPATH := $(VBOX_PATH_CROGL_GLAPI):$(PATH_ROOT)/src/VBox/GuestHost/OpenGL/packer:$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib
endif
BLDDIRS += \
$(VBOX_PATH_CROGL_GENFILES)/ \
$(VBOX_PATH_CROGL_GENFILES)/state/
ifdef VBOX_WITH_ADDITIONS
DLLS += VBoxOGLcrutil
DLLS += VBoxOGLerrorspu
LIBRARIES += VBoxOGLcrpacker
LIBRARIES += VBoxOGLspuload
LIBRARIES += VBoxOGLcrstate
endif
ifndef VBOX_ONLY_ADDITIONS
DLLS += VBoxOGLhostcrutil
DLLS += VBoxOGLhosterrorspu
LIBRARIES += VBoxOGLhostcrpacker
LIBRARIES += VBoxOGLhostspuload
LIBRARIES += VBoxOGLhostcrstate
endif
## VBOXOGLR3GUESTHOST ##
TEMPLATE_VBOXOGLR3GUESTHOST = VBox OpenGL GuestHost DLLs/Libraries
TEMPLATE_VBOXOGLR3GUESTHOST_EXTENDS = VBOXR3NP
TEMPLATE_VBOXOGLR3GUESTHOST_DEFS = $(TEMPLATE_VBOXR3NP_DEFS) CHROMIUM_THREADSAFE VBOX_WITH_HGCM
TEMPLATE_VBOXOGLR3GUESTHOST_DEFS.win = $(TEMPLATE_VBOXOGLR3GUESTHOST_DEFS) _WIN32_WINNT=0x0500 WINDOWS=1
TEMPLATE_VBOXOGLR3GUESTHOST_DEFS.linux = $(TEMPLATE_VBOXOGLR3GUESTHOST_DEFS) Linux=1
TEMPLATE_VBOXOGLR3GUESTHOST_DEFS.solaris = $(TEMPLATE_VBOXOGLR3GUESTHOST_DEFS) SunOS=1 GLEXT_64_TYPES_DEFINED
TEMPLATE_VBOXOGLR3GUESTHOST_DEFS.darwin = $(TEMPLATE_VBOXOGLR3GUESTHOST_DEFS) DARWIN=1 GL_GLEXT_LEGACY
TEMPLATE_VBOXOGLR3GUESTHOST_INCS = $(VBOX_PATH_CROGL_INCLUDE) $(VBOX_PATH_CROGL_GENFILES)
TEMPLATE_VBOXOGLR3GUESTHOST_INCS.darwin = $(PATH_OUT)/obj/VBoxOGL
TEMPLATE_VBOXOGLR3GUESTHOST_LDFLAGS.linux = -Wl,--no-as-needed
TEMPLATE_VBOXOGLR3GUESTHOST_LDFLAGS.darwin = -framework Carbon -framework OpenGL -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
TEMPLATE_VBOXOGLR3GUESTHOST_BLDDIRS = $(VBOX_PATH_CROGL_GENFILES)/
#
# VBoxOGLcrutil
#
VBoxOGLcrutil_TEMPLATE = VBOXOGLR3GUESTHOST
VBoxOGLcrutil_SDKS.win = DXSDK
VBoxOGLcrutil_INTERMEDIATES = $(VBOX_PATH_CROGL_GENFILES)/cr_opcodes.h
VBoxOGLcrutil_SOURCES = \
bbox.c \
bufpool.c \
calllists.c \
devnull.c \
dll.c \
endian.c \
environment.c \
error.c \
filenet.c \
hash.c \
hull.c \
list.c \
matrix.c \
mem.c \
net.c \
pixel.c \
process.c \
rand.c \
string.c \
threads.c \
tcpip.c \
udptcpip.c \
timer.c \
url.c \
warp.c \
vboxhgcm.c
VBoxOGLcrutil_SOURCES := $(addprefix util/, $(VBoxOGLcrutil_SOURCES)) $(VBOX_PATH_CROGL_GENFILES)/debug_opcodes.c
VBoxOGLcrutil_SOURCES.win.x86 = util/util.def
VBoxOGLcrutil_CLEAN := $(VBOX_PATH_CROGL_GENFILES)/debug_opcodes.c
VBoxOGLcrutil_LIBS.win = \
$(PATH_SDK_DXSDK_LIB)/ddraw.lib \
$(PATH_SDK_DXSDK_LIB)/dxguid.lib
# vc7 hangs during compilation of this file when optimizations are enabled.
VBoxOGLcrutil_pixel.c_CFLAGS.win.x86 += -Od
VBoxOGLhostcrutil_pixel.c_CFLAGS.win.x86 += -Od
VBoxOGLhostcrutil_TEMPLATE = VBOXOGLR3GUESTHOST
VBoxOGLhostcrutil_EXTENDS = VBoxOGLcrutil
VBoxOGLhostcrutil_LDFLAGS.darwin += $(VBoxOGLcrutil_LDFLAGS.darwin) -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxOGLhostcrutil.dylib -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
# hostcrutil_NAME = crutil - possible, but it creates conflicting library files in PATH_LIB.
## @todo kBuild bug, possibly same as ticket #51: PATH_SDK_DXSDK_LIB is expanded too early.
# Update. bug 51 was fixed.
# Still fails as PATH_SDK_DXSDK_LIB is empty.
VBoxOGLhostcrutil_LIBS += $(LIB_RUNTIME)
VBoxOGLhostcrutil_LIBS.win = $(VBoxOGLcrutil_LIBS.win)
$(VBOX_PATH_CROGL_GENFILES)/debug_opcodes.c: $(PATH_SUB_CURRENT)/util/debug_opcodes.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
#
# VBoxOGLcrpacker
#
VBoxOGLcrpacker_TEMPLATE = VBOXOGLR3GUESTHOST
VBoxOGLcrpacker_INCS := $(PATH_SUB_CURRENT)/packer
VBoxOGLcrpacker_SOURCES := \
packer/pack_arrays.c \
packer/pack_beginend.c \
packer/pack_bounds.c \
packer/pack_buffer.c \
packer/pack_bufferobject.c \
packer/pack_client.c \
packer/pack_clipplane.c \
packer/pack_context.c \
packer/pack_error.c \
packer/pack_extensions.c \
packer/pack_feedback.c \
packer/pack_fence.c \
packer/pack_fog.c \
packer/pack_init.c \
packer/pack_lights.c \
packer/pack_lists.c \
packer/pack_swap_lists.c \
packer/pack_map.c \
packer/pack_point.c \
packer/pack_swap_map.c \
packer/pack_misc.c \
packer/pack_materials.c \
packer/pack_matrices.c \
packer/pack_pixels.c \
packer/pack_pixelmap.c \
packer/pack_swap_pixelmap.c \
packer/pack_program.c \
packer/pack_regcombiner.c \
packer/pack_stipple.c \
packer/pack_texture.c \
packer/pack_swap_texture.c \
packer/pack_visibleregion.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_arrays_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_bounds_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_bufferobject_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_client_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_clipplane_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_fog_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_lights_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_materials_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_matrices_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_misc_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_pixels_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_point_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_program_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_regcombiner_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_stipple_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_bbox.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_current.c \
$(VBOX_PATH_CROGL_GENFILES)/packer.c
VBoxOGLcrpacker_INTERMEDIATES := \
$(VBOX_PATH_CROGL_GENFILES)/cr_packfunctions.h \
$(VBOX_PATH_CROGL_GENFILES)/cr_opcodes.h \
$(VBOX_PATH_CROGL_GENFILES)/state/cr_currentpointers.h \
$(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h
VBoxOGLcrpacker_CLEAN := \
$(VBOX_PATH_CROGL_GENFILES)/pack_arrays_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_bounds_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_bufferobject_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_client_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_clipplane_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_fog_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_lights_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_materials_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_matrices_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_misc_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_pixels_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_point_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_program_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_regcombiner_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_stipple_swap.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_bbox.c \
$(VBOX_PATH_CROGL_GENFILES)/pack_current.c \
$(VBOX_PATH_CROGL_GENFILES)/packer.c \
$(VBOX_PATH_CROGL_GENFILES)/cr_packfunctions.h \
$(VBOX_PATH_CROGL_GENFILES)/cr_opcodes.h \
$(VBOX_PATH_CROGL_GENFILES)/state/cr_currentpointers.h
VBoxOGLcrpacker_LIBS.win = $(PATH_LIB)/VBoxOGLcrutil$(VBOX_SUFF_LIB)
if1of ($(KBUILD_TARGET), linux solaris darwin)
VBoxOGLcrpacker_LIBS = $(VBOX_PATH_ADDITIONS)/VBoxOGLcrutil$(VBOX_SUFF_DLL)
endif
VBoxOGLhostcrpacker_TEMPLATE = VBOXOGLR3GUESTHOST
VBoxOGLhostcrpacker_EXTENDS = VBoxOGLcrpacker
VBoxOGLhostcrpacker_LIBS.win = $(PATH_LIB)/VBoxOGLhostcrutil$(VBOX_SUFF_LIB)
if1of ($(KBUILD_TARGET), linux solaris darwin)
VBoxOGLhostcrpacker_LIBS = $(PATH_BIN)/VBoxOGLhostcrutil$(VBOX_SUFF_DLL)
endif
$(VBOX_PATH_CROGL_GENFILES)/packer.def: $(PATH_SUB_CURRENT)/packer/packer_defs.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
$(VBOX_PATH_CROGL_GENFILES)/cr_packfunctions.h: $(PATH_SUB_CURRENT)/packer/pack_header.py $(PATH_SUB_CURRENT)/packer/packer_special $(API_FILES) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
$(VBOX_PATH_CROGL_GENFILES)/cr_opcodes.h: $(PATH_SUB_CURRENT)/packer/opcodes.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
$(VBOX_PATH_CROGL_GENFILES)/state/cr_currentpointers.h: $(PATH_SUB_CURRENT)/packer/pack_currentheader.py $(PATH_SUB_CURRENT)/packer/pack_currenttypes.py | $$(dir $(VBOX_PATH_CROGL_GENFILES)) $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $<
$(VBOX_PATH_CROGL_GENFILES)/packer.c: $(PATH_SUB_CURRENT)/packer/packer.py $(PATH_SUB_CURRENT)/packer/packer_special $(VBOX_CROGL_API_FILES) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
$(VBOX_PATH_CROGL_GENFILES)/pack_bbox.c: $(PATH_SUB_CURRENT)/packer/packer_bbox.py | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
$(VBOX_PATH_CROGL_GENFILES)/pack_current.c: $(PATH_SUB_CURRENT)/packer/pack_current.py $(PATH_SUB_CURRENT)/packer/pack_currenttypes.py | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $<
$(VBOX_PATH_CROGL_GENFILES)/%_swap.c: $(PATH_SUB_CURRENT)/packer/%.c $(PATH_SUB_CURRENT)/packer/pack_swap.py | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/pack_swap.py $<
#
# VBoxOGLspuload
#
VBoxOGLspuload_TEMPLATE = VBOXOGLR3GUESTHOST
VBoxOGLspuload_SOURCES = \
spu_loader/spuinit.c \
spu_loader/spuload.c \
spu_loader/choosevisual.c \
$(VBOX_PATH_CROGL_GENFILES)/spuchange.c \
$(VBOX_PATH_CROGL_GENFILES)/spucopy.c \
$(VBOX_PATH_CROGL_GENFILES)/dispatch.c \
$(VBOX_PATH_CROGL_GENFILES)/glloader.c
VBoxOGLspuload_DEPS := $(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h
VBoxOGLspuload_CLEAN = \
$(VBOX_PATH_CROGL_GENFILES)/spuchange.c \
$(VBOX_PATH_CROGL_GENFILES)/spucopy.c \
$(VBOX_PATH_CROGL_GENFILES)/dispatch.c \
$(VBOX_PATH_CROGL_GENFILES)/glloader.c \
$(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h
VBoxOGLspuload_LIBS.win = $(PATH_LIB)/VBoxOGLcrutil$(VBOX_SUFF_LIB)
if1of ($(KBUILD_TARGET), linux solaris darwin)
VBoxOGLspuload_LIBS += \
$(VBOX_PATH_ADDITIONS)/VBoxOGLcrutil$(VBOX_SUFF_DLL)
endif
VBoxOGLhostspuload_TEMPLATE = VBOXOGLR3GUESTHOST
VBoxOGLhostspuload_EXTENDS = VBoxOGLspuload
VBoxOGLhostspuload_LIBS.win = $(PATH_LIB)/VBoxOGLhostcrutil$(VBOX_SUFF_LIB)
if1of ($(KBUILD_TARGET), linux solaris darwin)
VBoxOGLhostspuload_LIBS += \
$(PATH_BIN)/VBoxOGLhostcrutil$(VBOX_SUFF_DLL)
endif
$(VBOX_PATH_CROGL_GENFILES)/dispatch.c: $(PATH_SUB_CURRENT)/spu_loader/dispatch.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
$(VBOX_PATH_CROGL_GENFILES)/spucopy.c: $(PATH_SUB_CURRENT)/spu_loader/spucopy.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
$(VBOX_PATH_CROGL_GENFILES)/spuchange.c: $(PATH_SUB_CURRENT)/spu_loader/spuchange.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
$(VBOX_PATH_CROGL_GENFILES)/glloader.c: $(PATH_SUB_CURRENT)/spu_loader/glloader.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
$(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h: $(PATH_SUB_CURRENT)/spu_loader/dispatchheader.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
#
# VBoxOGLcrstate
#
VBoxOGLcrstate_TEMPLATE = VBOXOGLR3GUESTHOST
VBoxOGLcrstate_INCS := $(PATH_SUB_CURRENT)/state_tracker
VBoxOGLcrstate_SOURCES := \
state_tracker/state_attrib.c \
state_tracker/state_buffer.c \
state_tracker/state_bufferobject.c \
state_tracker/state_client.c \
state_tracker/state_current.c \
state_tracker/state_diff.c \
state_tracker/state_enable.c \
state_tracker/state_error.c \
state_tracker/state_evaluators.c \
state_tracker/state_feedback.c \
state_tracker/state_fence.c \
state_tracker/state_flush.c \
state_tracker/state_fog.c \
state_tracker/state_getstring.c \
state_tracker/state_hint.c \
state_tracker/state_init.c \
state_tracker/state_lighting.c \
state_tracker/state_limits.c \
state_tracker/state_line.c \
state_tracker/state_lists.c \
state_tracker/state_multisample.c \
state_tracker/state_occlude.c \
state_tracker/state_pixel.c \
state_tracker/state_point.c \
state_tracker/state_polygon.c \
state_tracker/state_program.c \
state_tracker/state_rasterpos.c \
state_tracker/state_regcombiner.c \
state_tracker/state_stencil.c \
state_tracker/state_texture.c \
state_tracker/state_teximage.c \
state_tracker/state_texdiff.c \
state_tracker/state_transform.c \
state_tracker/state_viewport.c \
$(VBOX_PATH_CROGL_GENFILES)/state_buffer_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_current_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_fog_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_hint_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_lighting_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_line_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_multisample_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_point_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_polygon_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_regcombiner_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_stencil_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_viewport_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_get.c \
$(VBOX_PATH_CROGL_GENFILES)/state_isenabled.c
VBoxOGLcrstate_INTERMEDIATES := $(VBOX_PATH_CROGL_GENFILES)/state/cr_statefuncs.h
VBoxOGLcrstate_CLEAN := \
$(VBOX_PATH_CROGL_GENFILES)/state_buffer_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_current_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_fog_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_hint_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_lighting_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_line_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_multisample_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_point_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_polygon_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_regcombiner_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_stencil_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_viewport_gen.c \
$(VBOX_PATH_CROGL_GENFILES)/state_get.c \
$(VBOX_PATH_CROGL_GENFILES)/state_isenabled.c \
$(VBOX_PATH_CROGL_GENFILES)/state/cr_statefuncs.h
VBoxOGLcrstate_LIBS.win = \
$(PATH_LIB)/VBoxOGLcrutil$(VBOX_SUFF_LIB) \
$(PATH_LIB)/VBoxOGLspuload$(VBOX_SUFF_LIB)
if1of ($(KBUILD_TARGET), linux solaris darwin)
VBoxOGLcrstate_LIBS += \
$(VBOX_PATH_ADDITIONS)/VBoxOGLcrutil$(VBOX_SUFF_DLL) \
$(VBOX_PATH_ADDITIONS)/VBoxOGLspuload$(VBOX_SUFF_DLL)
endif
VBoxOGLhostcrstate_TEMPLATE = VBOXOGLR3GUESTHOST
VBoxOGLhostcrstate_EXTENDS = VBoxOGLcrstate
VBoxOGLhostcrstate_SOURCES = $(VBoxOGLcrstate_SOURCES) state_tracker/state_snapshot.c
VBoxOGLhostcrstate_LIBS.win = \
$(PATH_LIB)/VBoxOGLhostcrutil$(VBOX_SUFF_LIB) \
$(PATH_LIB)/VBoxOGLhostspuload$(VBOX_SUFF_LIB) \
$(LIB_VMM)
if1of ($(KBUILD_TARGET), linux solaris darwin)
VBoxOGLhostcrstate_LIBS += \
$(PATH_BIN)/VBoxOGLhostcrutil$(VBOX_SUFF_DLL) \
$(PATH_BIN)/VBoxOGLhostspuload$(VBOX_SUFF_DLL) \
$(LIB_VMM)
endif
$(VBOX_PATH_CROGL_GENFILES)/state_buffer_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_buffer.txt gendiffcode.py) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py buffer Buffer $(<D)
$(VBOX_PATH_CROGL_GENFILES)/state_client_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_client.txt gendiffcode.py) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py client Client $(<D)
$(VBOX_PATH_CROGL_GENFILES)/state_current_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_current.py convert.py) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/state_current.py
$(VBOX_PATH_CROGL_GENFILES)/state_fog_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_fog.txt gendiffcode.py) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py fog Fog $(<D)
$(VBOX_PATH_CROGL_GENFILES)/state_hint_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_hint.txt gendiffcode.py) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py hint Hint $(<D)
$(VBOX_PATH_CROGL_GENFILES)/state_lighting_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_lighting.txt gendiffcode.py) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py lighting Lighting $(<D)
$(VBOX_PATH_CROGL_GENFILES)/state_line_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_line.txt gendiffcode.py) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py line Line $(<D)
$(VBOX_PATH_CROGL_GENFILES)/state_multisample_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_multisample.txt gendiffcode.py) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py multisample Multisample $(<D)
$(VBOX_PATH_CROGL_GENFILES)/state_point_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_point.txt gendiffcode.py) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py point Point $(<D)
$(VBOX_PATH_CROGL_GENFILES)/state_polygon_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_polygon.txt gendiffcode.py) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py polygon Polygon $(<D)
$(VBOX_PATH_CROGL_GENFILES)/state_regcombiner_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_regcombiner.txt gendiffcode.py) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py regcombiner RegCombiner $(<D)
$(VBOX_PATH_CROGL_GENFILES)/state_stencil_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_stencil.txt gendiffcode.py) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py stencil Stencil $(<D)
$(VBOX_PATH_CROGL_GENFILES)/state_viewport_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_viewport.txt gendiffcode.py) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py viewport Viewport $(<D)
$(VBOX_PATH_CROGL_GENFILES)/state_get.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_get.py state_get.txt state_extensions_get.txt) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/state_get.py $(VBOX_PATH_CROGL_GLAPI) $(<D)
$(VBOX_PATH_CROGL_GENFILES)/state_isenabled.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_isenabled.py state_isenabled.txt state_extensions_isenabled.txt) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/state_isenabled.py $(VBOX_PATH_CROGL_GLAPI) $(<D)
$(VBOX_PATH_CROGL_GENFILES)/state.def: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_defs.py state_special state_select_special state_feedback_special) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/state_defs.py $(VBOX_PATH_CROGL_GLAPI) $(<D)
$(VBOX_PATH_CROGL_GENFILES)/state/cr_statefuncs.h: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_funcs.py state_special state_feedback_special state_select_special) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $(<D)/state_funcs.py $(VBOX_PATH_CROGL_GLAPI) $(<D)
#
# VBoxOGLerrorspu
#
VBoxOGLerrorspu_TEMPLATE = VBOXOGLR3GUESTHOST
VBoxOGLerrorspu_DEPS.darwin += $(PATH_OUT)/obj/VBoxOGL/GL/gl.h $(PATH_OUT)/obj/VBoxOGL/GL/glu.h
VBoxOGLerrorspu_INTERMEDIATES = $(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h
VBoxOGLerrorspu_SOURCES = \
$(VBOX_PATH_CROGL_GENFILES)/errorspu.c \
error/errorspu_init.c
VBoxOGLerrorspu_SOURCES.win.x86 = error/error.def
VBoxOGLerrorspu_CLEAN := $(VBOX_PATH_CROGL_GENFILES)/errorspu.c
VBoxOGLerrorspu_LIBS.win = $(PATH_LIB)/VBoxOGLcrutil$(VBOX_SUFF_LIB)
if1of ($(KBUILD_TARGET), linux solaris darwin)
VBoxOGLerrorspu_LIBS += \
$(VBOX_PATH_ADDITIONS)/VBoxOGLcrutil$(VBOX_SUFF_DLL)
endif
VBoxOGLhosterrorspu_TEMPLATE = VBOXOGLR3GUESTHOST
VBoxOGLhosterrorspu_EXTENDS = VBoxOGLerrorspu
VBoxOGLhosterrorspu_LIBS += $(LIB_RUNTIME)
VBoxOGLhosterrorspu_LIBS.win = $(PATH_LIB)/VBoxOGLhostcrutil$(VBOX_SUFF_LIB)
VBoxOGLhosterrorspu_LDFLAGS.darwin += $(VBoxOGLerrorspu_LDFLAGS.darwin) -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxOGLhosterrorspu.dylib -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
if1of ($(KBUILD_TARGET), linux solaris darwin)
VBoxOGLhosterrorspu_LIBS += \
$(PATH_BIN)/VBoxOGLhostcrutil$(VBOX_SUFF_DLL)
endif
$(VBOX_PATH_CROGL_GENFILES)/errorspu.c: $(PATH_SUB_CURRENT)/error/error.py $(VBOX_CROGL_API_FILES)
$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_CROGL_GUEST_HOST_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
include $(KBUILD_PATH)/subfooter.kmk