1# $NetBSD: Makefile,v 1.28 2016/06/07 23:21:58 christos Exp $ 2 3# Link the mesa_dri_drivers mega driver. 4 5.include <bsd.own.mk> 6 7.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 8 9LIBISMODULE= yes 10LIBISCXX= yes 11 12SHLIB_MAJOR= 0 13 14LIB= mesa_dri_drivers 15DRIDIR= ${X11USRLIBDIR}/modules/dri 16DRIDEBUGDIR= ${DEBUGDIR}${X11USRLIBDIR}/modules/dri 17 18# -I${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/${MODULE}/server \ 19 20CPPFLAGS+= \ 21 -I${X11SRCDIR.MesaLib}/src/egl/main \ 22 -I${X11SRCDIR.MesaLib}/src/egl/drivers/dri \ 23 -I${X11SRCDIR.MesaLib}/../src/mesa/drivers/dri/common \ 24 -I${DESTDIR}${X11INCDIR}/libdrm 25 26#CPPFLAGS+= -D_NETBSD_SOURCE -DPTHREADS 27 28# We don't actually build this on non-x86 at all, currently. 29# The following if statements are not effective since we only 30# get here for x86 31.if ${MACHINE_ARCH} == "alpha" 32DRIVERS= r200 radeon 33.elif ${MACHINE} == "macppc" || ${MACHINE} == "ofppc" 34DRIVERS= r200 radeon 35.elif ${MACHINE_ARCH} == "sparc64" || ${MACHINE_ARCH} == "sparc" 36DRIVERS= r200 radeon 37.elif ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 38DRIVERS= i915 i965 r200 radeon 39.elif ${MACHINE} == "prep" || ${MACHINE} == "bebox" 40DRIVERS= r200 radeon 41.endif 42 43DRI_SUBDIRS= ${DRIVERS} 44 45DRI_SOURCES.i915 = \ 46 i830_context.c \ 47 i830_state.c \ 48 i830_texblend.c \ 49 i830_texstate.c \ 50 i830_vtbl.c \ 51 i915_tex_layout.c \ 52 i915_texstate.c \ 53 i915_context.c \ 54 i915_debug_fp.c \ 55 i915_fragprog.c \ 56 i915_program.c \ 57 i915_state.c \ 58 i915_vtbl.c 59 60I915_INTEL_FILES = \ 61 intel_render.c \ 62 intel_regions.c \ 63 intel_buffer_objects.c \ 64 intel_batchbuffer.c \ 65 intel_clear.c \ 66 intel_extensions.c \ 67 intel_mipmap_tree.c \ 68 intel_tex_layout.c \ 69 intel_tex_image.c \ 70 intel_tex_subimage.c \ 71 intel_tex_copy.c \ 72 intel_tex_validate.c \ 73 intel_tex.c \ 74 intel_pixel.c \ 75 intel_pixel_bitmap.c \ 76 intel_pixel_copy.c \ 77 intel_pixel_draw.c \ 78 intel_pixel_read.c \ 79 intel_buffers.c \ 80 intel_blit.c \ 81 intel_context.c \ 82 intel_screen.c \ 83 intel_state.c \ 84 intel_syncobj.c \ 85 intel_tris.c \ 86 intel_fbo.c 87 88.for _f in ${I915_INTEL_FILES} 89BUILDSYMLINKS+= ${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/i915/${_f} i915_${_f} 90DRI_SOURCES.i915+= i915_${_f} 91CPPFLAGS.i915_${_f}+= -I${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/i915 92.endfor 93 94DRI_SOURCES.i965 = \ 95 brw_binding_tables.c \ 96 brw_blorp.cpp \ 97 brw_blorp_blit.cpp \ 98 brw_blorp_blit_eu.cpp \ 99 brw_cc.c \ 100 brw_cfg.cpp \ 101 brw_clear.c \ 102 brw_clip.c \ 103 brw_clip_line.c \ 104 brw_clip_point.c \ 105 brw_clip_state.c \ 106 brw_clip_tri.c \ 107 brw_clip_unfilled.c \ 108 brw_clip_util.c \ 109 brw_context.c \ 110 brw_cubemap_normalize.cpp \ 111 brw_curbe.c \ 112 brw_dead_control_flow.cpp \ 113 brw_device_info.c \ 114 brw_disasm.c \ 115 brw_draw.c \ 116 brw_draw_upload.c \ 117 brw_eu.c \ 118 brw_eu_compact.c \ 119 brw_eu_emit.c \ 120 brw_eu_util.c \ 121 brw_fs.cpp \ 122 brw_fs_channel_expressions.cpp \ 123 brw_fs_copy_propagation.cpp \ 124 brw_fs_cse.cpp \ 125 brw_fs_dead_code_eliminate.cpp \ 126 brw_fs_fp.cpp \ 127 brw_fs_generator.cpp \ 128 brw_fs_live_variables.cpp \ 129 brw_fs_peephole_predicated_break.cpp \ 130 brw_fs_reg_allocate.cpp \ 131 brw_fs_register_coalesce.cpp \ 132 brw_fs_saturate_propagation.cpp \ 133 brw_fs_sel_peephole.cpp \ 134 brw_fs_vector_splitting.cpp \ 135 brw_fs_visitor.cpp \ 136 brw_gs.c \ 137 brw_gs_emit.c \ 138 brw_gs_state.c \ 139 brw_gs_surface_state.c \ 140 brw_gs.c \ 141 brw_gs_emit.c \ 142 brw_gs_state.c \ 143 brw_gs_surface_state.c \ 144 brw_interpolation_map.c \ 145 brw_lower_texture_gradients.cpp \ 146 brw_lower_unnormalized_offset.cpp \ 147 brw_meta_updownsample.c \ 148 brw_meta_stencil_blit.c \ 149 brw_meta_util.c \ 150 brw_meta_fast_clear.c \ 151 brw_misc_state.c \ 152 brw_object_purgeable.c \ 153 brw_performance_monitor.c \ 154 brw_program.c \ 155 brw_primitive_restart.c \ 156 brw_queryobj.c \ 157 brw_reset.c \ 158 brw_sampler_state.c \ 159 brw_schedule_instructions.cpp \ 160 brw_sf.c \ 161 brw_sf_emit.c \ 162 brw_sf_state.c \ 163 brw_shader.cpp \ 164 brw_state_batch.c \ 165 brw_state_cache.c \ 166 brw_state_dump.c \ 167 brw_state_upload.c \ 168 brw_surface_formats.c \ 169 brw_tex.c \ 170 brw_tex_layout.c \ 171 brw_urb.c \ 172 brw_util.c \ 173 brw_vec4.cpp \ 174 brw_vec4_copy_propagation.cpp \ 175 brw_vec4_cse.cpp \ 176 brw_vec4_generator.cpp \ 177 brw_vec4_gs.c \ 178 brw_vec4_gs_visitor.cpp \ 179 brw_vec4_live_variables.cpp \ 180 brw_vec4_reg_allocate.cpp \ 181 brw_vec4_visitor.cpp \ 182 brw_vec4_vp.cpp \ 183 brw_vec4_vs_visitor.cpp \ 184 brw_vs.c \ 185 brw_vs_state.c \ 186 brw_vs_surface_state.c \ 187 brw_wm.c \ 188 brw_wm_iz.cpp \ 189 brw_wm_state.c \ 190 brw_wm_surface_state.c \ 191 gen6_blorp.cpp \ 192 gen6_cc.c \ 193 gen6_clip_state.c \ 194 gen6_depth_state.c \ 195 gen6_depthstencil.c \ 196 gen6_gs_state.c \ 197 gen6_multisample_state.c \ 198 gen6_queryobj.c \ 199 gen6_sampler_state.c \ 200 gen6_scissor_state.c \ 201 gen6_sf_state.c \ 202 gen6_sol.c \ 203 gen6_surface_state.c \ 204 gen6_urb.c \ 205 gen6_viewport_state.c \ 206 gen6_vs_state.c \ 207 gen6_wm_state.c \ 208 gen7_blorp.cpp \ 209 gen7_disable.c \ 210 gen7_gs_state.c \ 211 gen7_misc_state.c \ 212 gen7_sf_state.c \ 213 gen7_sol_state.c \ 214 gen7_urb.c \ 215 gen7_viewport_state.c \ 216 gen7_vs_state.c \ 217 gen7_wm_state.c \ 218 gen7_wm_surface_state.c \ 219 gen8_blend_state.c \ 220 gen8_depth_state.c \ 221 gen8_disable.c \ 222 gen8_draw_upload.c \ 223 gen8_gs_state.c \ 224 gen8_misc_state.c \ 225 gen8_multisample_state.c \ 226 gen8_sf_state.c \ 227 gen8_sol_state.c \ 228 gen8_surface_state.c \ 229 gen8_viewport_state.c \ 230 gen8_vs_state.c \ 231 gen8_wm_depth_stencil.c \ 232 gen8_ps_state.c 233 234I965_INTEL_FILES = \ 235 intel_asm_annotation.c \ 236 intel_batchbuffer.c \ 237 intel_blit.c \ 238 intel_buffer_objects.c \ 239 intel_buffers.c \ 240 intel_copy_image.c \ 241 intel_debug.c \ 242 intel_extensions.c \ 243 intel_fbo.c \ 244 intel_mipmap_tree.c \ 245 intel_resolve_map.c \ 246 intel_screen.c \ 247 intel_pixel.c \ 248 intel_pixel_bitmap.c \ 249 intel_pixel_copy.c \ 250 intel_pixel_draw.c \ 251 intel_pixel_read.c \ 252 intel_state.c \ 253 intel_syncobj.c \ 254 intel_tex.c \ 255 intel_tex_copy.c \ 256 intel_tex_image.c \ 257 intel_tex_subimage.c \ 258 intel_tex_validate.c \ 259 intel_upload.c 260 261.for _f in ${I965_INTEL_FILES} 262BUILDSYMLINKS+= ${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/i965/${_f} i965_${_f} 263DRI_SOURCES.i965+= i965_${_f} 264CPPFLAGS.i965_${_f} += -I${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/i965 265.endfor 266 267DRI_SOURCES.r200 = \ 268 r200_context.c \ 269 r200_ioctl.c \ 270 r200_state.c \ 271 r200_state_init.c \ 272 r200_cmdbuf.c \ 273 r200_tex.c \ 274 r200_texstate.c \ 275 r200_tcl.c \ 276 r200_swtcl.c \ 277 r200_maos.c \ 278 r200_sanity.c \ 279 r200_fragshader.c \ 280 r200_vertprog.c \ 281 r200_blit.c 282 283R200_RADEON_FILES= \ 284 radeon_buffer_objects.c \ 285 radeon_common_context.c \ 286 radeon_common.c \ 287 radeon_dma.c \ 288 radeon_debug.c \ 289 radeon_fbo.c \ 290 radeon_fog.c \ 291 radeon_mipmap_tree.c \ 292 radeon_pixel_read.c \ 293 radeon_queryobj.c \ 294 radeon_span.c \ 295 radeon_texture.c \ 296 radeon_tex_copy.c \ 297 radeon_tile.c \ 298 radeon_screen.c 299 300.for _f in ${R200_RADEON_FILES} 301BUILDSYMLINKS+= ${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/radeon/${_f} r200_${_f} 302DRI_SOURCES.r200+= r200_${_f} 303.endfor 304 305.for _f in ${DRI_SOURCES.r200} 306CPPFLAGS.${_f} += -I${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/r200/server \ 307 -I${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/r200 \ 308 -I${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/radeon/server \ 309 -I${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/radeon \ 310 -DRADEON_R200 311.endfor 312 313DRI_SOURCES.radeon = \ 314 radeon_buffer_objects.c \ 315 radeon_common_context.c \ 316 radeon_common.c \ 317 radeon_dma.c \ 318 radeon_debug.c \ 319 radeon_fbo.c \ 320 radeon_fog.c \ 321 radeon_mipmap_tree.c \ 322 radeon_pixel_read.c \ 323 radeon_queryobj.c \ 324 radeon_span.c \ 325 radeon_texture.c \ 326 radeon_tex_copy.c \ 327 radeon_tile.c \ 328 radeon_context.c \ 329 radeon_ioctl.c \ 330 radeon_screen.c \ 331 radeon_state.c \ 332 radeon_state_init.c \ 333 radeon_tex.c \ 334 radeon_texstate.c \ 335 radeon_tcl.c \ 336 radeon_swtcl.c \ 337 radeon_maos.c \ 338 radeon_sanity.c \ 339 radeon_blit.c 340 341.for _f in ${DRI_SOURCES.radeon} 342CPPFLAGS.${_f} += -I${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/radeon/server \ 343 -I${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/radeon \ 344 -DRADEON_R100 345.endfor 346 347.for _d in ${DRI_SUBDIRS} 348SRCS+= ${DRI_SOURCES.${_d}} 349.PATH: ${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/${_d} 350.endfor 351 352LIBDPLIBS+= expat ${NETBSDSRCDIR}/external/mit/expat/lib/libexpat 353LIBDPLIBS+= m ${NETBSDSRCDIR}/lib/libm 354LIBDPLIBS+= glapi ${.CURDIR}/../libglapi 355LIBDPLIBS+= drm ${.CURDIR}/../libdrm 356.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 357LIBDPLIBS+= drm_intel ${.CURDIR}/../libdrm_intel 358.endif 359LIBDPLIBS+= drm_radeon ${.CURDIR}/../libdrm_radeon 360 361MESA_SRC_MODULES= main math math_xform vbo tnl swrast ss common asm_c program asm_s 362.include "../libmesa.mk" 363.include "../libglsl.mk" 364 365.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 366SRCS+= streaming-load-memcpy.c 367CPPFLAGS.streaming-load-memcpy.c+= -msse4.1 368.endif 369 370.include "../driver.mk" 371 372.for _d in ${DRIVERS} 373SYMLINKS+= mesa_dri_drivers.so.${SHLIB_MAJOR} ${DRIDIR}/${_d}_dri.so.${SHLIB_MAJOR} 374SYMLINKS+= ${_d}_dri.so.${SHLIB_MAJOR} ${DRIDIR}/${_d}_dri.so 375.if ${MKDEBUG} != "no" 376SYMLINKS+= mesa_dri_drivers.so.${SHLIB_MAJOR}.debug ${DRIDEBUGDIR}/${_d}_dri.so.${SHLIB_MAJOR}.debug 377.endif 378.endfor 379 380.endif 381 382PKGCONFIG= dri 383PKGDIST.dri= ${X11SRCDIR.MesaLib}/src/mesa/drivers/dri 384.include "${.CURDIR}/../libGL/mesa-ver.mk" 385PKGCONFIG_VERSION.dri= ${MESA_VER} 386 387# XXX remove these from bsd.x11.mk 388PKGCONFIG_SED_FLAGS= \ 389 -e "s,@DRI_DRIVER_INSTALL_DIR@,${X11USRLIBDIR}/modules/dri,; \ 390 s,@DRI_PC_REQ_PRIV@,," 391 392FILESDIR= /etc 393FILES= drirc 394 395.PATH: ${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/common 396 397.include <bsd.x11.mk> 398.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 399LIBDIR= ${X11USRLIBDIR}/modules/dri 400 401CWARNFLAGS.clang+= -Wno-error=initializer-overrides -Wno-error=switch \ 402 -Wno-error=tautological-constant-out-of-range-compare 403 404COPTS.brw_state_batch.c += -Wno-stack-protector 405COPTS.brw_eu_compact.c += -Wno-stack-protector 406COPTS.brw_fs.cpp += -Wno-stack-protector 407COPTS.brw_fs_copy_propagation.cpp += -Wno-stack-protector 408COPTS.brw_fs_reg_allocate.cpp += -Wno-stack-protector 409COPTS.brw_program.c += -Wno-stack-protector 410COPTS.brw_schedule_instructions.cpp += -Wno-stack-protector 411COPTS.brw_vec4.cpp += -Wno-stack-protector 412COPTS.brw_vec4_copy_propagation.cpp += -Wno-stack-protector 413COPTS.brw_vec4_reg_allocate.cpp += -Wno-stack-protector 414COPTS.brw_vec4_visitor.cpp += -Wno-stack-protector 415 416.include <bsd.lib.mk> 417.else 418.include <bsd.inc.mk> 419.endif 420# Don't re-build .c files when .y files change 421.y.c: 422