Makefile.kmk revision 8dc3361c3de6b4f38230d57c547ab74b713f6ff1
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# $Id$
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync## @file
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Sub-Makefile for the VirtualBox Guest/Host OpenGL part
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Copyright (C) 2008 Sun Microsystems, Inc.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# available from http://www.virtualbox.org. This file is free software;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# you can redistribute it and/or modify it under the terms of the GNU
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# General Public License (GPL) as published by the Free Software
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Clara, CA 95054 USA or visit http://www.sun.com if you need
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# additional information or have any questions.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncSUB_DEPTH = ../../../..
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncinclude $(KBUILD_PATH)/subheader.kmk
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync## @todo r=bird: Move to Config.kmk, before the SDKs or somewhere like that.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncifndef VBOX_BLD_PYTHON
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync if1of ($(KBUILD_HOST), win)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync VBOX_BLD_PYTHON := $(firstword $(rsort $(wildcard $(PATH_DEVTOOLS)/win.x86/python/v*/python$(HOSTSUFF_EXE))) python-not-found.exe)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync else
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync VBOX_BLD_PYTHON := python$(HOSTSUFF_EXE)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync endif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncendif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync## @todo r=bird: Prefix with VBox + makefile qualifier.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGLAPI_PATH := $(PATH_SUB_CURRENT)/glapi_parser
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync## @todo r=bird: messing with the environment like this doesn't work in the non-recursive make setup (which is default now).
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Do it as part of the python invocation (using REDIRECT by all means, no shell stuff please).
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# For example:
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# VBOX_PYTHON_ENV = $(REDIRECT) $(if $1,-E 'PYTHONPATH=$1',) $(if $2,-o $2,) $(if $3,-i $3) --
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# VBOX_CROGL_PYTHONPATH = $(VBOX_CROGL_GLAPI_PATH);$(PATH_ROOT)/src/VBox/GuestHost/OpenGL/packer;$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# $(PATH_VBOXCROGL_GENFILES)/errorspu.c: $(PATH_SUB_CURRENT)/error/error.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# $(call VBOX_PYTHON_ENV,$(VBOX_CROGL_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncif1of ($(KBUILD_HOST), win)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync export PYTHONPATH := $(GLAPI_PATH);$(PATH_ROOT)/src/VBox/GuestHost/OpenGL/packer;$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncelse
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync export PYTHONPATH := $(GLAPI_PATH):$(PATH_ROOT)/src/VBox/GuestHost/OpenGL/packer:$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncendif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync## @todo r=bird: Prefix. All single word variables are off limit (VB_CROGL_API_FILES or VBOX_CROGL_API_FILES).
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncAPIFILES := $(GLAPI_PATH)/apiutil.py $(GLAPI_PATH)/APIspec.txt
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync## @todo r=bird: VBOXCROGL_GENFILES is only used once, what's the point?
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBOXCROGL_GENFILES := VBoxOGLgen
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync## @todo r=bird: PATH_VBOXCROGL_GENFILES should be VBOX_PATH_CROGL_GENFILES, see Main/Makefile.kmk and others for examples). [Yes, I know non of this is documented anywhere. No time, and according to some its not a priority...]
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncPATH_VBOXCROGL_GENFILES := $(PATH_TARGET)/$(VBOXCROGL_GENFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncBLDDIRS += \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(PATH_VBOXCROGL_GENFILES)/ \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(PATH_VBOXCROGL_GENFILES)/state/
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncifdef VBOX_WITH_ADDITIONS
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncDLLS += VBoxOGLcrutil
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncDLLS += VBoxOGLerrorspu
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncLIBRARIES += VBoxOGLcrpacker
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncLIBRARIES += VBoxOGLspuload
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncLIBRARIES += VBoxOGLcrstate
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncendif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncifndef VBOX_ONLY_ADDITIONS
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncDLLS += VBoxOGLhostcrutil
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncDLLS += VBoxOGLhosterrorspu
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncLIBRARIES += VBoxOGLhostcrpacker
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncLIBRARIES += VBoxOGLhostspuload
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncLIBRARIES += VBoxOGLhostcrstate
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncendif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync## VBoxOGLGuestHostBase ##
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLGuestHostBase_DEFS = CHROMIUM_THREADSAFE VBOX_WITH_HGCM
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLGuestHostBase_DEFS.win = _WIN32_WINNT=0x0500 WINDOWS=1
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLGuestHostBase_DEFS.linux = Linux=1
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLGuestHostBase_DEFS.solaris = SunOS=1 GLEXT_64_TYPES_DEFINED
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLGuestHostBase_DEFS.darwin = DARWIN=1 GL_GLEXT_LEGACY
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# @todo this is not working for some reason
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#VBoxOGLGuestHostBase_INCS := $(PATH_SUB_CURRENT)/include $(PATH_VBOXCROGL_GENFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#VBoxOGLGuestHostBase_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLGuestHostBase_LDFLAGS.darwin += -framework Carbon -framework OpenGL
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# VBoxOGLcrutil
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync## @todo r=bird: next target
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/debug_opcodes.c: $(PATH_SUB_CURRENT)/util/debug_opcodes.py $(APIFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrutil_TEMPLATE = VBOXGUESTR3NPDLL
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrutil_EXTENDS = VBoxOGLGuestHostBase
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrutil_INCS := $(PATH_SUB_CURRENT)/include $(PATH_VBOXCROGL_GENFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrutil_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrutil_SDKS.win = DXSDK
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrutil_INTERMEDIATES = $(PATH_VBOXCROGL_GENFILES)/cr_opcodes.h
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrutil_SOURCES = \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync bbox.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync bufpool.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync calllists.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync devnull.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync dll.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync endian.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync environment.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync error.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync filenet.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync hash.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync hull.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync list.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync matrix.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync mem.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync net.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pixel.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync process.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync rand.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync string.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync threads.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync tcpip.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync udptcpip.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync timer.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync url.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync warp.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync vboxhgcm.c
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrutil_SOURCES := $(addprefix util/, $(VBoxOGLcrutil_SOURCES)) $(PATH_VBOXCROGL_GENFILES)/debug_opcodes.c
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrutil_SOURCES.win.x86 = util/util.def
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrutil_CLEAN := $(PATH_VBOXCROGL_GENFILES)/debug_opcodes.c
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrutil_LIBS.win = \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(PATH_SDK_DXSDK_LIB)/ddraw.lib \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(PATH_SDK_DXSDK_LIB)/dxguid.lib
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# vc7 hangs during compilation of this file when optimizations are enabled.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrutil_pixel.c_CFLAGS.win.x86 += -Od
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostcrutil_pixel.c_CFLAGS.win.x86 += -Od
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostcrutil_TEMPLATE = VBOXR3NP
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostcrutil_EXTENDS = VBoxOGLcrutil
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostcrutil_LDFLAGS.darwin += $(VBoxOGLcrutil_LDFLAGS.darwin) -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxOGLhostcrutil.dylib -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# hostcrutil_NAME = crutil - possible, but it creates conflicting library files in PATH_LIB.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync## @todo kBuild bug, possibly same as ticket #51: PATH_SDK_DXSDK_LIB is expanded too early.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Update. bug 51 was fixed.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Still fails as PATH_SDK_DXSDK_LIB is empty.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostcrutil_LIBS += $(LIB_RUNTIME)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostcrutil_LIBS.win = $(VBoxOGLcrutil_LIBS.win)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# VBoxOGLcrpacker
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync## r=bird: (a) Have to make sure the output directory actually exists, append to pre req list of each:
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# | $$(dir $$@)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# That means the output directory is an order-only dependency.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# (b) VBOX_BLD_PYTHON
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# (c) Rules generating stuff for a target goes *after* the target config. [Another convention which hasn't been written down anywhere.]
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/packer.def: $(PATH_SUB_CURRENT)/packer/packer_defs.py $(APIFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/cr_packfunctions.h: $(PATH_SUB_CURRENT)/packer/pack_header.py $(PATH_SUB_CURRENT)/packer/packer_special $(API_FILES) | $$(dir $$@)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) $(<D) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/cr_opcodes.h: $(PATH_SUB_CURRENT)/packer/opcodes.py $(APIFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state/cr_currentpointers.h: $(PATH_SUB_CURRENT)/packer/pack_currentheader.py $(PATH_SUB_CURRENT)/packer/pack_currenttypes.py | $$(dir $(PATH_VBOXCROGL_GENFILES)) $$(dir $$@)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $< > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/packer.c: $(PATH_SUB_CURRENT)/packer/packer.py $(PATH_SUB_CURRENT)/packer/packer_special $(APIFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) $(<D) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/pack_bbox.c: $(PATH_SUB_CURRENT)/packer/packer_bbox.py
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/pack_current.c: $(PATH_SUB_CURRENT)/packer/pack_current.py $(PATH_SUB_CURRENT)/packer/pack_currenttypes.py
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $< > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/%_swap.c: $(PATH_SUB_CURRENT)/packer/%.c $(PATH_SUB_CURRENT)/packer/pack_swap.py
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/pack_swap.py $< > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync## @todo r=bird: GEN_C_FILES and GEN_H_FILES is reused by every target which is very confusing.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Just push all this down to the SOURCES, INTERMEDIATES and CLEAN. Don't worry about repeating something in the CLEAN list.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGEN_C_FILES := \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_bbox.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_current.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync packer.c
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGEN_C_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_C_FILES))
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGEN_C_FILES.win =
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#GEN_C_FILES.win = packer.def
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGEN_C_FILES.win := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_C_FILES.win))
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGEN_H_FILES := \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync cr_packfunctions.h \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync cr_opcodes.h \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state/cr_currentpointers.h
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGEN_H_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_H_FILES))
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync## @todo r=bird: This magic needs a sentence (or five) explaining what the heck it is all about.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# After looking at it, what's the point here really? NORMAL_FILES is only referenced in the +.c bit, and
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# NORMAL_C_FILES is only references in the SOURCES. Looks like an extremely convoluted way of avoiding a bit of typing.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncNORMAL_FILES := \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_arrays \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_beginend \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_bounds \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_buffer \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_bufferobject \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_client \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_clipplane \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_context \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_error \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_extensions \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_feedback \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_fence \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_fog \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_init \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_lights \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_lists \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_swap_lists \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_map \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_point \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_swap_map \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_misc \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_materials \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_matrices \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_pixels \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_pixelmap \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_swap_pixelmap \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_program \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_regcombiner \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_stipple \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_texture \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_swap_texture \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_visibleregion
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncNORMAL_C_FILES := $(addsuffix .c, $(NORMAL_FILES))
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncNORMAL_C_FILES := $(addprefix packer/, $(NORMAL_C_FILES))
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync## @todo r=bird: ditto.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncSWAP_FILES := pack_arrays \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_bounds \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_bufferobject \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_client \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_clipplane \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_fog \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_lights \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_materials \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_matrices \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_misc \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_pixels \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_point \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_program \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_regcombiner \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync pack_stipple
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncNAMED_SWAP_FILES := $(addsuffix _swap, $(SWAP_FILES))
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncSWAP_C_FILES := $(addsuffix .c, $(NAMED_SWAP_FILES))
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncSWAP_C_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(SWAP_C_FILES))
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrpacker_TEMPLATE = VBOXGUESTR3NPLIB
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrpacker_EXTENDS = VBoxOGLGuestHostBase
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrpacker_INCS := $(PATH_SUB_CURRENT)/include $(PATH_VBOXCROGL_GENFILES) $(PATH_SUB_CURRENT)/packer
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrpacker_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrpacker_SOURCES := $(NORMAL_C_FILES) $(SWAP_C_FILES) $(GEN_C_FILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrpacker_SOURCES.win := $(GEN_C_FILES.win)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync## @todo r=bird: No need to have these as DEPS, INTERMEDIATES suffices.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrpacker_DEPS := $(GEN_H_FILES) $(PATH_VBOXCROGL_GENFILES)/spu_dispatch_table.h
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrpacker_CLEAN := $(SWAP_C_FILES) $(GEN_C_FILES) $(GEN_H_FILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrpacker_CLEAN.win := $(GEN_C_FILES.win)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrpacker_INTERMEDIATES = $(GEN_H_FILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrpacker_LIBS.win = $(PATH_LIB)/VBoxOGLcrutil$(VBOX_SUFF_LIB)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncif1of ($(KBUILD_TARGET), linux solaris darwin)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync VBoxOGLcrpacker_LIBS = $(VBOX_PATH_ADDITIONS)/VBoxOGLcrutil$(VBOX_SUFF_DLL)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncendif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostcrpacker_TEMPLATE = VBOXR3NP
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostcrpacker_EXTENDS = VBoxOGLcrpacker
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostcrpacker_LIBS.win = $(PATH_LIB)/VBoxOGLhostcrutil$(VBOX_SUFF_LIB)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostcrpacker_LDFLAGS.linux += -Wl,--no-as-needed
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncif1of ($(KBUILD_TARGET), linux solaris darwin)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync VBoxOGLhostcrpacker_LIBS = $(PATH_BIN)/VBoxOGLhostcrutil$(VBOX_SUFF_DLL)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncendif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# VBoxOGLspuload
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/dispatch.c: $(PATH_SUB_CURRENT)/spu_loader/dispatch.py $(APIFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/spucopy.c: $(PATH_SUB_CURRENT)/spu_loader/spucopy.py $(APIFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/spuchange.c: $(PATH_SUB_CURRENT)/spu_loader/spuchange.py $(APIFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/glloader.c: $(PATH_SUB_CURRENT)/spu_loader/glloader.py $(APIFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/spu_dispatch_table.h: $(PATH_SUB_CURRENT)/spu_loader/dispatchheader.py $(APIFILES) | $$(dir $$@)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
1e77130f682646107eece22ffdb2d34db6f43ba9vboxsync## @todo r=bird: This ain't working. the GEN_C_FILES reference in VBoxOGLspuload_CLEAN is expanded too late and GEN_C_FILES looks like it's reused. Please clean up the makefile ASAP (see other review comments).
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGEN_C_FILES := spuchange.c spucopy.c dispatch.c glloader.c
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGEN_C_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_C_FILES))
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLspuload_TEMPLATE = VBOXGUESTR3NPLIB
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLspuload_EXTENDS = VBoxOGLGuestHostBase
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLspuload_INCS := $(PATH_SUB_CURRENT)/include $(PATH_VBOXCROGL_GENFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLspuload_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLspuload_SOURCES := \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync spu_loader/spuinit.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync spu_loader/spuload.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync spu_loader/choosevisual.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(GEN_C_FILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#VBoxOGLspuload_SOURCES.win = loader.def
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLspuload_DEPS := $(PATH_VBOXCROGL_GENFILES)/spu_dispatch_table.h
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLspuload_CLEAN = $(GEN_C_FILES) $(PATH_VBOXCROGL_GENFILES)/spu_dispatch_table.h
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLspuload_LIBS.win = $(PATH_LIB)/VBoxOGLcrutil$(VBOX_SUFF_LIB)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncif1of ($(KBUILD_TARGET), linux solaris darwin)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync VBoxOGLspuload_LIBS += \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_PATH_ADDITIONS)/VBoxOGLcrutil$(VBOX_SUFF_DLL)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncendif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostspuload_TEMPLATE = VBOXR3NP
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostspuload_EXTENDS = VBoxOGLspuload
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostspuload_LIBS.win = $(PATH_LIB)/VBoxOGLhostcrutil$(VBOX_SUFF_LIB)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostspuload_LDFLAGS.linux += -Wl,--no-as-needed
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncif1of ($(KBUILD_TARGET), linux solaris darwin)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync VBoxOGLhostspuload_LIBS += \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(PATH_BIN)/VBoxOGLhostcrutil$(VBOX_SUFF_DLL)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncendif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# VBoxOGLcrstate
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state_buffer_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_buffer.txt gendiffcode.py)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py buffer Buffer $(<D) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state_client_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_client.txt gendiffcode.py)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py client Client $(<D) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state_current_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_current.py convert.py) $(APIFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/state_current.py > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state_fog_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_fog.txt gendiffcode.py)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py fog Fog $(<D) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state_hint_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_hint.txt gendiffcode.py)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py hint Hint $(<D) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state_lighting_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_lighting.txt gendiffcode.py)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py lighting Lighting $(<D) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state_line_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_line.txt gendiffcode.py)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py line Line $(<D) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state_multisample_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_multisample.txt gendiffcode.py)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py multisample Multisample $(<D) >$@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state_point_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_point.txt gendiffcode.py)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py point Point $(<D) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state_polygon_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_polygon.txt gendiffcode.py)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py polygon Polygon $(<D) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state_regcombiner_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_regcombiner.txt gendiffcode.py)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py regcombiner RegCombiner $(<D) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state_stencil_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_stencil.txt gendiffcode.py)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py stencil Stencil $(<D) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state_viewport_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_viewport.txt gendiffcode.py)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py viewport Viewport $(<D) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state_get.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_get.py state_get.txt state_extensions_get.txt) $(APIFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/state_get.py $(GLAPI_PATH) $(<D) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state_isenabled.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_isenabled.py state_isenabled.txt state_extensions_isenabled.txt) $(APIFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/state_isenabled.py $(GLAPI_PATH) $(<D) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state.def: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_defs.py state_special state_select_special state_feedback_special) $(APIFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/state_defs.py $(GLAPI_PATH) $(<D) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/state/cr_statefuncs.h: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_funcs.py state_special state_feedback_special state_select_special) $(APIFILES) | $$(dir $$@)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $(<D)/state_funcs.py $(GLAPI_PATH) $(<D) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGEN_FILES := buffer \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync current \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync fog \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync hint \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync lighting \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync line \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync multisample \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync point \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync polygon \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync regcombiner \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync stencil \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync viewport
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGEN_FILES := $(addprefix state_, $(GEN_FILES))
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGEN_C_FILES := $(addsuffix _gen.c, $(GEN_FILES))
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGEN_C_FILES := state_get.c state_isenabled.c $(GEN_C_FILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGEN_C_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_C_FILES))
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#GEN_C_FILES.win := state.def
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGEN_C_FILES.win :=
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGEN_C_FILES.win := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_C_FILES.win))
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGEN_H_FILES := state/cr_statefuncs.h
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGEN_H_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_H_FILES))
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrstate_TEMPLATE = VBOXGUESTR3NPLIB
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrstate_EXTENDS = VBoxOGLGuestHostBase
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrstate_INCS := \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(PATH_SUB_CURRENT)/include \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(PATH_VBOXCROGL_GENFILES) \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(PATH_SUB_CURRENT)/state_tracker
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrstate_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrstate_LDFLAGS.darwin += -framework Carbon -framework OpenGL
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrstate_SOURCES := \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_attrib.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_buffer.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_bufferobject.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_client.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_current.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_diff.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_enable.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_error.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_evaluators.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_feedback.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_fence.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_flush.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_fog.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_getstring.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_hint.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_init.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_lighting.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_limits.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_line.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_lists.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_multisample.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_occlude.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_pixel.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_point.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_polygon.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_program.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_rasterpos.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_regcombiner.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_stencil.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_texture.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_teximage.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_texdiff.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_transform.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync state_viewport.c
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrstate_SOURCES := $(addprefix state_tracker/, $(VBoxOGLcrstate_SOURCES)) $(GEN_C_FILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrstate_SOURCES.win := $(GEN_C_FILES.win)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrstate_DEPS := $(GEN_H_FILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrstate_CLEAN := $(GEN_C_FILES) $(GEN_H_FILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLcrstate_LIBS.win = \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(PATH_LIB)/VBoxOGLcrutil$(VBOX_SUFF_LIB) \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(PATH_LIB)/VBoxOGLspuload$(VBOX_SUFF_LIB)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncif1of ($(KBUILD_TARGET), linux solaris darwin)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync VBoxOGLcrstate_LIBS += \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_PATH_ADDITIONS)/VBoxOGLcrutil$(VBOX_SUFF_DLL) \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_PATH_ADDITIONS)/VBoxOGLspuload$(VBOX_SUFF_DLL)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncendif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostcrstate_TEMPLATE = VBOXR3NP
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostcrstate_EXTENDS = VBoxOGLcrstate
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostcrstate_SOURCES = $(VBoxOGLcrstate_SOURCES) state_tracker/state_snapshot.c
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostcrstate_LIBS.win = \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(PATH_LIB)/VBoxOGLhostcrutil$(VBOX_SUFF_LIB) \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(PATH_LIB)/VBoxOGLhostspuload$(VBOX_SUFF_LIB) \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(LIB_VMM)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhostcrstate_LDFLAGS.linux += -Wl,--no-as-needed
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncif1of ($(KBUILD_TARGET), linux solaris darwin)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync VBoxOGLhostcrstate_LIBS += \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(PATH_BIN)/VBoxOGLhostcrutil$(VBOX_SUFF_DLL) \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(PATH_BIN)/VBoxOGLhostspuload$(VBOX_SUFF_DLL) \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(LIB_VMM)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncendif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# VBoxOGLerrorspu
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync$(PATH_VBOXCROGL_GENFILES)/errorspu.c: $(PATH_SUB_CURRENT)/error/error.py $(APIFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLerrorspu_TEMPLATE = VBOXGUESTR3NPDLL
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLerrorspu_EXTENDS = VBoxOGLGuestHostBase
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLerrorspu_INCS := $(PATH_SUB_CURRENT)/include $(PATH_VBOXCROGL_GENFILES)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLerrorspu_DEPS.darwin += $(PATH_OUT)/obj/VBoxOGL/GL/gl.h $(PATH_OUT)/obj/VBoxOGL/GL/glu.h
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLerrorspu_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLerrorspu_INTERMEDIATES = $(PATH_VBOXCROGL_GENFILES)/spu_dispatch_table.h
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLerrorspu_SOURCES = \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(PATH_VBOXCROGL_GENFILES)/errorspu.c \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync error/errorspu_init.c
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLerrorspu_SOURCES.win.x86 = error/error.def
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLerrorspu_CLEAN := $(PATH_VBOXCROGL_GENFILES)/errorspu.c
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLerrorspu_LIBS.win = $(PATH_LIB)/VBoxOGLcrutil$(VBOX_SUFF_LIB)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncif1of ($(KBUILD_TARGET), linux solaris darwin)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync VBoxOGLerrorspu_LIBS += \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(VBOX_PATH_ADDITIONS)/VBoxOGLcrutil$(VBOX_SUFF_DLL)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncendif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhosterrorspu_TEMPLATE = VBOXR3NP
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhosterrorspu_EXTENDS = VBoxOGLerrorspu
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhosterrorspu_LIBS += $(LIB_RUNTIME)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhosterrorspu_LIBS.win = $(PATH_LIB)/VBoxOGLhostcrutil$(VBOX_SUFF_LIB)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhosterrorspu_LDFLAGS.darwin += $(VBoxOGLerrorspu_LDFLAGS.darwin) -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxOGLhosterrorspu.dylib -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncVBoxOGLhosterrorspu_LDFLAGS.linux += -Wl,--no-as-needed
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncif1of ($(KBUILD_TARGET), linux solaris darwin)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync VBoxOGLhosterrorspu_LIBS += \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $(PATH_BIN)/VBoxOGLhostcrutil$(VBOX_SUFF_DLL)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncendif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncinclude $(KBUILD_PATH)/subfooter.kmk
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync