1# $NetBSD: libmesa.mk,v 1.15 2023/07/16 22:20:54 rjs Exp $ 2# 3# Consumer of this Makefile should set MESA_SRC_MODULES. 4 5CPPFLAGS.ac_surface.c+= ${${ACTIVE_CC} == "clang":? -Wno-error=enum-conversion :} 6 7# The source file lists derived from src/mesa/Makefile.sources. 8# Please keep the organization in line with those files. 9 10# Main sources 11PATHS.main= mesa/main mapi/glapi 12PATHS.main+= ../../src/mesa ../../src/mesa/main ../../src/mapi/glapi/gen 13INCLUDES.main= glsl mesa/main ../../src/compiler/nir ../../src/mesa 14INCLUDES.main+= gallium/auxiliary ../../src 15SRCS.main= \ 16 accum.c \ 17 api_arrayelt.c \ 18 api_exec.c \ 19 arbprogram.c \ 20 arrayobj.c \ 21 atifragshader.c \ 22 attrib.c \ 23 barrier.c \ 24 bbox.c \ 25 blend.c \ 26 blit.c \ 27 bufferobj.c \ 28 buffers.c \ 29 clear.c \ 30 clip.c \ 31 colortab.c \ 32 compute.c \ 33 condrender.c \ 34 conservativeraster.c \ 35 context.c \ 36 convolve.c \ 37 copyimage.c \ 38 cpuinfo.c \ 39 MESAdebug.c \ 40 debug_output.c \ 41 depth.c \ 42 dlist.c \ 43 draw.c \ 44 drawpix.c \ 45 drawtex.c \ 46 draw_validate.c \ 47 enable.c \ 48 enums.c \ 49 errors.c \ 50 MESAeval.c \ 51 execmem.c \ 52 extensions.c \ 53 extensions_table.c \ 54 externalobjects.c \ 55 fbobject.c \ 56 feedback.c \ 57 ff_fragment_shader.cpp \ 58 ffvertex_prog.c \ 59 fog.c \ 60 format_fallback.c \ 61 format_utils.c \ 62 formatquery.c \ 63 formats.c \ 64 framebuffer.c \ 65 get.c \ 66 genmipmap.c \ 67 getstring.c \ 68 glformats.c \ 69 glspirv.c \ 70 glthread.c \ 71 glthread_bufferobj.c \ 72 glthread_draw.c \ 73 glthread_get.c \ 74 glthread_list.c \ 75 glthread_shaderobj.c \ 76 glthread_varray.c \ 77 hash.c \ 78 hint.c \ 79 histogram.c \ 80 image.c \ 81 light.c \ 82 lines.c \ 83 marshal_generated0.c \ 84 marshal_generated1.c \ 85 marshal_generated2.c \ 86 marshal_generated3.c \ 87 marshal_generated4.c \ 88 marshal_generated5.c \ 89 marshal_generated6.c \ 90 marshal_generated7.c \ 91 matrix.c \ 92 mipmap.c \ 93 multisample.c \ 94 objectlabel.c \ 95 objectpurge.c \ 96 pack.c \ 97 pbo.c \ 98 performance_monitor.c \ 99 performance_query.c \ 100 pipelineobj.c \ 101 MESApixel.c \ 102 MESApixelstore.c \ 103 pixeltransfer.c \ 104 points.c \ 105 polygon.c \ 106 program_binary.c \ 107 program_resource.c \ 108 querymatrix.c \ 109 queryobj.c \ 110 rastpos.c \ 111 readpix.c \ 112 remap.c \ 113 renderbuffer.c \ 114 robustness.c \ 115 samplerobj.c \ 116 scissor.c \ 117 shaderapi.c \ 118 shaderimage.c \ 119 shaderobj.c \ 120 shader_query.cpp \ 121 shared.c \ 122 spirv_extensions.c \ 123 state.c \ 124 stencil.c \ 125 syncobj.c \ 126 texcompress.c \ 127 texcompress_bptc.c \ 128 texcompress_cpal.c \ 129 texcompress_etc.c \ 130 texcompress_fxt1.c \ 131 texcompress_rgtc.c \ 132 texcompress_s3tc.c \ 133 texenv.c \ 134 texformat.c \ 135 texgen.c \ 136 texgetimage.c \ 137 teximage.c \ 138 texobj.c \ 139 texcompress_astc.cpp \ 140 texparam.c \ 141 texstate.c \ 142 texstorage.c \ 143 texstore.c \ 144 texturebindless.c \ 145 textureview.c \ 146 transformfeedback.c \ 147 uniform_query.cpp \ 148 uniforms.c \ 149 varray.c \ 150 vdpau.c \ 151 version.c \ 152 viewport.c \ 153 vtxfmt.c \ 154 es1_conversion.c 155 156# AMD common code 157PATHS.amd= amd/common amd/addrlib/src amd/addrlib/src/core \ 158 amd/addrlib/src/gfx9 amd/addrlib/src/r800 \ 159 amd/addrlib/src/gfx10 amd/llvm ../../src/amd/common 160INCLUDES.amd= amd amd/common ../../src/amd/common \ 161 amd/addrlib amd/addrlib/inc \ 162 amd/addrlib/src amd/addrlib/src/core \ 163 amd/addrlib/src/r800 \ 164 amd/addrlib/src/chip/r800 \ 165 amd/addrlib/src/gfx9 \ 166 amd/addrlib/src/chip/gfx9 \ 167 amd/addrlib/src/gfx10 \ 168 amd/addrlib/src/chip/gfx10 \ 169 amd/llvm ../src/util 170 171SRCS.amd+= \ 172 addrinterface.cpp \ 173 addrelemlib.cpp \ 174 addrlib.cpp \ 175 addrlib1.cpp \ 176 addrlib2.cpp \ 177 addrobject.cpp \ 178 coord.cpp \ 179 gfx9addrlib.cpp \ 180 gfx10addrlib.cpp \ 181 gfx10_format_table.c \ 182 ciaddrlib.cpp \ 183 egbaddrlib.cpp \ 184 siaddrlib.cpp \ 185 ac_binary.c \ 186 ac_debug.c \ 187 ac_gpu_info.c \ 188 ac_llvm_build.c \ 189 ac_llvm_cull.c \ 190 ac_llvm_helper.cpp \ 191 ac_llvm_util.c \ 192 ac_msgpack.c \ 193 ac_nir.c \ 194 ac_nir_to_llvm.c \ 195 ac_perfcounter.c \ 196 ac_rgp.c \ 197 ac_rgp_elf_object_pack.c \ 198 ac_shader_args.c \ 199 ac_shader_util.c \ 200 ac_shadowed_regs.c \ 201 ac_sqtt.c \ 202 ac_surface.c \ 203 ac_rtld.c 204 205# XXX avoid source name clashes with glx 206.PATH: ${X11SRCDIR.Mesa}/src/mesa/main 207BUILDSYMLINKS+= ${X11SRCDIR.Mesa}/src/mesa/main/pixel.c MESApixel.c \ 208 ${X11SRCDIR.Mesa}/src/mesa/main/pixelstore.c MESApixelstore.c \ 209 ${X11SRCDIR.Mesa}/src/mesa/main/eval.c MESAeval.c \ 210 ${X11SRCDIR.Mesa}/src/mesa/main/debug.c MESAdebug.c 211 212# Math sources 213PATHS.math= mesa/math 214SRCS.math= \ 215 m_debug_clip.c \ 216 m_debug_norm.c \ 217 m_debug_xform.c \ 218 m_eval.c \ 219 m_matrix.c \ 220 m_translate.c \ 221 m_vector.c 222 223PATHS.math_xform= mesa/math 224SRCS.math_xform= \ 225 m_xform.c 226 227 228# VBO sources 229PATHS.vbo= mesa/vbo 230INCLUDES.vbo= gallium/auxiliary 231SRCS.vbo= \ 232 vbo_context.c \ 233 vbo_exec_api.c \ 234 vbo_exec.c \ 235 vbo_exec_draw.c \ 236 vbo_exec_eval.c \ 237 vbo_minmax_index.c \ 238 vbo_noop.c \ 239 vbo_save_api.c \ 240 vbo_save.c \ 241 vbo_save_draw.c \ 242 vbo_save_loopback.c 243 244# TNL sources 245PATHS.tnl= mesa/tnl 246SRCS.tnl= \ 247 t_context.c \ 248 t_draw.c \ 249 t_pipeline.c \ 250 t_rebase.c \ 251 t_split.c \ 252 t_split_copy.c \ 253 t_split_inplace.c \ 254 t_vb_fog.c \ 255 t_vb_light.c \ 256 t_vb_normals.c \ 257 t_vb_points.c \ 258 t_vb_program.c \ 259 t_vb_render.c \ 260 t_vb_texgen.c \ 261 t_vb_texmat.c \ 262 t_vb_vertex.c \ 263 t_vertex.c \ 264 t_vertex_generic.c \ 265 t_vertex_sse.c \ 266 t_vp_build.c 267 268# Software raster sources 269PATHS.swrast= mesa/swrast 270INCLUDES.swrast= mesa/main 271SRCS.swrast= \ 272 s_aaline.c \ 273 s_aatriangle.c \ 274 s_alpha.c \ 275 s_atifragshader.c \ 276 s_bitmap.c \ 277 s_blend.c \ 278 s_blit.c \ 279 s_clear.c \ 280 s_context.c \ 281 s_copypix.c \ 282 s_depth.c \ 283 s_drawpix.c \ 284 s_feedback.c \ 285 s_fog.c \ 286 s_fragprog.c \ 287 s_lines.c \ 288 s_logic.c \ 289 s_masking.c \ 290 s_points.c \ 291 s_renderbuffer.c \ 292 s_span.c \ 293 s_stencil.c \ 294 s_texcombine.c \ 295 s_texfetch.c \ 296 s_texfilter.c \ 297 s_texrender.c \ 298 s_texture.c \ 299 s_triangle.c \ 300 s_zoom.c 301 302# swrast_setup 303PATHS.ss= mesa/swrast_setup 304SRCS.ss= \ 305 ss_context.c \ 306 ss_triangle.c 307 308 309# Common driver sources 310PATHS.common= mesa/drivers/common 311SRCS.common= \ 312 driverfuncs.c \ 313 meta_blit.c \ 314 meta_generate_mipmap.c \ 315 meta.c 316 317# ASM C driver sources 318PATHS.asm_c= mesa/x86 mesa/x86/rtasm mesa/sparc mesa/x86-64 319SRCS.asm_c= \ 320 common_x86.c \ 321 x86_xform.c \ 322 3dnow.c \ 323 sse.c \ 324 x86sse.c \ 325 sparc.c \ 326 x86-64.c 327 328# ASM assembler driver sources 329PATHS.asm_s= mesa/x86 mesa/x86/rtasm mesa/sparc mesa/x86-64 330.if ${MACHINE} == "amd64" 331SRCS.asm_s= \ 332 xform4.S 333CPPFLAGS+= -I${X11SRCDIR.Mesa}/../src/mesa 334.elif ${MACHINE} == "sparc" || ${MACHINE} == "sparc64" 335SRCS.asm_s= \ 336 sparc_clip.S \ 337 norm.S \ 338 xform.S 339.elif ${MACHINE} == "i386" 340SRCS.asm_s= \ 341 common_x86_asm.S \ 342 x86_xform2.S \ 343 x86_xform3.S \ 344 x86_xform4.S \ 345 x86_cliptest.S \ 346 mmx_blend.S \ 347 3dnow_xform1.S \ 348 3dnow_xform2.S \ 349 3dnow_xform3.S \ 350 3dnow_xform4.S \ 351 sse_xform1.S \ 352 sse_xform2.S \ 353 sse_xform3.S \ 354 sse_xform4.S \ 355 sse_normal.S \ 356 read_rgba_span_x86.S \ 357 streaming-load-memcpy.c \ 358 sse_minmax.c 359CPPFLAGS+= -I${X11SRCDIR.Mesa}/../src/mesa 360.endif 361 362.if ${MACHINE} == "amd64" || ${MACHINE} == "i386" 363SRCS.asm_s+= \ 364 streaming-load-memcpy.c \ 365 sse_minmax.c 366COPTS.sse_minmax.c+= -msse4.1 367.endif 368 369# State tracker sources 370PATHS.state_tracker= mesa/state_tracker 371INCLUDES.state_tracker= glsl mesa/main 372SRCS.state_tracker= \ 373 st_atifs_to_nir.c \ 374 st_atom.c \ 375 st_atom_array.c \ 376 st_atom_atomicbuf.c \ 377 st_atom_blend.c \ 378 st_atom_clip.c \ 379 st_atom_constbuf.c \ 380 st_atom_depth.c \ 381 st_atom_framebuffer.c \ 382 st_atom_image.c \ 383 st_atom_msaa.c \ 384 st_atom_pixeltransfer.c \ 385 st_atom_rasterizer.c \ 386 st_atom_sampler.c \ 387 st_atom_scissor.c \ 388 st_atom_shader.c \ 389 st_atom_stipple.c \ 390 st_atom_storagebuf.c \ 391 st_atom_tess.c \ 392 st_atom_texture.c \ 393 st_atom_viewport.c \ 394 st_cb_bitmap.c \ 395 st_cb_bitmap_shader.c \ 396 st_cb_blit.c \ 397 st_cb_bufferobjects.c \ 398 st_cb_clear.c \ 399 st_cb_compute.c \ 400 st_cb_condrender.c \ 401 st_cb_copyimage.c \ 402 st_cb_drawpixels.c \ 403 st_cb_drawpixels_shader.c \ 404 st_cb_drawtex.c \ 405 st_cb_eglimage.c \ 406 st_cb_fbo.c \ 407 st_cb_feedback.c \ 408 st_cb_flush.c \ 409 st_cb_memoryobjects.c \ 410 st_cb_msaa.c \ 411 st_cb_perfmon.c \ 412 st_cb_perfquery.c \ 413 st_cb_program.c \ 414 st_cb_queryobj.c \ 415 st_cb_rasterpos.c \ 416 st_cb_readpixels.c \ 417 st_cb_semaphoreobjects.c \ 418 st_cb_strings.c \ 419 st_cb_syncobj.c \ 420 st_cb_texture.c \ 421 st_cb_texturebarrier.c \ 422 st_cb_viewport.c \ 423 st_cb_xformfb.c \ 424 st_context.c \ 425 st_copytex.c \ 426 st_debug.c \ 427 st_draw.c \ 428 st_draw_feedback.c \ 429 st_extensions.c \ 430 st_format.c \ 431 st_gen_mipmap.c \ 432 st_glsl_to_ir.cpp \ 433 st_glsl_to_nir.cpp \ 434 st_glsl_to_tgsi.cpp \ 435 st_glsl_to_tgsi_array_merge.cpp \ 436 st_glsl_to_tgsi_private.cpp \ 437 st_glsl_to_tgsi_temprename.cpp \ 438 st_manager.c \ 439 st_nir_builtins.c \ 440 st_nir_lower_builtin.c \ 441 st_nir_lower_tex_src_plane.c \ 442 st_pbo.c \ 443 st_program.c \ 444 st_sampler_view.c \ 445 st_scissor.c \ 446 st_shader_cache.c \ 447 st_texture.c \ 448 st_tgsi_lower_depth_clamp.c \ 449 st_tgsi_lower_yuv.c 450 451# Program sources 452PATHS.program= mesa/program ../../src/mesa/program 453INCLUDES.program= glsl 454SRCS.program= \ 455 arbprogparse.c \ 456 ir_to_mesa.cpp \ 457 prog_cache.c \ 458 prog_execute.c \ 459 prog_instruction.c \ 460 prog_noise.c \ 461 prog_opt_constant_fold.c \ 462 prog_optimize.c \ 463 prog_parameter.c \ 464 prog_parameter_layout.c \ 465 prog_print.c \ 466 prog_statevars.c \ 467 prog_to_nir.c \ 468 program.c \ 469 programopt.c \ 470 program_parse.tab.c \ 471 program_parse_extra.c \ 472 symbol_table.c \ 473 program_lexer.l 474 475# Generated 476#.PATH: ${X11SRCDIR.Mesa}/../src/mesa/program 477#SRCS.program+= \ 478# lex.yy.c 479 480 481# Run throught all the modules and setup the SRCS and CPPFLAGS etc. 482.for _mod_ in ${MESA_SRC_MODULES} 483 484SRCS+= ${SRCS.${_mod_}} 485 486. for _path_ in ${PATHS.${_mod_}} 487.PATH: ${X11SRCDIR.Mesa}/src/${_path_} 488. endfor 489 490. for _path_ in ${INCLUDES.${_mod_}} 491. for _s in ${SRCS.${_mod_}} 492CPPFLAGS.${_s}+= -I${X11SRCDIR.Mesa}/src/${_path_} 493. endfor 494. endfor 495 496.endfor 497 498CPPFLAGS+= -I${X11SRCDIR.Mesa}/include 499CPPFLAGS+= -I${X11SRCDIR.Mesa}/src 500CPPFLAGS+= -I${X11SRCDIR.Mesa}/src/mesa 501CPPFLAGS+= -I${X11SRCDIR.Mesa}/src/mapi 502CPPFLAGS+= -I${X11SRCDIR.Mesa}/src/gallium/include 503CPPFLAGS+= -I${X11SRCDIR.Mesa}/../src/mapi/glapi 504CPPFLAGS+= -I${X11SRCDIR.Mesa}/../src/mesa 505CPPFLAGS+= -I${X11SRCDIR.Mesa}/../src/mesa/main 506CPPFLAGS+= -I${X11SRCDIR.Mesa}/src/mesa/drivers/dri/common 507 508CPPFLAGS+= \ 509 -DPACKAGE_NAME=\"Mesa\" \ 510 -DPACKAGE_TARNAME=\"mesa\" \ 511 -DPACKAGE_VERSION=\"${MESA_VER}\" \ 512 -DPACKAGE_STRING=\"Mesa\ ${MESA_VER}\" \ 513 -DVERSION=\"${MESA_VER}\" \ 514 -DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi\?product=Mesa\" \ 515 -DPACKAGE_URL=\"\" \ 516 -DPACKAGE=\"mesa\" \ 517 518CPPFLAGS+= \ 519 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 \ 520 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 \ 521 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 \ 522 -DHAVE___BUILTIN_BSWAP32=1 -DHAVE___BUILTIN_BSWAP64=1 \ 523 -DHAVE___BUILTIN_CLZ=1 -DHAVE___BUILTIN_CLZLL=1 \ 524 -DHAVE___BUILTIN_CTZ=1 -DHAVE___BUILTIN_EXPECT=1 \ 525 -DHAVE___BUILTIN_FFS=1 -DHAVE___BUILTIN_FFSLL=1 \ 526 -DHAVE___BUILTIN_POPCOUNT=1 -DHAVE___BUILTIN_POPCOUNTLL=1 \ 527 -DHAVE___BUILTIN_UNREACHABLE=1 -DHAVE_FUNC_ATTRIBUTE_CONST=1 \ 528 -DHAVE_FUNC_ATTRIBUTE_FLATTEN=1 -DHAVE_FUNC_ATTRIBUTE_FORMAT=1 \ 529 -DHAVE_FUNC_ATTRIBUTE_MALLOC=1 -DHAVE_FUNC_ATTRIBUTE_PACKED=1 \ 530 -DHAVE_FUNC_ATTRIBUTE_PURE=1 -DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL=1 \ 531 -DHAVE_FUNC_ATTRIBUTE_UNUSED=1 -DHAVE_FUNC_ATTRIBUTE_VISIBILITY=1 \ 532 -DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT=1 \ 533 -DHAVE_FUNC_ATTRIBUTE_WEAK=1 -DHAVE_FUNC_ATTRIBUTE_ALIAS=1 \ 534 -DHAVE_FUNC_ATTRIBUTE_NORETURN=1 -DHAVE_ENDIAN_H=1 -DHAVE_DLADDR=1 \ 535 -DHAVE_CLOCK_GETTIME=1 -DHAVE_PTHREAD_PRIO_INHERIT=1 \ 536 -DHAVE_PTHREAD=1 \ 537 -D__STDC_CONSTANT_MACROS \ 538 -D__STDC_FORMAT_MACROS \ 539 -D__STDC_LIMIT_MACROS \ 540 -DUSE_GCC_ATOMIC_BUILTINS \ 541 -DNDEBUG \ 542 -DHAVE_COMPRESSION \ 543 -DHAVE_SYS_SYSCTL_H \ 544 -DHAVE_DLFCN_H \ 545 -DHAVE_STRTOF \ 546 -DHAVE_MKOSTEMP \ 547 -DHAVE_TIMESPEC_GET \ 548 -DHAVE_STRTOD_L \ 549 -DHAVE_DL_ITERATE_PHDR \ 550 -DHAVE_POSIX_MEMALIGN \ 551 -DHAVE_ZLIB \ 552 -DHAVE_LIBDRM -DGLX_USE_DRM \ 553 -DGLX_INDIRECT_RENDERING \ 554 -DGLX_DIRECT_RENDERING \ 555 -DGLX_USE_TLS \ 556 -DHAVE_X11_PLATFORM \ 557 -DHAVE_DRM_PLATFORM \ 558 -DENABLE_SHADER_CACHE \ 559 -DHAVE_MINCORE 560 561.if ${MKLLVMRT} != "no" 562LLVM_VERSION!= cd ${NETBSDSRCDIR}/external/apache2/llvm && ${MAKE} -V LLVM_VERSION 563HAVE_LLVM_VERSION!= expr ${LLVM_VERSION:R:R} \* 256 + ${LLVM_VERSION:R:E} \* 16 564CPPFLAGS+= \ 565 -DHAVE_LLVM=${HAVE_LLVM_VERSION} 566CPPFLAGS+= -DLLVM_AVAILABLE -DDRAW_LLVM_AVAILABLE 567CXXFLAGS+= -fno-rtti 568.endif 569 570CPPFLAGS+= \ 571 -DLITTLEENDIAN_CPU 572 573.include "../asm.mk" 574 575CPPFLAGS+= \ 576 -DHAVE_LIBDRM -DGLX_USE_DRM -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DHAVE_ALIAS -DMESA_EGL_NO_X11_HEADERS 577 578CPPFLAGS+= \ 579 -DYYTEXT_POINTER=1 580 581CFLAGS+= -fvisibility=hidden -fno-strict-aliasing -fno-builtin-memcmp -fcommon 582 583.include "libGL/mesa-ver.mk" 584