summaryrefslogtreecommitdiffstats
path: root/src/VBox/GuestHost/OpenGL/Makefile.kmk
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 03:01:46 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 03:01:46 +0000
commitf8fe689a81f906d1b91bb3220acde2a4ecb14c5b (patch)
tree26484e9d7e2c67806c2d1760196ff01aaa858e8c /src/VBox/GuestHost/OpenGL/Makefile.kmk
parentInitial commit. (diff)
downloadvirtualbox-upstream.tar.xz
virtualbox-upstream.zip
Adding upstream version 6.0.4-dfsg.upstream/6.0.4-dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/VBox/GuestHost/OpenGL/Makefile.kmk')
-rw-r--r--src/VBox/GuestHost/OpenGL/Makefile.kmk692
1 files changed, 692 insertions, 0 deletions
diff --git a/src/VBox/GuestHost/OpenGL/Makefile.kmk b/src/VBox/GuestHost/OpenGL/Makefile.kmk
new file mode 100644
index 00000000..87840512
--- /dev/null
+++ b/src/VBox/GuestHost/OpenGL/Makefile.kmk
@@ -0,0 +1,692 @@
+# $Id: Makefile.kmk $
+## @file
+# Sub-Makefile for the VirtualBox Guest/Host OpenGL part
+#
+
+#
+# Copyright (C) 2008-2019 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
+
+
+#
+# Target lists.
+#
+BLDDIRS += \
+ $(VBOX_PATH_CROGL_GENFILES)/ \
+ $(VBOX_PATH_CROGL_GENFILES)/state/
+
+ifdef VBOX_WITH_ADDITIONS
+ ifn1of ($(KBUILD_TARGET), darwin os2)
+ VBOX_WITH_CROGL_ADDITIONS = 1
+ endif
+endif
+
+ifdef VBOX_WITH_CROGL_ADDITIONS
+ DLLS += VBoxOGLcrutil VBoxOGLerrorspu
+ LIBRARIES += VBoxOGLcrpacker VBoxOGLspuload VBoxOGLcrstate
+endif
+
+ifndef VBOX_ONLY_ADDITIONS
+ DLLS += VBoxOGLhostcrutil VBoxOGLhosterrorspu
+ LIBRARIES += VBoxOGLhostcrpacker VBoxOGLhostspuload VBoxOGLhostcrstate
+endif
+
+#
+# VBoxOGLcrutil
+#
+VBoxOGLcrutil_TEMPLATE = VBOXCROGLR3GUESTDLL
+if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_WDDM)
+ VBoxOGLcrutil_INSTTYPE.win = none
+ VBoxOGLcrutil_DEBUG_INSTTYPE.win = both
+endif
+VBoxOGLcrutil_SDKS.win = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK)
+VBoxOGLcrutil_INTERMEDIATES = $(VBOX_PATH_CROGL_GENFILES)/cr_opcodes.h
+VBoxOGLcrutil_INCS += \
+ $(VBOX_GRAPHICS_INCS)
+if1of ($(KBUILD_TARGET), linux solaris freebsd)
+ VBoxOGLcrutil_INCS += \
+ $(VBOX_GL_INCS)
+endif
+VBoxOGLcrutil_SOURCES = \
+ util/bbox.c \
+ util/bufpool.c \
+ util/calllists.c \
+ util/devnull.c \
+ util/dll.c \
+ util/endian.c \
+ util/environment.c \
+ util/error.c \
+ util/filenet.c \
+ util/hash.c \
+ util/hull.c \
+ util/list.c \
+ util/matrix.c \
+ util/mem.c \
+ util/net.c \
+ util/pixel.c \
+ util/process.c \
+ util/rand.c \
+ util/string.c \
+ util/threads.c \
+ util/tcpip.c \
+ util/udptcpip.c \
+ util/timer.c \
+ util/url.c \
+ util/warp.c \
+ util/vreg.cpp \
+ util/blitter.cpp \
+ util/compositor.cpp \
+ util/htable.cpp \
+ util/bmpscale.cpp \
+ util/vboxhgcm.c \
+ $(VBOX_PATH_CROGL_GENFILES)/debug_opcodes.c
+VBoxOGLcrutil_SOURCES.win = \
+ util/VBoxOGLcrutil.rc
+VBoxOGLcrutil_SOURCES.win.x86 = \
+ util/util.def
+VBoxOGLcrutil_LIBS.win = \
+ $(PATH_SDK_$(VBOX_WINDDK)_LIB)/ddraw.lib \
+ $(PATH_SDK_$(VBOX_WINDDK)_LIB)/dxguid.lib \
+ $(PATH_SDK_$(VBOX_WINDDK)_LIB)/shlwapi.lib
+VBoxOGLcrutil_LIBS = \
+ $(VBOX_LIB_IPRT_GUEST_R3_SHARED) \
+ $(VBOX_LIB_VBGL_R3_SHARED)
+
+# Needed by GDEbuger
+ifdef CR_NO_GL_SYSTEM_PATH
+VBoxOGLcrutil_DEFS += CR_NO_GL_SYSTEM_PATH
+endif
+ifdef VBOX_WITH_CRHGSMI
+VBoxOGLcrutil_DEFS.win += VBOX_WITH_CRHGSMI
+VBoxOGLcrutil_LIBS.win += \
+ $(VBOX_PATH_ADDITIONS_LIB)/VBoxWddmUmKmt$(VBOX_SUFF_LIB) \
+ $(VBOX_PATH_ADDITIONS_LIB)/VBoxCrHgsmi$(VBOX_SUFF_LIB)
+endif
+ifdef VBOX_WITH_WDDM
+VBoxOGLcrutil_DEFS.win += VBOX_WITH_WDDM
+VBoxOGLcrutil_DEFS.win += CR_DEBUG_BACKDOOR_ENABLE
+VBoxOGLcrutil_INCS.win += $(PATH_ROOT)/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm
+VBoxOGLcrutil_LIBS.win += $(VBOX_PATH_ADDITIONS_LIB)/VBoxDispMpLogger$(VBOX_SUFF_LIB)
+endif
+VBoxOGLcrutil_CLEAN = \
+ $(VBOX_PATH_CROGL_GENFILES)/debug_opcodes.c
+if1of ($(KBUILD_TARGET), linux)
+VBoxOGLcrutil_LDFLAGS += -Wl,-z,nodelete
+endif
+
+# 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
+
+if defined(VBOX_WITH_WDDM) && defined(VBOX_WITH_CROGL_ADDITIONS)
+#
+# VBoxOGLcrutil-x86 - x86 VBoxOGLcrutil version built for amd64 build
+#
+DLLS.win.amd64 += VBoxOGLcrutil-x86
+VBoxOGLcrutil-x86_TEMPLATE = VBOXCROGLR3GUESTDLL
+VBoxOGLcrutil-x86_EXTENDS = VBoxOGLcrutil
+VBoxOGLcrutil-x86_BLD_TRG_ARCH = x86
+VBoxOGLcrutil-x86_LIBS = $(VBOX_LIB_IPRT_GUEST_R3_SHARED_X86) \
+ $(VBOX_LIB_VBGL_R3_SHARED_X86)
+VBoxOGLcrutil-x86_LIBS.win = \
+ $(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/ddraw.lib \
+ $(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/dxguid.lib
+ifdef VBOX_WITH_CRHGSMI
+# VBOX_WITH_CRHGSMI define is inherited from VBoxOGLcrutil
+VBoxOGLcrutil-x86_LIBS.win += \
+ $(VBOX_PATH_ADDITIONS_LIB)/VBoxWddmUmKmt-x86$(VBOX_SUFF_LIB) \
+ $(VBOX_PATH_ADDITIONS_LIB)/VBoxCrHgsmi-x86$(VBOX_SUFF_LIB)
+endif
+VBoxOGLcrutil-x86_DEFS = $(VBoxOGLcrutil_DEFS) VBOX_WDDM_WOW64
+ifdef VBOX_WITH_WDDM
+# CR_DEBUG_BACKDOOR_ENABLE define is inherited from VBoxOGLcrutil
+VBoxOGLcrutil-x86_INCS.win += $(PATH_ROOT)/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm
+VBoxOGLcrutil-x86_LIBS.win += $(VBOX_PATH_ADDITIONS_LIB)/VBoxDispMpLogger-x86$(VBOX_SUFF_LIB)
+endif
+# vc7 hangs during compilation of this file when optimizations are enabled.
+#VBoxOGLcrutil-x86_pixel.c_CFLAGS += -Od
+#VBoxOGLcrutil-x86_pixel.c_CFLAGS += -Od
+endif
+
+#
+# VBoxOGLhostcrutil
+#
+VBoxOGLhostcrutil_EXTENDS = VBoxOGLcrutil
+VBoxOGLhostcrutil_TEMPLATE = VBOXCROGLR3HOSTDLL
+if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_WDDM)
+ VBoxOGLhostcrutil_INSTTYPE.win = both
+endif
+if1of ($(KBUILD_TARGET), linux)
+VBoxOGLhostcrutil_LDFLAGS = $(NO_SUCH_VARIABLE)
+endif
+VBoxOGLhostcrutil_LDFLAGS.darwin = $(VBoxOGLcrutil_LDFLAGS.darwin) \
+ -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxOGLhostcrutil.dylib
+VBoxOGLhostcrutil_LIBS.win = \
+ $(PATH_SDK_$(VBOX_WINDDK)_LIB)/ddraw.lib \
+ $(PATH_SDK_$(VBOX_WINDDK)_LIB)/dxguid.lib
+VBoxOGLhostcrutil_LIBS = $(LIB_RUNTIME)
+ifdef VBOX_WITH_CRHGSMI
+VBoxOGLhostcrutil_DEFS += VBOX_WITH_CRHGSMI
+endif
+ifdef VBOX_WITH_WDDM
+VBoxOGLhostcrutil_INCS.win = $(NO_SUCH_VARIABLE)
+VBoxOGLhostcrutil_DEFS.win = $(NO_SUCH_VARIABLE)
+endif
+
+#
+# Generate files for VBoxOGLcrutil and VBoxOGLhostcrutil.
+#
+$(VBOX_PATH_CROGL_GENFILES)/debug_opcodes.c: $(PATH_SUB_CURRENT)/util/debug_opcodes.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
+ $(call MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
+
+ifdef VBOX_WITH_CRDUMPER
+$(VBOX_PATH_CROGL_GENFILES)/dump_gen.cpp: $(PATH_SUB_CURRENT)/state_tracker/dump_gen.py $(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib/get_sizes.py $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_isenabled.txt state_extensions_isenabled.txt) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
+ $(call MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
+endif
+
+#
+# VBoxOGLcrpacker
+#
+VBoxOGLcrpacker_TEMPLATE = VBOXCROGLR3GUESTLIB
+VBoxOGLcrpacker_INCS = \
+ packer \
+ $(VBOX_GRAPHICS_INCS)
+if1of ($(KBUILD_TARGET), linux solaris freebsd)
+ VBoxOGLcrpacker_INCS += \
+ $(VBOX_GL_INCS)
+endif
+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)/state/cr_statefuncs.h \
+ $(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h
+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 \
+ packer/pack_shaders.c \
+ packer/pack_framebuffer.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_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
+ifdef VBOX_WITH_CRHGSMI
+VBoxOGLcrpacker_DEFS.win += VBOX_WITH_CRHGSMI
+endif
+ifdef VBOX_WITH_WDDM
+VBoxOGLcrpacker_DEFS.win += VBOX_WITH_WDDM
+endif
+
+if defined(VBOX_WITH_WDDM) && defined(VBOX_WITH_CROGL_ADDITIONS)
+#
+# VBoxOGLcrpacker-x86 - x86 VBoxOGLcrpacker version built for amd64 build
+#
+LIBRARIES.win.amd64 += VBoxOGLcrpacker-x86
+VBoxOGLcrpacker-x86_TEMPLATE = VBOXCROGLR3GUESTLIB
+VBoxOGLcrpacker-x86_EXTENDS = VBoxOGLcrpacker
+VBoxOGLcrpacker-x86_BLD_TRG_ARCH = x86
+VBoxOGLcrpacker-x86_DEFS = $(VBoxOGLcrpacker_DEFS) VBOX_WDDM_WOW64
+endif
+
+#
+# VBoxOGLhostcrpacker
+#
+VBoxOGLhostcrpacker_EXTENDS = VBoxOGLcrpacker
+VBoxOGLhostcrpacker_TEMPLATE = VBOXCROGLR3HOSTLIB
+
+#
+# Generate files for VBoxOGLcrpacker and VBoxOGLhostcrpacker.
+#
+$(VBOX_PATH_CROGL_GENFILES)/packer.def: $(PATH_SUB_CURRENT)/packer/packer_defs.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
+ $(call MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 $(VBOX_CROGL_API_FILES) | $$(dir $$@)
+ $(call MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
+
+$(VBOX_PATH_CROGL_GENFILES)/pack_bbox.c: $(PATH_SUB_CURRENT)/packer/packer_bbox.py | $$(dir $$@)
+ $(call MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $<
+
+$(VBOX_PATH_CROGL_GENFILES)/%_swap.c: $(PATH_SUB_CURRENT)/packer/%.c $(PATH_SUB_CURRENT)/packer/pack_swap.py | $$(dir $$@)
+ $(call MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/pack_swap.py $<
+
+
+#
+# VBoxOGLspuload
+#
+VBoxOGLspuload_TEMPLATE = VBOXCROGLR3GUESTLIB
+VBoxOGLspuload_INTERMEDIATES = \
+ $(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h
+VBoxOGLspuload_INCS += \
+ $(VBOX_GRAPHICS_INCS)
+if1of ($(KBUILD_TARGET), linux solaris freebsd)
+ VBoxOGLspuload_INCS += \
+ $(VBOX_GL_INCS)
+endif
+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_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
+ifdef VBOX_WITH_CRHGSMI
+VBoxOGLspuload_DEFS.win += VBOX_WITH_CRHGSMI
+endif
+ifdef VBOX_WITH_WDDM
+VBoxOGLspuload_DEFS.win += VBOX_WITH_WDDM
+endif
+
+if defined(VBOX_WITH_WDDM) && defined(VBOX_WITH_CROGL_ADDITIONS)
+#
+# VBoxOGLspuload-x86 - x86 VBoxOGLspuload version built for amd64 build
+#
+LIBRARIES.win.amd64 += VBoxOGLspuload-x86
+VBoxOGLspuload-x86_TEMPLATE = VBOXCROGLR3GUESTLIB
+VBoxOGLspuload-x86_EXTENDS = VBoxOGLspuload
+VBoxOGLspuload-x86_BLD_TRG_ARCH = x86
+VBoxOGLspuload-x86_DEFS = $(VBoxOGLspuload_DEFS) VBOX_WDDM_WOW64
+endif
+
+
+#
+# VBoxOGLhostspuload
+#
+VBoxOGLhostspuload_EXTENDS = VBoxOGLspuload
+VBoxOGLhostspuload_TEMPLATE = VBOXCROGLR3HOSTLIB
+
+#
+# Generate files for VBoxOGLspuload and VBoxOGLhostspuload.
+#
+$(VBOX_PATH_CROGL_GENFILES)/dispatch.c: $(PATH_SUB_CURRENT)/spu_loader/dispatch.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
+ $(call MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
+
+
+#
+# VBoxOGLcrstate
+#
+VBoxOGLcrstate_TEMPLATE = VBOXCROGLR3GUESTLIB
+VBoxOGLcrstate_INCS = \
+ state_tracker \
+ $(VBOX_GRAPHICS_INCS)
+if1of ($(KBUILD_TARGET), linux solaris freebsd)
+ VBoxOGLcrstate_INCS += \
+ $(VBOX_GL_INCS)
+endif
+VBoxOGLcrstate_INTERMEDIATES = \
+ $(VBOX_PATH_CROGL_GENFILES)/state/cr_statefuncs.h \
+ $(VBOX_PATH_CROGL_GENFILES)/state/cr_currentpointers.h \
+ $(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h
+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 \
+ state_tracker/state_framebuffer.c \
+ state_tracker/state_glsl.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_polygon_gen.c \
+ $(VBOX_PATH_CROGL_GENFILES)/state_regcombiner_gen.c \
+ $(VBOX_PATH_CROGL_GENFILES)/state_viewport_gen.c \
+ $(VBOX_PATH_CROGL_GENFILES)/state_get.c \
+ $(VBOX_PATH_CROGL_GENFILES)/state_isenabled.c
+ifdef VBOX_WITH_CRDUMPER
+VBoxOGLcrstate_SOURCES += state_tracker/dump.cpp \
+ $(VBOX_PATH_CROGL_GENFILES)/dump_gen.cpp
+endif
+VBoxOGLcrstate_SOURCES.win = \
+ $(PATH_ROOT)/src/VBox/Runtime/common/asm/ASMBitNextClear.asm \
+ $(PATH_ROOT)/src/VBox/Runtime/common/asm/ASMBitNextSet.asm
+
+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_polygon_gen.c \
+ $(VBOX_PATH_CROGL_GENFILES)/state_regcombiner_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
+ifdef VBOX_WITH_CRDUMPER
+VBoxOGLcrstate_CLEAN += $(VBOX_PATH_CROGL_GENFILES)/dump_gen.cpp
+endif
+
+ifneq ($(KBUILD_TARGET),win)
+state_tracker/state_lists.c_CFLAGS += $(VBOX_GCC_Wno-pointer-sign)
+VBoxOGLcrstate_CFLAGS +=
+endif
+ifdef VBOX_WITH_CRHGSMI
+VBoxOGLcrstate_DEFS.win += VBOX_WITH_CRHGSMI
+endif
+ifdef VBOX_WITH_WDDM
+VBoxOGLcrstate_DEFS.win += VBOX_WITH_WDDM
+endif
+ifdef VBOX_WITH_CRDUMPER
+VBoxOGLcrstate_DEFS += VBOX_WITH_CRDUMPER
+#VBoxOGLcrutil_LIBS += \
+ $(PATH_STAGE_LIB)/additions/VBoxOGLcrstate$(VBOX_SUFF_LIB) \
+ $(PATH_STAGE_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB)
+endif
+
+if defined(VBOX_WITH_WDDM) && defined(VBOX_WITH_CROGL_ADDITIONS)
+#
+# VBoxOGLcrstate-x86 - x86 VBoxOGLcrstate version built for amd64 build
+#
+LIBRARIES.win.amd64 += VBoxOGLcrstate-x86
+VBoxOGLcrstate-x86_TEMPLATE = VBOXCROGLR3GUESTLIB
+VBoxOGLcrstate-x86_EXTENDS = VBoxOGLcrstate
+VBoxOGLcrstate-x86_BLD_TRG_ARCH = x86
+VBoxOGLcrstate-x86_DEFS = $(VBoxOGLcrstate_DEFS) VBOX_WDDM_WOW64
+endif
+
+
+#
+# VBoxOGLhostcrstate
+#
+VBoxOGLhostcrstate_EXTENDS = VBoxOGLcrstate
+VBoxOGLhostcrstate_TEMPLATE = VBOXCROGLR3HOSTLIB
+VBoxOGLhostcrstate_SOURCES = \
+ $(VBoxOGLcrstate_SOURCES) \
+ state_tracker/state_snapshot.c
+
+#
+# Generate files for VBoxOGLcrstate and VBoxOGLhostcrstate.
+#
+
+
+$(VBOX_PATH_CROGL_GENFILES)/state_buffer_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_buffer.txt gendiffcode.py) | $$(dir $$@)
+ $(call MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py multisample Multisample $(<D)
+
+$(VBOX_PATH_CROGL_GENFILES)/state_polygon_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_polygon.txt gendiffcode.py) | $$(dir $$@)
+ $(call MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py regcombiner RegCombiner $(<D)
+
+$(VBOX_PATH_CROGL_GENFILES)/state_viewport_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_viewport.txt gendiffcode.py) | $$(dir $$@)
+ $(call MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 get_components.py) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
+ $(call MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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 MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/state_funcs.py $(VBOX_PATH_CROGL_GLAPI) $(<D)
+
+
+#
+# VBoxOGLerrorspu
+# @remark See HostServices/OpenGL/Makefile for and explanation of the gl.h
+# and glu.h intermediate files on darwin.
+#
+VBoxOGLerrorspu_TEMPLATE = VBOXCROGLR3GUESTDLL
+if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_WDDM)
+ VBoxOGLerrorspu_INSTTYPE.win = none
+ VBoxOGLerrorspu_DEBUG_INSTTYPE.win = both
+endif
+VBoxOGLerrorspu_INTERMEDIATES = \
+ $(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h
+VBoxOGLerrorspu_INCS += \
+ $(VBOX_GRAPHICS_INCS)
+if1of ($(KBUILD_TARGET), linux solaris freebsd)
+ VBoxOGLerrorspu_INCS += \
+ $(VBOX_GL_INCS)
+endif
+VBoxOGLerrorspu_SOURCES = \
+ $(VBOX_PATH_CROGL_GENFILES)/errorspu.c \
+ error/errorspu_init.c
+VBoxOGLerrorspu_SOURCES.win = \
+ error/VBoxOGLerrorspu.rc
+VBoxOGLerrorspu_SOURCES.win.x86 = \
+ error/error.def
+VBoxOGLerrorspu_CLEAN = \
+ $(VBOX_PATH_CROGL_GENFILES)/errorspu.c
+VBoxOGLerrorspu_LIBS = \
+ $(VBOX_LIB_OGL_CRUTIL)
+ifdef VBOX_WITH_CRHGSMI
+VBoxOGLerrorspu_DEFS.win += VBOX_WITH_CRHGSMI
+endif
+ifdef VBOX_WITH_WDDM
+VBoxOGLerrorspu_DEFS.win += VBOX_WITH_WDDM
+endif
+
+
+if defined(VBOX_WITH_WDDM) && defined(VBOX_WITH_CROGL_ADDITIONS)
+#
+# VBoxOGLerrorspu-x86 - x86 VBoxOGLerrorspu version built for amd64 build
+#
+DLLS.win.amd64 += VBoxOGLerrorspu-x86
+VBoxOGLerrorspu-x86_TEMPLATE = VBOXCROGLR3GUESTDLL
+VBoxOGLerrorspu-x86_EXTENDS = VBoxOGLerrorspu
+VBoxOGLerrorspu-x86_BLD_TRG_ARCH = x86
+VBoxOGLerrorspu-x86_LIBS = \
+ $(VBOX_LIB_OGL_CRUTIL_X86)
+VBoxOGLerrorspu-x86_DEFS = $(VBoxOGLerrorspu_DEFS) VBOX_WDDM_WOW64
+endif
+
+#
+# VBoxOGLhosterrorspu
+#
+VBoxOGLhosterrorspu_EXTENDS = VBoxOGLerrorspu
+VBoxOGLhosterrorspu_TEMPLATE = VBOXCROGLR3HOSTDLL
+if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_WDDM)
+ VBoxOGLhosterrorspu_INSTTYPE.win = both
+endif
+VBoxOGLhosterrorspu_LDFLAGS.darwin += $(VBoxOGLerrorspu_LDFLAGS.darwin) \
+ -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxOGLhosterrorspu.dylib
+VBoxOGLhosterrorspu_LIBS = \
+ $(VBOX_LIB_OGL_HOSTCRUTIL) \
+ $(LIB_RUNTIME)
+
+#
+# Generate files for VBoxOGLerrorspu and VBoxOGLhosterrorspu.
+#
+$(VBOX_PATH_CROGL_GENFILES)/errorspu.c: $(PATH_SUB_CURRENT)/error/error.py $(VBOX_CROGL_API_FILES)
+ $(call MSG_GENERATE,python,$@,$<)
+ $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
+include $(FILE_KBUILD_SUB_FOOTER)
+