VirtualBox

source: vbox/trunk/src/VBox/Additions/common/crOpenGL/Makefile.kmk@ 17543

Last change on this file since 17543 was 17543, checked in by vboxsync, 16 years ago

Additions/crOpenGL: moved the code from the Windows Additions to the common Additions code and enabled building for non-OSE Linux

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 12.4 KB
Line 
1# $Id: Makefile.kmk 17543 2009-03-08 12:00:34Z vboxsync $
2## @file
3# Sub-Makefile for the VirtualBox Guest OpenGL part
4#
5
6#
7# Copyright (C) 2008 Sun Microsystems, Inc.
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.virtualbox.org. This file is free software;
11# you can redistribute it and/or modify it under the terms of the GNU
12# General Public License (GPL) as published by the Free Software
13# Foundation, in version 2 as it comes in the "COPYING" file of the
14# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16#
17# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
18# Clara, CA 95054 USA or visit http://www.sun.com if you need
19# additional information or have any questions.
20#
21
22SUB_DEPTH = ../../../../../..
23include $(KBUILD_PATH)/subheader.kmk
24
25#
26# Target lists.
27#
28BLDDIRS += \
29 $(VBOX_PATH_CROGL_GENFILES)/
30
31DLLS.win += \
32 VBoxOGL \
33 VBoxOGLarrayspu \
34 VBoxOGLpassthroughspu \
35 VBoxOGLpackspu \
36 VBoxOGLfeedbackspu
37
38ifndef VBOX_OSE ## @todo Solaris too?
39DLLS.linux += \
40 VBoxOGL \
41 VBoxOGLarrayspu \
42 VBoxOGLpassthroughspu \
43 VBoxOGLpackspu \
44 VBoxOGLfeedbackspu
45endif
46
47ifeq ($(KBUILD_TARGET),linux)
48 VBoxOGL_DRI = 1
49 VBOX_PATH_MESA_SOURCE = $(VBOX_PATH_X11_ROOT)/mesa-7.2
50endif
51
52#
53# VBoxOGL
54#
55VBoxOGL_TEMPLATE = VBOXCROGLR3GUESTDLL
56VBoxOGL_INCS = .
57ifdef VBoxOGL_DRI
58 VBoxOGL_DEFS += VBOXOGL_DRI IN_DRI_DRIVER
59 VBoxOGL_INCS += \
60 $(VBOX_PATH_MESA_SOURCE) \
61 $(VBOX_PATH_MESA_SOURCE)/include \
62 $(VBOX_PATH_MESA_SOURCE)/src/mesa/ \
63 $(VBOX_PATH_MESA_SOURCE)/src/mesa/glapi \
64 $(VBOX_PATH_MESA_SOURCE)/src/mesa/main \
65 $(PATH_ROOT)/src/VBox/Additions/x11/x11include/libdrm-2.4.5
66endif
67ifeq ($(KBUILD_TARGET),win)
68#fixme?, INTERMEDIATES.win ain't working
69 VBoxOGL_INTERMEDIATES += $(VBOX_PATH_CROGL_GENFILES)/cr_gl.h
70endif
71ifdef VBoxOGL_DRI
72 VBoxOGL_INTERMEDIATES += \
73 $(VBOX_PATH_CROGL_GENFILES)/cr_gl.h \
74 $(VBOX_PATH_CROGL_GENFILES)/DD_gl.h
75endif
76VBoxOGL_SOURCES = \
77 load.c \
78 stub.c \
79 context.c \
80 $(VBOX_PATH_CROGL_GENFILES)/getprocaddress.c \
81 $(VBOX_PATH_CROGL_GENFILES)/NULLfuncs.c \
82 $(VBOX_PATH_CROGL_GENFILES)/tsfuncs.c
83VBoxOGL_SOURCES.linux = \
84 glx.c \
85 xfont.c \
86 $(VBOX_PATH_CROGL_GENFILES)/linux_exports.asm
87ifdef VBoxOGL_DRI
88 VBoxOGL_SOURCES.linux += \
89 $(VBOX_PATH_CROGL_GENFILES)/DD_gl.c \
90 dri_drv.c
91endif
92VBoxOGL_SOURCES.win = \
93 wgl.c \
94 icd_drv.c \
95 VBoxCROGL.rc \
96 $(VBOX_PATH_CROGL_GENFILES)/windows_exports.asm \
97 $(VBOX_PATH_CROGL_GENFILES)/cropengl.def
98VBoxOGL_CLEAN = \
99 $(VBOX_PATH_CROGL_GENFILES)/getprocaddress.c \
100 $(VBOX_PATH_CROGL_GENFILES)/NULLfuncs.c \
101 $(VBOX_PATH_CROGL_GENFILES)/tsfuncs.c
102VBoxOGL_CLEAN.linux = \
103 $(VBOX_PATH_CROGL_GENFILES)/linux_exports.asm
104VBoxOGL_CLEAN.win = \
105 $(VBOX_PATH_CROGL_GENFILES)/windows_exports.asm \
106 $(VBOX_PATH_CROGL_GENFILES)/cropengl.def
107ifdef VBoxOGL_DRI
108VBoxOGL_CLEAN.linux += \
109 $(VBOX_PATH_CROGL_GENFILES)/cr_gl.h \
110 $(VBOX_PATH_CROGL_GENFILES)/DD_gl.h \
111 $(VBOX_PATH_CROGL_GENFILES)/DD_gl.c
112endif
113VBoxOGL_LIBS = \
114 $(VBOX_LIB_IPRT_GUEST_R3) \
115 $(VBOX_LIB_VBGL_R3) \
116 $(VBOX_LIB_OGL_CRUTIL) \
117 $(PATH_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB)
118if1of ($(KBUILD_TARGET),linux solaris)
119 VBoxOGL_LIBS += \
120 Xcomposite
121endif
122
123#
124# Generate files for VBoxOGL.
125#
126$(VBOX_PATH_CROGL_GENFILES)/NULLfuncs.c: $(PATH_SUB_CURRENT)/NULLfuncs.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
127 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
128$(VBOX_PATH_CROGL_GENFILES)/tsfuncs.c: $(PATH_SUB_CURRENT)/tsfuncs.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
129 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
130
131ifeq ($(KBUILD_TARGET),win)
132$(VBOX_PATH_CROGL_GENFILES)/getprocaddress.c: $(PATH_SUB_CURRENT)/windows_getprocaddress.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
133 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
134$(VBOX_PATH_CROGL_GENFILES)/cropengl.def: $(PATH_SUB_CURRENT)/defs.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
135 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
136$(VBOX_PATH_CROGL_GENFILES)/cr_gl.h: $(PATH_SUB_CURRENT)/cr_gl.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
137 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
138$(VBOX_PATH_CROGL_GENFILES)/windows_exports.asm: \
139 $(PATH_SUB_CURRENT)/windows_i386_exports.py \
140 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
141 | $$(dir $$@)
142 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
143else ifeq ($(KBUILD_TARGET),linux)
144ifndef VBoxOGL_DRI
145$(VBOX_PATH_CROGL_GENFILES)/getprocaddress.c: $(PATH_SUB_CURRENT)/getprocaddress.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
146 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
147$(VBOX_PATH_CROGL_GENFILES)/linux_exports.asm: \
148 $(PATH_SUB_CURRENT)/Linux_i386_exports.py \
149 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
150 | $$(dir $$@)
151 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
152else
153$(VBOX_PATH_CROGL_GENFILES)/getprocaddress.c: $(PATH_SUB_CURRENT)/getprocaddress_dri.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
154 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
155$(VBOX_PATH_CROGL_GENFILES)/cr_gl.h: $(PATH_SUB_CURRENT)/cr_gl.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
156 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
157 $(VBOX_PATH_CROGL_GENFILES)/DD_gl.h: $(PATH_SUB_CURRENT)/DD_glh.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
158 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
159 $(VBOX_PATH_CROGL_GENFILES)/DD_gl.c: $(PATH_SUB_CURRENT)/DD_glc.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
160 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
161 $(VBOX_PATH_CROGL_GENFILES)/linux_exports.asm: \
162 $(PATH_SUB_CURRENT)/Linux_i386_exports_dri.py \
163 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
164 | $$(dir $$@)
165 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
166endif
167endif
168
169#
170# VBoxOGLarrayspu
171#
172VBoxOGLarrayspu_TEMPLATE = VBOXCROGLR3GUESTDLL
173VBoxOGLarrayspu_INCS = \
174 array
175VBoxOGLarrayspu_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL
176VBoxOGLarrayspu_INTERMEDIATES = \
177 $(VBOX_PATH_CROGL_GENFILES)/state/cr_currentpointers.h \
178 $(VBOX_PATH_CROGL_GENFILES)/state/cr_statefuncs.h
179VBoxOGLarrayspu_SOURCES = \
180 array/arrayspu.c \
181 array/arrayspu_config.c \
182 array/arrayspu_init.c
183VBoxOGLarrayspu_SOURCES.win = \
184 array/arrayspu.def
185VBoxOGLarrayspu_LIBS = \
186 $(VBOX_LIB_OGL_CRUTIL) \
187 $(PATH_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB) \
188 $(PATH_LIB)/additions/VBoxOGLcrstate$(VBOX_SUFF_LIB)
189
190#
191# VBoxOGLpassthroughspu
192#
193VBoxOGLpassthroughspu_TEMPLATE = VBOXCROGLR3GUESTDLL
194VBoxOGLpassthroughspu_INCS = \
195 passthrough
196VBoxOGLpassthroughspu_SOURCES = \
197 passthrough/passthroughspu_init.c \
198 $(VBOX_PATH_CROGL_GENFILES)/passthroughspu.c
199VBoxOGLpassthroughspu_SOURCES.win = \
200 passthrough/passthrough.def
201VBoxOGLpassthroughspu_CLEAN = \
202 $(VBOX_PATH_CROGL_GENFILES)/passthroughspu.c
203VBoxOGLpassthroughspu_LIBS = \
204 $(VBOX_LIB_OGL_CRUTIL)
205
206#
207# Generate files for VBoxOGLpassthroughspu.
208#
209$(VBOX_PATH_CROGL_GENFILES)/passthroughspu.c: $(PATH_SUB_CURRENT)/passthrough/passthrough.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
210 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
211
212#
213# VBoxOGLpackspu
214#
215VBoxOGLpackspu_TEMPLATE = VBOXCROGLR3GUESTDLL
216VBoxOGLpackspu_DEFS = TRACKS_STATE=1 PACKS=1
217VBoxOGLpackspu_INCS = \
218 pack
219VBoxOGLpackspu_INTERMEDIATES = \
220 $(VBOX_PATH_CROGL_GENFILES)/packspu_proto.h
221VBoxOGLpackspu_SOURCES = \
222 pack/packspu_bufferobject.c \
223 pack/packspu_client.c \
224 pack/packspu_config.c \
225 pack/packspu_context.c \
226 pack/packspu_getstring.c \
227 pack/packspu_init.c \
228 pack/packspu_misc.c \
229 pack/packspu_net.c \
230 pack/packspu_swapbuf.c \
231 pack/packspu_pixel.c \
232 $(VBOX_PATH_CROGL_GENFILES)/packspu.c \
233 $(VBOX_PATH_CROGL_GENFILES)/packspu_get.c \
234 $(VBOX_PATH_CROGL_GENFILES)/packspu_flush.c \
235 $(VBOX_PATH_CROGL_GENFILES)/packspu_beginend.c
236VBoxOGLpackspu_SOURCES.win = \
237 pack/pack.def
238VBoxOGLpackspu_CLEAN = \
239 $(VBOX_PATH_CROGL_GENFILES)/packspu_proto.h \
240 $(VBOX_PATH_CROGL_GENFILES)/packspu.c \
241 $(VBOX_PATH_CROGL_GENFILES)/packspu_get.c \
242 $(VBOX_PATH_CROGL_GENFILES)/packspu_flush.c \
243 $(VBOX_PATH_CROGL_GENFILES)/packspu_beginend.c
244VBoxOGLpackspu_LIBS = \
245 $(VBOX_LIB_OGL_CRUTIL) \
246 $(PATH_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB) \
247 $(PATH_LIB)/additions/VBoxOGLcrstate$(VBOX_SUFF_LIB) \
248 $(PATH_LIB)/additions/VBoxOGLcrpacker$(VBOX_SUFF_LIB)
249
250#
251# Generate files for VBoxOGLpackspu.
252#
253$(VBOX_PATH_CROGL_GENFILES)/packspu.c: $(addprefix $(PATH_SUB_CURRENT)/pack/,pack.py packspu_special packspu_unimplemented_special) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
254 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
255
256$(VBOX_PATH_CROGL_GENFILES)/packspu_get.c: $(PATH_SUB_CURRENT)/pack/packspu_get.py $(PATH_SUB_CURRENT)/pack/packspu_special $(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib/get_sizes.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
257 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
258
259$(VBOX_PATH_CROGL_GENFILES)/packspu_flush.c: $(PATH_SUB_CURRENT)/pack/packspu_flush.py $(PATH_SUB_CURRENT)/pack/packspu_flush_special $(VBOX_CROGL_API_FILES) | $$(dir $$@)
260 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
261
262$(VBOX_PATH_CROGL_GENFILES)/packspu_beginend.c: $(PATH_SUB_CURRENT)/pack/packspu_beginend.py $(PATH_SUB_CURRENT)/pack/packspu_vertex_special $(VBOX_CROGL_API_FILES) | $$(dir $$@)
263 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
264
265$(VBOX_PATH_CROGL_GENFILES)/packspu_proto.h: $(addprefix $(PATH_SUB_CURRENT)/pack/,packspu_proto.py packspu_special packspu_unimplemented_special) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
266 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
267
268#
269# VBoxOGLfeedbackspu
270#
271VBoxOGLfeedbackspu_TEMPLATE = VBOXCROGLR3GUESTDLL
272VBoxOGLfeedbackspu_INCS = \
273 feedback
274VBoxOGLarrayspu_INTERMEDIATES = \
275 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu_proto.h
276VBoxOGLfeedbackspu_SOURCES = \
277 feedback/feedbackspu_config.c \
278 feedback/feedbackspu_init.c \
279 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu.c \
280 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu_state.c
281VBoxOGLfeedbackspu_SOURCES.win = \
282 feedback/feedback.def
283VBoxOGLfeedbackspu_CLEAN = \
284 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu_proto.h \
285 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu.c \
286 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu_state.c
287VBoxOGLfeedbackspu_LIBS = \
288 $(VBOX_LIB_OGL_CRUTIL) \
289 $(PATH_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB) \
290 $(PATH_LIB)/additions/VBoxOGLcrstate$(VBOX_SUFF_LIB)
291
292#
293# Generate files for VBoxOGLfeedbackspu.
294#
295$(VBOX_PATH_CROGL_GENFILES)/feedbackspu.c: $(addprefix $(PATH_SUB_CURRENT)/feedback/,feedback.py feedback_special select_special feedback_state_special) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
296 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
297
298$(VBOX_PATH_CROGL_GENFILES)/feedbackspu_state.c: $(addprefix $(PATH_SUB_CURRENT)/feedback/,feedback_state.py feedback_state_special) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
299 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
300
301$(VBOX_PATH_CROGL_GENFILES)/feedbackspu_proto.h: $(addprefix $(PATH_SUB_CURRENT)/feedback/,feedbackspu_proto.py feedback_special select_special feedback_state_special) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
302 $(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
303
304include $(KBUILD_PATH)/subfooter.kmk
305
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette