VirtualBox

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

Last change on this file since 78408 was 78408, checked in by vboxsync, 6 years ago

Additions,GuestHost/OpenGL,HostServices/SharedOpenGL: Get rid of the individual SPU shared libraries and merge them into the VBoxSharedCrOpenGL shared libraries on the host and VBoxOGL{,-x86} shared libraries for the guest additions, bugref:9435

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