VirtualBox

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

Last change on this file since 31409 was 30513, checked in by vboxsync, 14 years ago

crOpenGL: window tracking with wddm callbacks

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 20.5 KB
Line 
1# $Id: Makefile.kmk 30513 2010-06-29 17:14:15Z vboxsync $
2## @file
3# Sub-Makefile for the VirtualBox Guest OpenGL part
4#
5
6#
7# Copyright (C) 2008 Oracle Corporation
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
18SUB_DEPTH = ../../../../..
19include $(KBUILD_PATH)/subheader.kmk
20
21#
22# Target lists.
23#
24BLDDIRS += \
25 $(VBOX_PATH_CROGL_GENFILES)/
26
27DLLS.win += \
28 VBoxOGL \
29 VBoxOGLarrayspu \
30 VBoxOGLpassthroughspu \
31 VBoxOGLpackspu \
32 VBoxOGLfeedbackspu
33
34if1of ($(KBUILD_TARGET), linux solaris freebsd)
35DLLS += \
36 VBoxOGL \
37 VBoxOGLarrayspu \
38 VBoxOGLpassthroughspu \
39 VBoxOGLpackspu \
40 VBoxOGLfeedbackspu
41endif
42
43if1of ($(KBUILD_TARGET), linux solaris freebsd)
44 #VBoxOGL_DRI = 1
45 ifn1of ($(KBUILD_TARGET),solaris freebsd) # No DRI on Solaris yet
46 VBoxOGL_FAKEDRI = 1
47 endif
48
49 # Only Solaris right now needs C stubs because I can't figure out how to
50 # generate the GOT based relocation ASM yet.
51 ifdef VBoxOGL_FAKEDRI
52 if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),solaris.x86 solaris.amd64 linux.x86 linux.amd64 freebsd.x86 freebsd.amd64)
53 VBOX_OGL_GLX_USE_CSTUBS = 1
54 endif
55 endif
56endif
57
58
59#
60# VBoxOGL
61#
62VBoxOGL_TEMPLATE = VBOXCROGLR3GUESTDLL
63VBoxOGL_INCS = .
64if1of ($(KBUILD_TARGET), linux solaris freebsd)
65 VBoxOGL_INCS += \
66 $(VBOX_PATH_X11_ROOT)/libXdamage-1.1 \
67 $(VBOX_PATH_X11_ROOT)/libXcomposite-0.4.0 \
68 $(VBOX_PATH_X11_ROOT)/libXfixes-4.0.3 \
69 $(VBOX_PATH_X11_ROOT)/damageproto-1.1.0 \
70 $(VBOX_PATH_X11_ROOT)/compositeproto-0.4 \
71 $(VBOX_PATH_X11_ROOT)/fixesproto-4.0 \
72 $(VBOX_PATH_X11_ROOT)/libx11-1.1.5-other \
73 $(VBOX_PATH_X11_ROOT)/1.3/xorg \
74 $(VBOX_MESA_INCS) \
75 $(PATH_ROOT)/src/VBox/Additions/x11/x11include/libdrm-2.4.13
76 VBoxOGL_DEFS += VBOX_NO_NATIVEGL
77endif
78
79ifdef VBoxOGL_DRI
80 VBoxOGL_DEFS += VBOXOGL_DRI IN_DRI_DRIVER
81else ifdef VBoxOGL_FAKEDRI
82 VBoxOGL_DEFS += VBOXOGL_FAKEDRI
83 ifdef VBOX_OGL_GLX_USE_CSTUBS
84 VBoxOGL_DEFS += VBOX_OGL_GLX_USE_CSTUBS
85 endif
86endif
87
88ifdef VBOXWDDM
89 VBoxOGL_DEFS.win += VBOX_WITH_WDDM
90 VBoxOGL_SDKS += WINDDKWLH
91endif
92
93ifeq ($(KBUILD_TARGET),win)
94#fixme?, INTERMEDIATES.win ain't working
95 VBoxOGL_INTERMEDIATES += $(VBOX_PATH_CROGL_GENFILES)/cr_gl.h
96endif
97ifdef VBoxOGL_DRI
98 VBoxOGL_INTERMEDIATES += \
99 $(VBOX_PATH_CROGL_GENFILES)/cr_gl.h \
100 $(VBOX_PATH_CROGL_GENFILES)/DD_gl.h
101else ifdef VBoxOGL_FAKEDRI
102 VBoxOGL_INTERMEDIATES += \
103 $(VBOX_PATH_CROGL_GENFILES)/cr_gl.h
104endif
105VBoxOGL_SOURCES += \
106 load.c \
107 stub.c \
108 context.c \
109 $(VBOX_PATH_CROGL_GENFILES)/getprocaddress.c \
110 $(VBOX_PATH_CROGL_GENFILES)/NULLfuncs.c \
111 $(VBOX_PATH_CROGL_GENFILES)/tsfuncs.c
112
113if1of ($(KBUILD_TARGET), linux solaris freebsd)
114 VBoxOGL_SOURCES += \
115 glx.c \
116 xfont.c
117 ifdef VBOX_OGL_GLX_USE_CSTUBS
118 VBoxOGL_SOURCES += glx_c_exports.c
119 endif
120
121 ifdef VBoxOGL_DRI
122 VBoxOGL_SOURCES += \
123 $(VBOX_PATH_CROGL_GENFILES)/DD_gl.c \
124 dri_drv.c
125 VBoxOGL_SOURCES.linux += \
126 $(VBOX_PATH_CROGL_GENFILES)/linux_exports_dri.asm
127 VBoxOGL_SOURCES.solaris += \
128 $(VBOX_PATH_CROGL_GENFILES)/solaris_exports_dri.asm
129 VBoxOGL_SOURCES.freebsd += \
130 $(VBOX_PATH_CROGL_GENFILES)/freebsd_exports_dri.asm
131 else ifdef VBoxOGL_FAKEDRI
132 VBoxOGL_SOURCES += \
133 fakedri_drv.c
134 ifndef VBOX_OGL_GLX_USE_CSTUBS
135 VBoxOGL_SOURCES.solaris += \
136 $(VBOX_PATH_CROGL_GENFILES)/solaris_glxapi_exports.asm \
137 $(VBOX_PATH_CROGL_GENFILES)/solaris_exports_dri.asm
138 VBoxOGL_SOURCES.linux += \
139 $(VBOX_PATH_CROGL_GENFILES)/linux_glxapi_exports.asm \
140 $(VBOX_PATH_CROGL_GENFILES)/linux_exports_dri.asm
141 VBoxOGL_SOURCES.freebsd += \
142 $(VBOX_PATH_CROGL_GENFILES)/freebsd_glxapi_exports.asm \
143 $(VBOX_PATH_CROGL_GENFILES)/freebsd_exports_dri.asm
144 else
145 VBoxOGL_SOURCES.solaris += \
146 $(VBOX_PATH_CROGL_GENFILES)/solaris_exports.c
147 VBoxOGL_SOURCES.linux += \
148 $(VBOX_PATH_CROGL_GENFILES)/linux_exports.c
149 VBoxOGL_SOURCES.freebsd += \
150 $(VBOX_PATH_CROGL_GENFILES)/freebsd_exports.c
151 endif
152 else
153 VBoxOGL_SOURCES.linux += \
154 $(VBOX_PATH_CROGL_GENFILES)/linux_exports.asm
155 VBoxOGL_SOURCES.solaris += \
156 $(VBOX_PATH_CROGL_GENFILES)/solaris_exports.c
157 VBoxOGL_SOURCES.freebsd += \
158 $(VBOX_PATH_CROGL_GENFILES)/freebsd_exports.c
159 endif
160endif
161
162VBoxOGL_SOURCES.win = \
163 wgl.c \
164 icd_drv.c \
165 VBoxCROGL.rc \
166 $(VBOX_PATH_CROGL_GENFILES)/windows_exports.asm \
167 $(VBOX_PATH_CROGL_GENFILES)/cropengl.def
168VBoxOGL_CLEAN = \
169 $(VBOX_PATH_CROGL_GENFILES)/getprocaddress.c \
170 $(VBOX_PATH_CROGL_GENFILES)/NULLfuncs.c \
171 $(VBOX_PATH_CROGL_GENFILES)/tsfuncs.c
172VBoxOGL_CLEAN.linux += \
173 $(VBOX_PATH_CROGL_GENFILES)/linux_exports.asm
174VBoxOGL_CLEAN.solaris += \
175 $(VBOX_PATH_CROGL_GENFILES)/solaris_exports.c
176VBoxOGL_CLEAN.win = \
177 $(VBOX_PATH_CROGL_GENFILES)/windows_exports.asm \
178 $(VBOX_PATH_CROGL_GENFILES)/cropengl.def
179if1of ($(KBUILD_TARGET), linux solaris)
180 ifdef VBoxOGL_DRI
181 VBoxOGL_CLEAN += \
182 $(VBOX_PATH_CROGL_GENFILES)/cr_gl.h \
183 $(VBOX_PATH_CROGL_GENFILES)/DD_gl.h \
184 $(VBOX_PATH_CROGL_GENFILES)/DD_gl.c
185 else ifdef VBoxOGL_FAKEDRI
186 VBoxOGL_CLEAN += \
187 $(VBOX_PATH_CROGL_GENFILES)/cr_gl.h
188 VBoxOGL_CLEAN.linux += \
189 $(VBOX_PATH_CROGL_GENFILES)/linux_glxapi_exports.asm
190 VBoxOGL_CLEAN.solaris += \
191 $(VBOX_PATH_CROGL_GENFILES)/solaris_glxapi_exports.asm
192 endif
193endif
194VBoxOGL_LIBS = \
195 $(VBOX_LIB_IPRT_GUEST_R3_SHARED) \
196 $(VBOX_LIB_VBGL_R3_SHARED) \
197 $(VBOX_LIB_OGL_CRUTIL) \
198 $(PATH_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB)
199if1of ($(KBUILD_TARGET), linux solaris freebsd)
200 VBoxOGL_LIBS += \
201 $(PATH_LIB)/libXcomposite.so \
202 $(PATH_LIB)/libXdamage.so \
203 $(PATH_LIB)/libXfixes.so \
204 $(PATH_LIB)/libXext.so
205 ifdef VBoxOGL_FAKEDRI
206 VBoxOGL_LIBS += \
207 dl
208 endif
209endif
210
211#
212# Generate files for VBoxOGL.
213#
214$(VBOX_PATH_CROGL_GENFILES)/NULLfuncs.c: $(PATH_SUB_CURRENT)/NULLfuncs.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
215 $(call MSG_GENERATE,python,$@,$<)
216 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
217$(VBOX_PATH_CROGL_GENFILES)/tsfuncs.c: $(PATH_SUB_CURRENT)/tsfuncs.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
218 $(call MSG_GENERATE,python,$@,$<)
219 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
220
221ifeq ($(KBUILD_TARGET),win)
222$(VBOX_PATH_CROGL_GENFILES)/getprocaddress.c: $(PATH_SUB_CURRENT)/windows_getprocaddress.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
223 $(call MSG_GENERATE,python,$@,$<)
224 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
225 ifeq ($(KBUILD_TARGET_ARCH),amd64)
226$(VBOX_PATH_CROGL_GENFILES)/cropengl.def: $(PATH_SUB_CURRENT)/defs64.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
227 $(call MSG_GENERATE,python,$@,$<)
228 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
229 else
230$(VBOX_PATH_CROGL_GENFILES)/cropengl.def: $(PATH_SUB_CURRENT)/defs.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
231 $(call MSG_GENERATE,python,$@,$<)
232 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
233 endif
234$(VBOX_PATH_CROGL_GENFILES)/cr_gl.h: $(PATH_SUB_CURRENT)/cr_gl.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
235 $(call MSG_GENERATE,python,$@,$<)
236 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
237$(VBOX_PATH_CROGL_GENFILES)/windows_exports.asm: \
238 $(PATH_SUB_CURRENT)/windows_i386_exports.py \
239 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
240 | $$(dir $$@)
241 $(call MSG_GENERATE,python,$@,$<)
242 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
243else if1of ($(KBUILD_TARGET), linux solaris freebsd)
244$(VBOX_PATH_CROGL_GENFILES)/getprocaddress.c: $(PATH_SUB_CURRENT)/getprocaddress.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
245 $(call MSG_GENERATE,python,$@,$<)
246 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
247if !defined(VBoxOGL_DRI) && !defined(VBoxOGL_FAKEDRI)
248 ifeq ($(KBUILD_TARGET),solaris)
249$(VBOX_PATH_CROGL_GENFILES)/solaris_exports.c: \
250 $(PATH_SUB_CURRENT)/SunOS_exports.py \
251 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
252 | $$(dir $$@)
253 $(call MSG_GENERATE,python,$@,$<)
254 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
255 else ifeq ($(KBUILD_TARGET),freebsd)
256$(VBOX_PATH_CROGL_GENFILES)/freebsd_exports.c: \
257 $(PATH_SUB_CURRENT)/FreeBSD_exports.py \
258 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
259 | $$(dir $$@)
260 $(call MSG_GENERATE,python,$@,$<)
261 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
262 else
263$(VBOX_PATH_CROGL_GENFILES)/linux_exports.asm: \
264 $(PATH_SUB_CURRENT)/Linux_i386_exports.py \
265 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
266 | $$(dir $$@)
267 $(call MSG_GENERATE,python,$@,$<)
268 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
269 endif
270else ifdef VBoxOGL_DRI
271$(VBOX_PATH_CROGL_GENFILES)/cr_gl.h: $(PATH_SUB_CURRENT)/cr_gl.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
272 $(call MSG_GENERATE,python,$@,$<)
273 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
274$(VBOX_PATH_CROGL_GENFILES)/DD_gl.h: $(PATH_SUB_CURRENT)/DD_glh.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
275 $(call MSG_GENERATE,python,$@,$<)
276 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
277$(VBOX_PATH_CROGL_GENFILES)/DD_gl.c: $(PATH_SUB_CURRENT)/DD_glc.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
278 $(call MSG_GENERATE,python,$@,$<)
279 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
280 ifeq ($(KBUILD_TARGET),solaris)
281$(VBOX_PATH_CROGL_GENFILES)/solaris_exports_dri.asm: \
282 $(PATH_SUB_CURRENT)/SunOS_i386_exports_dri.py \
283 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
284 | $$(dir $$@)
285 $(call MSG_GENERATE,python,$@,$<)
286 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
287 else ifeq ($(KBUILD_TARGET),freebsd)
288$(VBOX_PATH_CROGL_GENFILES)/freebsd_exports_dri.asm: \
289 $(PATH_SUB_CURRENT)/FreeBSD_i386_exports_dri.py \
290 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
291 | $$(dir $$@)
292 $(call MSG_GENERATE,python,$@,$<)
293 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
294 else
295$(VBOX_PATH_CROGL_GENFILES)/linux_exports_dri.asm: \
296 $(PATH_SUB_CURRENT)/Linux_i386_exports_dri.py \
297 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
298 | $$(dir $$@)
299 $(call MSG_GENERATE,python,$@,$<)
300 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
301 endif
302else ifdef VBoxOGL_FAKEDRI
303$(VBOX_PATH_CROGL_GENFILES)/cr_gl.h: $(PATH_SUB_CURRENT)/cr_gl.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
304 $(call MSG_GENERATE,python,$@,$<)
305 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
306 ifndef VBOX_OGL_GLX_USE_CSTUBS
307 ifeq ($(KBUILD_TARGET),solaris)
308$(VBOX_PATH_CROGL_GENFILES)/solaris_exports_dri.asm: \
309 $(PATH_SUB_CURRENT)/SunOS_i386_exports_dri.py \
310 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
311 | $$(dir $$@)
312 $(call MSG_GENERATE,python,$@,$<)
313 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
314$(VBOX_PATH_CROGL_GENFILES)/solaris_glxapi_exports.asm: $(PATH_SUB_CURRENT)/SunOS_i386_glxapi_exports.py | $$(dir $$@)
315 $(call MSG_GENERATE,python,$@,$<)
316 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $<
317 else
318$(VBOX_PATH_CROGL_GENFILES)/linux_exports_dri.asm: \
319 $(PATH_SUB_CURRENT)/Linux_i386_exports_dri.py \
320 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
321 | $$(dir $$@)
322 $(call MSG_GENERATE,python,$@,$<)
323 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
324$(VBOX_PATH_CROGL_GENFILES)/linux_glxapi_exports.asm: $(PATH_SUB_CURRENT)/Linux_i386_glxapi_exports.py | $$(dir $$@)
325 $(call MSG_GENERATE,python,$@,$<)
326 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $<
327 endif
328 else
329 ifeq ($(KBUILD_TARGET),solaris)
330$(VBOX_PATH_CROGL_GENFILES)/solaris_exports.c: \
331 $(PATH_SUB_CURRENT)/SunOS_exports.py \
332 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
333 | $$(dir $$@)
334 $(call MSG_GENERATE,python,$@,$<)
335 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
336 else
337$(VBOX_PATH_CROGL_GENFILES)/linux_exports.c: \
338 $(PATH_SUB_CURRENT)/Linux_exports.py \
339 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
340 | $$(dir $$@)
341 $(call MSG_GENERATE,python,$@,$<)
342 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
343 endif
344 endif # VBOX_OGL_GLX_USE_CSTUBS
345endif
346endif
347
348#
349# VBoxOGLarrayspu
350#
351VBoxOGLarrayspu_TEMPLATE = VBOXCROGLR3GUESTDLL
352VBoxOGLarrayspu_INCS = \
353 array
354if1of ($(KBUILD_TARGET), linux solaris freebsd)
355 VBoxOGLarrayspu_INCS += \
356 $(VBOX_MESA_INCS)
357endif
358VBoxOGLarrayspu_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL
359VBoxOGLarrayspu_INTERMEDIATES = \
360 $(VBOX_PATH_CROGL_GENFILES)/state/cr_currentpointers.h \
361 $(VBOX_PATH_CROGL_GENFILES)/state/cr_statefuncs.h
362VBoxOGLarrayspu_SOURCES = \
363 array/arrayspu.c \
364 array/arrayspu_config.c \
365 array/arrayspu_init.c
366VBoxOGLarrayspu_SOURCES.win = \
367 array/arrayspu.def \
368 array/arrayspu.rc
369VBoxOGLarrayspu_LIBS = \
370 $(VBOX_LIB_OGL_CRUTIL) \
371 $(PATH_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB) \
372 $(PATH_LIB)/additions/VBoxOGLcrstate$(VBOX_SUFF_LIB)
373
374#
375# VBoxOGLpassthroughspu
376#
377VBoxOGLpassthroughspu_TEMPLATE = VBOXCROGLR3GUESTDLL
378VBoxOGLpassthroughspu_INCS = \
379 passthrough
380if1of ($(KBUILD_TARGET), linux solaris freebsd)
381 VBoxOGLpassthroughspu_INCS += \
382 $(VBOX_MESA_INCS)
383endif
384VBoxOGLpassthroughspu_SOURCES = \
385 passthrough/passthroughspu_init.c \
386 $(VBOX_PATH_CROGL_GENFILES)/passthroughspu.c
387VBoxOGLpassthroughspu_SOURCES.win = \
388 passthrough/passthrough.def \
389 passthrough/passthroughspu.rc
390VBoxOGLpassthroughspu_CLEAN = \
391 $(VBOX_PATH_CROGL_GENFILES)/passthroughspu.c
392VBoxOGLpassthroughspu_LIBS = \
393 $(VBOX_LIB_OGL_CRUTIL)
394
395#
396# Generate files for VBoxOGLpassthroughspu.
397#
398$(VBOX_PATH_CROGL_GENFILES)/passthroughspu.c: $(PATH_SUB_CURRENT)/passthrough/passthrough.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
399 $(call MSG_GENERATE,python,$@,$<)
400 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
401
402#
403# VBoxOGLpackspu
404#
405VBoxOGLpackspu_TEMPLATE = VBOXCROGLR3GUESTDLL
406VBoxOGLpackspu_DEFS = TRACKS_STATE=1 PACKS=1
407VBoxOGLpackspu_INCS = \
408 pack
409if1of ($(KBUILD_TARGET), linux solaris freebsd)
410 VBoxOGLpackspu_INCS += \
411 $(VBOX_MESA_INCS)
412endif
413VBoxOGLpackspu_INTERMEDIATES = \
414 $(VBOX_PATH_CROGL_GENFILES)/packspu_proto.h \
415 $(VBOX_PATH_CROGL_GENFILES)/cr_packfunctions.h
416VBoxOGLpackspu_SOURCES = \
417 pack/packspu_bufferobject.c \
418 pack/packspu_client.c \
419 pack/packspu_config.c \
420 pack/packspu_context.c \
421 pack/packspu_getstring.c \
422 pack/packspu_init.c \
423 pack/packspu_misc.c \
424 pack/packspu_net.c \
425 pack/packspu_swapbuf.c \
426 pack/packspu_pixel.c \
427 pack/packspu_texture.c \
428 pack/packspu_getshaders.c \
429 pack/packspu_glsl.c \
430 pack/packspu_framebuffer.c \
431 $(VBOX_PATH_CROGL_GENFILES)/packspu.c \
432 $(VBOX_PATH_CROGL_GENFILES)/packspu_get.c \
433 $(VBOX_PATH_CROGL_GENFILES)/packspu_flush.c \
434 $(VBOX_PATH_CROGL_GENFILES)/packspu_beginend.c
435VBoxOGLpackspu_SOURCES.win = \
436 pack/pack.def \
437 pack/packspu.rc
438VBoxOGLpackspu_CLEAN = \
439 $(VBOX_PATH_CROGL_GENFILES)/packspu_proto.h \
440 $(VBOX_PATH_CROGL_GENFILES)/packspu.c \
441 $(VBOX_PATH_CROGL_GENFILES)/packspu_get.c \
442 $(VBOX_PATH_CROGL_GENFILES)/packspu_flush.c \
443 $(VBOX_PATH_CROGL_GENFILES)/packspu_beginend.c
444VBoxOGLpackspu_LIBS = \
445 $(VBOX_LIB_OGL_CRUTIL) \
446 $(PATH_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB) \
447 $(PATH_LIB)/additions/VBoxOGLcrstate$(VBOX_SUFF_LIB) \
448 $(PATH_LIB)/additions/VBoxOGLcrpacker$(VBOX_SUFF_LIB)
449
450#
451# Generate files for VBoxOGLpackspu.
452#
453$(VBOX_PATH_CROGL_GENFILES)/packspu.c: $(addprefix $(PATH_SUB_CURRENT)/pack/,pack.py packspu_special packspu_unimplemented_special) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
454 $(call MSG_GENERATE,python,$@,$<)
455 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
456
457$(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 $$@)
458 $(call MSG_GENERATE,python,$@,$<)
459 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
460
461$(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 $$@)
462 $(call MSG_GENERATE,python,$@,$<)
463 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
464
465$(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 $$@)
466 $(call MSG_GENERATE,python,$@,$<)
467 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
468
469$(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 $$@)
470 $(call MSG_GENERATE,python,$@,$<)
471 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
472
473#
474# VBoxOGLfeedbackspu
475#
476VBoxOGLfeedbackspu_TEMPLATE = VBOXCROGLR3GUESTDLL
477VBoxOGLfeedbackspu_INCS = \
478 feedback
479if1of ($(KBUILD_TARGET), linux solaris freebsd)
480 VBoxOGLfeedbackspu_INCS += \
481 $(VBOX_MESA_INCS)
482endif
483VBoxOGLarrayspu_INTERMEDIATES = \
484 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu_proto.h
485VBoxOGLfeedbackspu_SOURCES = \
486 feedback/feedbackspu_config.c \
487 feedback/feedbackspu_init.c \
488 feedback/feedback_context.c \
489 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu.c \
490 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu_state.c
491VBoxOGLfeedbackspu_SOURCES.win = \
492 feedback/feedback.def \
493 feedback/feedbackspu.rc
494VBoxOGLfeedbackspu_CLEAN = \
495 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu_proto.h \
496 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu.c \
497 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu_state.c
498VBoxOGLfeedbackspu_LIBS = \
499 $(VBOX_LIB_OGL_CRUTIL) \
500 $(PATH_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB) \
501 $(PATH_LIB)/additions/VBoxOGLcrstate$(VBOX_SUFF_LIB)
502
503#
504# Generate files for VBoxOGLfeedbackspu.
505#
506$(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 $$@)
507 $(call MSG_GENERATE,python,$@,$<)
508 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
509
510$(VBOX_PATH_CROGL_GENFILES)/feedbackspu_state.c: $(addprefix $(PATH_SUB_CURRENT)/feedback/,feedback_state.py feedback_state_special) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
511 $(call MSG_GENERATE,python,$@,$<)
512 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
513
514$(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 $$@)
515 $(call MSG_GENERATE,python,$@,$<)
516 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
517
518include $(KBUILD_PATH)/subfooter.kmk
519
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