Makefile.kmk revision ae9aaa62489b8ace9ce2a0a15f0b2f7d3be340c6
# $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
#
# Target lists.
#
BLDDIRS += \
$(VBOX_PATH_CROGL_GENFILES)/ \
$(VBOX_PATH_CROGL_GENFILES)/state/
ifdef VBOX_WITH_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
VBoxOGLcrutil_SDKS.win = DXSDK
VBoxOGLcrutil_INTERMEDIATES = $(VBOX_PATH_CROGL_GENFILES)/cr_opcodes.h
VBoxOGLcrutil_SOURCES = \
$(VBOX_PATH_CROGL_GENFILES)/debug_opcodes.c
$(PATH_SDK_DXSDK_LIB)/ddraw.lib \
$(PATH_SDK_DXSDK_LIB)/dxguid.lib
VBoxOGLcrutil_LIBS = \
$(VBOX_LIB_IPRT_GUEST_R3) \
$(VBOX_LIB_VBGL_R3_SHARED) \
$(VBOX_LIB_IPRT_GUEST_R3)
VBoxOGLcrutil_CLEAN = \
$(VBOX_PATH_CROGL_GENFILES)/debug_opcodes.c
# vc7 hangs during compilation of this file when optimizations are enabled.
#
# VBoxOGLhostcrutil
#
VBoxOGLhostcrutil_EXTENDS = VBoxOGLcrutil
VBoxOGLhostcrutil_TEMPLATE = VBOXCROGLR3HOSTDLL
-install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxOGLhostcrutil.dylib \
-current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
## @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.
## @todo kBuild: recheck this (note to self).
VBoxOGLhostcrutil_LIBS = $(LIB_RUNTIME)
#
# 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 VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
#
# VBoxOGLcrpacker
#
VBoxOGLcrpacker_TEMPLATE = VBOXCROGLR3GUESTLIB
VBoxOGLcrpacker_INCS = \
packer
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_SOURCES = \
$(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
#
# 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 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 $(API_FILES) | $$(dir $$@)
$(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 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 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 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 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 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 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_SOURCES = \
$(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
#
# VBoxOGLspuload
#
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 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 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 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 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 VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
#
# VBoxOGLcrstate
#
VBoxOGLcrstate_TEMPLATE = VBOXCROGLR3GUESTLIB
VBoxOGLcrstate_INCS = \
state_tracker
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 = \
$(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_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
#
# VBoxOGLhostcrstate
#
VBoxOGLhostcrstate_EXTENDS = VBoxOGLcrstate
VBoxOGLhostcrstate_TEMPLATE = VBOXCROGLR3HOSTLIB
VBoxOGLhostcrstate_SOURCES = \
$(VBoxOGLcrstate_SOURCES) \
#
# 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 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 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 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 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 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 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 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 VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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_PATH_CROGL_PYTHON_INCLUDE),$@) $(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_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 VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(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_PATH_CROGL_PYTHON_INCLUDE),$@) $(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_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) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
$(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 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 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 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
VBoxOGLerrorspu_INTERMEDIATES = \
$(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h
VBoxOGLerrorspu_SOURCES = \
$(VBOX_PATH_CROGL_GENFILES)/errorspu.c \
VBoxOGLerrorspu_CLEAN = \
$(VBOX_PATH_CROGL_GENFILES)/errorspu.c
VBoxOGLerrorspu_LIBS = \
$(VBOX_LIB_OGL_CRUTIL)
#
# VBoxOGLhosterrorspu
#
VBoxOGLhosterrorspu_EXTENDS = VBoxOGLerrorspu
VBoxOGLhosterrorspu_TEMPLATE = VBOXCROGLR3HOSTDLL
-install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxOGLhosterrorspu.dylib \
-current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
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 VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
include $(KBUILD_PATH)/subfooter.kmk