VirtualBox

source: vbox/trunk/src/VBox/GuestHost/OpenGL/Makefile.kmk@ 15532

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

crOpenGL: export to OSE

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 20.5 KB
Line 
1# $Id: Makefile.kmk 15532 2008-12-15 18:53:11Z vboxsync $
2## @file
3# Sub-Makefile for the VirtualBox Guest/Host 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## @todo r=bird: Move to Config.kmk, before the SDKs or somewhere like that.
26ifndef VBOX_BLD_PYTHON
27 if1of ($(KBUILD_HOST), win)
28 VBOX_BLD_PYTHON := $(firstword $(rsort $(wildcard $(PATH_DEVTOOLS)/win.x86/python/v*/python$(HOSTSUFF_EXE))) python-not-found.exe)
29 else
30 VBOX_BLD_PYTHON := python$(HOSTSUFF_EXE)
31 endif
32endif
33
34## @todo r=bird: Prefix with VBox + makefile qualifier.
35GLAPI_PATH := $(PATH_SUB_CURRENT)/glapi_parser
36
37## @todo r=bird: messing with the environment like this doesn't work in the non-recursive make setup (which is default now).
38# Do it as part of the python invocation (using REDIRECT by all means, no shell stuff please).
39# For example:
40# VBOX_PYTHON_ENV = $(REDIRECT) $(if $1,-E 'PYTHONPATH=$1',) $(if $2,-o $2,) $(if $3,-i $3) --
41# VBOX_CROGL_PYTHONPATH = $(VBOX_CROGL_GLAPI_PATH);$(PATH_ROOT)/src/VBox/GuestHost/OpenGL/packer;$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib
42#
43# $(PATH_VBOXCROGL_GENFILES)/errorspu.c: $(PATH_SUB_CURRENT)/error/error.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
44# $(call VBOX_PYTHON_ENV,$(VBOX_CROGL_PYTHONPATH),$@) $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH)
45if1of ($(KBUILD_HOST), win)
46 export PYTHONPATH := $(GLAPI_PATH);$(PATH_ROOT)/src/VBox/GuestHost/OpenGL/packer;$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib
47else
48 export PYTHONPATH := $(GLAPI_PATH):$(PATH_ROOT)/src/VBox/GuestHost/OpenGL/packer:$(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib
49endif
50
51## @todo r=bird: Prefix. All single word variables are off limit (VB_CROGL_API_FILES or VBOX_CROGL_API_FILES).
52APIFILES := $(GLAPI_PATH)/apiutil.py $(GLAPI_PATH)/APIspec.txt
53
54## @todo r=bird: VBOXCROGL_GENFILES is only used once, what's the point?
55VBOXCROGL_GENFILES := VBoxOGLgen
56## @todo r=bird: PATH_VBOXCROGL_GENFILES should be VBOX_PATH_CROGL_GENFILES, see Main/Makefile.kmk and others for examples). [Yes, I know non of this is documented anywhere. No time, and according to some its not a priority...]
57PATH_VBOXCROGL_GENFILES := $(PATH_TARGET)/$(VBOXCROGL_GENFILES)
58
59BLDDIRS += \
60 $(PATH_VBOXCROGL_GENFILES)/ \
61 $(PATH_VBOXCROGL_GENFILES)/state/
62
63ifdef VBOX_WITH_ADDITIONS
64DLLS += VBoxOGLcrutil
65DLLS += VBoxOGLerrorspu
66LIBRARIES += VBoxOGLcrpacker
67LIBRARIES += VBoxOGLspuload
68LIBRARIES += VBoxOGLcrstate
69endif
70
71ifndef VBOX_ONLY_ADDITIONS
72DLLS += VBoxOGLhostcrutil
73DLLS += VBoxOGLhosterrorspu
74LIBRARIES += VBoxOGLhostcrpacker
75LIBRARIES += VBoxOGLhostspuload
76LIBRARIES += VBoxOGLhostcrstate
77endif
78
79## VBoxOGLGuestHostBase ##
80VBoxOGLGuestHostBase_DEFS = CHROMIUM_THREADSAFE VBOX_WITH_HGCM
81VBoxOGLGuestHostBase_DEFS.win = _WIN32_WINNT=0x0500 WINDOWS=1
82VBoxOGLGuestHostBase_DEFS.linux = Linux=1
83VBoxOGLGuestHostBase_DEFS.solaris = SunOS=1 GLEXT_64_TYPES_DEFINED
84VBoxOGLGuestHostBase_DEFS.darwin = DARWIN=1 GL_GLEXT_LEGACY
85# @todo this is not working for some reason
86#VBoxOGLGuestHostBase_INCS := $(PATH_SUB_CURRENT)/include $(PATH_VBOXCROGL_GENFILES)
87#VBoxOGLGuestHostBase_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL
88VBoxOGLGuestHostBase_LDFLAGS.darwin += -framework Carbon -framework OpenGL
89
90#
91# VBoxOGLcrutil
92#
93
94## @todo r=bird: next target
95$(PATH_VBOXCROGL_GENFILES)/debug_opcodes.c: $(PATH_SUB_CURRENT)/util/debug_opcodes.py $(APIFILES)
96 $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
97
98VBoxOGLcrutil_TEMPLATE = VBOXGUESTR3NPDLL
99VBoxOGLcrutil_EXTENDS = VBoxOGLGuestHostBase
100VBoxOGLcrutil_INCS := $(PATH_SUB_CURRENT)/include $(PATH_VBOXCROGL_GENFILES)
101VBoxOGLcrutil_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL
102VBoxOGLcrutil_SDKS.win = DXSDK
103VBoxOGLcrutil_INTERMEDIATES = $(PATH_VBOXCROGL_GENFILES)/cr_opcodes.h
104VBoxOGLcrutil_SOURCES = \
105 bbox.c \
106 bufpool.c \
107 calllists.c \
108 devnull.c \
109 dll.c \
110 endian.c \
111 environment.c \
112 error.c \
113 filenet.c \
114 hash.c \
115 hull.c \
116 list.c \
117 matrix.c \
118 mem.c \
119 net.c \
120 pixel.c \
121 process.c \
122 rand.c \
123 string.c \
124 threads.c \
125 tcpip.c \
126 udptcpip.c \
127 timer.c \
128 url.c \
129 warp.c \
130 vboxhgcm.c
131VBoxOGLcrutil_SOURCES := $(addprefix util/, $(VBoxOGLcrutil_SOURCES)) $(PATH_VBOXCROGL_GENFILES)/debug_opcodes.c
132VBoxOGLcrutil_SOURCES.win.x86 = util/util.def
133VBoxOGLcrutil_CLEAN := $(PATH_VBOXCROGL_GENFILES)/debug_opcodes.c
134VBoxOGLcrutil_LIBS.win = \
135 $(PATH_SDK_DXSDK_LIB)/ddraw.lib \
136 $(PATH_SDK_DXSDK_LIB)/dxguid.lib
137
138# vc7 hangs during compilation of this file when optimizations are enabled.
139VBoxOGLcrutil_pixel.c_CFLAGS.win.x86 += -Od
140VBoxOGLhostcrutil_pixel.c_CFLAGS.win.x86 += -Od
141
142VBoxOGLhostcrutil_TEMPLATE = VBOXR3NP
143VBoxOGLhostcrutil_EXTENDS = VBoxOGLcrutil
144VBoxOGLhostcrutil_LDFLAGS.darwin += $(VBoxOGLcrutil_LDFLAGS.darwin) -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxOGLhostcrutil.dylib -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
145# hostcrutil_NAME = crutil - possible, but it creates conflicting library files in PATH_LIB.
146## @todo kBuild bug, possibly same as ticket #51: PATH_SDK_DXSDK_LIB is expanded too early.
147# Update. bug 51 was fixed.
148# Still fails as PATH_SDK_DXSDK_LIB is empty.
149VBoxOGLhostcrutil_LIBS += $(LIB_RUNTIME)
150VBoxOGLhostcrutil_LIBS.win = $(VBoxOGLcrutil_LIBS.win)
151
152#
153# VBoxOGLcrpacker
154#
155
156## r=bird: (a) Have to make sure the output directory actually exists, append to pre req list of each:
157# | $$(dir $$@)
158# That means the output directory is an order-only dependency.
159# (b) VBOX_BLD_PYTHON
160# (c) Rules generating stuff for a target goes *after* the target config. [Another convention which hasn't been written down anywhere.]
161$(PATH_VBOXCROGL_GENFILES)/packer.def: $(PATH_SUB_CURRENT)/packer/packer_defs.py $(APIFILES)
162 $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
163
164$(PATH_VBOXCROGL_GENFILES)/cr_packfunctions.h: $(PATH_SUB_CURRENT)/packer/pack_header.py $(PATH_SUB_CURRENT)/packer/packer_special $(API_FILES) | $$(dir $$@)
165 $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) $(<D) > $@
166
167$(PATH_VBOXCROGL_GENFILES)/cr_opcodes.h: $(PATH_SUB_CURRENT)/packer/opcodes.py $(APIFILES)
168 $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
169
170$(PATH_VBOXCROGL_GENFILES)/state/cr_currentpointers.h: $(PATH_SUB_CURRENT)/packer/pack_currentheader.py $(PATH_SUB_CURRENT)/packer/pack_currenttypes.py | $$(dir $(PATH_VBOXCROGL_GENFILES)) $$(dir $$@)
171 $(VBOX_BLD_PYTHON) $< > $@
172
173$(PATH_VBOXCROGL_GENFILES)/packer.c: $(PATH_SUB_CURRENT)/packer/packer.py $(PATH_SUB_CURRENT)/packer/packer_special $(APIFILES)
174 $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) $(<D) > $@
175
176$(PATH_VBOXCROGL_GENFILES)/pack_bbox.c: $(PATH_SUB_CURRENT)/packer/packer_bbox.py
177 $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
178
179$(PATH_VBOXCROGL_GENFILES)/pack_current.c: $(PATH_SUB_CURRENT)/packer/pack_current.py $(PATH_SUB_CURRENT)/packer/pack_currenttypes.py
180 $(VBOX_BLD_PYTHON) $< > $@
181
182$(PATH_VBOXCROGL_GENFILES)/%_swap.c: $(PATH_SUB_CURRENT)/packer/%.c $(PATH_SUB_CURRENT)/packer/pack_swap.py
183 $(VBOX_BLD_PYTHON) $(<D)/pack_swap.py $< > $@
184
185## @todo r=bird: GEN_C_FILES and GEN_H_FILES is reused by every target which is very confusing.
186# Just push all this down to the SOURCES, INTERMEDIATES and CLEAN. Don't worry about repeating something in the CLEAN list.
187GEN_C_FILES := \
188 pack_bbox.c \
189 pack_current.c \
190 packer.c
191GEN_C_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_C_FILES))
192
193GEN_C_FILES.win =
194#GEN_C_FILES.win = packer.def
195GEN_C_FILES.win := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_C_FILES.win))
196
197GEN_H_FILES := \
198 cr_packfunctions.h \
199 cr_opcodes.h \
200 state/cr_currentpointers.h
201GEN_H_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_H_FILES))
202
203## @todo r=bird: This magic needs a sentence (or five) explaining what the heck it is all about.
204# After looking at it, what's the point here really? NORMAL_FILES is only referenced in the +.c bit, and
205# NORMAL_C_FILES is only references in the SOURCES. Looks like an extremely convoluted way of avoiding a bit of typing.
206NORMAL_FILES := \
207 pack_arrays \
208 pack_beginend \
209 pack_bounds \
210 pack_buffer \
211 pack_bufferobject \
212 pack_client \
213 pack_clipplane \
214 pack_context \
215 pack_error \
216 pack_extensions \
217 pack_feedback \
218 pack_fence \
219 pack_fog \
220 pack_init \
221 pack_lights \
222 pack_lists \
223 pack_swap_lists \
224 pack_map \
225 pack_point \
226 pack_swap_map \
227 pack_misc \
228 pack_materials \
229 pack_matrices \
230 pack_pixels \
231 pack_pixelmap \
232 pack_swap_pixelmap \
233 pack_program \
234 pack_regcombiner \
235 pack_stipple \
236 pack_texture \
237 pack_swap_texture \
238 pack_visibleregion
239NORMAL_C_FILES := $(addsuffix .c, $(NORMAL_FILES))
240NORMAL_C_FILES := $(addprefix packer/, $(NORMAL_C_FILES))
241
242## @todo r=bird: ditto.
243SWAP_FILES := pack_arrays \
244 pack_bounds \
245 pack_bufferobject \
246 pack_client \
247 pack_clipplane \
248 pack_fog \
249 pack_lights \
250 pack_materials \
251 pack_matrices \
252 pack_misc \
253 pack_pixels \
254 pack_point \
255 pack_program \
256 pack_regcombiner \
257 pack_stipple
258NAMED_SWAP_FILES := $(addsuffix _swap, $(SWAP_FILES))
259SWAP_C_FILES := $(addsuffix .c, $(NAMED_SWAP_FILES))
260SWAP_C_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(SWAP_C_FILES))
261
262VBoxOGLcrpacker_TEMPLATE = VBOXGUESTR3NPLIB
263VBoxOGLcrpacker_EXTENDS = VBoxOGLGuestHostBase
264VBoxOGLcrpacker_INCS := $(PATH_SUB_CURRENT)/include $(PATH_VBOXCROGL_GENFILES) $(PATH_SUB_CURRENT)/packer
265VBoxOGLcrpacker_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL
266VBoxOGLcrpacker_SOURCES := $(NORMAL_C_FILES) $(SWAP_C_FILES) $(GEN_C_FILES)
267VBoxOGLcrpacker_SOURCES.win := $(GEN_C_FILES.win)
268## @todo r=bird: No need to have these as DEPS, INTERMEDIATES suffices.
269VBoxOGLcrpacker_DEPS := $(GEN_H_FILES) $(PATH_VBOXCROGL_GENFILES)/spu_dispatch_table.h
270VBoxOGLcrpacker_CLEAN := $(SWAP_C_FILES) $(GEN_C_FILES) $(GEN_H_FILES)
271VBoxOGLcrpacker_CLEAN.win := $(GEN_C_FILES.win)
272VBoxOGLcrpacker_INTERMEDIATES = $(GEN_H_FILES)
273VBoxOGLcrpacker_LIBS.win = $(PATH_LIB)/VBoxOGLcrutil$(VBOX_SUFF_LIB)
274if1of ($(KBUILD_TARGET), linux solaris darwin)
275 VBoxOGLcrpacker_LIBS = $(VBOX_PATH_ADDITIONS)/VBoxOGLcrutil$(VBOX_SUFF_DLL)
276endif
277
278VBoxOGLhostcrpacker_TEMPLATE = VBOXR3NP
279VBoxOGLhostcrpacker_EXTENDS = VBoxOGLcrpacker
280VBoxOGLhostcrpacker_LIBS.win = $(PATH_LIB)/VBoxOGLhostcrutil$(VBOX_SUFF_LIB)
281VBoxOGLhostcrpacker_LDFLAGS.linux += -Wl,--no-as-needed
282if1of ($(KBUILD_TARGET), linux solaris darwin)
283 VBoxOGLhostcrpacker_LIBS = $(PATH_BIN)/VBoxOGLhostcrutil$(VBOX_SUFF_DLL)
284endif
285
286#
287# VBoxOGLspuload
288#
289
290$(PATH_VBOXCROGL_GENFILES)/dispatch.c: $(PATH_SUB_CURRENT)/spu_loader/dispatch.py $(APIFILES)
291 $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
292
293$(PATH_VBOXCROGL_GENFILES)/spucopy.c: $(PATH_SUB_CURRENT)/spu_loader/spucopy.py $(APIFILES)
294 $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
295
296$(PATH_VBOXCROGL_GENFILES)/spuchange.c: $(PATH_SUB_CURRENT)/spu_loader/spuchange.py $(APIFILES)
297 $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
298
299$(PATH_VBOXCROGL_GENFILES)/glloader.c: $(PATH_SUB_CURRENT)/spu_loader/glloader.py $(APIFILES)
300 $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
301
302$(PATH_VBOXCROGL_GENFILES)/spu_dispatch_table.h: $(PATH_SUB_CURRENT)/spu_loader/dispatchheader.py $(APIFILES) | $$(dir $$@)
303 $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
304
305GEN_C_FILES := spuchange.c spucopy.c dispatch.c glloader.c
306GEN_C_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_C_FILES))
307
308VBoxOGLspuload_TEMPLATE = VBOXGUESTR3NPLIB
309VBoxOGLspuload_EXTENDS = VBoxOGLGuestHostBase
310VBoxOGLspuload_INCS := $(PATH_SUB_CURRENT)/include $(PATH_VBOXCROGL_GENFILES)
311VBoxOGLspuload_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL
312VBoxOGLspuload_SOURCES := \
313 spu_loader/spuinit.c \
314 spu_loader/spuload.c \
315 spu_loader/choosevisual.c \
316 $(GEN_C_FILES)
317#VBoxOGLspuload_SOURCES.win = loader.def
318VBoxOGLspuload_DEPS := $(PATH_VBOXCROGL_GENFILES)/spu_dispatch_table.h
319VBoxOGLspuload_CLEAN = $(GEN_C_FILES) $(PATH_VBOXCROGL_GENFILES)/spu_dispatch_table.h
320VBoxOGLspuload_LIBS.win = $(PATH_LIB)/VBoxOGLcrutil$(VBOX_SUFF_LIB)
321if1of ($(KBUILD_TARGET), linux solaris darwin)
322 VBoxOGLspuload_LIBS += \
323 $(VBOX_PATH_ADDITIONS)/VBoxOGLcrutil$(VBOX_SUFF_DLL)
324endif
325
326VBoxOGLhostspuload_TEMPLATE = VBOXR3NP
327VBoxOGLhostspuload_EXTENDS = VBoxOGLspuload
328VBoxOGLhostspuload_LIBS.win = $(PATH_LIB)/VBoxOGLhostcrutil$(VBOX_SUFF_LIB)
329VBoxOGLhostspuload_LDFLAGS.linux += -Wl,--no-as-needed
330if1of ($(KBUILD_TARGET), linux solaris darwin)
331 VBoxOGLhostspuload_LIBS += \
332 $(PATH_BIN)/VBoxOGLhostcrutil$(VBOX_SUFF_DLL)
333endif
334
335#
336# VBoxOGLcrstate
337#
338
339$(PATH_VBOXCROGL_GENFILES)/state_buffer_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_buffer.txt gendiffcode.py)
340 $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py buffer Buffer $(<D) > $@
341
342$(PATH_VBOXCROGL_GENFILES)/state_client_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_client.txt gendiffcode.py)
343 $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py client Client $(<D) > $@
344
345$(PATH_VBOXCROGL_GENFILES)/state_current_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_current.py convert.py) $(APIFILES)
346 $(VBOX_BLD_PYTHON) $(<D)/state_current.py > $@
347
348$(PATH_VBOXCROGL_GENFILES)/state_fog_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_fog.txt gendiffcode.py)
349 $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py fog Fog $(<D) > $@
350
351$(PATH_VBOXCROGL_GENFILES)/state_hint_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_hint.txt gendiffcode.py)
352 $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py hint Hint $(<D) > $@
353
354$(PATH_VBOXCROGL_GENFILES)/state_lighting_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_lighting.txt gendiffcode.py)
355 $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py lighting Lighting $(<D) > $@
356
357$(PATH_VBOXCROGL_GENFILES)/state_line_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_line.txt gendiffcode.py)
358 $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py line Line $(<D) > $@
359
360$(PATH_VBOXCROGL_GENFILES)/state_multisample_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_multisample.txt gendiffcode.py)
361 $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py multisample Multisample $(<D) >$@
362
363$(PATH_VBOXCROGL_GENFILES)/state_point_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_point.txt gendiffcode.py)
364 $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py point Point $(<D) > $@
365
366$(PATH_VBOXCROGL_GENFILES)/state_polygon_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_polygon.txt gendiffcode.py)
367 $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py polygon Polygon $(<D) > $@
368
369$(PATH_VBOXCROGL_GENFILES)/state_regcombiner_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_regcombiner.txt gendiffcode.py)
370 $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py regcombiner RegCombiner $(<D) > $@
371
372$(PATH_VBOXCROGL_GENFILES)/state_stencil_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_stencil.txt gendiffcode.py)
373 $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py stencil Stencil $(<D) > $@
374
375$(PATH_VBOXCROGL_GENFILES)/state_viewport_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_viewport.txt gendiffcode.py)
376 $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py viewport Viewport $(<D) > $@
377
378$(PATH_VBOXCROGL_GENFILES)/state_get.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_get.py state_get.txt state_extensions_get.txt) $(APIFILES)
379 $(VBOX_BLD_PYTHON) $(<D)/state_get.py $(GLAPI_PATH) $(<D) > $@
380
381$(PATH_VBOXCROGL_GENFILES)/state_isenabled.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_isenabled.py state_isenabled.txt state_extensions_isenabled.txt) $(APIFILES)
382 $(VBOX_BLD_PYTHON) $(<D)/state_isenabled.py $(GLAPI_PATH) $(<D) > $@
383
384$(PATH_VBOXCROGL_GENFILES)/state.def: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_defs.py state_special state_select_special state_feedback_special) $(APIFILES)
385 $(VBOX_BLD_PYTHON) $(<D)/state_defs.py $(GLAPI_PATH) $(<D) > $@
386
387$(PATH_VBOXCROGL_GENFILES)/state/cr_statefuncs.h: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_funcs.py state_special state_feedback_special state_select_special) $(APIFILES) | $$(dir $$@)
388 $(VBOX_BLD_PYTHON) $(<D)/state_funcs.py $(GLAPI_PATH) $(<D) > $@
389
390GEN_FILES := buffer \
391 current \
392 fog \
393 hint \
394 lighting \
395 line \
396 multisample \
397 point \
398 polygon \
399 regcombiner \
400 stencil \
401 viewport
402GEN_FILES := $(addprefix state_, $(GEN_FILES))
403GEN_C_FILES := $(addsuffix _gen.c, $(GEN_FILES))
404GEN_C_FILES := state_get.c state_isenabled.c $(GEN_C_FILES)
405GEN_C_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_C_FILES))
406
407#GEN_C_FILES.win := state.def
408GEN_C_FILES.win :=
409GEN_C_FILES.win := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_C_FILES.win))
410
411GEN_H_FILES := state/cr_statefuncs.h
412GEN_H_FILES := $(addprefix $(PATH_VBOXCROGL_GENFILES)/, $(GEN_H_FILES))
413
414VBoxOGLcrstate_TEMPLATE = VBOXGUESTR3NPLIB
415VBoxOGLcrstate_EXTENDS = VBoxOGLGuestHostBase
416VBoxOGLcrstate_INCS := \
417 $(PATH_SUB_CURRENT)/include \
418 $(PATH_VBOXCROGL_GENFILES) \
419 $(PATH_SUB_CURRENT)/state_tracker
420VBoxOGLcrstate_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL
421VBoxOGLcrstate_LDFLAGS.darwin += -framework Carbon -framework OpenGL
422VBoxOGLcrstate_SOURCES := \
423 state_attrib.c \
424 state_buffer.c \
425 state_bufferobject.c \
426 state_client.c \
427 state_current.c \
428 state_diff.c \
429 state_enable.c \
430 state_error.c \
431 state_evaluators.c \
432 state_feedback.c \
433 state_fence.c \
434 state_flush.c \
435 state_fog.c \
436 state_getstring.c \
437 state_hint.c \
438 state_init.c \
439 state_lighting.c \
440 state_limits.c \
441 state_line.c \
442 state_lists.c \
443 state_multisample.c \
444 state_occlude.c \
445 state_pixel.c \
446 state_point.c \
447 state_polygon.c \
448 state_program.c \
449 state_rasterpos.c \
450 state_regcombiner.c \
451 state_stencil.c \
452 state_texture.c \
453 state_teximage.c \
454 state_texdiff.c \
455 state_transform.c \
456 state_viewport.c
457VBoxOGLcrstate_SOURCES := $(addprefix state_tracker/, $(VBoxOGLcrstate_SOURCES)) $(GEN_C_FILES)
458VBoxOGLcrstate_SOURCES.win := $(GEN_C_FILES.win)
459VBoxOGLcrstate_DEPS := $(GEN_H_FILES)
460VBoxOGLcrstate_CLEAN := $(GEN_C_FILES) $(GEN_H_FILES)
461VBoxOGLcrstate_LIBS.win = \
462 $(PATH_LIB)/VBoxOGLcrutil$(VBOX_SUFF_LIB) \
463 $(PATH_LIB)/VBoxOGLspuload$(VBOX_SUFF_LIB)
464if1of ($(KBUILD_TARGET), linux solaris darwin)
465 VBoxOGLcrstate_LIBS += \
466 $(VBOX_PATH_ADDITIONS)/VBoxOGLcrutil$(VBOX_SUFF_DLL) \
467 $(VBOX_PATH_ADDITIONS)/VBoxOGLspuload$(VBOX_SUFF_DLL)
468endif
469
470VBoxOGLhostcrstate_TEMPLATE = VBOXR3NP
471VBoxOGLhostcrstate_EXTENDS = VBoxOGLcrstate
472VBoxOGLhostcrstate_SOURCES = $(VBoxOGLcrstate_SOURCES) state_tracker/state_snapshot.c
473VBoxOGLhostcrstate_LIBS.win = \
474 $(PATH_LIB)/VBoxOGLhostcrutil$(VBOX_SUFF_LIB) \
475 $(PATH_LIB)/VBoxOGLhostspuload$(VBOX_SUFF_LIB) \
476 $(LIB_VMM)
477VBoxOGLhostcrstate_LDFLAGS.linux += -Wl,--no-as-needed
478if1of ($(KBUILD_TARGET), linux solaris darwin)
479 VBoxOGLhostcrstate_LIBS += \
480 $(PATH_BIN)/VBoxOGLhostcrutil$(VBOX_SUFF_DLL) \
481 $(PATH_BIN)/VBoxOGLhostspuload$(VBOX_SUFF_DLL) \
482 $(LIB_VMM)
483endif
484
485#
486# VBoxOGLerrorspu
487#
488
489$(PATH_VBOXCROGL_GENFILES)/errorspu.c: $(PATH_SUB_CURRENT)/error/error.py $(APIFILES)
490 $(VBOX_BLD_PYTHON) $< $(GLAPI_PATH) > $@
491
492VBoxOGLerrorspu_TEMPLATE = VBOXGUESTR3NPDLL
493VBoxOGLerrorspu_EXTENDS = VBoxOGLGuestHostBase
494VBoxOGLerrorspu_INCS := $(PATH_SUB_CURRENT)/include $(PATH_VBOXCROGL_GENFILES)
495VBoxOGLerrorspu_DEPS.darwin += $(PATH_OUT)/obj/VBoxOGL/GL/gl.h $(PATH_OUT)/obj/VBoxOGL/GL/glu.h
496VBoxOGLerrorspu_INCS.darwin += $(PATH_OUT)/obj/VBoxOGL
497VBoxOGLerrorspu_INTERMEDIATES = $(PATH_VBOXCROGL_GENFILES)/spu_dispatch_table.h
498VBoxOGLerrorspu_SOURCES = \
499 $(PATH_VBOXCROGL_GENFILES)/errorspu.c \
500 error/errorspu_init.c
501VBoxOGLerrorspu_SOURCES.win.x86 = error/error.def
502VBoxOGLerrorspu_CLEAN := $(PATH_VBOXCROGL_GENFILES)/errorspu.c
503VBoxOGLerrorspu_LIBS.win = $(PATH_LIB)/VBoxOGLcrutil$(VBOX_SUFF_LIB)
504if1of ($(KBUILD_TARGET), linux solaris darwin)
505 VBoxOGLerrorspu_LIBS += \
506 $(VBOX_PATH_ADDITIONS)/VBoxOGLcrutil$(VBOX_SUFF_DLL)
507endif
508
509VBoxOGLhosterrorspu_TEMPLATE = VBOXR3NP
510VBoxOGLhosterrorspu_EXTENDS = VBoxOGLerrorspu
511VBoxOGLhosterrorspu_LIBS += $(LIB_RUNTIME)
512VBoxOGLhosterrorspu_LIBS.win = $(PATH_LIB)/VBoxOGLhostcrutil$(VBOX_SUFF_LIB)
513VBoxOGLhosterrorspu_LDFLAGS.darwin += $(VBoxOGLerrorspu_LDFLAGS.darwin) -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxOGLhosterrorspu.dylib -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
514VBoxOGLhosterrorspu_LDFLAGS.linux += -Wl,--no-as-needed
515if1of ($(KBUILD_TARGET), linux solaris darwin)
516 VBoxOGLhosterrorspu_LIBS += \
517 $(PATH_BIN)/VBoxOGLhostcrutil$(VBOX_SUFF_DLL)
518endif
519
520include $(KBUILD_PATH)/subfooter.kmk
521
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