Makefile.kmk revision d1ba6e0aa4097d7511940e4b2ace7cdc3d0cb0ad
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync# $Id$
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync## @file
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync# Sub-Makefile for the VirtualBox HGCM Service.
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync#
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync#
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsync# Copyright (C) 2008 Sun Microsystems, Inc.
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync#
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync# available from http://www.virtualbox.org. This file is free software;
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync# you can redistribute it and/or modify it under the terms of the GNU
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync# General Public License (GPL) as published by the Free Software
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync#
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync# Clara, CA 95054 USA or visit http://www.sun.com if you need
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync# additional information or have any questions.
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync#
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncSUB_DEPTH = ../../../..
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncinclude $(KBUILD_PATH)/subheader.kmk
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync#
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync# Target lists.
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync#
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncDLLS += VBoxSharedCrOpenGL VBoxOGLrenderspu
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncLIBRARIES += VBoxOGLcrserverlib VBoxOGLcrunpacker
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsyncBLDDIRS += \
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsync $(VBOX_PATH_CROGL_GENFILES)/
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsync
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsyncifeq ($(KBUILD_TARGET),darwin)
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsync #
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsync # We have to symlink the system headers of OpenGl cause they have some
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsync # different directory hierarchy on Mac OS X (no /GL sub directory).
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsync #
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsync # See Config.kmk for the global variables.
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsync #
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsync INSTALLS += DarwinOpenGLHdrs
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsync DarwinOpenGLHdrs_INST = $(VBOX_DARWIN_OPENGL_INST)
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsync DarwinOpenGLHdrs_SYMLINKS = \
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsync $(foreach hdr, $(VBOX_DARWIN_OPENGL_HEADERS),\
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsync $(hdr)=>$(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/OpenGL.framework/Versions/Current/Headers/$(hdr))
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsyncendif # darwin
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsync
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsync#
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsync# VBoxSharedCrOpenGL
0165172a2610650f9fcfc668901bc6c2d09144c3vboxsync#
0d6dcfb95042d444f95ad5aa854b8f9976bd8e77vboxsyncVBoxSharedCrOpenGL_TEMPLATE = VBOXCROGLR3HOSTDLL
0165172a2610650f9fcfc668901bc6c2d09144c3vboxsyncifdef VBOX_WITH_XPCOM
0165172a2610650f9fcfc668901bc6c2d09144c3vboxsync VBoxSharedCrOpenGL_DEFS = VBOX_WITH_XPCOM
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncendif
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncVBoxSharedCrOpenGL_INTERMEDIATES = \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(TEMPLATE_VBOXMAINEXE_INTERMEDIATES)
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncVBoxSharedCrOpenGL_INCS.win = \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(PATH_TOOL_$(VBOX_VCC_TOOL)_ATLMFC_INC) \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(VBOX_PATH_SDK)/bindings/mscom/include \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(PATH_VBoxCOM)
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncVBoxSharedCrOpenGL_INCS = \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync . \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(PATH_VBoxSVC)
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncifdef VBOX_WITH_XPCOM
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync VBoxSharedCrOpenGL_INCS += \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(VBOX_XPCOM_INCS)
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncendif
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncVBoxSharedCrOpenGL_SOURCES = \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserver/crservice.cpp
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncVBoxSharedCrOpenGL_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxSharedCrOpenGL.dylib
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncVBoxSharedCrOpenGL_LIBS = \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(PATH_LIB)/VBoxOGLcrserverlib$(VBOX_SUFF_LIB) \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(PATH_LIB)/VBoxOGLhostcrstate$(VBOX_SUFF_LIB) \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(PATH_LIB)/VBoxOGLcrunpacker$(VBOX_SUFF_LIB) \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(PATH_LIB)/VBoxOGLhostcrpacker$(VBOX_SUFF_LIB) \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(PATH_LIB)/VBoxOGLhostspuload$(VBOX_SUFF_LIB) \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(VBOX_LIB_OGL_HOSTCRUTIL) \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(LIB_RUNTIME) \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(LIB_VMM)
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncVBoxSharedCrOpenGL_LIBS.darwin = \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(LIB_REM)
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncifeq ($(KBUILD_TARGET),win)
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync VBoxSharedCrOpenGL_LIBS += \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(PATH_OBJ)/VBoxOGLrenderspu/VBoxOGLrenderspu$(VBOX_SUFF_LIB) \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(PATH_TOOL_$(VBOX_VCC_TOOL)_ATLMFC_LIB)/atls$(VBOX_SUFF_LIB)
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncelse
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync VBoxSharedCrOpenGL_LIBS += \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(PATH_BIN)/VBoxOGLrenderspu$(VBOX_SUFF_DLL)
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncendif
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync#
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync# VBoxOGLcrserverlib
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync#
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncVBoxOGLcrserverlib_TEMPLATE = VBOXCROGLR3HOSTLIB
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncVBoxOGLcrserverlib_INCS = \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserverlib
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncVBoxOGLcrserverlib_INTERMEDIATES = \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(VBOX_PATH_CROGL_GENFILES)/server_dispatch.h \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(VBOX_PATH_CROGL_GENFILES)/state/cr_currentpointers.h \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync $(VBOX_PATH_CROGL_GENFILES)/state/cr_statefuncs.h
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsyncVBoxOGLcrserverlib_SOURCES := \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserverlib/server_main.c \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserverlib/server_boundsinfo.c \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserverlib/server_bufferobject.c \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserverlib/server_clear.c \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserverlib/server_clip.c \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserverlib/server_config.c \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserverlib/server_context.c \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserverlib/server_gentextures.c \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserverlib/server_getmap.c \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserverlib/server_getstring.c \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserverlib/server_getpointer.c \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserverlib/server_getpixelmap.c \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserverlib/server_getteximage.c \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserverlib/server_lists.c \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserverlib/server_misc.c \
4338d1606b19c219ef8f200aae7558a8ea7cb796vboxsync crserverlib/server_occlude.c \
crserverlib/server_papi.c \
crserverlib/server_projmatrix.c \
crserverlib/server_readpixels.c \
crserverlib/server_stream.c \
crserverlib/server_tiles.c \
crserverlib/server_viewport.c \
crserverlib/server_window.c \
crserverlib/server_winpos.c \
crserverlib/server_writeback.c \
crserverlib/server_getshaders.c \
$(VBOX_PATH_CROGL_GENFILES)/server_dispatch.c \
$(VBOX_PATH_CROGL_GENFILES)/server_retval.c \
$(VBOX_PATH_CROGL_GENFILES)/server_get.c \
$(VBOX_PATH_CROGL_GENFILES)/server_simpleget.c
VBoxOGLcrserverlib_CLEAN = \
$(VBOX_PATH_CROGL_GENFILES)/server_dispatch.c \
$(VBOX_PATH_CROGL_GENFILES)/server_retval.c \
$(VBOX_PATH_CROGL_GENFILES)/server_get.c \
$(VBOX_PATH_CROGL_GENFILES)/server_simpleget.c \
$(VBOX_PATH_CROGL_GENFILES)/server_dispatch.h
#
# Generate files for VBoxOGLcrserverlib
#
$(VBOX_PATH_CROGL_GENFILES)/server_dispatch.h: $(addprefix $(PATH_SUB_CURRENT)/crserverlib/, server_dispatch_header.py server_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)/server_dispatch.c: $(addprefix $(PATH_SUB_CURRENT)/crserverlib/, server_dispatch.py server_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)/server_retval.c: $(addprefix $(PATH_SUB_CURRENT)/crserverlib/, server_retval.py server_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)/server_get.c: $(addprefix $(PATH_SUB_CURRENT)/crserverlib/, server_get.py server_special 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) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
$(VBOX_PATH_CROGL_GENFILES)/server_simpleget.c: $(addprefix $(PATH_SUB_CURRENT)/crserverlib/, server_simpleget.py get_sizes.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) $(<D)
#
# VBoxOGLcrunpacker
#
VBoxOGLcrunpacker_TEMPLATE = VBOXCROGLR3HOSTLIB
VBoxOGLcrunpacker_INCS = \
unpacker
VBoxOGLcrunpacker_INTERMEDIATES = \
$(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h \
$(VBOX_PATH_CROGL_GENFILES)/cr_opcodes.h \
$(VBOX_PATH_CROGL_GENFILES)/unpack_extend.h
VBoxOGLcrunpacker_SOURCES = \
unpacker/unpack_arrays.c \
unpacker/unpack_bounds.c \
unpacker/unpack_bufferobject.c \
unpacker/unpack_calllists.c \
unpacker/unpack_clipplane.c \
unpacker/unpack_context.c \
unpacker/unpack_drawpixels.c \
unpacker/unpack_fence.c \
unpacker/unpack_fog.c \
unpacker/unpack_lights.c \
unpacker/unpack_map.c \
unpacker/unpack_materials.c \
unpacker/unpack_matrices.c \
unpacker/unpack_misc.c \
unpacker/unpack_pixelmap.c \
unpacker/unpack_point.c \
unpacker/unpack_program.c \
unpacker/unpack_readpixels.c \
unpacker/unpack_regcombiner.c \
unpacker/unpack_stipple.c \
unpacker/unpack_texture.c \
unpacker/unpack_writeback.c \
unpacker/unpack_visibleregion.c \
unpacker/unpack_shaders.c \
$(VBOX_PATH_CROGL_GENFILES)/unpack.c
VBoxOGLcrunpacker_CLEAN = \
$(VBOX_PATH_CROGL_GENFILES)/unpack.c \
$(VBOX_PATH_CROGL_GENFILES)/unpack_extend.h
#
# Generate files for VBoxOGLcrunpacker.
#
$(VBOX_PATH_CROGL_GENFILES)/unpack.c: $(addprefix $(PATH_SUB_CURRENT)/unpacker/, unpack.py unpacker_special) $(VBOX_PATH_CROGL_GENFILES)/unpack_extend.h $(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)/unpack_extend.h: $(addprefix $(PATH_SUB_CURRENT)/unpacker/, unpack_extend.py unpacker_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)
#
# VBoxOGLrenderspu
#
VBoxOGLrenderspu_TEMPLATE = VBOXCROGLR3HOSTDLL
VBoxOGLrenderspu_INTERMEDIATES = \
$(VBOX_PATH_CROGL_GENFILES)/state/cr_currentpointers.h \
$(VBOX_PATH_CROGL_GENFILES)/state/cr_statefuncs.h
VBoxOGLrenderspu_SOURCES = \
render/renderspu.c \
render/renderspu_config.c \
render/renderspu_init.c
VBoxOGLrenderspu_SOURCES.win = render/renderspu_wgl.c render/render.def
VBoxOGLrenderspu_SOURCES.linux = render/renderspu_glx.c
VBoxOGLrenderspu_SOURCES.solaris = render/renderspu_glx.c
VBoxOGLrenderspu_SOURCES.darwin = render/renderspu_agl.c
VBoxOGLrenderspu_LDFLAGS.darwin += -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxOGLrenderspu.dylib
VBoxOGLrenderspu_LIBS = \
$(PATH_LIB)/VBoxOGLhostspuload$(VBOX_SUFF_LIB) \
$(VBOX_LIB_OGL_HOSTCRUTIL) \
$(LIB_RUNTIME)
if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) # the X11 gang
VBoxOGLrenderspu_LIBS += \
Xmu \
X11 \
Xext
VBoxOGLrenderspu_LIBPATH = \
$(VBOX_LIBPATH_X11)
endif
include $(KBUILD_PATH)/subfooter.kmk