Home | History | Annotate | Line # | Download | only in dri.old
Makefile revision 1.5
      1 # $NetBSD: Makefile,v 1.5 2023/07/01 15:16:46 rillig Exp $
      2 
      3 # Link the mesa_dri_drivers mega driver.
      4 
      5 # When build_id.c expands the macro invocation 'ElfW(Nhdr)', the result is
      6 # 'Elf64 /* MD native binary size */ _Nhdr'. The comment prevents the two
      7 # identifiers from being concatenated.
      8 build_id.ln:
      9 	touch $@
     10 
     11 .include <bsd.own.mk>
     12 
     13 .include "../mesa-which.mk"
     14 
     15 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" || \
     16     ${MACHINE} == "evbarm"
     17 
     18 LIBISMODULE=	yes
     19 LIBISCXX=     yes
     20 
     21 SHLIB_MAJOR=	0
     22 
     23 LIB=		mesa_dri_drivers
     24 DRIDIR=		${X11USRLIBDIR}/modules/dri
     25 DRIDEBUGDIR=	${DEBUGDIR}${X11USRLIBDIR}/modules/dri
     26 
     27 LDFLAGS+=	-Wl,--build-id=sha1
     28 
     29 #	-I${X11SRCDIR.Mesa}/src/mesa/drivers/dri/${MODULE}/server \
     30 
     31 CPPFLAGS+= \
     32 	-I${X11SRCDIR.Mesa}/src/egl/main \
     33 	-I${X11SRCDIR.Mesa}/src/egl/drivers/dri \
     34 	-I${X11SRCDIR.Mesa}/../src/mesa/drivers/dri/common \
     35 	-I${DESTDIR}${X11INCDIR}/libdrm \
     36 	-I${X11SRCDIR.Mesa}/../src/util
     37 
     38 .if ${MACHINE_ARCH} == "i386"
     39 CPPFLAGS.brw_disk_cache.c+=	-march=i586
     40 .endif
     41 
     42 #CPPFLAGS+=	-D_NETBSD_SOURCE -DPTHREADS
     43 
     44 # We don't actually build this on non-x86/non-evbarm at all, currently.
     45 # The following if statements are not effective since we only
     46 # get here for x86 and evbarm
     47 .if ${MACHINE_ARCH} == "alpha"
     48 DRIVERS=	r200 radeon
     49 .elif ${MACHINE} == "macppc" || ${MACHINE} == "ofppc"
     50 DRIVERS=	r200 radeon
     51 .elif ${MACHINE_ARCH} == "sparc64" || ${MACHINE_ARCH} == "sparc"
     52 DRIVERS=	r200 radeon
     53 .elif ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
     54 DRIVERS=	i915 i965 r200 radeon
     55 .elif ${MACHINE} == "prep" || ${MACHINE} == "bebox"
     56 DRIVERS=	r200 radeon
     57 .elif ${MACHINE} == "evbarm"
     58 DRIVERS=	r200 radeon
     59 .endif
     60 
     61 DRI_SUBDIRS= ${DRIVERS}
     62 
     63 DRI_SOURCES.i915+= \
     64 	i830_context.c \
     65 	i830_state.c \
     66 	i830_texblend.c \
     67 	i830_texstate.c \
     68 	i830_vtbl.c \
     69 	i915_context.c \
     70 	i915_debug_fp.c \
     71 	i915_fragprog.c \
     72 	i915_program.c \
     73 	i915_state.c \
     74 	i915_texstate.c \
     75 	i915_vtbl.c \
     76 	i915_tex_layout.c
     77 
     78 I915_INTEL_FILES = \
     79 	intel_batchbuffer.c \
     80 	intel_blit.c \
     81 	intel_buffer_objects.c \
     82 	intel_buffers.c \
     83 	intel_clear.c \
     84 	intel_context.c \
     85 	intel_extensions.c \
     86 	intel_fbo.c \
     87 	intel_mipmap_tree.c \
     88 	intel_pixel.c \
     89 	intel_pixel_bitmap.c \
     90 	intel_pixel_copy.c \
     91 	intel_pixel_draw.c \
     92 	intel_pixel_read.c \
     93 	intel_regions.c \
     94 	intel_render.c \
     95 	intel_screen.c \
     96 	intel_state.c \
     97 	intel_syncobj.c \
     98 	intel_tex.c \
     99 	intel_tex_copy.c \
    100 	intel_tex_image.c \
    101 	intel_tex_layout.c \
    102 	intel_tex_subimage.c \
    103 	intel_tex_validate.c \
    104 	intel_tris.c
    105 
    106 .for _f in ${I915_INTEL_FILES}
    107 BUILDSYMLINKS+=		${X11SRCDIR.Mesa}/src/mesa/drivers/dri/i915/${_f} i915_${_f}
    108 DRI_SOURCES.i915+=	i915_${_f}
    109 CPPFLAGS.i915_${_f}+=	-I${X11SRCDIR.Mesa}/src/mesa/drivers/dri/i915
    110 .endfor
    111 
    112 .PATH: ${X11SRCDIR.Mesa}/src/intel/blorp
    113 .PATH: ${X11SRCDIR.Mesa}/src/intel/common
    114 .PATH: ${X11SRCDIR.Mesa}/src/intel/compiler
    115 .PATH: ${X11SRCDIR.Mesa}/src/intel/dev
    116 .PATH: ${X11SRCDIR.Mesa}/src/intel/isl
    117 .PATH: ${X11SRCDIR.Mesa}/src/intel/perf
    118 .PATH: ${X11SRCDIR.Mesa}/../src/intel/
    119 .PATH: ${X11SRCDIR.Mesa}/../src/intel/perf
    120 
    121 DRI_SOURCES.i965+= \
    122 	blorp.c \
    123 	blorp_blit.c \
    124 	blorp_clear.c \
    125 	gen_batch_decoder.c \
    126 	gen_debug.c \
    127 	gen_decoder.c \
    128 	gen_device_info.c \
    129 	gen_disasm.c \
    130 	gen_l3_config.c \
    131 	gen_perf.c \
    132 	gen_perf_mdapi.c \
    133 	gen_perf_metrics.c \
    134 	gen_urb_config.c \
    135 	intel_log.c \
    136 	brw_binding_tables.c \
    137 	brw_blorp.c \
    138 	brw_bufmgr.c \
    139 	brw_cfg.cpp \
    140 	brw_clear.c \
    141 	brw_clip.c \
    142 	brw_clip_line.c \
    143 	brw_clip_point.c \
    144 	brw_clip_tri.c \
    145 	brw_clip_unfilled.c \
    146 	brw_clip_util.c \
    147 	brw_compile_clip.c \
    148 	brw_compile_sf.c \
    149 	brw_compiler.c \
    150 	brw_compute.c \
    151 	brw_conditional_render.c \
    152 	brw_context.c \
    153 	brw_cs.c \
    154 	brw_curbe.c \
    155 	brw_dead_control_flow.cpp \
    156 	brw_debug_recompile.c \
    157 	brw_disasm.c \
    158 	brw_disasm_info.c \
    159 	brw_disk_cache.c \
    160 	brw_draw.c \
    161 	brw_draw_upload.c \
    162 	brw_eu.c \
    163 	brw_eu_compact.c \
    164 	brw_eu_emit.c \
    165 	brw_eu_util.c \
    166 	brw_eu_validate.c \
    167 	brw_ff_gs.c \
    168 	brw_ff_gs_emit.c \
    169 	brw_formatquery.c \
    170 	brw_fs.cpp \
    171 	brw_fs_bank_conflicts.cpp \
    172 	brw_fs_cmod_propagation.cpp \
    173 	brw_fs_combine_constants.cpp \
    174 	brw_fs_copy_propagation.cpp \
    175 	brw_fs_cse.cpp \
    176 	brw_fs_dead_code_eliminate.cpp \
    177 	brw_fs_generator.cpp \
    178 	brw_fs_live_variables.cpp \
    179 	brw_fs_lower_pack.cpp \
    180 	brw_fs_lower_regioning.cpp \
    181 	brw_fs_nir.cpp \
    182 	brw_fs_reg_allocate.cpp \
    183 	brw_fs_register_coalesce.cpp \
    184 	brw_fs_saturate_propagation.cpp \
    185 	brw_fs_sel_peephole.cpp \
    186 	brw_fs_validate.cpp \
    187 	brw_fs_visitor.cpp \
    188 	brw_generate_mipmap.c \
    189 	brw_gs.c \
    190 	brw_gs_surface_state.c \
    191 	brw_interpolation_map.c \
    192 	brw_link.cpp \
    193 	brw_meta_util.c \
    194 	brw_misc_state.c \
    195 	brw_nir.c \
    196 	brw_nir_analyze_boolean_resolves.c \
    197 	brw_nir_analyze_ubo_ranges.c \
    198 	brw_nir_attribute_workarounds.c \
    199 	brw_nir_lower_conversions.c \
    200 	brw_nir_lower_cs_intrinsics.c \
    201 	brw_nir_lower_image_load_store.c \
    202 	brw_nir_lower_mem_access_bit_sizes.c \
    203 	brw_nir_opt_peephole_ffma.c \
    204 	brw_nir_tcs_workarounds.c \
    205 	brw_nir_trig_workarounds.c \
    206 	brw_nir_uniforms.cpp \
    207 	brw_object_purgeable.c \
    208 	brw_packed_float.c \
    209 	brw_performance_query.c \
    210 	brw_performance_query_mdapi.c \
    211 	brw_pipe_control.c \
    212 	brw_predicated_break.cpp \
    213 	brw_primitive_restart.c \
    214 	brw_program.c \
    215 	brw_program_binary.c \
    216 	brw_program_cache.c \
    217 	brw_queryobj.c \
    218 	brw_reg_type.c \
    219 	brw_reset.c \
    220 	brw_schedule_instructions.cpp \
    221 	brw_sf.c \
    222 	brw_shader.cpp \
    223 	brw_state_upload.c \
    224 	brw_surface_formats.c \
    225 	brw_sync.c \
    226 	brw_tcs.c \
    227 	brw_tcs_surface_state.c \
    228 	brw_tes.c \
    229 	brw_tes_surface_state.c \
    230 	brw_urb.c \
    231 	brw_util.c \
    232 	brw_vec4.cpp \
    233 	brw_vec4_cmod_propagation.cpp \
    234 	brw_vec4_copy_propagation.cpp \
    235 	brw_vec4_cse.cpp \
    236 	brw_vec4_dead_code_eliminate.cpp \
    237 	brw_vec4_generator.cpp \
    238 	brw_vec4_gs_nir.cpp \
    239 	brw_vec4_gs_visitor.cpp \
    240 	brw_vec4_live_variables.cpp \
    241 	brw_vec4_nir.cpp \
    242 	brw_vec4_reg_allocate.cpp \
    243 	brw_vec4_surface_builder.cpp \
    244 	brw_vec4_tcs.cpp \
    245 	brw_vec4_tes.cpp \
    246 	brw_vec4_visitor.cpp \
    247 	brw_vec4_vs_visitor.cpp \
    248 	brw_vs.c \
    249 	brw_vs_surface_state.c \
    250 	brw_vue_map.c \
    251 	brw_wm.c \
    252 	brw_wm_iz.cpp \
    253 	brw_wm_surface_state.c \
    254 	gen6_clip_state.c \
    255 	gen6_constant_state.c \
    256 	gen6_gs_visitor.cpp \
    257 	gen6_multisample_state.c \
    258 	gen6_queryobj.c \
    259 	gen6_sampler_state.c \
    260 	gen6_sol.c \
    261 	gen6_urb.c \
    262 	gen7_l3_state.c \
    263 	gen7_sol_state.c \
    264 	gen7_urb.c \
    265 	gen8_depth_state.c \
    266 	gen8_multisample_state.c \
    267 	hsw_queryobj.c \
    268 	hsw_sol.c \
    269 	isl.c \
    270 	isl_drm.c \
    271 	isl_format.c \
    272 	isl_format_layout.c \
    273 	isl_gen4.c \
    274 	isl_gen6.c \
    275 	isl_gen7.c \
    276 	isl_gen8.c \
    277 	isl_gen9.c \
    278 	isl_storage_image.c \
    279 	isl_tiled_memcpy.c \
    280 	isl_tiled_memcpy_normal.c \
    281 	isl_tiled_memcpy_sse41.c
    282 
    283 I965_INTEL_FILES = \
    284 	intel_batchbuffer.c \
    285 	intel_blit.c \
    286 	intel_buffer_objects.c \
    287 	intel_buffers.c \
    288 	intel_copy_image.c \
    289 	intel_extensions.c \
    290 	intel_fbo.c \
    291 	intel_mipmap_tree.c \
    292 	intel_pixel.c \
    293 	intel_pixel_bitmap.c \
    294 	intel_pixel_copy.c \
    295 	intel_pixel_draw.c \
    296 	intel_pixel_read.c \
    297 	intel_screen.c \
    298 	intel_state.c \
    299 	intel_tex.c \
    300 	intel_tex_copy.c \
    301 	intel_tex_image.c \
    302 	intel_tex_validate.c \
    303 	intel_upload.c
    304 
    305 
    306 INTEL_GENS_BLORP=	40 45 50 60 70 75 80 90 100 110
    307 
    308 .for _gen in ${INTEL_GENS_BLORP}
    309 BUILDSYMLINKS+=		${X11SRCDIR.Mesa}/src/mesa/drivers/dri/i965/genX_state_upload.c ${_gen}_state_upload.c
    310 BUILDSYMLINKS+=		${X11SRCDIR.Mesa}/src/mesa/drivers/dri/i965/genX_blorp_exec.c ${_gen}_blorp_exec.c
    311 BUILDSYMLINKS+=		${X11SRCDIR.Mesa}/src/mesa/drivers/dri/i965/genX_pipe_control.c ${_gen}_pipe_control.c
    312 DRI_SOURCES.i965+=	${_gen}_state_upload.c ${_gen}_blorp_exec.c ${_gen}_pipe_control.c
    313 
    314 CPPFLAGS.${_gen}_state_upload.c+=	-DGEN_VERSIONx10=${_gen}
    315 CPPFLAGS.${_gen}_blorp_exec.c+=		-DGEN_VERSIONx10=${_gen}
    316 CPPFLAGS.${_gen}_pipe_control.c+=	-DGEN_VERSIONx10=${_gen}
    317 .endfor
    318 
    319 INTEL_GENS_ISL=	40 50 60 70 75 80 90 100 110
    320 
    321 .for _gen in ${INTEL_GENS_ISL}
    322 BUILDSYMLINKS+=		${X11SRCDIR.Mesa}/src/intel/isl/isl_emit_depth_stencil.c ${_gen}_isl_emit_depth_stencil.c
    323 BUILDSYMLINKS+=		${X11SRCDIR.Mesa}/src/intel/isl/isl_surface_state.c ${_gen}_isl_surface_state.c
    324 DRI_SOURCES.i965+=	${_gen}_isl_emit_depth_stencil.c ${_gen}_isl_surface_state.c
    325 
    326 CPPFLAGS.${_gen}_isl_emit_depth_stencil.c+=	-DGEN_VERSIONx10=${_gen} -I${X11SRCDIR.Mesa}/src/intel/isl/
    327 CPPFLAGS.${_gen}_isl_surface_state.c+=		-DGEN_VERSIONx10=${_gen} -I${X11SRCDIR.Mesa}/src/intel/isl/
    328 .endfor
    329 
    330 .for _f in ${I965_INTEL_FILES}
    331 BUILDSYMLINKS+=		${X11SRCDIR.Mesa}/src/mesa/drivers/dri/i965/${_f} i965_${_f}
    332 DRI_SOURCES.i965+=	i965_${_f}
    333 .endfor
    334 
    335 .for _f in ${DRI_SOURCES.i965}
    336 CPPFLAGS.${_f} +=	-I${X11SRCDIR.Mesa}/src/mesa/drivers/dri/i965 \
    337 			-I${X11SRCDIR.Mesa}/src/intel \
    338 			-I${X11SRCDIR.Mesa}/src/intel/compiler \
    339 			-I${X11SRCDIR.Mesa}/../src/intel \
    340 			-I${X11SRCDIR.Mesa}/src/compiler/nir \
    341 			-I${X11SRCDIR.Mesa}/../src/compiler/nir
    342 .endfor
    343 
    344 # Needs mfence
    345 CPPFLAGS.brw_bufmgr.c+=	-msse2
    346 
    347 DRI_SOURCES.r200 = \
    348 	r200_context.c \
    349 	r200_ioctl.c \
    350 	r200_state.c \
    351 	r200_state_init.c \
    352 	r200_cmdbuf.c \
    353 	r200_tex.c \
    354 	r200_texstate.c \
    355 	r200_tcl.c \
    356 	r200_swtcl.c \
    357 	r200_maos.c \
    358 	r200_sanity.c \
    359 	r200_fragshader.c \
    360 	r200_vertprog.c \
    361 	r200_blit.c
    362 
    363 R200_RADEON_FILES= \
    364 	radeon_buffer_objects.c \
    365 	radeon_common_context.c \
    366 	radeon_common.c \
    367 	radeon_dma.c \
    368 	radeon_debug.c \
    369 	radeon_fbo.c \
    370 	radeon_fog.c \
    371 	radeon_mipmap_tree.c \
    372 	radeon_pixel_read.c \
    373 	radeon_queryobj.c \
    374 	radeon_span.c \
    375 	radeon_texture.c \
    376 	radeon_tex_copy.c \
    377 	radeon_tile.c \
    378 	radeon_screen.c
    379 
    380 .for _f in ${R200_RADEON_FILES}
    381 BUILDSYMLINKS+=		${X11SRCDIR.Mesa}/src/mesa/drivers/dri/radeon/${_f} r200_${_f}
    382 DRI_SOURCES.r200+=	r200_${_f}
    383 .endfor
    384 
    385 .for _f in ${DRI_SOURCES.r200}
    386 CPPFLAGS.${_f} +=	-I${X11SRCDIR.Mesa}/src/mesa/drivers/dri/r200/server \
    387 			-I${X11SRCDIR.Mesa}/src/mesa/drivers/dri/r200 \
    388 			-I${X11SRCDIR.Mesa}/src/mesa/drivers/dri/radeon/server \
    389 			-I${X11SRCDIR.Mesa}/src/mesa/drivers/dri/radeon \
    390 			-DRADEON_R200
    391 .endfor
    392 
    393 DRI_SOURCES.radeon = \
    394 	radeon_buffer_objects.c \
    395 	radeon_common_context.c \
    396 	radeon_common.c \
    397 	radeon_dma.c \
    398 	radeon_debug.c \
    399 	radeon_fbo.c \
    400 	radeon_fog.c \
    401 	radeon_mipmap_tree.c \
    402 	radeon_pixel_read.c \
    403 	radeon_queryobj.c \
    404 	radeon_span.c \
    405 	radeon_texture.c \
    406 	radeon_tex_copy.c \
    407 	radeon_tile.c \
    408 	radeon_context.c \
    409 	radeon_ioctl.c \
    410 	radeon_screen.c \
    411 	radeon_state.c \
    412 	radeon_state_init.c \
    413 	radeon_tex.c \
    414 	radeon_texstate.c \
    415 	radeon_tcl.c \
    416 	radeon_swtcl.c \
    417 	radeon_maos.c \
    418 	radeon_sanity.c \
    419 	radeon_blit.c
    420 
    421 .for _f in ${DRI_SOURCES.radeon}
    422 CPPFLAGS.${_f} +=	-I${X11SRCDIR.Mesa}/src/mesa/drivers/dri/radeon/server \
    423 			-I${X11SRCDIR.Mesa}/src/mesa/drivers/dri/radeon \
    424 			-DRADEON_R100
    425 .endfor
    426 
    427 .for _d in ${DRI_SUBDIRS}
    428 SRCS+=	${DRI_SOURCES.${_d}}
    429 .PATH: ${X11SRCDIR.Mesa}/src/mesa/drivers/dri/${_d}
    430 .endfor
    431 
    432 
    433 LIBDPLIBS+=	expat		${NETBSDSRCDIR}/external/mit/expat/lib/libexpat
    434 LIBDPLIBS+=	m		${NETBSDSRCDIR}/lib/libm
    435 LIBDPLIBS+=	pthread		${NETBSDSRCDIR}/lib/libpthread
    436 LIBDPLIBS+= 	glapi		${.CURDIR}/../libglapi${OLD_SUFFIX}
    437 LIBDPLIBS+= 	drm		${.CURDIR}/../libdrm
    438 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
    439 LIBDPLIBS+= 	drm_intel	${.CURDIR}/../libdrm_intel
    440 .endif
    441 LIBDPLIBS+= 	drm_radeon	${.CURDIR}/../libdrm_radeon
    442 
    443 MESA_SRC_MODULES=  main math math_xform vbo tnl swrast ss common asm_c program asm_s
    444 .include "../libmesa.old.mk"
    445 .include "../libglsl.old.mk"
    446 
    447 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
    448 SRCS+=	streaming-load-memcpy.c
    449 CPPFLAGS.streaming-load-memcpy.c+=	-msse4.1
    450 CPPFLAGS.isl_tiled_memcpy_sse41.c+=	-msse4.1
    451 .endif
    452 
    453 CFLAGS+= ${${ACTIVE_CC} == "clang":? -Wno-error=atomic-alignment :}
    454 
    455 .include "../driver.mk"
    456 
    457 .for _d in ${DRIVERS}
    458 SYMLINKS+= mesa_dri_drivers.so.${SHLIB_MAJOR} ${DRIDIR}/${_d}_dri.so.${SHLIB_MAJOR} 
    459 SYMLINKS+= ${_d}_dri.so.${SHLIB_MAJOR} ${DRIDIR}/${_d}_dri.so
    460 .if ${MKDEBUG} != "no"
    461 SYMLINKS+= mesa_dri_drivers.so.${SHLIB_MAJOR}.debug ${DRIDEBUGDIR}/${_d}_dri.so.${SHLIB_MAJOR}.debug
    462 .endif
    463 .endfor
    464 
    465 .endif
    466 
    467 PKGCONFIG=	dri
    468 PKGDIST.dri=	${X11SRCDIR.Mesa}/../src/pkgconfig
    469 .include "${.CURDIR}/../libGL/mesa-ver.mk"
    470 PKGCONFIG_VERSION.dri=	${MESA_VER}
    471 
    472 # XXX remove these from bsd.x11.mk
    473 PKGCONFIG_SED_FLAGS= \
    474 	-e "s,@DRI_DRIVER_INSTALL_DIR@,${X11USRLIBDIR}/modules/dri,; \
    475 	    s,@DRI_PC_REQ_PRIV@,,"
    476 
    477 .PATH:          ${X11SRCDIR.Mesa}/src/util
    478 
    479 FILESDIR=	/etc
    480 BUILDSYMLINKS+=	00-mesa-defaults.conf drirc
    481 FILES=		drirc
    482 
    483 .PATH:          ${X11SRCDIR.Mesa}/src/mesa/drivers/dri/common
    484 
    485 .include <bsd.x11.mk>
    486 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" || \
    487     ${MACHINE} == "evbarm"
    488 LIBDIR=		${X11USRLIBDIR}/modules/dri
    489 
    490 CWARNFLAGS.clang+=	-Wno-error=initializer-overrides -Wno-error=switch \
    491 			-Wno-error=tautological-constant-out-of-range-compare \
    492 			-Wno-error=enum-conversion \
    493 			-Wno-error=implicit-int-float-conversion \
    494 			-Wno-error=tautological-constant-compare \
    495 			-Wno-c99-designator -Wno-xor-used-as-pow
    496 
    497 COPTS+= -Wno-error=stack-protector
    498 
    499 COPTS.u_atomic.c+=	${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 10:? -Wno-builtin-declaration-mismatch :}
    500 
    501 COPTS.brw_eu_compact.c+=	-Wno-error=stack-protector
    502 COPTS.brw_fs_copy_propagation.cpp+=	-Wno-error=stack-protector
    503 COPTS.brw_fs.cpp+=	-Wno-error=stack-protector
    504 COPTS.brw_fs_reg_allocate.cpp+=	-Wno-error=stack-protector
    505 
    506 .include <bsd.lib.mk>
    507 .else
    508 .include <bsd.inc.mk>
    509 .endif
    510 # Don't re-build .c files when .y files change
    511 .y.c:
    512