VirtualBox

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

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

Additions/crOGL: add -lcrypt to Linux VBoxOGLcrutil. 6.0 regression.
ticketref:18324: Vbox guest additions: missing shared library dependency.
Fix attempt for users to test. Second attempt.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 27.2 KB
Line 
1# $Id: Makefile.kmk 77180 2019-02-06 15:36:21Z vboxsync $
2## @file
3# Sub-Makefile for the VirtualBox Guest/Host 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#
23# Target lists.
24#
25BLDDIRS += \
26 $(VBOX_PATH_CROGL_GENFILES)/ \
27 $(VBOX_PATH_CROGL_GENFILES)/state/
28
29ifdef VBOX_WITH_ADDITIONS
30 ifn1of ($(KBUILD_TARGET), darwin os2)
31 VBOX_WITH_CROGL_ADDITIONS = 1
32 endif
33endif
34
35ifdef VBOX_WITH_CROGL_ADDITIONS
36 DLLS += VBoxOGLcrutil VBoxOGLerrorspu
37 LIBRARIES += VBoxOGLcrpacker VBoxOGLspuload VBoxOGLcrstate
38endif
39
40ifndef VBOX_ONLY_ADDITIONS
41 DLLS += VBoxOGLhostcrutil VBoxOGLhosterrorspu
42 LIBRARIES += VBoxOGLhostcrpacker VBoxOGLhostspuload VBoxOGLhostcrstate
43endif
44
45#
46# VBoxOGLcrutil
47#
48VBoxOGLcrutil_TEMPLATE = VBOXCROGLR3GUESTDLL
49if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_WDDM)
50 VBoxOGLcrutil_INSTTYPE.win = none
51 VBoxOGLcrutil_DEBUG_INSTTYPE.win = both
52endif
53VBoxOGLcrutil_SDKS.win = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK)
54VBoxOGLcrutil_INTERMEDIATES = $(VBOX_PATH_CROGL_GENFILES)/cr_opcodes.h
55VBoxOGLcrutil_INCS += \
56 $(VBOX_GRAPHICS_INCS)
57if1of ($(KBUILD_TARGET), linux solaris freebsd)
58 VBoxOGLcrutil_INCS += \
59 $(VBOX_GL_INCS)
60endif
61VBoxOGLcrutil_SOURCES = \
62 util/bbox.c \
63 util/bufpool.c \
64 util/calllists.c \
65 util/devnull.c \
66 util/dll.c \
67 util/endian.c \
68 util/environment.c \
69 util/error.c \
70 util/filenet.c \
71 util/hash.c \
72 util/hull.c \
73 util/list.c \
74 util/matrix.c \
75 util/mem.c \
76 util/net.c \
77 util/pixel.c \
78 util/process.c \
79 util/rand.c \
80 util/string.c \
81 util/threads.c \
82 util/tcpip.c \
83 util/udptcpip.c \
84 util/timer.c \
85 util/url.c \
86 util/warp.c \
87 util/vreg.cpp \
88 util/blitter.cpp \
89 util/compositor.cpp \
90 util/htable.cpp \
91 util/bmpscale.cpp \
92 util/vboxhgcm.c \
93 $(VBOX_PATH_CROGL_GENFILES)/debug_opcodes.c
94VBoxOGLcrutil_SOURCES.win = \
95 util/VBoxOGLcrutil.rc
96VBoxOGLcrutil_SOURCES.win.x86 = \
97 util/util.def
98VBoxOGLcrutil_LIBS.win = \
99 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/ddraw.lib \
100 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/dxguid.lib \
101 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/shlwapi.lib
102VBoxOGLcrutil_LIBS = \
103 $(VBOX_LIB_IPRT_GUEST_R3_SHARED) \
104 $(VBOX_LIB_VBGL_R3_SHARED)
105ifeq ($(KBUILD_TARGET),linux)
106 VBoxOGLcrutil_LIBS += crypt
107endif
108
109# Needed by GDEbuger
110ifdef CR_NO_GL_SYSTEM_PATH
111VBoxOGLcrutil_DEFS += CR_NO_GL_SYSTEM_PATH
112endif
113ifdef VBOX_WITH_CRHGSMI
114VBoxOGLcrutil_DEFS.win += VBOX_WITH_CRHGSMI
115VBoxOGLcrutil_LIBS.win += \
116 $(VBOX_PATH_ADDITIONS_LIB)/VBoxWddmUmKmt$(VBOX_SUFF_LIB) \
117 $(VBOX_PATH_ADDITIONS_LIB)/VBoxCrHgsmi$(VBOX_SUFF_LIB)
118endif
119ifdef VBOX_WITH_WDDM
120VBoxOGLcrutil_DEFS.win += VBOX_WITH_WDDM
121VBoxOGLcrutil_DEFS.win += CR_DEBUG_BACKDOOR_ENABLE
122VBoxOGLcrutil_INCS.win += $(PATH_ROOT)/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm
123VBoxOGLcrutil_LIBS.win += $(VBOX_PATH_ADDITIONS_LIB)/VBoxDispMpLogger$(VBOX_SUFF_LIB)
124endif
125VBoxOGLcrutil_CLEAN = \
126 $(VBOX_PATH_CROGL_GENFILES)/debug_opcodes.c
127if1of ($(KBUILD_TARGET), linux)
128VBoxOGLcrutil_LDFLAGS += -Wl,-z,nodelete
129endif
130
131# vc7 hangs during compilation of this file when optimizations are enabled.
132#VBoxOGLcrutil_pixel.c_CFLAGS.win.x86 += -Od
133#VBoxOGLhostcrutil_pixel.c_CFLAGS.win.x86 += -Od
134
135if defined(VBOX_WITH_WDDM) && defined(VBOX_WITH_CROGL_ADDITIONS)
136#
137# VBoxOGLcrutil-x86 - x86 VBoxOGLcrutil version built for amd64 build
138#
139DLLS.win.amd64 += VBoxOGLcrutil-x86
140VBoxOGLcrutil-x86_TEMPLATE = VBOXCROGLR3GUESTDLL
141VBoxOGLcrutil-x86_EXTENDS = VBoxOGLcrutil
142VBoxOGLcrutil-x86_BLD_TRG_ARCH = x86
143VBoxOGLcrutil-x86_LIBS = $(VBOX_LIB_IPRT_GUEST_R3_SHARED_X86) \
144 $(VBOX_LIB_VBGL_R3_SHARED_X86)
145VBoxOGLcrutil-x86_LIBS.win = \
146 $(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/ddraw.lib \
147 $(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/dxguid.lib
148ifdef VBOX_WITH_CRHGSMI
149# VBOX_WITH_CRHGSMI define is inherited from VBoxOGLcrutil
150VBoxOGLcrutil-x86_LIBS.win += \
151 $(VBOX_PATH_ADDITIONS_LIB)/VBoxWddmUmKmt-x86$(VBOX_SUFF_LIB) \
152 $(VBOX_PATH_ADDITIONS_LIB)/VBoxCrHgsmi-x86$(VBOX_SUFF_LIB)
153endif
154VBoxOGLcrutil-x86_DEFS = $(VBoxOGLcrutil_DEFS) VBOX_WDDM_WOW64
155ifdef VBOX_WITH_WDDM
156# CR_DEBUG_BACKDOOR_ENABLE define is inherited from VBoxOGLcrutil
157VBoxOGLcrutil-x86_INCS.win += $(PATH_ROOT)/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm
158VBoxOGLcrutil-x86_LIBS.win += $(VBOX_PATH_ADDITIONS_LIB)/VBoxDispMpLogger-x86$(VBOX_SUFF_LIB)
159endif
160# vc7 hangs during compilation of this file when optimizations are enabled.
161#VBoxOGLcrutil-x86_pixel.c_CFLAGS += -Od
162#VBoxOGLcrutil-x86_pixel.c_CFLAGS += -Od
163endif
164
165#
166# VBoxOGLhostcrutil
167#
168VBoxOGLhostcrutil_EXTENDS = VBoxOGLcrutil
169VBoxOGLhostcrutil_TEMPLATE = VBOXCROGLR3HOSTDLL
170if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_WDDM)
171 VBoxOGLhostcrutil_INSTTYPE.win = both
172endif
173if1of ($(KBUILD_TARGET), linux)
174VBoxOGLhostcrutil_LDFLAGS = $(NO_SUCH_VARIABLE)
175endif
176VBoxOGLhostcrutil_LDFLAGS.darwin = $(VBoxOGLcrutil_LDFLAGS.darwin) \
177 -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxOGLhostcrutil.dylib
178VBoxOGLhostcrutil_LIBS.win = \
179 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/ddraw.lib \
180 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/dxguid.lib
181VBoxOGLhostcrutil_LIBS = $(LIB_RUNTIME)
182ifdef VBOX_WITH_CRHGSMI
183VBoxOGLhostcrutil_DEFS += VBOX_WITH_CRHGSMI
184endif
185ifdef VBOX_WITH_WDDM
186VBoxOGLhostcrutil_INCS.win = $(NO_SUCH_VARIABLE)
187VBoxOGLhostcrutil_DEFS.win = $(NO_SUCH_VARIABLE)
188endif
189
190#
191# Generate files for VBoxOGLcrutil and VBoxOGLhostcrutil.
192#
193$(VBOX_PATH_CROGL_GENFILES)/debug_opcodes.c: $(PATH_SUB_CURRENT)/util/debug_opcodes.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
194 $(call MSG_GENERATE,python,$@,$<)
195 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
196
197ifdef VBOX_WITH_CRDUMPER
198$(VBOX_PATH_CROGL_GENFILES)/dump_gen.cpp: $(PATH_SUB_CURRENT)/state_tracker/dump_gen.py $(PATH_ROOT)/src/VBox/HostServices/SharedOpenGL/crserverlib/get_sizes.py $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_isenabled.txt state_extensions_isenabled.txt) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
199 $(call MSG_GENERATE,python,$@,$<)
200 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
201endif
202
203#
204# VBoxOGLcrpacker
205#
206VBoxOGLcrpacker_TEMPLATE = VBOXCROGLR3GUESTLIB
207VBoxOGLcrpacker_INCS = \
208 packer \
209 $(VBOX_GRAPHICS_INCS)
210if1of ($(KBUILD_TARGET), linux solaris freebsd)
211 VBoxOGLcrpacker_INCS += \
212 $(VBOX_GL_INCS)
213endif
214VBoxOGLcrpacker_INTERMEDIATES = \
215 $(VBOX_PATH_CROGL_GENFILES)/cr_packfunctions.h \
216 $(VBOX_PATH_CROGL_GENFILES)/cr_opcodes.h \
217 $(VBOX_PATH_CROGL_GENFILES)/state/cr_currentpointers.h \
218 $(VBOX_PATH_CROGL_GENFILES)/state/cr_statefuncs.h \
219 $(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h
220VBoxOGLcrpacker_SOURCES = \
221 packer/pack_arrays.c \
222 packer/pack_beginend.c \
223 packer/pack_bounds.c \
224 packer/pack_buffer.c \
225 packer/pack_bufferobject.c \
226 packer/pack_client.c \
227 packer/pack_clipplane.c \
228 packer/pack_context.c \
229 packer/pack_error.c \
230 packer/pack_extensions.c \
231 packer/pack_feedback.c \
232 packer/pack_fence.c \
233 packer/pack_fog.c \
234 packer/pack_init.c \
235 packer/pack_lights.c \
236 packer/pack_lists.c \
237 packer/pack_swap_lists.c \
238 packer/pack_map.c \
239 packer/pack_point.c \
240 packer/pack_swap_map.c \
241 packer/pack_misc.c \
242 packer/pack_materials.c \
243 packer/pack_matrices.c \
244 packer/pack_pixels.c \
245 packer/pack_pixelmap.c \
246 packer/pack_swap_pixelmap.c \
247 packer/pack_program.c \
248 packer/pack_regcombiner.c \
249 packer/pack_stipple.c \
250 packer/pack_texture.c \
251 packer/pack_swap_texture.c \
252 packer/pack_visibleregion.c \
253 packer/pack_shaders.c \
254 packer/pack_framebuffer.c \
255 $(VBOX_PATH_CROGL_GENFILES)/pack_arrays_swap.c \
256 $(VBOX_PATH_CROGL_GENFILES)/pack_bounds_swap.c \
257 $(VBOX_PATH_CROGL_GENFILES)/pack_bufferobject_swap.c \
258 $(VBOX_PATH_CROGL_GENFILES)/pack_client_swap.c \
259 $(VBOX_PATH_CROGL_GENFILES)/pack_clipplane_swap.c \
260 $(VBOX_PATH_CROGL_GENFILES)/pack_fog_swap.c \
261 $(VBOX_PATH_CROGL_GENFILES)/pack_lights_swap.c \
262 $(VBOX_PATH_CROGL_GENFILES)/pack_materials_swap.c \
263 $(VBOX_PATH_CROGL_GENFILES)/pack_matrices_swap.c \
264 $(VBOX_PATH_CROGL_GENFILES)/pack_misc_swap.c \
265 $(VBOX_PATH_CROGL_GENFILES)/pack_pixels_swap.c \
266 $(VBOX_PATH_CROGL_GENFILES)/pack_point_swap.c \
267 $(VBOX_PATH_CROGL_GENFILES)/pack_program_swap.c \
268 $(VBOX_PATH_CROGL_GENFILES)/pack_regcombiner_swap.c \
269 $(VBOX_PATH_CROGL_GENFILES)/pack_stipple_swap.c \
270 $(VBOX_PATH_CROGL_GENFILES)/pack_bbox.c \
271 $(VBOX_PATH_CROGL_GENFILES)/pack_current.c \
272 $(VBOX_PATH_CROGL_GENFILES)/packer.c
273VBoxOGLcrpacker_CLEAN = \
274 $(VBOX_PATH_CROGL_GENFILES)/pack_arrays_swap.c \
275 $(VBOX_PATH_CROGL_GENFILES)/pack_bounds_swap.c \
276 $(VBOX_PATH_CROGL_GENFILES)/pack_bufferobject_swap.c \
277 $(VBOX_PATH_CROGL_GENFILES)/pack_client_swap.c \
278 $(VBOX_PATH_CROGL_GENFILES)/pack_clipplane_swap.c \
279 $(VBOX_PATH_CROGL_GENFILES)/pack_fog_swap.c \
280 $(VBOX_PATH_CROGL_GENFILES)/pack_lights_swap.c \
281 $(VBOX_PATH_CROGL_GENFILES)/pack_materials_swap.c \
282 $(VBOX_PATH_CROGL_GENFILES)/pack_matrices_swap.c \
283 $(VBOX_PATH_CROGL_GENFILES)/pack_misc_swap.c \
284 $(VBOX_PATH_CROGL_GENFILES)/pack_pixels_swap.c \
285 $(VBOX_PATH_CROGL_GENFILES)/pack_point_swap.c \
286 $(VBOX_PATH_CROGL_GENFILES)/pack_program_swap.c \
287 $(VBOX_PATH_CROGL_GENFILES)/pack_regcombiner_swap.c \
288 $(VBOX_PATH_CROGL_GENFILES)/pack_stipple_swap.c \
289 $(VBOX_PATH_CROGL_GENFILES)/pack_bbox.c \
290 $(VBOX_PATH_CROGL_GENFILES)/pack_current.c \
291 $(VBOX_PATH_CROGL_GENFILES)/packer.c \
292 $(VBOX_PATH_CROGL_GENFILES)/cr_packfunctions.h \
293 $(VBOX_PATH_CROGL_GENFILES)/cr_opcodes.h \
294 $(VBOX_PATH_CROGL_GENFILES)/state/cr_currentpointers.h
295ifdef VBOX_WITH_CRHGSMI
296VBoxOGLcrpacker_DEFS.win += VBOX_WITH_CRHGSMI
297endif
298ifdef VBOX_WITH_WDDM
299VBoxOGLcrpacker_DEFS.win += VBOX_WITH_WDDM
300endif
301
302if defined(VBOX_WITH_WDDM) && defined(VBOX_WITH_CROGL_ADDITIONS)
303#
304# VBoxOGLcrpacker-x86 - x86 VBoxOGLcrpacker version built for amd64 build
305#
306LIBRARIES.win.amd64 += VBoxOGLcrpacker-x86
307VBoxOGLcrpacker-x86_TEMPLATE = VBOXCROGLR3GUESTLIB
308VBoxOGLcrpacker-x86_EXTENDS = VBoxOGLcrpacker
309VBoxOGLcrpacker-x86_BLD_TRG_ARCH = x86
310VBoxOGLcrpacker-x86_DEFS = $(VBoxOGLcrpacker_DEFS) VBOX_WDDM_WOW64
311endif
312
313#
314# VBoxOGLhostcrpacker
315#
316VBoxOGLhostcrpacker_EXTENDS = VBoxOGLcrpacker
317VBoxOGLhostcrpacker_TEMPLATE = VBOXCROGLR3HOSTLIB
318
319#
320# Generate files for VBoxOGLcrpacker and VBoxOGLhostcrpacker.
321#
322$(VBOX_PATH_CROGL_GENFILES)/packer.def: $(PATH_SUB_CURRENT)/packer/packer_defs.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
323 $(call MSG_GENERATE,python,$@,$<)
324 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
325
326$(VBOX_PATH_CROGL_GENFILES)/cr_packfunctions.h: $(PATH_SUB_CURRENT)/packer/pack_header.py $(PATH_SUB_CURRENT)/packer/packer_special $(VBOX_CROGL_API_FILES) | $$(dir $$@)
327 $(call MSG_GENERATE,python,$@,$<)
328 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
329
330$(VBOX_PATH_CROGL_GENFILES)/cr_opcodes.h: $(PATH_SUB_CURRENT)/packer/opcodes.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
331 $(call MSG_GENERATE,python,$@,$<)
332 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
333
334$(VBOX_PATH_CROGL_GENFILES)/state/cr_currentpointers.h: $(PATH_SUB_CURRENT)/packer/pack_currentheader.py $(PATH_SUB_CURRENT)/packer/pack_currenttypes.py | $$(dir $(VBOX_PATH_CROGL_GENFILES)) $$(dir $$@)
335 $(call MSG_GENERATE,python,$@,$<)
336 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $<
337
338$(VBOX_PATH_CROGL_GENFILES)/packer.c: $(PATH_SUB_CURRENT)/packer/packer.py $(PATH_SUB_CURRENT)/packer/packer_special $(VBOX_CROGL_API_FILES) | $$(dir $$@)
339 $(call MSG_GENERATE,python,$@,$<)
340 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI) $(<D)
341
342$(VBOX_PATH_CROGL_GENFILES)/pack_bbox.c: $(PATH_SUB_CURRENT)/packer/packer_bbox.py | $$(dir $$@)
343 $(call MSG_GENERATE,python,$@,$<)
344 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
345
346$(VBOX_PATH_CROGL_GENFILES)/pack_current.c: $(PATH_SUB_CURRENT)/packer/pack_current.py $(PATH_SUB_CURRENT)/packer/pack_currenttypes.py | $$(dir $$@)
347 $(call MSG_GENERATE,python,$@,$<)
348 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $<
349
350$(VBOX_PATH_CROGL_GENFILES)/%_swap.c: $(PATH_SUB_CURRENT)/packer/%.c $(PATH_SUB_CURRENT)/packer/pack_swap.py | $$(dir $$@)
351 $(call MSG_GENERATE,python,$@,$<)
352 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/pack_swap.py $<
353
354
355#
356# VBoxOGLspuload
357#
358VBoxOGLspuload_TEMPLATE = VBOXCROGLR3GUESTLIB
359VBoxOGLspuload_INTERMEDIATES = \
360 $(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h
361VBoxOGLspuload_INCS += \
362 $(VBOX_GRAPHICS_INCS)
363if1of ($(KBUILD_TARGET), linux solaris freebsd)
364 VBoxOGLspuload_INCS += \
365 $(VBOX_GL_INCS)
366endif
367VBoxOGLspuload_SOURCES = \
368 spu_loader/spuinit.c \
369 spu_loader/spuload.c \
370 spu_loader/choosevisual.c \
371 $(VBOX_PATH_CROGL_GENFILES)/spuchange.c \
372 $(VBOX_PATH_CROGL_GENFILES)/spucopy.c \
373 $(VBOX_PATH_CROGL_GENFILES)/dispatch.c \
374 $(VBOX_PATH_CROGL_GENFILES)/glloader.c
375VBoxOGLspuload_CLEAN = \
376 $(VBOX_PATH_CROGL_GENFILES)/spuchange.c \
377 $(VBOX_PATH_CROGL_GENFILES)/spucopy.c \
378 $(VBOX_PATH_CROGL_GENFILES)/dispatch.c \
379 $(VBOX_PATH_CROGL_GENFILES)/glloader.c \
380 $(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h
381ifdef VBOX_WITH_CRHGSMI
382VBoxOGLspuload_DEFS.win += VBOX_WITH_CRHGSMI
383endif
384ifdef VBOX_WITH_WDDM
385VBoxOGLspuload_DEFS.win += VBOX_WITH_WDDM
386endif
387
388if defined(VBOX_WITH_WDDM) && defined(VBOX_WITH_CROGL_ADDITIONS)
389#
390# VBoxOGLspuload-x86 - x86 VBoxOGLspuload version built for amd64 build
391#
392LIBRARIES.win.amd64 += VBoxOGLspuload-x86
393VBoxOGLspuload-x86_TEMPLATE = VBOXCROGLR3GUESTLIB
394VBoxOGLspuload-x86_EXTENDS = VBoxOGLspuload
395VBoxOGLspuload-x86_BLD_TRG_ARCH = x86
396VBoxOGLspuload-x86_DEFS = $(VBoxOGLspuload_DEFS) VBOX_WDDM_WOW64
397endif
398
399
400#
401# VBoxOGLhostspuload
402#
403VBoxOGLhostspuload_EXTENDS = VBoxOGLspuload
404VBoxOGLhostspuload_TEMPLATE = VBOXCROGLR3HOSTLIB
405
406#
407# Generate files for VBoxOGLspuload and VBoxOGLhostspuload.
408#
409$(VBOX_PATH_CROGL_GENFILES)/dispatch.c: $(PATH_SUB_CURRENT)/spu_loader/dispatch.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
410 $(call MSG_GENERATE,python,$@,$<)
411 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
412
413$(VBOX_PATH_CROGL_GENFILES)/spucopy.c: $(PATH_SUB_CURRENT)/spu_loader/spucopy.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
414 $(call MSG_GENERATE,python,$@,$<)
415 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
416
417$(VBOX_PATH_CROGL_GENFILES)/spuchange.c: $(PATH_SUB_CURRENT)/spu_loader/spuchange.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
418 $(call MSG_GENERATE,python,$@,$<)
419 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
420
421$(VBOX_PATH_CROGL_GENFILES)/glloader.c: $(PATH_SUB_CURRENT)/spu_loader/glloader.py $(VBOX_CROGL_API_FILES) | $$(dir $$@)
422 $(call MSG_GENERATE,python,$@,$<)
423 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
424
425$(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h: $(PATH_SUB_CURRENT)/spu_loader/dispatchheader.py $(VBOX_CROGL_API_FILES) | $$(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
429
430#
431# VBoxOGLcrstate
432#
433VBoxOGLcrstate_TEMPLATE = VBOXCROGLR3GUESTLIB
434VBoxOGLcrstate_INCS = \
435 state_tracker \
436 $(VBOX_GRAPHICS_INCS)
437if1of ($(KBUILD_TARGET), linux solaris freebsd)
438 VBoxOGLcrstate_INCS += \
439 $(VBOX_GL_INCS)
440endif
441VBoxOGLcrstate_INTERMEDIATES = \
442 $(VBOX_PATH_CROGL_GENFILES)/state/cr_statefuncs.h \
443 $(VBOX_PATH_CROGL_GENFILES)/state/cr_currentpointers.h \
444 $(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h
445VBoxOGLcrstate_SOURCES = \
446 state_tracker/state_attrib.c \
447 state_tracker/state_buffer.c \
448 state_tracker/state_bufferobject.c \
449 state_tracker/state_client.c \
450 state_tracker/state_current.c \
451 state_tracker/state_diff.c \
452 state_tracker/state_enable.c \
453 state_tracker/state_error.c \
454 state_tracker/state_evaluators.c \
455 state_tracker/state_feedback.c \
456 state_tracker/state_fence.c \
457 state_tracker/state_flush.c \
458 state_tracker/state_fog.c \
459 state_tracker/state_getstring.c \
460 state_tracker/state_hint.c \
461 state_tracker/state_init.c \
462 state_tracker/state_lighting.c \
463 state_tracker/state_limits.c \
464 state_tracker/state_line.c \
465 state_tracker/state_lists.c \
466 state_tracker/state_multisample.c \
467 state_tracker/state_occlude.c \
468 state_tracker/state_pixel.c \
469 state_tracker/state_point.c \
470 state_tracker/state_polygon.c \
471 state_tracker/state_program.c \
472 state_tracker/state_rasterpos.c \
473 state_tracker/state_regcombiner.c \
474 state_tracker/state_stencil.c \
475 state_tracker/state_texture.c \
476 state_tracker/state_teximage.c \
477 state_tracker/state_texdiff.c \
478 state_tracker/state_transform.c \
479 state_tracker/state_viewport.c \
480 state_tracker/state_framebuffer.c \
481 state_tracker/state_glsl.c \
482 $(VBOX_PATH_CROGL_GENFILES)/state_buffer_gen.c \
483 $(VBOX_PATH_CROGL_GENFILES)/state_current_gen.c \
484 $(VBOX_PATH_CROGL_GENFILES)/state_fog_gen.c \
485 $(VBOX_PATH_CROGL_GENFILES)/state_hint_gen.c \
486 $(VBOX_PATH_CROGL_GENFILES)/state_lighting_gen.c \
487 $(VBOX_PATH_CROGL_GENFILES)/state_line_gen.c \
488 $(VBOX_PATH_CROGL_GENFILES)/state_multisample_gen.c \
489 $(VBOX_PATH_CROGL_GENFILES)/state_polygon_gen.c \
490 $(VBOX_PATH_CROGL_GENFILES)/state_regcombiner_gen.c \
491 $(VBOX_PATH_CROGL_GENFILES)/state_viewport_gen.c \
492 $(VBOX_PATH_CROGL_GENFILES)/state_get.c \
493 $(VBOX_PATH_CROGL_GENFILES)/state_isenabled.c
494ifdef VBOX_WITH_CRDUMPER
495VBoxOGLcrstate_SOURCES += state_tracker/dump.cpp \
496 $(VBOX_PATH_CROGL_GENFILES)/dump_gen.cpp
497endif
498VBoxOGLcrstate_SOURCES.win = \
499 $(PATH_ROOT)/src/VBox/Runtime/common/asm/ASMBitNextClear.asm \
500 $(PATH_ROOT)/src/VBox/Runtime/common/asm/ASMBitNextSet.asm
501
502VBoxOGLcrstate_CLEAN = \
503 $(VBOX_PATH_CROGL_GENFILES)/state_buffer_gen.c \
504 $(VBOX_PATH_CROGL_GENFILES)/state_current_gen.c \
505 $(VBOX_PATH_CROGL_GENFILES)/state_fog_gen.c \
506 $(VBOX_PATH_CROGL_GENFILES)/state_hint_gen.c \
507 $(VBOX_PATH_CROGL_GENFILES)/state_lighting_gen.c \
508 $(VBOX_PATH_CROGL_GENFILES)/state_line_gen.c \
509 $(VBOX_PATH_CROGL_GENFILES)/state_multisample_gen.c \
510 $(VBOX_PATH_CROGL_GENFILES)/state_polygon_gen.c \
511 $(VBOX_PATH_CROGL_GENFILES)/state_regcombiner_gen.c \
512 $(VBOX_PATH_CROGL_GENFILES)/state_viewport_gen.c \
513 $(VBOX_PATH_CROGL_GENFILES)/state_get.c \
514 $(VBOX_PATH_CROGL_GENFILES)/state_isenabled.c \
515 $(VBOX_PATH_CROGL_GENFILES)/state/cr_statefuncs.h
516ifdef VBOX_WITH_CRDUMPER
517VBoxOGLcrstate_CLEAN += $(VBOX_PATH_CROGL_GENFILES)/dump_gen.cpp
518endif
519
520ifneq ($(KBUILD_TARGET),win)
521state_tracker/state_lists.c_CFLAGS += $(VBOX_GCC_Wno-pointer-sign)
522VBoxOGLcrstate_CFLAGS +=
523endif
524ifdef VBOX_WITH_CRHGSMI
525VBoxOGLcrstate_DEFS.win += VBOX_WITH_CRHGSMI
526endif
527ifdef VBOX_WITH_WDDM
528VBoxOGLcrstate_DEFS.win += VBOX_WITH_WDDM
529endif
530ifdef VBOX_WITH_CRDUMPER
531VBoxOGLcrstate_DEFS += VBOX_WITH_CRDUMPER
532#VBoxOGLcrutil_LIBS += \
533 $(PATH_STAGE_LIB)/additions/VBoxOGLcrstate$(VBOX_SUFF_LIB) \
534 $(PATH_STAGE_LIB)/additions/VBoxOGLspuload$(VBOX_SUFF_LIB)
535endif
536
537if defined(VBOX_WITH_WDDM) && defined(VBOX_WITH_CROGL_ADDITIONS)
538#
539# VBoxOGLcrstate-x86 - x86 VBoxOGLcrstate version built for amd64 build
540#
541LIBRARIES.win.amd64 += VBoxOGLcrstate-x86
542VBoxOGLcrstate-x86_TEMPLATE = VBOXCROGLR3GUESTLIB
543VBoxOGLcrstate-x86_EXTENDS = VBoxOGLcrstate
544VBoxOGLcrstate-x86_BLD_TRG_ARCH = x86
545VBoxOGLcrstate-x86_DEFS = $(VBoxOGLcrstate_DEFS) VBOX_WDDM_WOW64
546endif
547
548
549#
550# VBoxOGLhostcrstate
551#
552VBoxOGLhostcrstate_EXTENDS = VBoxOGLcrstate
553VBoxOGLhostcrstate_TEMPLATE = VBOXCROGLR3HOSTLIB
554VBoxOGLhostcrstate_SOURCES = \
555 $(VBoxOGLcrstate_SOURCES) \
556 state_tracker/state_snapshot.c
557
558#
559# Generate files for VBoxOGLcrstate and VBoxOGLhostcrstate.
560#
561
562
563$(VBOX_PATH_CROGL_GENFILES)/state_buffer_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_buffer.txt gendiffcode.py) | $$(dir $$@)
564 $(call MSG_GENERATE,python,$@,$<)
565 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py buffer Buffer $(<D)
566
567$(VBOX_PATH_CROGL_GENFILES)/state_client_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_client.txt gendiffcode.py) | $$(dir $$@)
568 $(call MSG_GENERATE,python,$@,$<)
569 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py client Client $(<D)
570
571$(VBOX_PATH_CROGL_GENFILES)/state_current_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_current.py convert.py) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
572 $(call MSG_GENERATE,python,$@,$<)
573 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/state_current.py
574
575$(VBOX_PATH_CROGL_GENFILES)/state_fog_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_fog.txt gendiffcode.py) | $$(dir $$@)
576 $(call MSG_GENERATE,python,$@,$<)
577 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py fog Fog $(<D)
578
579$(VBOX_PATH_CROGL_GENFILES)/state_hint_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_hint.txt gendiffcode.py) | $$(dir $$@)
580 $(call MSG_GENERATE,python,$@,$<)
581 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py hint Hint $(<D)
582
583$(VBOX_PATH_CROGL_GENFILES)/state_lighting_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_lighting.txt gendiffcode.py) | $$(dir $$@)
584 $(call MSG_GENERATE,python,$@,$<)
585 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py lighting Lighting $(<D)
586
587$(VBOX_PATH_CROGL_GENFILES)/state_line_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_line.txt gendiffcode.py) | $$(dir $$@)
588 $(call MSG_GENERATE,python,$@,$<)
589 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py line Line $(<D)
590
591$(VBOX_PATH_CROGL_GENFILES)/state_multisample_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_multisample.txt gendiffcode.py) | $$(dir $$@)
592 $(call MSG_GENERATE,python,$@,$<)
593 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py multisample Multisample $(<D)
594
595$(VBOX_PATH_CROGL_GENFILES)/state_polygon_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_polygon.txt gendiffcode.py) | $$(dir $$@)
596 $(call MSG_GENERATE,python,$@,$<)
597 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py polygon Polygon $(<D)
598
599$(VBOX_PATH_CROGL_GENFILES)/state_regcombiner_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_regcombiner.txt gendiffcode.py) | $$(dir $$@)
600 $(call MSG_GENERATE,python,$@,$<)
601 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py regcombiner RegCombiner $(<D)
602
603$(VBOX_PATH_CROGL_GENFILES)/state_viewport_gen.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_viewport.txt gendiffcode.py) | $$(dir $$@)
604 $(call MSG_GENERATE,python,$@,$<)
605 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/gendiffcode.py viewport Viewport $(<D)
606
607$(VBOX_PATH_CROGL_GENFILES)/state_get.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_get.py state_get.txt state_extensions_get.txt get_components.py) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
608 $(call MSG_GENERATE,python,$@,$<)
609 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/state_get.py $(VBOX_PATH_CROGL_GLAPI) $(<D)
610
611$(VBOX_PATH_CROGL_GENFILES)/state_isenabled.c: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_isenabled.py state_isenabled.txt state_extensions_isenabled.txt) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
612 $(call MSG_GENERATE,python,$@,$<)
613 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/state_isenabled.py $(VBOX_PATH_CROGL_GLAPI) $(<D)
614
615$(VBOX_PATH_CROGL_GENFILES)/state.def: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_defs.py state_special state_select_special state_feedback_special) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
616 $(call MSG_GENERATE,python,$@,$<)
617 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/state_defs.py $(VBOX_PATH_CROGL_GLAPI) $(<D)
618
619$(VBOX_PATH_CROGL_GENFILES)/state/cr_statefuncs.h: $(addprefix $(PATH_SUB_CURRENT)/state_tracker/, state_funcs.py state_special state_feedback_special state_select_special) $(VBOX_CROGL_API_FILES) | $$(dir $$@)
620 $(call MSG_GENERATE,python,$@,$<)
621 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $(<D)/state_funcs.py $(VBOX_PATH_CROGL_GLAPI) $(<D)
622
623
624#
625# VBoxOGLerrorspu
626# @remark See HostServices/OpenGL/Makefile for and explanation of the gl.h
627# and glu.h intermediate files on darwin.
628#
629VBoxOGLerrorspu_TEMPLATE = VBOXCROGLR3GUESTDLL
630if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_WDDM)
631 VBoxOGLerrorspu_INSTTYPE.win = none
632 VBoxOGLerrorspu_DEBUG_INSTTYPE.win = both
633endif
634VBoxOGLerrorspu_INTERMEDIATES = \
635 $(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h
636VBoxOGLerrorspu_INCS += \
637 $(VBOX_GRAPHICS_INCS)
638if1of ($(KBUILD_TARGET), linux solaris freebsd)
639 VBoxOGLerrorspu_INCS += \
640 $(VBOX_GL_INCS)
641endif
642VBoxOGLerrorspu_SOURCES = \
643 $(VBOX_PATH_CROGL_GENFILES)/errorspu.c \
644 error/errorspu_init.c
645VBoxOGLerrorspu_SOURCES.win = \
646 error/VBoxOGLerrorspu.rc
647VBoxOGLerrorspu_SOURCES.win.x86 = \
648 error/error.def
649VBoxOGLerrorspu_CLEAN = \
650 $(VBOX_PATH_CROGL_GENFILES)/errorspu.c
651VBoxOGLerrorspu_LIBS = \
652 $(VBOX_LIB_OGL_CRUTIL)
653ifdef VBOX_WITH_CRHGSMI
654VBoxOGLerrorspu_DEFS.win += VBOX_WITH_CRHGSMI
655endif
656ifdef VBOX_WITH_WDDM
657VBoxOGLerrorspu_DEFS.win += VBOX_WITH_WDDM
658endif
659
660
661if defined(VBOX_WITH_WDDM) && defined(VBOX_WITH_CROGL_ADDITIONS)
662#
663# VBoxOGLerrorspu-x86 - x86 VBoxOGLerrorspu version built for amd64 build
664#
665DLLS.win.amd64 += VBoxOGLerrorspu-x86
666VBoxOGLerrorspu-x86_TEMPLATE = VBOXCROGLR3GUESTDLL
667VBoxOGLerrorspu-x86_EXTENDS = VBoxOGLerrorspu
668VBoxOGLerrorspu-x86_BLD_TRG_ARCH = x86
669VBoxOGLerrorspu-x86_LIBS = \
670 $(VBOX_LIB_OGL_CRUTIL_X86)
671VBoxOGLerrorspu-x86_DEFS = $(VBoxOGLerrorspu_DEFS) VBOX_WDDM_WOW64
672endif
673
674#
675# VBoxOGLhosterrorspu
676#
677VBoxOGLhosterrorspu_EXTENDS = VBoxOGLerrorspu
678VBoxOGLhosterrorspu_TEMPLATE = VBOXCROGLR3HOSTDLL
679if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_WDDM)
680 VBoxOGLhosterrorspu_INSTTYPE.win = both
681endif
682VBoxOGLhosterrorspu_LDFLAGS.darwin += $(VBoxOGLerrorspu_LDFLAGS.darwin) \
683 -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxOGLhosterrorspu.dylib
684VBoxOGLhosterrorspu_LIBS = \
685 $(VBOX_LIB_OGL_HOSTCRUTIL) \
686 $(LIB_RUNTIME)
687
688#
689# Generate files for VBoxOGLerrorspu and VBoxOGLhosterrorspu.
690#
691$(VBOX_PATH_CROGL_GENFILES)/errorspu.c: $(PATH_SUB_CURRENT)/error/error.py $(VBOX_CROGL_API_FILES)
692 $(call MSG_GENERATE,python,$@,$<)
693 $(QUIET)$(call VBOX_CROGL_PYTHON_ENV,$(VBOX_PATH_CROGL_PYTHON_INCLUDE),$@) $(VBOX_BLD_PYTHON) $< $(VBOX_PATH_CROGL_GLAPI)
694include $(FILE_KBUILD_SUB_FOOTER)
695
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