1 # $NetBSD: Makefile,v 1.24 2015/01/05 01:34:42 joerg 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 9 LIBISMODULE= yes 10 LIBISCXX= yes 11 12 SHLIB_MAJOR= 0 13 14 LIB= mesa_dri_drivers 15 DRIDIR= ${X11USRLIBDIR}/modules/dri 16 DRIDEBUGDIR= ${DEBUGDIR}${X11USRLIBDIR}/modules/dri 17 18 # -I${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/${MODULE}/server \ 19 20 CPPFLAGS+= \ 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" 32 DRIVERS= r200 radeon 33 .elif ${MACHINE} == "macppc" || ${MACHINE} == "ofppc" 34 DRIVERS= r200 radeon 35 .elif ${MACHINE_ARCH} == "sparc64" || ${MACHINE_ARCH} == "sparc" 36 DRIVERS= r200 radeon 37 .elif ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 38 DRIVERS= i915 i965 r200 radeon 39 .elif ${MACHINE} == "prep" || ${MACHINE} == "bebox" 40 DRIVERS= r200 radeon 41 .endif 42 43 DRI_SUBDIRS= ${DRIVERS} 44 45 DRI_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 60 I915_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} 89 BUILDSYMLINKS+= ${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/i915/${_f} i915_${_f} 90 DRI_SOURCES.i915+= i915_${_f} 91 CPPFLAGS.i915_${_f}+= -I${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/i915 92 .endfor 93 94 DRI_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 234 I965_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} 262 BUILDSYMLINKS+= ${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/i965/${_f} i965_${_f} 263 DRI_SOURCES.i965+= i965_${_f} 264 CPPFLAGS.i965_${_f} += -I${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/i965 265 .endfor 266 267 DRI_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 283 R200_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} 301 BUILDSYMLINKS+= ${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/radeon/${_f} r200_${_f} 302 DRI_SOURCES.r200+= r200_${_f} 303 .endfor 304 305 .for _f in ${DRI_SOURCES.r200} 306 CPPFLAGS.${_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 313 DRI_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} 342 CPPFLAGS.${_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} 348 SRCS+= ${DRI_SOURCES.${_d}} 349 .PATH: ${X11SRCDIR.MesaLib}/src/mesa/drivers/dri/${_d} 350 .endfor 351 352 LIBDPLIBS+= expat ${NETBSDSRCDIR}/external/mit/expat/lib/libexpat 353 LIBDPLIBS+= m ${NETBSDSRCDIR}/lib/libm 354 LIBDPLIBS+= glapi ${.CURDIR}/../libglapi 355 LIBDPLIBS+= drm ${.CURDIR}/../libdrm 356 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 357 LIBDPLIBS+= drm_intel ${.CURDIR}/../libdrm_intel 358 .endif 359 LIBDPLIBS+= drm_radeon ${.CURDIR}/../libdrm_radeon 360 361 MESA_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" 366 SRCS+= streaming-load-memcpy.c 367 CPPFLAGS.streaming-load-memcpy.c+= -msse4.1 368 .endif 369 370 .include "../driver.mk" 371 372 .for _d in ${DRIVERS} 373 SYMLINKS+= mesa_dri_drivers.so.${SHLIB_MAJOR} ${DRIDIR}/${_d}_dri.so.${SHLIB_MAJOR} 374 SYMLINKS+= ${_d}_dri.so.${SHLIB_MAJOR} ${DRIDIR}/${_d}_dri.so 375 .if ${MKDEBUG:Uno} == "yes" 376 SYMLINKS+= mesa_dri_drivers.so.${SHLIB_MAJOR}.debug ${DRIDEBUGDIR}/${_d}_dri.so.${SHLIB_MAJOR}.debug 377 .endif 378 .endfor 379 380 .endif 381 382 PKGCONFIG= dri 383 PKGDIST.dri= ${X11SRCDIR.MesaLib}/src/mesa/drivers/dri 384 .include "${.CURDIR}/../libGL/mesa-ver.mk" 385 PKGCONFIG_VERSION.dri= ${MESA_VER} 386 387 # XXX remove these from bsd.x11.mk 388 PKGCONFIG_SED_FLAGS= \ 389 -e "s,@DRI_DRIVER_INSTALL_DIR@,${X11USRLIBDIR}/modules/dri,; \ 390 s,@DRI_PC_REQ_PRIV@,," 391 392 FILESDIR= /etc 393 FILES= 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" 399 LIBDIR= ${X11USRLIBDIR}/modules/dri 400 401 CWARNFLAGS.clang+= -Wno-error=initializer-overrides -Wno-error=switch \ 402 -Wno-error=tautological-constant-out-of-range-compare 403 404 .include <bsd.lib.mk> 405 .else 406 .include <bsd.inc.mk> 407 .endif 408