1# These are the "official" xserver indent flags from utils/modular/x-indent.sh 2XORG_INDENT_FLAGS = -linux -bad -bap -blf -bli0 -cbi0 -cdw -nce -cs -i4 -lc80 -psl -nbbo \ 3 -nbc -psl -nbfda -nut -nss -T pointer -T ScreenPtr -T ScrnInfoPtr -T pointer \ 4 -T DeviceIntPtr -T DevicePtr -T ClientPtr -T CallbackListPtr \ 5 -T CallbackProcPtr -T OsTimerPtr -T CARD32 -T CARD16 -T CARD8 \ 6 -T INT32 -T INT16 -T INT8 -T Atom -T Time -T WindowPtr -T DrawablePtr \ 7 -T PixmapPtr -T ColormapPtr -T CursorPtr -T Font -T XID -T Mask \ 8 -T BlockHandlerProcPtr -T WakeupHandlerProcPtr -T RegionPtr \ 9 -T InternalEvent -T GrabPtr -T Timestamp -T Bool -T TimeStamp \ 10 -T xEvent -T DeviceEvent -T RawDeviceEvent -T GrabMask -T Window \ 11 -T Drawable -T FontPtr -T CallbackPtr -T XIPropertyValuePtr \ 12 -T GrabParameters -T deviceKeyButtonPointer -T TouchOwnershipEvent \ 13 -T xGenericEvent -T DeviceChangedEvent -T GCPtr -T BITS32 \ 14 -T xRectangle -T BoxPtr -T RegionRec -T ValuatorMask -T KeyCode \ 15 -T KeySymsPtr -T XkbDescPtr -T InputOption -T XI2Mask -T DevUnion \ 16 -T DevPrivateKey -T DevScreenPrivateKey -T PropertyPtr -T RESTYPE \ 17 -T XkbAction -T XkbChangesPtr -T XkbControlsPtr -T PrivatePtr -T pmWait \ 18 -T _XFUNCPROTOBEGIN -T _XFUNCPROTOEND -T _X_EXPORT 19 20 21MESA_DIR = $(top_builddir)/src/mesa 22MESA_GLAPI_DIR = $(top_builddir)/src/mapi/glapi 23MESA_MAPI_DIR = $(top_srcdir)/src/mapi 24MESA_GLX_DIR = $(top_builddir)/src/glx 25 26MESA_GLAPI_OUTPUTS = \ 27 $(MESA_GLAPI_DIR)/glapi_mapi_tmp.h \ 28 $(MESA_GLAPI_DIR)/glprocs.h \ 29 $(MESA_GLAPI_DIR)/glapitemp.h \ 30 $(MESA_GLAPI_DIR)/glapitable.h 31 32if HAVE_APPLEDRI 33MESA_GLAPI_OUTPUTS += $(MESA_GLAPI_DIR)/glapi_gentable.c 34endif 35if HAVE_WINDOWSDRI 36MESA_GLAPI_OUTPUTS += $(MESA_GLAPI_DIR)/glapi_gentable.c 37endif 38 39MESA_GLAPI_ASM_OUTPUTS = 40if HAVE_X86_ASM 41if HAVE_X86_64_ASM 42MESA_GLAPI_ASM_OUTPUTS += $(MESA_GLAPI_DIR)/glapi_x86-64.S 43else 44MESA_GLAPI_ASM_OUTPUTS += $(MESA_GLAPI_DIR)/glapi_x86.S 45endif 46endif 47 48if HAVE_SPARC_ASM 49MESA_GLAPI_ASM_OUTPUTS += $(MESA_GLAPI_DIR)/glapi_sparc.S 50endif 51 52BUILT_SOURCES = \ 53 $(MESA_GLAPI_OUTPUTS) \ 54 $(MESA_GLAPI_ASM_OUTPUTS) \ 55 $(MESA_DIR)/main/enums.c \ 56 $(MESA_DIR)/main/api_exec.c \ 57 $(MESA_DIR)/main/dispatch.h \ 58 $(MESA_DIR)/main/remap_helper.h \ 59 $(MESA_GLX_DIR)/indirect.c \ 60 $(MESA_GLX_DIR)/indirect.h \ 61 $(MESA_GLX_DIR)/indirect_init.c \ 62 $(MESA_GLX_DIR)/indirect_size.h \ 63 $(MESA_GLX_DIR)/indirect_size.c 64EXTRA_DIST= \ 65 $(BUILT_SOURCES) \ 66 $(MESA_GLAPI_DIR)/glapi_gentable.c \ 67 $(MESA_GLAPI_DIR)/glapi_x86.S \ 68 $(MESA_GLAPI_DIR)/glapi_x86-64.S \ 69 $(MESA_GLAPI_DIR)/glapi_sparc.S \ 70 $(COMMON_GLX) \ 71 apiexec.py \ 72 gl_apitemp.py \ 73 gl_enums.py \ 74 gl_genexec.py \ 75 gl_gentable.py \ 76 gl_procs.py \ 77 gl_SPARC_asm.py \ 78 gl_table.py \ 79 gl_x86-64_asm.py \ 80 gl_x86_asm.py \ 81 glX_proto_recv.py \ 82 glX_proto_send.py \ 83 glX_proto_size.py \ 84 glX_server_table.py \ 85 remap_helper.py \ 86 static_data.py \ 87 SConscript \ 88 gl_API.dtd 89 90###################################################################### 91 92XORG_GLX_DIR = $(XORG_BASE)/glx 93XORG_GLAPI_DIR = $(XORG_BASE)/glx 94 95XORG_OUTPUTS = \ 96 $(XORG_GLX_DIR)/indirect_dispatch.c \ 97 $(XORG_GLX_DIR)/indirect_dispatch_swap.c \ 98 $(XORG_GLX_DIR)/indirect_dispatch.h \ 99 $(XORG_GLX_DIR)/indirect_reqsize.c \ 100 $(XORG_GLX_DIR)/indirect_reqsize.h \ 101 $(XORG_GLX_DIR)/indirect_size.h \ 102 $(XORG_GLX_DIR)/indirect_size_get.c \ 103 $(XORG_GLX_DIR)/indirect_size_get.h \ 104 $(XORG_GLX_DIR)/indirect_table.c 105 106.PHONY: $(XORG_OUTPUTS) 107 108###################################################################### 109 110API_XML = \ 111 gl_API.xml \ 112 es_EXT.xml \ 113 gl_and_es_API.xml \ 114 gl_and_glX_API.xml \ 115 ARB_base_instance.xml \ 116 ARB_blend_func_extended.xml \ 117 ARB_clear_buffer_object.xml \ 118 ARB_clear_texture.xml \ 119 ARB_clip_control.xml \ 120 ARB_color_buffer_float.xml \ 121 ARB_compressed_texture_pixel_storage.xml \ 122 ARB_compute_shader.xml \ 123 ARB_compute_variable_group_size.xml \ 124 ARB_copy_buffer.xml \ 125 ARB_copy_image.xml \ 126 ARB_debug_output.xml \ 127 ARB_depth_buffer_float.xml \ 128 ARB_depth_clamp.xml \ 129 ARB_direct_state_access.xml \ 130 ARB_draw_buffers.xml \ 131 ARB_draw_buffers_blend.xml \ 132 ARB_draw_elements_base_vertex.xml \ 133 ARB_draw_indirect.xml \ 134 ARB_draw_instanced.xml \ 135 ARB_ES2_compatibility.xml \ 136 ARB_ES3_compatibility.xml \ 137 ARB_framebuffer_no_attachments.xml \ 138 ARB_framebuffer_object.xml \ 139 ARB_get_program_binary.xml \ 140 ARB_get_texture_sub_image.xml \ 141 ARB_gpu_shader_fp64.xml \ 142 ARB_gpu_shader5.xml \ 143 ARB_indirect_parameters.xml \ 144 ARB_instanced_arrays.xml \ 145 ARB_internalformat_query.xml \ 146 ARB_internalformat_query2.xml \ 147 ARB_invalidate_subdata.xml \ 148 ARB_map_buffer_range.xml \ 149 ARB_multi_bind.xml \ 150 ARB_pipeline_statistics_query.xml \ 151 ARB_program_interface_query.xml \ 152 ARB_robustness.xml \ 153 ARB_sample_shading.xml \ 154 ARB_sampler_objects.xml \ 155 ARB_seamless_cube_map.xml \ 156 ARB_separate_shader_objects.xml \ 157 ARB_shader_atomic_counters.xml \ 158 ARB_shader_image_load_store.xml \ 159 ARB_shader_subroutine.xml \ 160 ARB_shader_storage_buffer_object.xml \ 161 ARB_sync.xml \ 162 ARB_tessellation_shader.xml \ 163 ARB_texture_barrier.xml \ 164 ARB_texture_buffer_object.xml \ 165 ARB_texture_buffer_range.xml \ 166 ARB_texture_compression_rgtc.xml \ 167 ARB_texture_cube_map_array.xml \ 168 ARB_texture_float.xml \ 169 ARB_texture_gather.xml \ 170 ARB_texture_multisample.xml \ 171 ARB_texture_rgb10_a2ui.xml \ 172 ARB_texture_rg.xml \ 173 ARB_texture_storage_multisample.xml \ 174 ARB_texture_storage.xml \ 175 ARB_texture_view.xml \ 176 ARB_uniform_buffer_object.xml \ 177 ARB_vertex_array_object.xml \ 178 ARB_vertex_attrib_64bit.xml \ 179 ARB_vertex_attrib_binding.xml \ 180 ARB_viewport_array.xml \ 181 AMD_draw_buffers_blend.xml \ 182 AMD_performance_monitor.xml \ 183 ARB_vertex_type_2_10_10_10_rev.xml \ 184 APPLE_object_purgeable.xml \ 185 APPLE_vertex_array_object.xml \ 186 EXT_draw_buffers2.xml \ 187 EXT_framebuffer_object.xml \ 188 EXT_gpu_shader4.xml \ 189 EXT_packed_depth_stencil.xml \ 190 EXT_provoking_vertex.xml \ 191 EXT_separate_shader_objects.xml \ 192 EXT_texture_array.xml \ 193 EXT_texture_integer.xml \ 194 EXT_transform_feedback.xml \ 195 EXT_window_rectangles.xml \ 196 GREMEDY_string_marker.xml \ 197 INTEL_performance_query.xml \ 198 KHR_debug.xml \ 199 KHR_context_flush_control.xml \ 200 KHR_robustness.xml \ 201 KHR_robustness_es.xml \ 202 KHR_texture_compression_astc.xml \ 203 NV_conditional_render.xml \ 204 NV_primitive_restart.xml \ 205 NV_texture_barrier.xml \ 206 NV_vdpau_interop.xml \ 207 OES_EGL_image.xml \ 208 OES_fixed_point.xml \ 209 OES_single_precision.xml \ 210 OES_texture_compression_astc.xml \ 211 GL3x.xml \ 212 GL4x.xml 213 214COMMON = $(API_XML) \ 215 gl_XML.py \ 216 glX_XML.py \ 217 license.py \ 218 static_data.py \ 219 typeexpr.py 220 221COMMON_GLX = $(COMMON) glX_API.xml glX_XML.py glX_proto_common.py 222 223PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS) 224 225###################################################################### 226 227xorg: check-xorg-source $(XORG_OUTPUTS) 228 229check-xorg-source: 230 @if ! test -d $(XORG_GLX_DIR); then \ 231 echo "ERROR: Must specify path to xserver/ checkout. Set XORG_BASE env var."; \ 232 if test x$(XORG_BASE) != x; then \ 233 echo "'$(XORG_GLX_DIR)' does not exist."; \ 234 fi; \ 235 exit 1; \ 236 fi 237 238clean-local: 239 -rm -f *~ *.pyo 240 241###################################################################### 242 243$(XORG_GLAPI_DIR)/%.c: $(MESA_GLAPI_DIR)/%.c 244 $(INDENT) $(XORG_INDENT_FLAGS) < $< > $@ 245 246$(XORG_GLAPI_DIR)/dispatch.h: $(MESA_DIR)/main/dispatch.h 247 $(INDENT) $(XORG_INDENT_FLAGS) < $< > $@ 248 249$(XORG_GLAPI_DIR)/%.h: $(MESA_GLAPI_DIR)/%.h 250 $(INDENT) $(XORG_INDENT_FLAGS) < $< > $@ 251 252###################################################################### 253 254$(MESA_GLAPI_DIR)/glapi_mapi_tmp.h: $(MESA_MAPI_DIR)/mapi_abi.py $(COMMON) 255 $(PYTHON_GEN) $(MESA_MAPI_DIR)/mapi_abi.py \ 256 --printer glapi --mode lib $(srcdir)/gl_and_es_API.xml > $@ 257 258$(MESA_GLAPI_DIR)/glprocs.h: gl_procs.py $(COMMON) 259 $(PYTHON_GEN) $(srcdir)/gl_procs.py -c -f $(srcdir)/gl_and_es_API.xml > $@ 260 261$(MESA_GLAPI_DIR)/glapitemp.h: gl_apitemp.py $(COMMON) 262 $(PYTHON_GEN) $(srcdir)/gl_apitemp.py -f $(srcdir)/gl_and_es_API.xml > $@ 263 264$(MESA_GLAPI_DIR)/glapitable.h: gl_table.py $(COMMON) 265 $(PYTHON_GEN) $(srcdir)/gl_table.py -f $(srcdir)/gl_and_es_API.xml > $@ 266 267$(MESA_GLAPI_DIR)/glapi_gentable.c: gl_gentable.py $(COMMON) 268 $(PYTHON_GEN) $(srcdir)/gl_gentable.py -f $(srcdir)/gl_and_es_API.xml > $@ 269 270###################################################################### 271 272$(MESA_GLAPI_DIR)/glapi_x86.S: gl_x86_asm.py $(COMMON) 273 $(PYTHON_GEN) $(srcdir)/gl_x86_asm.py -f $(srcdir)/gl_and_es_API.xml > $@ 274 275$(MESA_GLAPI_DIR)/glapi_x86-64.S: gl_x86-64_asm.py $(COMMON) 276 $(PYTHON_GEN) $(srcdir)/gl_x86-64_asm.py -f $(srcdir)/gl_and_es_API.xml > $@ 277 278$(MESA_GLAPI_DIR)/glapi_sparc.S: gl_SPARC_asm.py $(COMMON) 279 $(PYTHON_GEN) $(srcdir)/gl_SPARC_asm.py -f $(srcdir)/gl_and_es_API.xml > $@ 280 281###################################################################### 282 283$(MESA_DIR)/main/enums.c: gl_enums.py $(srcdir)/../registry/gl.xml 284 $(PYTHON_GEN) $(srcdir)/gl_enums.py -f $(srcdir)/../registry/gl.xml > $@ 285 286$(MESA_DIR)/main/api_exec.c: gl_genexec.py apiexec.py $(COMMON) 287 $(PYTHON_GEN) $(srcdir)/gl_genexec.py -f $(srcdir)/gl_and_es_API.xml > $@ 288 289$(MESA_DIR)/main/dispatch.h: gl_table.py $(COMMON) 290 $(PYTHON_GEN) $(srcdir)/gl_table.py -f $(srcdir)/gl_and_es_API.xml -m remap_table > $@ 291 292$(MESA_DIR)/main/remap_helper.h: remap_helper.py $(COMMON) 293 $(PYTHON_GEN) $(srcdir)/remap_helper.py -f $(srcdir)/gl_and_es_API.xml > $@ 294 295###################################################################### 296 297$(MESA_GLX_DIR)/indirect.c: glX_proto_send.py $(COMMON_GLX) 298 $(PYTHON_GEN) $(srcdir)/glX_proto_send.py -f $(srcdir)/gl_API.xml -m proto \ 299 | $(INDENT) $(INDENT_FLAGS) > $@ 300 301$(MESA_GLX_DIR)/indirect.h: glX_proto_send.py $(COMMON_GLX) 302 $(PYTHON_GEN) $(srcdir)/glX_proto_send.py -f $(srcdir)/gl_API.xml -m init_h > $@ 303 304$(MESA_GLX_DIR)/indirect_init.c: glX_proto_send.py $(COMMON_GLX) 305 $(PYTHON_GEN) $(srcdir)/glX_proto_send.py -f $(srcdir)/gl_API.xml -m init_c > $@ 306 307$(MESA_GLX_DIR)/indirect_size.h $(XORG_GLX_DIR)/indirect_size.h: glX_proto_size.py $(COMMON_GLX) 308 $(PYTHON_GEN) $(srcdir)/glX_proto_size.py -f $(srcdir)/gl_API.xml -m size_h --only-set \ 309 --header-tag _INDIRECT_SIZE_H_ \ 310 | $(INDENT) $(INDENT_FLAGS) > $@ 311 312$(MESA_GLX_DIR)/indirect_size.c: glX_proto_size.py $(COMMON_GLX) 313 $(PYTHON_GEN) $(srcdir)/glX_proto_size.py -f $(srcdir)/gl_API.xml -m size_c --only-set \ 314 | $(INDENT) $(INDENT_FLAGS) > $@ 315 316###################################################################### 317 318$(XORG_GLX_DIR)/indirect_dispatch.c: glX_proto_recv.py $(COMMON_GLX) 319 $(PYTHON_GEN) $< -f $(srcdir)/gl_API.xml -m dispatch_c \ 320 | $(INDENT) $(XORG_INDENT_FLAGS) > $@ 321 322$(XORG_GLX_DIR)/indirect_dispatch_swap.c: glX_proto_recv.py $(COMMON_GLX) 323 $(PYTHON_GEN) $< -f $(srcdir)/gl_API.xml -m dispatch_c -s \ 324 | $(INDENT) $(XORG_INDENT_FLAGS) > $@ 325 326$(XORG_GLX_DIR)/indirect_dispatch.h: glX_proto_recv.py gl_and_glX_API.xml $(COMMON_GLX) 327 $(PYTHON_GEN) $< -m dispatch_h -f $(srcdir)/gl_and_glX_API.xml -s \ 328 | $(INDENT) $(XORG_INDENT_FLAGS) > $@ 329 330$(XORG_GLX_DIR)/indirect_size_get.h: glX_proto_size.py $(COMMON_GLX) 331 $(PYTHON_GEN) $< -f $(srcdir)/gl_API.xml -m size_h \ 332 --only-get --header-tag '_INDIRECT_SIZE_GET_H_' \ 333 | $(INDENT) $(XORG_INDENT_FLAGS) > $@ 334 335$(XORG_GLX_DIR)/indirect_size_get.c: glX_proto_size.py $(COMMON_GLX) 336 $(PYTHON_GEN) $< -f $(srcdir)/gl_API.xml -m size_c \ 337 | $(INDENT) $(INDENT_FLAGS) > $@ 338 339$(XORG_GLX_DIR)/indirect_reqsize.h: glX_proto_size.py $(COMMON_GLX) 340 $(PYTHON_GEN) $< -f $(srcdir)/gl_API.xml -m reqsize_h \ 341 --only-get --header-tag '_INDIRECT_SIZE_GET_H_' \ 342 | $(INDENT) $(XORG_INDENT_FLAGS) > $@ 343 344$(XORG_GLX_DIR)/indirect_reqsize.c: glX_proto_size.py $(COMMON_GLX) 345 $(PYTHON_GEN) $< -f $(srcdir)/gl_API.xml -m reqsize_c \ 346 | $(INDENT) $(XORG_INDENT_FLAGS) > $@ 347 348$(XORG_GLX_DIR)/indirect_table.c: glX_server_table.py gl_and_glX_API.xml $(COMMON_GLX) 349 $(PYTHON_GEN) $< -f $(srcdir)/gl_and_glX_API.xml \ 350 | $(INDENT) $(XORG_INDENT_FLAGS) > $@ 351