# $Id: Makefile.kmk 15799 2009-01-05 13:10:38Z vboxsync $ ## @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 ## @todo r=bird: Move to Config.kmk, before the SDKs or somewhere like that. ifndef VBOX_BLD_PYTHON if1of ($(KBUILD_HOST), win) VBOX_BLD_PYTHON := $(firstword $(rsort $(wildcard $(PATH_DEVTOOLS)/win.x86/python/v*/python$(HOSTSUFF_EXE))) python-not-found.exe) else VBOX_BLD_PYTHON := python$(HOSTSUFF_EXE) endif endif ## @todo r=bird: Prefix with VBox + makefile qualifier. GLAPI_PATH := $(PATH_SUB_CURRENT)/glapi_parser ## @todo r=bird: messing with the environment like this doesn't work in the non-recursive make setup (which is default now). # Do it as part of the python invocation (using REDIRECT by all means, no shell stuff please). # For example: # VBOX_PYTHON_ENV = $(REDIRECT) $(if $1,-E 'PYTHONPATH=$1',) $(if $2,-o $2,) $(if $3,-i $3) -- # VBOX_CROGL_PYTHONPATH = $(VBOX_CROGL_GLAPI_PATH);$(PATH_ROOT)/src/VBox/GuestHost/OpenGL/packer;$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib # # $(PATH_VBOXCROGL_GENFILES)/errorspu.c: $(PATH_SUB_CURRENT)/error/error.py $(VBOX_CROGL_API_FILES) | $$(dir $$@) # $(call VBOX_PYTHON_ENV,$(VBOX_CROGL_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) if1of ($(KBUILD_HOST), win) export PYTHONPATH := $(GLAPI_PATH);$(PATH_ROOT)/src/VBox/GuestHost/OpenGL/packer;$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib else export PYTHONPATH := $(GLAPI_PATH):$(PATH_ROOT)/src/VBox/GuestHost/OpenGL/packer:$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib endif ## @todo r=bird: Prefix. All single word variables are off limit (VB_CROGL_API_FILES or VBOX_CROGL_API_FILES). APIFILES := $(GLAPI_PATH)/apiutil.py $(GLAPI_PATH)/APIspec.txt ## @todo r=bird: VBOXCROGL_GENFILES is only used once, what's the point? VBOXCROGL_GENFILES := VBoxOGLgen ## @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...] PATH_VBOXCROGL_GENFILES := $(PATH_TARGET)/$(VBOXCROGL_GENFILES) BLDDIRS += \ $(PATH_VBOXCROGL_GENFILES)/ \ $(PATH_VBOXCROGL_GENFILES)/state/ ifdef VBOX_WITH_ADDITIONS DLLS += VBoxOGLcrutil DLLS += VBoxOGLerrorspu LIBRARIES += VBoxOGLcrpacker LIBRARIES += VBoxOGLspuload LIBRARIES += VBoxOGLcrstate endif ifndef VBOX_ONLY_ADDITIONS DLLS += VBoxOGLhostcrutil DLLS += VBoxOGLhosterrorspu LIBRARIES += VBoxOGLhostcrpacker LIBRARIES += VBoxOGLhostspuload LIBRARIES += VBoxOGLhostcrstate endif ## VBoxOGLGuestHostBase ## VBoxOGLGuestHostBase_DEFS = CHROMIUM_THREADSAFE VBOX_WITH_HGCM VBoxOGLGuestHostBase_DEFS.win = _WIN32_WINNT=0x0500 WINDOWS=1 VBoxOGLGuestHostBase_DEFS.linux = Linux=1 VBoxOGLGuestHostBase_DEFS.solaris = SunOS=1 GLEXT_64_TYPES_DEFINED VBoxOGLGuestHostBase_DEFS.darwin = DARWIN=1 GL_GLEXT_LEGACY # @todo this is not working for some reason #VBoxOGLGuestHostBase_INCS := $(PATH_SUB_CURRENT)/include $(PATH_VBOXCROGL_GENFILES) #VBoxOGLGuestHostBase_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL VBoxOGLGuestHostBase_LDFLAGS.darwin += -framework Carbon -framework OpenGL # # VBoxOGLcrutil # ## @todo r=bird: next target $(PATH_VBOXCROGL_GENFILES)/debug_opcodes.c: $(PATH_SUB_CURRENT)/util/debug_opcodes.py $(APIFILES) $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@ VBoxOGLcrutil_TEMPLATE = VBOXGUESTR3NPDLL VBoxOGLcrutil_EXTENDS = VBoxOGLGuestHostBase VBoxOGLcrutil_INCS := $(PATH_SUB_CURRENT)/include $(PATH_VBOXCROGL_GENFILES) VBoxOGLcrutil_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL VBoxOGLcrutil_SDKS.win = DXSDK VBoxOGLcrutil_INTERMEDIATES = $(PATH_VBOXCROGL_GENFILES)/cr_opcodes.h VBoxOGLcrutil_SOURCES = \ bbox.c \ bufpool.c \ calllists.c \ devnull.c \ dll.c \ endian.c \ environment.c \ error.c \ filenet.c \ hash.c \ hull.c \ list.c \ matrix.c \ mem.c \ net.c \ pixel.c \ process.c \ rand.c \ string.c \ threads.c \ tcpip.c \ udptcpip.c \ timer.c \ url.c \ warp.c \ vboxhgcm.c VBoxOGLcrutil_SOURCES := $(addprefix util/, $(VBoxOGLcrutil_SOURCES)) $(PATH_VBOXCROGL_GENFILES)/debug_opcodes.c VBoxOGLcrutil_SOURCES.win.x86 = util/util.def VBoxOGLcrutil_CLEAN := $(PATH_VBOXCROGL_GENFILES)/debug_opcodes.c VBoxOGLcrutil_LIBS.win = \ $(PATH_SDK_DXSDK_LIB)/ddraw.lib \ $(PATH_SDK_DXSDK_LIB)/dxguid.lib # vc7 hangs during compilation of this file when optimizations are enabled. VBoxOGLcrutil_pixel.c_CFLAGS.win.x86 += -Od VBoxOGLhostcrutil_pixel.c_CFLAGS.win.x86 += -Od VBoxOGLhostcrutil_TEMPLATE = VBOXR3NP VBoxOGLhostcrutil_EXTENDS = VBoxOGLcrutil VBoxOGLhostcrutil_LDFLAGS.darwin += $(VBoxOGLcrutil_LDFLAGS.darwin) -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxOGLhostcrutil.dylib -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) # hostcrutil_NAME = crutil - possible, but it creates conflicting library files in PATH_LIB. ## @todo kBuild bug, possibly same as ticket #51: PATH_SDK_DXSDK_LIB is expanded too early. # Update. bug 51 was fixed. # Still fails as PATH_SDK_DXSDK_LIB is empty. VBoxOGLhostcrutil_LIBS += $(LIB_RUNTIME) VBoxOGLhostcrutil_LIBS.win = $(VBoxOGLcrutil_LIBS.win) # # VBoxOGLcrpacker # ## r=bird: (a) Have to make sure the output directory actually exists, append to pre req list of each: # | $$(dir $$@) # That means the output directory is an order-only dependency. # (b) VBOX_BLD_PYTHON # (c) Rules generating stuff for a target goes *after* the target config. [Another convention which hasn't been written down anywhere.] $(PATH_VBOXCROGL_GENFILES)/packer.def: $(PATH_SUB_CURRENT)/packer/packer_defs.py $(APIFILES) $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@ $(PATH_VBOXCROGL_GENFILES)/cr_packfunctions.h: $(PATH_SUB_CURRENT)/packer/pack_header.py $(PATH_SUB_CURRENT)/packer/packer_special $(API_FILES) | $$(dir $$@) $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) $( $@ $(PATH_VBOXCROGL_GENFILES)/cr_opcodes.h: $(PATH_SUB_CURRENT)/packer/opcodes.py $(APIFILES) $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@ $(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 $$@) $(VBOX_BLD_PYTHON) $< > $@ $(PATH_VBOXCROGL_GENFILES)/packer.c: $(PATH_SUB_CURRENT)/packer/packer.py $(PATH_SUB_CURRENT)/packer/packer_special $(APIFILES) $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) $( $@ $(PATH_VBOXCROGL_GENFILES)/pack_bbox.c: $(PATH_SUB_CURRENT)/packer/packer_bbox.py $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@ $(PATH_VBOXCROGL_GENFILES)/pack_current.c: $(PATH_SUB_CURRENT)/packer/pack_current.py $(PATH_SUB_CURRENT)/packer/pack_currenttypes.py $(VBOX_BLD_PYTHON) $< > $@ $(PATH_VBOXCROGL_GENFILES)/%_swap.c: $(PATH_SUB_CURRENT)/packer/%.c $(PATH_SUB_CURRENT)/packer/pack_swap.py $(VBOX_BLD_PYTHON) $( $@ ## @todo r=bird: GEN_C_FILES and GEN_H_FILES is reused by every target which is very confusing. # Just push all this down to the SOURCES, INTERMEDIATES and CLEAN. Don't worry about repeating something in the CLEAN list. GEN_C_FILES := \ pack_bbox.c \ pack_current.c \ packer.c GEN_C_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_C_FILES)) GEN_C_FILES.win = #GEN_C_FILES.win = packer.def GEN_C_FILES.win := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_C_FILES.win)) GEN_H_FILES := \ cr_packfunctions.h \ cr_opcodes.h \ state/cr_currentpointers.h GEN_H_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_H_FILES)) ## @todo r=bird: This magic needs a sentence (or five) explaining what the heck it is all about. # After looking at it, what's the point here really? NORMAL_FILES is only referenced in the +.c bit, and # NORMAL_C_FILES is only references in the SOURCES. Looks like an extremely convoluted way of avoiding a bit of typing. NORMAL_FILES := \ pack_arrays \ pack_beginend \ pack_bounds \ pack_buffer \ pack_bufferobject \ pack_client \ pack_clipplane \ pack_context \ pack_error \ pack_extensions \ pack_feedback \ pack_fence \ pack_fog \ pack_init \ pack_lights \ pack_lists \ pack_swap_lists \ pack_map \ pack_point \ pack_swap_map \ pack_misc \ pack_materials \ pack_matrices \ pack_pixels \ pack_pixelmap \ pack_swap_pixelmap \ pack_program \ pack_regcombiner \ pack_stipple \ pack_texture \ pack_swap_texture \ pack_visibleregion NORMAL_C_FILES := $(addsuffix .c, $(NORMAL_FILES)) NORMAL_C_FILES := $(addprefix packer/, $(NORMAL_C_FILES)) ## @todo r=bird: ditto. SWAP_FILES := pack_arrays \ pack_bounds \ pack_bufferobject \ pack_client \ pack_clipplane \ pack_fog \ pack_lights \ pack_materials \ pack_matrices \ pack_misc \ pack_pixels \ pack_point \ pack_program \ pack_regcombiner \ pack_stipple NAMED_SWAP_FILES := $(addsuffix _swap, $(SWAP_FILES)) SWAP_C_FILES := $(addsuffix .c, $(NAMED_SWAP_FILES)) SWAP_C_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(SWAP_C_FILES)) VBoxOGLcrpacker_TEMPLATE = VBOXGUESTR3NPLIB VBoxOGLcrpacker_EXTENDS = VBoxOGLGuestHostBase VBoxOGLcrpacker_INCS := $(PATH_SUB_CURRENT)/include $(PATH_VBOXCROGL_GENFILES) $(PATH_SUB_CURRENT)/packer VBoxOGLcrpacker_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL VBoxOGLcrpacker_SOURCES := $(NORMAL_C_FILES) $(SWAP_C_FILES) $(GEN_C_FILES) VBoxOGLcrpacker_SOURCES.win := $(GEN_C_FILES.win) ## @todo r=bird: No need to have these as DEPS, INTERMEDIATES suffices. VBoxOGLcrpacker_DEPS := $(GEN_H_FILES) $(PATH_VBOXCROGL_GENFILES)/spu_dispatch_table.h VBoxOGLcrpacker_CLEAN := $(SWAP_C_FILES) $(GEN_C_FILES) $(GEN_H_FILES) VBoxOGLcrpacker_CLEAN.win := $(GEN_C_FILES.win) VBoxOGLcrpacker_INTERMEDIATES = $(GEN_H_FILES) VBoxOGLcrpacker_LIBS.win = $(PATH_LIB)/VBoxOGLcrutil$(VBOX_SUFF_LIB) if1of ($(KBUILD_TARGET), linux solaris darwin) VBoxOGLcrpacker_LIBS = $(VBOX_PATH_ADDITIONS)/VBoxOGLcrutil$(VBOX_SUFF_DLL) endif VBoxOGLhostcrpacker_TEMPLATE = VBOXR3NP VBoxOGLhostcrpacker_EXTENDS = VBoxOGLcrpacker VBoxOGLhostcrpacker_LIBS.win = $(PATH_LIB)/VBoxOGLhostcrutil$(VBOX_SUFF_LIB) VBoxOGLhostcrpacker_LDFLAGS.linux += -Wl,--no-as-needed if1of ($(KBUILD_TARGET), linux solaris darwin) VBoxOGLhostcrpacker_LIBS = $(PATH_BIN)/VBoxOGLhostcrutil$(VBOX_SUFF_DLL) endif # # VBoxOGLspuload # $(PATH_VBOXCROGL_GENFILES)/dispatch.c: $(PATH_SUB_CURRENT)/spu_loader/dispatch.py $(APIFILES) $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@ $(PATH_VBOXCROGL_GENFILES)/spucopy.c: $(PATH_SUB_CURRENT)/spu_loader/spucopy.py $(APIFILES) $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@ $(PATH_VBOXCROGL_GENFILES)/spuchange.c: $(PATH_SUB_CURRENT)/spu_loader/spuchange.py $(APIFILES) $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@ $(PATH_VBOXCROGL_GENFILES)/glloader.c: $(PATH_SUB_CURRENT)/spu_loader/glloader.py $(APIFILES) $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@ $(PATH_VBOXCROGL_GENFILES)/spu_dispatch_table.h: $(PATH_SUB_CURRENT)/spu_loader/dispatchheader.py $(APIFILES) | $$(dir $$@) $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@ ## @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). GEN_C_FILES := spuchange.c spucopy.c dispatch.c glloader.c GEN_C_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_C_FILES)) VBoxOGLspuload_TEMPLATE = VBOXGUESTR3NPLIB VBoxOGLspuload_EXTENDS = VBoxOGLGuestHostBase VBoxOGLspuload_INCS := $(PATH_SUB_CURRENT)/include $(PATH_VBOXCROGL_GENFILES) VBoxOGLspuload_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL VBoxOGLspuload_SOURCES := \ spu_loader/spuinit.c \ spu_loader/spuload.c \ spu_loader/choosevisual.c \ $(GEN_C_FILES) #VBoxOGLspuload_SOURCES.win = loader.def VBoxOGLspuload_DEPS := $(PATH_VBOXCROGL_GENFILES)/spu_dispatch_table.h VBoxOGLspuload_CLEAN = $(GEN_C_FILES) $(PATH_VBOXCROGL_GENFILES)/spu_dispatch_table.h VBoxOGLspuload_LIBS.win = $(PATH_LIB)/VBoxOGLcrutil$(VBOX_SUFF_LIB) if1of ($(KBUILD_TARGET), linux solaris darwin) VBoxOGLspuload_LIBS += \ $(VBOX_PATH_ADDITIONS)/VBoxOGLcrutil$(VBOX_SUFF_DLL) endif VBoxOGLhostspuload_TEMPLATE = VBOXR3NP VBoxOGLhostspuload_EXTENDS = VBoxOGLspuload VBoxOGLhostspuload_LIBS.win = $(PATH_LIB)/VBoxOGLhostcrutil$(VBOX_SUFF_LIB) VBoxOGLhostspuload_LDFLAGS.linux += -Wl,--no-as-needed if1of ($(KBUILD_TARGET), linux solaris darwin) VBoxOGLhostspuload_LIBS += \ $(PATH_BIN)/VBoxOGLhostcrutil$(VBOX_SUFF_DLL) endif # # VBoxOGLcrstate # $(PATH_VBOXCROGL_GENFILES)/state_buffer_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_buffer.txt gendiffcode.py) $(VBOX_BLD_PYTHON) $( $@ $(PATH_VBOXCROGL_GENFILES)/state_client_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_client.txt gendiffcode.py) $(VBOX_BLD_PYTHON) $( $@ $(PATH_VBOXCROGL_GENFILES)/state_current_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_current.py convert.py) $(APIFILES) $(VBOX_BLD_PYTHON) $( $@ $(PATH_VBOXCROGL_GENFILES)/state_fog_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_fog.txt gendiffcode.py) $(VBOX_BLD_PYTHON) $( $@ $(PATH_VBOXCROGL_GENFILES)/state_hint_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_hint.txt gendiffcode.py) $(VBOX_BLD_PYTHON) $( $@ $(PATH_VBOXCROGL_GENFILES)/state_lighting_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_lighting.txt gendiffcode.py) $(VBOX_BLD_PYTHON) $( $@ $(PATH_VBOXCROGL_GENFILES)/state_line_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_line.txt gendiffcode.py) $(VBOX_BLD_PYTHON) $( $@ $(PATH_VBOXCROGL_GENFILES)/state_multisample_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_multisample.txt gendiffcode.py) $(VBOX_BLD_PYTHON) $($@ $(PATH_VBOXCROGL_GENFILES)/state_point_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_point.txt gendiffcode.py) $(VBOX_BLD_PYTHON) $( $@ $(PATH_VBOXCROGL_GENFILES)/state_polygon_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_polygon.txt gendiffcode.py) $(VBOX_BLD_PYTHON) $( $@ $(PATH_VBOXCROGL_GENFILES)/state_regcombiner_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_regcombiner.txt gendiffcode.py) $(VBOX_BLD_PYTHON) $( $@ $(PATH_VBOXCROGL_GENFILES)/state_stencil_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_stencil.txt gendiffcode.py) $(VBOX_BLD_PYTHON) $( $@ $(PATH_VBOXCROGL_GENFILES)/state_viewport_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_viewport.txt gendiffcode.py) $(VBOX_BLD_PYTHON) $( $@ $(PATH_VBOXCROGL_GENFILES)/state_get.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_get.py state_get.txt state_extensions_get.txt) $(APIFILES) $(VBOX_BLD_PYTHON) $( $@ $(PATH_VBOXCROGL_GENFILES)/state_isenabled.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_isenabled.py state_isenabled.txt state_extensions_isenabled.txt) $(APIFILES) $(VBOX_BLD_PYTHON) $( $@ $(PATH_VBOXCROGL_GENFILES)/state.def: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_defs.py state_special state_select_special state_feedback_special) $(APIFILES) $(VBOX_BLD_PYTHON) $( $@ $(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 $$@) $(VBOX_BLD_PYTHON) $( $@ GEN_FILES := buffer \ current \ fog \ hint \ lighting \ line \ multisample \ point \ polygon \ regcombiner \ stencil \ viewport GEN_FILES := $(addprefix state_, $(GEN_FILES)) GEN_C_FILES := $(addsuffix _gen.c, $(GEN_FILES)) GEN_C_FILES := state_get.c state_isenabled.c $(GEN_C_FILES) GEN_C_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_C_FILES)) #GEN_C_FILES.win := state.def GEN_C_FILES.win := GEN_C_FILES.win := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_C_FILES.win)) GEN_H_FILES := state/cr_statefuncs.h GEN_H_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_H_FILES)) VBoxOGLcrstate_TEMPLATE = VBOXGUESTR3NPLIB VBoxOGLcrstate_EXTENDS = VBoxOGLGuestHostBase VBoxOGLcrstate_INCS := \ $(PATH_SUB_CURRENT)/include \ $(PATH_VBOXCROGL_GENFILES) \ $(PATH_SUB_CURRENT)/state_tracker VBoxOGLcrstate_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL VBoxOGLcrstate_LDFLAGS.darwin += -framework Carbon -framework OpenGL VBoxOGLcrstate_SOURCES := \ state_attrib.c \ state_buffer.c \ state_bufferobject.c \ state_client.c \ state_current.c \ state_diff.c \ state_enable.c \ state_error.c \ state_evaluators.c \ state_feedback.c \ state_fence.c \ state_flush.c \ state_fog.c \ state_getstring.c \ state_hint.c \ state_init.c \ state_lighting.c \ state_limits.c \ state_line.c \ state_lists.c \ state_multisample.c \ state_occlude.c \ state_pixel.c \ state_point.c \ state_polygon.c \ state_program.c \ state_rasterpos.c \ state_regcombiner.c \ state_stencil.c \ state_texture.c \ state_teximage.c \ state_texdiff.c \ state_transform.c \ state_viewport.c VBoxOGLcrstate_SOURCES := $(addprefix state_tracker/, $(VBoxOGLcrstate_SOURCES)) $(GEN_C_FILES) VBoxOGLcrstate_SOURCES.win := $(GEN_C_FILES.win) VBoxOGLcrstate_DEPS := $(GEN_H_FILES) VBoxOGLcrstate_CLEAN := $(GEN_C_FILES) $(GEN_H_FILES) VBoxOGLcrstate_LIBS.win = \ $(PATH_LIB)/VBoxOGLcrutil$(VBOX_SUFF_LIB) \ $(PATH_LIB)/VBoxOGLspuload$(VBOX_SUFF_LIB) if1of ($(KBUILD_TARGET), linux solaris darwin) VBoxOGLcrstate_LIBS += \ $(VBOX_PATH_ADDITIONS)/VBoxOGLcrutil$(VBOX_SUFF_DLL) \ $(VBOX_PATH_ADDITIONS)/VBoxOGLspuload$(VBOX_SUFF_DLL) endif VBoxOGLhostcrstate_TEMPLATE = VBOXR3NP VBoxOGLhostcrstate_EXTENDS = VBoxOGLcrstate VBoxOGLhostcrstate_SOURCES = $(VBoxOGLcrstate_SOURCES) state_tracker/state_snapshot.c VBoxOGLhostcrstate_LIBS.win = \ $(PATH_LIB)/VBoxOGLhostcrutil$(VBOX_SUFF_LIB) \ $(PATH_LIB)/VBoxOGLhostspuload$(VBOX_SUFF_LIB) \ $(LIB_VMM) VBoxOGLhostcrstate_LDFLAGS.linux += -Wl,--no-as-needed if1of ($(KBUILD_TARGET), linux solaris darwin) VBoxOGLhostcrstate_LIBS += \ $(PATH_BIN)/VBoxOGLhostcrutil$(VBOX_SUFF_DLL) \ $(PATH_BIN)/VBoxOGLhostspuload$(VBOX_SUFF_DLL) \ $(LIB_VMM) endif # # VBoxOGLerrorspu # $(PATH_VBOXCROGL_GENFILES)/errorspu.c: $(PATH_SUB_CURRENT)/error/error.py $(APIFILES) $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@ VBoxOGLerrorspu_TEMPLATE = VBOXGUESTR3NPDLL VBoxOGLerrorspu_EXTENDS = VBoxOGLGuestHostBase VBoxOGLerrorspu_INCS := $(PATH_SUB_CURRENT)/include $(PATH_VBOXCROGL_GENFILES) VBoxOGLerrorspu_DEPS.darwin += $(PATH_OUT)/obj/VBoxOGL/GL/gl.h $(PATH_OUT)/obj/VBoxOGL/GL/glu.h VBoxOGLerrorspu_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL VBoxOGLerrorspu_INTERMEDIATES = $(PATH_VBOXCROGL_GENFILES)/spu_dispatch_table.h VBoxOGLerrorspu_SOURCES = \ $(PATH_VBOXCROGL_GENFILES)/errorspu.c \ error/errorspu_init.c VBoxOGLerrorspu_SOURCES.win.x86 = error/error.def VBoxOGLerrorspu_CLEAN := $(PATH_VBOXCROGL_GENFILES)/errorspu.c VBoxOGLerrorspu_LIBS.win = $(PATH_LIB)/VBoxOGLcrutil$(VBOX_SUFF_LIB) if1of ($(KBUILD_TARGET), linux solaris darwin) VBoxOGLerrorspu_LIBS += \ $(VBOX_PATH_ADDITIONS)/VBoxOGLcrutil$(VBOX_SUFF_DLL) endif VBoxOGLhosterrorspu_TEMPLATE = VBOXR3NP VBoxOGLhosterrorspu_EXTENDS = VBoxOGLerrorspu VBoxOGLhosterrorspu_LIBS += $(LIB_RUNTIME) VBoxOGLhosterrorspu_LIBS.win = $(PATH_LIB)/VBoxOGLhostcrutil$(VBOX_SUFF_LIB) VBoxOGLhosterrorspu_LDFLAGS.darwin += $(VBoxOGLerrorspu_LDFLAGS.darwin) -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxOGLhosterrorspu.dylib -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) VBoxOGLhosterrorspu_LDFLAGS.linux += -Wl,--no-as-needed if1of ($(KBUILD_TARGET), linux solaris darwin) VBoxOGLhosterrorspu_LIBS += \ $(PATH_BIN)/VBoxOGLhostcrutil$(VBOX_SUFF_DLL) endif include $(KBUILD_PATH)/subfooter.kmk