VirtualBox

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

Last change on this file since 49260 was 46747, checked in by vboxsync, 12 years ago

FreeBSD/crOpenGL: 3D acceleration support for FreeBSD guests (thanks to Bernhard Froehlich)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 25.8 KB
Line 
1# $Id: Makefile.kmk 46747 2013-06-24 08:09:49Z vboxsync $
2## @file
3# Sub-Makefile for the VirtualBox Guest OpenGL part
4#
5
6#
7# Copyright (C) 2008-2012 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
43VBOX_OGL_X86_GUEST_DLLS = \
44 VBoxOGL-x86 \
45 VBoxOGLarrayspu-x86 \
46 VBoxOGLpassthroughspu-x86 \
47 VBoxOGLpackspu-x86 \
48 VBoxOGLfeedbackspu-x86
49
50ifdef VBOX_WITH_WDDM
51 DLLS.win.amd64 += $(VBOX_OGL_X86_GUEST_DLLS)
52endif
53
54# 32-bit version for the 64-bit Linux Additions
55ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.amd64)
56 ifneq ($(VBOX_WITH_COMPATIBLE_LINUX_GUEST_PACKAGE),)
57 DLLS += $(VBOX_OGL_X86_GUEST_DLLS)
58 $(foreach i,$(VBOX_OGL_X86_GUEST_DLLS),$(eval $(i)_INST = $(INST_ADDITIONS)/32/))
59 $(foreach i,$(VBOX_OGL_X86_GUEST_DLLS),$(eval $(i)_NAME = $(subst -x86,,$(i))))
60 endif
61endif
62
63if1of ($(KBUILD_TARGET), linux solaris freebsd)
64 #VBoxOGL_DRI = 1
65 ifn1of ($(KBUILD_TARGET),solaris) # No DRI on Solaris yet
66 VBoxOGL_FAKEDRI = 1
67 endif
68
69 # Only Solaris right now needs C stubs because I can't figure out how to
70 # generate the GOT based relocation ASM yet.
71 ifdef VBoxOGL_FAKEDRI
72 if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),solaris.x86 solaris.amd64 linux.x86 linux.amd64 freebsd.x86 freebsd.amd64)
73 VBOX_OGL_GLX_USE_CSTUBS = 1
74 endif
75 endif
76endif
77
78#
79# VBoxOGL
80#
81VBoxOGL_TEMPLATE = VBOXCROGLR3GUESTDLL
82VBoxOGL_INCS = .
83if1of ($(KBUILD_TARGET), linux solaris freebsd)
84 VBoxOGL_INCS += \
85 $(VBOX_PATH_X11_ROOT)/libXdamage-1.1 \
86 $(VBOX_PATH_X11_ROOT)/libXcomposite-0.4.0 \
87 $(VBOX_PATH_X11_ROOT)/libXext-1.3.1 \
88 $(VBOX_PATH_X11_ROOT)/libXfixes-4.0.3 \
89 $(VBOX_PATH_X11_ROOT)/damageproto-1.1.0 \
90 $(VBOX_PATH_X11_ROOT)/compositeproto-0.4 \
91 $(VBOX_PATH_X11_ROOT)/fixesproto-4.0 \
92 $(VBOX_PATH_X11_ROOT)/libx11-1.1.5-other \
93 $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \
94 $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 \
95 $(VBOX_MESA_INCS) \
96 $(PATH_ROOT)/src/VBox/Additions/x11/x11include/libdrm-2.4.13
97 VBoxOGL_DEFS += VBOX_NO_NATIVEGL
98endif
99
100ifdef VBoxOGL_DRI
101 VBoxOGL_DEFS += VBOXOGL_DRI IN_DRI_DRIVER
102else ifdef VBoxOGL_FAKEDRI
103 VBoxOGL_DEFS += VBOXOGL_FAKEDRI
104 ifdef VBOX_OGL_GLX_USE_CSTUBS
105 VBoxOGL_DEFS += VBOX_OGL_GLX_USE_CSTUBS
106 endif
107endif
108
109ifdef VBOX_WITH_WDDM
110 VBoxOGL_DEFS.win += VBOX_WITH_WDDM
111 VBoxOGL_SDKS.win += $(VBOX_WINDDK_GST_WLH)
112endif
113
114ifeq ($(KBUILD_TARGET),win)
115#fixme?, INTERMEDIATES.win ain't working
116 VBoxOGL_INTERMEDIATES += $(VBOX_PATH_CROGL_GENFILES)/cr_gl.h
117 if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_WDDM)
118 VBoxOGL_INSTTYPE.win = none
119 VBoxOGL_DEBUG_INSTTYPE.win = both
120 endif
121endif
122ifdef VBoxOGL_DRI
123 VBoxOGL_INTERMEDIATES += \
124 $(VBOX_PATH_CROGL_GENFILES)/cr_gl.h \
125 $(VBOX_PATH_CROGL_GENFILES)/DD_gl.h
126else ifdef VBoxOGL_FAKEDRI
127 VBoxOGL_INTERMEDIATES += \
128 $(VBOX_PATH_CROGL_GENFILES)/cr_gl.h
129endif
130VBoxOGL_SOURCES += \
131 load.c \
132 stub.c \
133 context.c \
134 $(VBOX_PATH_CROGL_GENFILES)/getprocaddress.c \
135 $(VBOX_PATH_CROGL_GENFILES)/NULLfuncs.c \
136 $(VBOX_PATH_CROGL_GENFILES)/tsfuncs.c
137
138if1of ($(KBUILD_TARGET), linux solaris freebsd)
139 VBoxOGL_SOURCES += \
140 glx.c \
141 xfont.c
142 ifdef VBOX_OGL_GLX_USE_CSTUBS
143 VBoxOGL_SOURCES += glx_c_exports.c
144 endif
145
146 ifdef VBoxOGL_DRI
147 VBoxOGL_SOURCES += \
148 $(VBOX_PATH_CROGL_GENFILES)/DD_gl.c \
149 dri_drv.c
150 VBoxOGL_SOURCES.linux += \
151 $(VBOX_PATH_CROGL_GENFILES)/linux_exports_dri.asm
152 VBoxOGL_SOURCES.solaris += \
153 $(VBOX_PATH_CROGL_GENFILES)/solaris_exports_dri.asm
154 VBoxOGL_SOURCES.freebsd += \
155 $(VBOX_PATH_CROGL_GENFILES)/freebsd_exports_dri.asm
156 else ifdef VBoxOGL_FAKEDRI
157 VBoxOGL_SOURCES += \
158 fakedri_drv.c
159 ifndef VBOX_OGL_GLX_USE_CSTUBS
160 VBoxOGL_SOURCES.solaris += \
161 $(VBOX_PATH_CROGL_GENFILES)/solaris_glxapi_exports.asm \
162 $(VBOX_PATH_CROGL_GENFILES)/solaris_exports_dri.asm
163 VBoxOGL_SOURCES.linux += \
164 $(VBOX_PATH_CROGL_GENFILES)/linux_glxapi_exports.asm \
165 $(VBOX_PATH_CROGL_GENFILES)/linux_exports_dri.asm
166 VBoxOGL_SOURCES.freebsd += \
167 $(VBOX_PATH_CROGL_GENFILES)/freebsd_glxapi_exports.asm \
168 $(VBOX_PATH_CROGL_GENFILES)/freebsd_exports_dri.asm
169 else
170 VBoxOGL_SOURCES.solaris += \
171 $(VBOX_PATH_CROGL_GENFILES)/solaris_exports.c
172 VBoxOGL_SOURCES.linux += \
173 $(VBOX_PATH_CROGL_GENFILES)/linux_exports.c
174 VBoxOGL_SOURCES.freebsd += \
175 $(VBOX_PATH_CROGL_GENFILES)/freebsd_exports.c
176 endif
177 else
178 VBoxOGL_SOURCES.linux += \
179 $(VBOX_PATH_CROGL_GENFILES)/linux_exports.asm
180 VBoxOGL_SOURCES.solaris += \
181 $(VBOX_PATH_CROGL_GENFILES)/solaris_exports.c
182 VBoxOGL_SOURCES.freebsd += \
183 $(VBOX_PATH_CROGL_GENFILES)/freebsd_exports.c
184 endif
185endif
186
187VBoxOGL_SOURCES.win = \
188 wgl.c \
189 icd_drv.c \
190 VBoxCROGL.rc \
191 $(VBOX_PATH_CROGL_GENFILES)/windows_exports.asm \
192 $(VBOX_PATH_CROGL_GENFILES)/cropengl.def
193VBoxOGL_CLEAN = \
194 $(VBOX_PATH_CROGL_GENFILES)/getprocaddress.c \
195 $(VBOX_PATH_CROGL_GENFILES)/NULLfuncs.c \
196 $(VBOX_PATH_CROGL_GENFILES)/tsfuncs.c
197VBoxOGL_CLEAN.linux += \
198 $(VBOX_PATH_CROGL_GENFILES)/linux_exports.asm
199VBoxOGL_CLEAN.solaris += \
200 $(VBOX_PATH_CROGL_GENFILES)/solaris_exports.c
201VBoxOGL_CLEAN.win = \
202 $(VBOX_PATH_CROGL_GENFILES)/windows_exports.asm \
203 $(VBOX_PATH_CROGL_GENFILES)/cropengl.def
204if1of ($(KBUILD_TARGET), linux solaris)
205 ifdef VBoxOGL_DRI
206 VBoxOGL_CLEAN += \
207 $(VBOX_PATH_CROGL_GENFILES)/cr_gl.h \
208 $(VBOX_PATH_CROGL_GENFILES)/DD_gl.h \
209 $(VBOX_PATH_CROGL_GENFILES)/DD_gl.c
210 else ifdef VBoxOGL_FAKEDRI
211 VBoxOGL_CLEAN += \
212 $(VBOX_PATH_CROGL_GENFILES)/cr_gl.h
213 VBoxOGL_CLEAN.linux += \
214 $(VBOX_PATH_CROGL_GENFILES)/linux_glxapi_exports.asm
215 VBoxOGL_CLEAN.solaris += \
216 $(VBOX_PATH_CROGL_GENFILES)/solaris_glxapi_exports.asm
217 endif
218endif
219VBoxOGL_LIBS = \
220 $(VBOX_LIB_IPRT_GUEST_R3_SHARED) \
221 $(VBOX_LIB_VBGL_R3_SHARED) \
222 $(VBOX_LIB_OGL_CRUTIL) \
223 $(PATH_STAGE_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB)
224if1of ($(KBUILD_TARGET), linux solaris freebsd)
225 VBoxOGL_LIBS += \
226 $(PATH_STAGE_LIB)/libXcomposite.so \
227 $(PATH_STAGE_LIB)/libXdamage.so \
228 $(PATH_STAGE_LIB)/libXfixes.so \
229 $(PATH_STAGE_LIB)/libXext.so
230 ifdef VBoxOGL_FAKEDRI
231 ifeq ($(KBUILD_TARGET), freebsd)
232 VBoxOGL_LIBS += \
233 elf
234 else
235 VBoxOGL_LIBS += \
236 dl
237 endif
238 endif
239endif
240ifdef VBOX_WITH_CRHGSMI
241VBoxOGL_DEFS.win += VBOX_WITH_CRHGSMI
242endif
243ifdef VBOX_WITH_WDDM
244VBoxOGL_DEFS.win += VBOX_WITH_WDDM
245endif
246
247#
248# VBoxOGL-x86 - x86 VBoxOGL version built for amd64 build
249#
250VBoxOGL-x86_EXTENDS = VBoxOGL
251VBoxOGL-x86_BLD_TRG_ARCH = x86
252VBoxOGL-x86_LIBS = $(VBOX_LIB_IPRT_GUEST_R3_SHARED_X86) \
253 $(VBOX_LIB_VBGL_R3_SHARED_X86) \
254 $(VBOX_LIB_OGL_CRUTIL_X86) \
255 $(PATH_STAGE_LIB)/additions/VBoxOGLspuload-x86$(VBOX_SUFF_LIB)
256VBoxOGL-x86_SOURCES.win = $(subst cropengl.def,cropengl-x86.def,$(VBoxOGL_SOURCES.win))
257VBoxOGL-x86_CLEAN.win = $(subst cropengl.def,cropengl-x86.def,$(VBoxOGL_CLEAN.win))
258VBoxOGL-x86_DEFS = $(VBoxOGL_DEFS) VBOX_WDDM_WOW64
259
260#
261# Generate files for VBoxOGL.
262#
263$(VBOX_PATH_CROGL_GENFILES)/NULLfuncs.c: $(PATH_SUB_CURRENT)/NULLfuncs.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
264 $(call MSG_GENERATE,python,$@,$<)
265 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
266
267$(VBOX_PATH_CROGL_GENFILES)/tsfuncs.c: $(PATH_SUB_CURRENT)/tsfuncs.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
268 $(call MSG_GENERATE,python,$@,$<)
269 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
270
271
272ifeq ($(KBUILD_TARGET),win)
273 # Windows
274$(VBOX_PATH_CROGL_GENFILES)/getprocaddress.c: $(PATH_SUB_CURRENT)/windows_getprocaddress.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
278 ifeq ($(KBUILD_TARGET_ARCH),amd64)
279$(VBOX_PATH_CROGL_GENFILES)/cropengl.def: $(PATH_SUB_CURRENT)/defs64.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
280 $(call MSG_GENERATE,python,$@,$<)
281 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
282 else
283$(VBOX_PATH_CROGL_GENFILES)/cropengl.def: $(PATH_SUB_CURRENT)/defs.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
284 $(call MSG_GENERATE,python,$@,$<)
285 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
286 endif
287
288$(VBOX_PATH_CROGL_GENFILES)/cr_gl.h: $(PATH_SUB_CURRENT)/cr_gl.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
289 $(call MSG_GENERATE,python,$@,$<)
290 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
291
292$(VBOX_PATH_CROGL_GENFILES)/windows_exports.asm: \
293 $(PATH_SUB_CURRENT)/windows_i386_exports.py \
294 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
295 | $$(dir $$@)
296 $(call MSG_GENERATE,python,$@,$<)
297 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
298
299 ifdef VBOX_WITH_WDDM
300 ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),win.amd64)
301$(VBOX_PATH_CROGL_GENFILES)/cropengl-x86.def: $(PATH_SUB_CURRENT)/defs.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
302 $(call MSG_GENERATE,python,$@,$<)
303 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
304 endif #ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),win.amd64)
305 endif #ifdef VBOX_WITH_WDDM
306
307
308else if1of ($(KBUILD_TARGET), freebsd linux solaris)
309 # FreeBSD, Linux, Solaris
310$(VBOX_PATH_CROGL_GENFILES)/getprocaddress.c: $(PATH_SUB_CURRENT)/getprocaddress.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
311 $(call MSG_GENERATE,python,$@,$<)
312 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
313
314 if !defined(VBoxOGL_DRI) && !defined(VBoxOGL_FAKEDRI)
315 ifeq ($(KBUILD_TARGET),solaris)
316$(VBOX_PATH_CROGL_GENFILES)/solaris_exports.c: \
317 $(PATH_SUB_CURRENT)/SunOS_exports.py \
318 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
319 | $$(dir $$@)
320 $(call MSG_GENERATE,python,$@,$<)
321 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
322
323 else ifeq ($(KBUILD_TARGET),freebsd)
324$(VBOX_PATH_CROGL_GENFILES)/freebsd_exports.c: \
325 $(PATH_SUB_CURRENT)/FreeBSD_exports.py \
326 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
327 | $$(dir $$@)
328 $(call MSG_GENERATE,python,$@,$<)
329 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
330
331 else
332$(VBOX_PATH_CROGL_GENFILES)/linux_exports.asm: \
333 $(PATH_SUB_CURRENT)/Linux_i386_exports.py \
334 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
335 | $$(dir $$@)
336 $(call MSG_GENERATE,python,$@,$<)
337 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
338 endif
339
340 else ifdef VBoxOGL_DRI
341$(VBOX_PATH_CROGL_GENFILES)/cr_gl.h: $(PATH_SUB_CURRENT)/cr_gl.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
342 $(call MSG_GENERATE,python,$@,$<)
343 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
344
345$(VBOX_PATH_CROGL_GENFILES)/DD_gl.h: $(PATH_SUB_CURRENT)/DD_glh.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
346 $(call MSG_GENERATE,python,$@,$<)
347 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
348
349$(VBOX_PATH_CROGL_GENFILES)/DD_gl.c: $(PATH_SUB_CURRENT)/DD_glc.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
350 $(call MSG_GENERATE,python,$@,$<)
351 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
352
353 ifeq ($(KBUILD_TARGET),solaris)
354$(VBOX_PATH_CROGL_GENFILES)/solaris_exports_dri.asm: \
355 $(PATH_SUB_CURRENT)/SunOS_i386_exports_dri.py \
356 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
357 | $$(dir $$@)
358 $(call MSG_GENERATE,python,$@,$<)
359 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
360
361 else ifeq ($(KBUILD_TARGET),freebsd)
362$(VBOX_PATH_CROGL_GENFILES)/freebsd_exports_dri.asm: \
363 $(PATH_SUB_CURRENT)/FreeBSD_i386_exports_dri.py \
364 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
365 | $$(dir $$@)
366 $(call MSG_GENERATE,python,$@,$<)
367 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
368
369 else
370$(VBOX_PATH_CROGL_GENFILES)/linux_exports_dri.asm: \
371 $(PATH_SUB_CURRENT)/Linux_i386_exports_dri.py \
372 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
373 | $$(dir $$@)
374 $(call MSG_GENERATE,python,$@,$<)
375 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
376 endif
377
378 else ifdef VBoxOGL_FAKEDRI
379$(VBOX_PATH_CROGL_GENFILES)/cr_gl.h: $(PATH_SUB_CURRENT)/cr_gl.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
380 $(call MSG_GENERATE,python,$@,$<)
381 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
382
383 ifndef VBOX_OGL_GLX_USE_CSTUBS
384 ifeq ($(KBUILD_TARGET),solaris)
385$(VBOX_PATH_CROGL_GENFILES)/solaris_exports_dri.asm: \
386 $(PATH_SUB_CURRENT)/SunOS_i386_exports_dri.py \
387 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
388 | $$(dir $$@)
389 $(call MSG_GENERATE,python,$@,$<)
390 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
391$(VBOX_PATH_CROGL_GENFILES)/solaris_glxapi_exports.asm: $(PATH_SUB_CURRENT)/SunOS_i386_glxapi_exports.py | $$(dir $$@)
392 $(call MSG_GENERATE,python,$@,$<)
393 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $<
394
395 else
396$(VBOX_PATH_CROGL_GENFILES)/linux_exports_dri.asm: \
397 $(PATH_SUB_CURRENT)/Linux_i386_exports_dri.py \
398 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
399 | $$(dir $$@)
400 $(call MSG_GENERATE,python,$@,$<)
401 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
402$(VBOX_PATH_CROGL_GENFILES)/linux_glxapi_exports.asm: $(PATH_SUB_CURRENT)/Linux_i386_glxapi_exports.py | $$(dir $$@)
403 $(call MSG_GENERATE,python,$@,$<)
404 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $<
405 endif
406
407 else
408 ifeq ($(KBUILD_TARGET),solaris)
409$(VBOX_PATH_CROGL_GENFILES)/solaris_exports.c: \
410 $(PATH_SUB_CURRENT)/SunOS_exports.py \
411 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
412 | $$(dir $$@)
413 $(call MSG_GENERATE,python,$@,$<)
414 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
415
416 else ifeq ($(KBUILD_TARGET),freebsd)
417$(VBOX_PATH_CROGL_GENFILES)/freebsd_exports.c: \
418 $(PATH_SUB_CURRENT)/FreeBSD_exports.py \
419 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
420 | $$(dir $$@)
421 $(call MSG_GENERATE,python,$@,$<)
422 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
423 else
424$(VBOX_PATH_CROGL_GENFILES)/linux_exports.c: \
425 $(PATH_SUB_CURRENT)/Linux_exports.py \
426 $(VBOX_CROGL_API_FILES) $(PATH_SUB_CURRENT)/entrypoints.py \
427 | $$(dir $$@)
428 $(call MSG_GENERATE,python,$@,$<)
429 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
430 endif
431
432 endif # VBOX_OGL_GLX_USE_CSTUBS
433 endif
434endif
435
436#
437# VBoxOGLarrayspu
438#
439VBoxOGLarrayspu_TEMPLATE = VBOXCROGLR3GUESTDLL
440VBoxOGLarrayspu_INCS = \
441 array
442if1of ($(KBUILD_TARGET), linux solaris freebsd)
443 VBoxOGLarrayspu_INCS += \
444 $(VBOX_MESA_INCS)
445endif
446if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_WDDM)
447 VBoxOGLarrayspu_INSTTYPE.win = none
448 VBoxOGLarrayspu_DEBUG_INSTTYPE.win = both
449endif
450VBoxOGLarrayspu_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL
451VBoxOGLarrayspu_INTERMEDIATES = \
452 $(VBOX_PATH_CROGL_GENFILES)/state/cr_currentpointers.h \
453 $(VBOX_PATH_CROGL_GENFILES)/state/cr_statefuncs.h
454VBoxOGLarrayspu_SOURCES = \
455 array/arrayspu.c \
456 array/arrayspu_config.c \
457 array/arrayspu_init.c
458VBoxOGLarrayspu_SOURCES.win = \
459 array/arrayspu.def \
460 array/arrayspu.rc
461VBoxOGLarrayspu_LIBS = \
462 $(VBOX_LIB_OGL_CRUTIL) \
463 $(PATH_STAGE_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB) \
464 $(PATH_STAGE_LIB)/additions/VBoxOGLcrstate$(VBOX_SUFF_LIB)
465ifdef VBOX_WITH_CRHGSMI
466VBoxOGLarrayspu_DEFS.win += VBOX_WITH_CRHGSMI
467endif
468ifdef VBOX_WITH_WDDM
469VBoxOGLarrayspu_DEFS.win += VBOX_WITH_WDDM
470endif
471
472#
473# VBoxOGLarrayspu-x86 - x86 version of VBoxOGLarrayspu built for amd64 build
474#
475VBoxOGLarrayspu-x86_EXTENDS = VBoxOGLarrayspu
476VBoxOGLarrayspu-x86_BLD_TRG_ARCH = x86
477VBoxOGLarrayspu-x86_LIBS = $(VBOX_LIB_OGL_CRUTIL_X86) \
478 $(PATH_STAGE_LIB)/additions/VBoxOGLspuload-x86$(VBOX_SUFF_LIB) \
479 $(PATH_STAGE_LIB)/additions/VBoxOGLcrstate-x86$(VBOX_SUFF_LIB)
480VBoxOGLarrayspu-x86_DEFS = $(VBoxOGLarrayspu_DEFS) VBOX_WDDM_WOW64
481
482#
483# VBoxOGLpassthroughspu
484#
485VBoxOGLpassthroughspu_TEMPLATE = VBOXCROGLR3GUESTDLL
486VBoxOGLpassthroughspu_INCS = \
487 passthrough
488if1of ($(KBUILD_TARGET), linux solaris freebsd)
489 VBoxOGLpassthroughspu_INCS += \
490 $(VBOX_MESA_INCS)
491endif
492if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_WDDM)
493 VBoxOGLpassthroughspu_INSTTYPE.win = none
494 VBoxOGLpassthroughspu_DEBUG_INSTTYPE.win = both
495endif
496VBoxOGLpassthroughspu_SOURCES = \
497 passthrough/passthroughspu_init.c \
498 $(VBOX_PATH_CROGL_GENFILES)/passthroughspu.c
499VBoxOGLpassthroughspu_SOURCES.win = \
500 passthrough/passthrough.def \
501 passthrough/passthroughspu.rc
502VBoxOGLpassthroughspu_CLEAN = \
503 $(VBOX_PATH_CROGL_GENFILES)/passthroughspu.c
504VBoxOGLpassthroughspu_LIBS = \
505 $(VBOX_LIB_OGL_CRUTIL)
506ifdef VBOX_WITH_CRHGSMI
507VBoxOGLpassthroughspu_DEFS.win += VBOX_WITH_CRHGSMI
508endif
509ifdef VBOX_WITH_WDDM
510VBoxOGLpassthroughspu_DEFS.win += VBOX_WITH_WDDM
511endif
512
513#
514# VBoxOGLpassthroughspu-x86 - x86 version of VBoxOGLpassthroughspu built for amd64 build
515#
516VBoxOGLpassthroughspu-x86_EXTENDS = VBoxOGLpassthroughspu
517VBoxOGLpassthroughspu-x86_BLD_TRG_ARCH = x86
518VBoxOGLpassthroughspu-x86_LIBS = $(VBOX_LIB_OGL_CRUTIL_X86)
519VBoxOGLpassthroughspu-x86_DEFS = $(VBoxOGLpassthroughspu_DEFS) VBOX_WDDM_WOW64
520
521#
522# Generate files for VBoxOGLpassthroughspu.
523#
524$(VBOX_PATH_CROGL_GENFILES)/passthroughspu.c: $(PATH_SUB_CURRENT)/passthrough/passthrough.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
525 $(call MSG_GENERATE,python,$@,$<)
526 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
527
528#
529# VBoxOGLpackspu
530#
531VBoxOGLpackspu_TEMPLATE = VBOXCROGLR3GUESTDLL
532VBoxOGLpackspu_DEFS = TRACKS_STATE=1 PACKS=1
533VBoxOGLpackspu_INCS = \
534 pack
535if1of ($(KBUILD_TARGET), linux solaris freebsd)
536 VBoxOGLpackspu_INCS += \
537 $(VBOX_MESA_INCS)
538endif
539if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_WDDM)
540 VBoxOGLpackspu_INSTTYPE.win = none
541 VBoxOGLpackspu_DEBUG_INSTTYPE.win = both
542endif
543VBoxOGLpackspu_INTERMEDIATES = \
544 $(VBOX_PATH_CROGL_GENFILES)/packspu_proto.h \
545 $(VBOX_PATH_CROGL_GENFILES)/cr_packfunctions.h
546VBoxOGLpackspu_SOURCES = \
547 pack/packspu_bufferobject.c \
548 pack/packspu_client.c \
549 pack/packspu_config.c \
550 pack/packspu_context.c \
551 pack/packspu_getstring.c \
552 pack/packspu_init.c \
553 pack/packspu_misc.c \
554 pack/packspu_net.c \
555 pack/packspu_swapbuf.c \
556 pack/packspu_pixel.c \
557 pack/packspu_texture.c \
558 pack/packspu_getshaders.c \
559 pack/packspu_glsl.c \
560 pack/packspu_framebuffer.c \
561 $(VBOX_PATH_CROGL_GENFILES)/packspu.c \
562 $(VBOX_PATH_CROGL_GENFILES)/packspu_get.c \
563 $(VBOX_PATH_CROGL_GENFILES)/packspu_flush.c \
564 $(VBOX_PATH_CROGL_GENFILES)/packspu_beginend.c
565VBoxOGLpackspu_SOURCES.win = \
566 pack/pack.def \
567 pack/packspu.rc
568VBoxOGLpackspu_CLEAN = \
569 $(VBOX_PATH_CROGL_GENFILES)/packspu_proto.h \
570 $(VBOX_PATH_CROGL_GENFILES)/packspu.c \
571 $(VBOX_PATH_CROGL_GENFILES)/packspu_get.c \
572 $(VBOX_PATH_CROGL_GENFILES)/packspu_flush.c \
573 $(VBOX_PATH_CROGL_GENFILES)/packspu_beginend.c
574VBoxOGLpackspu_LIBS = \
575 $(VBOX_LIB_OGL_CRUTIL) \
576 $(PATH_STAGE_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB) \
577 $(PATH_STAGE_LIB)/additions/VBoxOGLcrstate$(VBOX_SUFF_LIB) \
578 $(PATH_STAGE_LIB)/additions/VBoxOGLcrpacker$(VBOX_SUFF_LIB)
579ifdef VBOX_WITH_CRHGSMI
580VBoxOGLpackspu_DEFS.win += VBOX_WITH_CRHGSMI
581endif
582ifdef VBOX_WITH_WDDM
583VBoxOGLpackspu_DEFS.win += VBOX_WITH_WDDM
584endif
585
586#
587# VBoxOGLpackspu-x86 - x86 version of VBoxOGLpackspu built for amd64 build
588#
589VBoxOGLpackspu-x86_EXTENDS = VBoxOGLpackspu
590VBoxOGLpackspu-x86_BLD_TRG_ARCH = x86
591VBoxOGLpackspu-x86_LIBS = $(VBOX_LIB_OGL_CRUTIL_X86) \
592 $(PATH_STAGE_LIB)/additions/VBoxOGLspuload-x86$(VBOX_SUFF_LIB) \
593 $(PATH_STAGE_LIB)/additions/VBoxOGLcrstate-x86$(VBOX_SUFF_LIB) \
594 $(PATH_STAGE_LIB)/additions/VBoxOGLcrpacker-x86$(VBOX_SUFF_LIB)
595VBoxOGLpackspu-x86_DEFS = $(VBoxOGLpackspu_DEFS) VBOX_WDDM_WOW64
596
597#
598# Generate files for VBoxOGLpackspu.
599#
600$(VBOX_PATH_CROGL_GENFILES)/packspu.c: $(addprefix $(PATH_SUB_CURRENT)/pack/,pack.py packspu_special packspu_unimplemented_special) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
601 $(call MSG_GENERATE,python,$@,$<)
602 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
603
604$(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 $$@)
605 $(call MSG_GENERATE,python,$@,$<)
606 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
607
608$(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 $$@)
609 $(call MSG_GENERATE,python,$@,$<)
610 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
611
612$(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 $$@)
613 $(call MSG_GENERATE,python,$@,$<)
614 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
615
616$(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 $$@)
617 $(call MSG_GENERATE,python,$@,$<)
618 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
619
620#
621# VBoxOGLfeedbackspu
622#
623VBoxOGLfeedbackspu_TEMPLATE = VBOXCROGLR3GUESTDLL
624VBoxOGLfeedbackspu_INCS = \
625 feedback
626if1of ($(KBUILD_TARGET), linux solaris freebsd)
627 VBoxOGLfeedbackspu_INCS += \
628 $(VBOX_MESA_INCS)
629endif
630if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_WDDM)
631 VBoxOGLfeedbackspu_INSTTYPE.win = none
632 VBoxOGLfeedbackspu_DEBUG_INSTTYPE.win = both
633endif
634VBoxOGLarrayspu_INTERMEDIATES = \
635 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu_proto.h
636VBoxOGLfeedbackspu_SOURCES = \
637 feedback/feedbackspu_config.c \
638 feedback/feedbackspu_init.c \
639 feedback/feedback_context.c \
640 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu.c \
641 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu_state.c
642VBoxOGLfeedbackspu_SOURCES.win = \
643 feedback/feedback.def \
644 feedback/feedbackspu.rc
645VBoxOGLfeedbackspu_CLEAN = \
646 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu_proto.h \
647 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu.c \
648 $(VBOX_PATH_CROGL_GENFILES)/feedbackspu_state.c
649VBoxOGLfeedbackspu_LIBS = \
650 $(VBOX_LIB_OGL_CRUTIL) \
651 $(PATH_STAGE_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB) \
652 $(PATH_STAGE_LIB)/additions/VBoxOGLcrstate$(VBOX_SUFF_LIB)
653ifdef VBOX_WITH_CRHGSMI
654VBoxOGLfeedbackspu_DEFS.win += VBOX_WITH_CRHGSMI
655endif
656ifdef VBOX_WITH_WDDM
657VBoxOGLfeedbackspu_DEFS.win += VBOX_WITH_WDDM
658endif
659
660#
661# VBoxOGLfeedbackspu-x86 - x86 version of VBoxOGLfeedbackspu built for amd64 build
662#
663VBoxOGLfeedbackspu-x86_EXTENDS = VBoxOGLfeedbackspu
664VBoxOGLfeedbackspu-x86_BLD_TRG_ARCH = x86
665VBoxOGLfeedbackspu-x86_LIBS = $(VBOX_LIB_OGL_CRUTIL_X86) \
666 $(PATH_STAGE_LIB)/additions/VBoxOGLspuload-x86$(VBOX_SUFF_LIB) \
667 $(PATH_STAGE_LIB)/additions/VBoxOGLcrstate-x86$(VBOX_SUFF_LIB)
668VBoxOGLfeedbackspu-x86_DEFS = $(VBoxOGLfeedbackspu_DEFS) VBOX_WDDM_WOW64
669
670#
671# Generate files for VBoxOGLfeedbackspu.
672#
673$(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 $$@)
674 $(call MSG_GENERATE,python,$@,$<)
675 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
676
677$(VBOX_PATH_CROGL_GENFILES)/feedbackspu_state.c: $(addprefix $(PATH_SUB_CURRENT)/feedback/,feedback_state.py feedback_state_special) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
678 $(call MSG_GENERATE,python,$@,$<)
679 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
680
681$(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 $$@)
682 $(call MSG_GENERATE,python,$@,$<)
683 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
684
685include $(FILE_KBUILD_SUB_FOOTER)
686
Note: See TracBrowser for help on using the repository browser.

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