# $NetBSD: Makefile,v 1.1 2019/03/10 02:29:52 mrg Exp $ # Link the gallium mega driver. LIBISMODULE= yes LIBISCXX= yes .include SHLIB_MAJOR= 0 LIB= gallium_dri DRIDIR= ${X11USRLIBDIR}/modules/dri DRIDEBUGDIR= ${DEBUGDIR}${X11USRLIBDIR}/modules/dri CXXFLAGS+= -std=c++11 CPPFLAGS+= -I${DESTDIR}${X11INCDIR}/libdrm GALLIUM_SUBDIRS= \ auxiliary \ auxiliary/cso_cache \ auxiliary/draw \ auxiliary/hud \ auxiliary/indices \ auxiliary/os \ auxiliary/pipebuffer \ auxiliary/postprocess \ auxiliary/rbug \ auxiliary/rtasm \ auxiliary/tgsi \ auxiliary/translate \ auxiliary/util \ auxiliary/vl \ drivers/galahad \ drivers/identity \ drivers/noop \ drivers/trace \ drivers/rbug \ drivers/softpipe \ winsys/sw/null \ winsys/sw/dri \ winsys/sw/kms-dri \ state_trackers/dri GALLIUM_SUBDIRS_ATI= \ drivers/radeon \ drivers/r600 \ drivers/r600/sb \ winsys/radeon/drm GALLIUM_SUBDIRS_NOUVEAU= \ drivers/nouveau \ drivers/nouveau/nv30 \ drivers/nouveau/nv50 \ drivers/nouveau/codegen \ drivers/nouveau/nvc0 \ winsys/nouveau/drm BUILD_RADEON=0 BUILD_NOUVEAU=0 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" BUILD_RADEON=1 .endif .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" || ${MACHINE} == "evbarm" BUILD_NOUVEAU=1 .endif DRIVERS= kms_swrast swrast .if ${BUILD_RADEON} == 1 DRIVERS+= r600 GALLIUM_SUBDIRS+= ${GALLIUM_SUBDIRS_ATI} .endif .if ${BUILD_NOUVEAU} == 1 DRIVERS+= nouveau GALLIUM_SUBDIRS+= ${GALLIUM_SUBDIRS_NOUVEAU} .endif GALLIUM_SOURCES.auxiliary/cso_cache= \ cso_cache.c \ cso_context.c \ cso_hash.c GALLIUM_SOURCES.auxiliary/draw= \ draw_context.c \ draw_fs.c \ draw_gs.c \ draw_pipe.c \ draw_pipe_aaline.c \ draw_pipe_aapoint.c \ draw_pipe_clip.c \ draw_pipe_cull.c \ draw_pipe_flatshade.c \ draw_pipe_offset.c \ draw_pipe_pstipple.c \ draw_pipe_stipple.c \ draw_pipe_twoside.c \ draw_pipe_unfilled.c \ draw_pipe_util.c \ draw_pipe_validate.c \ draw_pipe_vbuf.c \ draw_pipe_wide_line.c \ draw_pipe_wide_point.c \ draw_prim_assembler.c \ draw_pt.c \ draw_pt_emit.c \ draw_pt_fetch.c \ draw_pt_fetch_emit.c \ draw_pt_fetch_shade_emit.c \ draw_pt_fetch_shade_pipeline.c \ draw_pt_post_vs.c \ draw_pt_so_emit.c \ draw_pt_util.c \ draw_pt_vsplit.c \ draw_vertex.c \ draw_vs.c \ draw_vs_exec.c \ draw_vs_variant.c GALLIUM_SOURCES.auxiliary/hud= \ font.c \ hud_context.c \ hud_cpu.c \ hud_fps.c \ hud_driver_query.c GALLIUM_SOURCES.auxiliary/indices= \ u_primconvert.c GALLIUM_SOURCES.auxiliary/os= \ os_misc.c \ os_process.c \ os_time.c GALLIUM_SOURCES.auxiliary/pipebuffer= \ pb_buffer_fenced.c \ pb_buffer_malloc.c \ pb_bufmgr_alt.c \ pb_bufmgr_cache.c \ pb_bufmgr_debug.c \ pb_bufmgr_mm.c \ pb_bufmgr_ondemand.c \ pb_bufmgr_pool.c \ pb_bufmgr_slab.c \ pb_validate.c GALLIUM_SOURCES.auxiliary/postprocess= \ pp_celshade.c \ pp_colors.c \ pp_init.c \ pp_mlaa.c \ pp_run.c \ pp_program.c GALLIUM_SOURCES.auxiliary/rbug= \ rbug_connection.c \ rbug_context.c \ rbug_core.c \ rbug_demarshal.c \ rbug_texture.c \ rbug_shader.c GALLIUM_SOURCES.auxiliary/rtasm= \ rtasm_cpu.c \ rtasm_execmem.c \ rtasm_x86sse.c GALLIUM_SOURCES.auxiliary/tgsi= \ tgsi_build.c \ tgsi_dump.c \ tgsi_exec.c \ tgsi_info.c \ tgsi_iterate.c \ tgsi_parse.c \ tgsi_sanity.c \ tgsi_scan.c \ tgsi_strings.c \ tgsi_text.c \ tgsi_transform.c \ tgsi_ureg.c \ tgsi_util.c GALLIUM_SOURCES.auxiliary/translate= \ translate.c \ translate_cache.c \ translate_generic.c \ translate_sse.c GALLIUM_SOURCES.auxiliary/util= \ u_debug.c \ u_debug_describe.c \ u_debug_flush.c \ u_debug_memory.c \ u_debug_refcnt.c \ u_debug_stack.c \ u_debug_symbol.c \ u_dump_defines.c \ u_dump_state.c \ u_bitmask.c \ u_blit.c \ u_blitter.c \ u_cache.c \ u_caps.c \ u_cpu_detect.c \ u_dl.c \ u_draw.c \ u_draw_quad.c \ u_format.c \ u_format_other.c \ u_format_latc.c \ u_format_s3tc.c \ u_format_rgtc.c \ u_format_etc.c \ u_format_bptc.c \ u_format_tests.c \ u_format_yuv.c \ u_format_zs.c \ u_framebuffer.c \ u_gen_mipmap.c \ u_handle_table.c \ u_hash.c \ u_hash_table.c \ u_helpers.c \ u_index_modify.c \ u_keymap.c \ u_linear.c \ u_linkage.c \ u_network.c \ u_math.c \ u_mm.c \ u_pstipple.c \ u_ringbuffer.c \ u_sampler.c \ u_simple_shaders.c \ u_slab.c \ u_snprintf.c \ u_staging.c \ u_suballoc.c \ u_surface.c \ u_surfaces.c \ u_texture.c \ u_tile.c \ u_transfer.c \ u_resource.c \ u_upload_mgr.c \ u_vbuf.c GALLIUM_SOURCES.auxiliary/vl= \ vl_csc.c \ vl_compositor.c \ vl_matrix_filter.c \ vl_median_filter.c \ vl_decoder.c \ vl_mpeg12_decoder.c \ vl_mpeg12_bitstream.c \ vl_zscan.c \ vl_idct.c \ vl_mc.c \ vl_vertex_buffers.c \ vl_video_buffer.c \ vl_deint_filter.c # Generated .PATH: ${X11SRCDIR.Mesa}/../src/gallium/auxiliary GALLIUM_SOURCES.auxiliary= \ u_indices_gen.c \ u_unfilled_gen.c \ u_format_table.c .for _f in ${GALLIUM_SOURCES.auxiliary} CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/src/gallium/auxiliary/util .endfor GALLIUM_SOURCES.drivers/galahad= \ glhd_objects.c \ glhd_context.c \ glhd_screen.c GALLIUM_SOURCES.drivers/identity = \ id_objects.c \ id_context.c \ id_screen.c GALLIUM_SOURCES.drivers/noop = \ noop_pipe.c \ noop_state.c GALLIUM_SOURCES.drivers/trace = \ tr_context.c \ tr_dump.c \ tr_dump_state.c \ tr_screen.c \ tr_texture.c GALLIUM_SOURCES.drivers/rbug = \ DRIVERrbug_core.c \ DRIVERrbug_context.c \ rbug_objects.c \ rbug_screen.c # Conflicts with auxiliary/rbug/ files BUILDSYMLINKS+= ${X11SRCDIR.Mesa}/src/gallium/drivers/rbug/rbug_core.c DRIVERrbug_core.c BUILDSYMLINKS+= ${X11SRCDIR.Mesa}/src/gallium/drivers/rbug/rbug_context.c DRIVERrbug_context.c CPPFLAGS.DRIVERrbug_core.c+= -I${X11SRCDIR.Mesa}/src/gallium/auxiliary CPPFLAGS.DRIVERrbug_core.c+= -I${X11SRCDIR.Mesa}/src/gallium/drivers/rbug CPPFLAGS.DRIVERrbug_core.c+= -I${X11SRCDIR.Mesa}/src/gallium/drivers CPPFLAGS.DRIVERrbug_context.c+= -I${X11SRCDIR.Mesa}/src/gallium/auxiliary CPPFLAGS.DRIVERrbug_context.c+= -I${X11SRCDIR.Mesa}/src/gallium/drivers/rbug CPPFLAGS.DRIVERrbug_context.c+= -I${X11SRCDIR.Mesa}/src/gallium/drivers GALLIUM_SOURCES.drivers/radeon = \ cayman_msaa.c \ r600_buffer_common.c \ r600_pipe_common.c \ r600_query.c \ r600_streamout.c \ r600_texture.c \ radeon_video.c \ radeon_uvd.c \ radeon_vce.c \ radeon_vce_40_2_2.c #LLVM_C_FILES := \ # radeon_elf_util.c \ # radeon_setup_tgsi_llvm.c \ # radeon_llvm_emit.c \ # radeon_llvm_util.c GALLIUM_SOURCES.drivers/r600 = \ r600_asm.c \ r600_blit.c \ r600_hw_context.c \ r600_isa.c \ r600_pipe.c \ r600_shader.c \ r600_state.c \ r700_asm.c \ evergreen_hw_context.c \ evergreen_state.c \ eg_asm.c \ r600_state_common.c \ evergreen_compute.c \ compute_memory_pool.c \ r600_uvd.c GALLIUM_SOURCES.drivers/r600/sb = \ sb_bc_builder.cpp \ sb_bc_decoder.cpp \ sb_bc_dump.cpp \ sb_bc_finalize.cpp \ sb_bc_parser.cpp \ sb_context.cpp \ sb_core.cpp \ sb_dce_cleanup.cpp \ sb_def_use.cpp \ sb_dump.cpp \ sb_expr.cpp \ sb_gcm.cpp \ sb_gvn.cpp \ sb_if_conversion.cpp \ sb_ir.cpp \ sb_liveness.cpp \ sb_pass.cpp \ sb_peephole.cpp \ sb_psi_ops.cpp \ sb_ra_checker.cpp \ sb_ra_coalesce.cpp \ sb_ra_init.cpp \ sb_sched.cpp \ sb_shader.cpp \ sb_ssa_builder.cpp \ sb_valtable.cpp #LLVM_C_SOURCES = r600_llvm.c .for _f in ${GALLIUM_SOURCES.drivers/r600} ${GALLIUM_SOURCES.drivers/r600/sb} CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/src/gallium/drivers/r600 .endfor GALLIUM_SOURCES.drivers/nouveau = \ nouveau_screen.c \ nouveau_fence.c \ nouveau_mm.c \ nouveau_buffer.c \ nouveau_heap.c \ nouveau_video.c \ nouveau_vp3_video.c \ nouveau_vp3_video_bsp.c \ nouveau_vp3_video_vp.c GALLIUM_SOURCES.drivers/nouveau/nv30 = \ nv30_screen.c \ nv30_context.c \ nv30_format.c \ nv30_resource.c \ nv30_transfer.c \ nv30_miptree.c \ nv30_state.c \ nv30_state_validate.c \ nv30_texture.c \ nv30_fragtex.c \ nv40_verttex.c \ nv30_fragprog.c \ nv30_vertprog.c \ nv30_clear.c \ nv30_vbo.c \ nv30_push.c \ nv30_draw.c \ nv30_query.c \ nvfx_vertprog.c \ nvfx_fragprog.c GALLIUM_SOURCES.drivers/nouveau/nv50 = \ nv50_context.c \ nv50_formats.c \ nv50_miptree.c \ nv50_resource.c \ nv50_screen.c \ nv50_state.c \ nv50_state_validate.c \ nv50_surface.c \ nv50_tex.c \ nv50_transfer.c \ nv50_vbo.c \ nv50_program.c \ nv50_shader_state.c \ nv50_push.c \ nv50_query.c \ nv84_video.c \ nv84_video_bsp.c \ nv84_video_vp.c \ nv98_video.c \ nv98_video_bsp.c \ nv98_video_vp.c \ nv98_video_ppp.c GALLIUM_SOURCES.drivers/nouveau/codegen = \ nv50_ir.cpp \ nv50_ir_bb.cpp \ nv50_ir_build_util.cpp \ nv50_ir_emit_nv50.cpp \ nv50_ir_from_tgsi.cpp \ nv50_ir_graph.cpp \ nv50_ir_lowering_nv50.cpp \ nv50_ir_peephole.cpp \ nv50_ir_print.cpp \ nv50_ir_ra.cpp \ nv50_ir_ssa.cpp \ nv50_ir_target.cpp \ nv50_ir_target_nv50.cpp \ nv50_ir_util.cpp \ nv50_ir_emit_nvc0.cpp \ nv50_ir_emit_gk110.cpp \ nv50_ir_emit_gm107.cpp \ nv50_ir_lowering_nvc0.cpp \ nv50_ir_lowering_gm107.cpp \ nv50_ir_target_nvc0.cpp \ nv50_ir_target_gm107.cpp GALLIUM_SOURCES.drivers/nouveau/nvc0 = \ nvc0_compute.c \ nvc0_context.c \ nvc0_formats.c \ nvc0_miptree.c \ nvc0_resource.c \ nvc0_screen.c \ nvc0_state.c \ nvc0_state_validate.c \ nvc0_surface.c \ nvc0_tex.c \ nvc0_transfer.c \ nvc0_vbo.c \ nvc0_vbo_translate.c \ nvc0_program.c \ nvc0_shader_state.c \ nvc0_query.c \ nve4_compute.c \ nvc0_video.c \ nvc0_video_bsp.c \ nvc0_video_vp.c \ nvc0_video_ppp.c .for _f in ${GALLIUM_SOURCES.drivers/nouveau} \ ${GALLIUM_SOURCES.drivers/nouveau/nv30} \ ${GALLIUM_SOURCES.drivers/nouveau/nv50} \ ${GALLIUM_SOURCES.drivers/nouveau/codegen} \ ${GALLIUM_SOURCES.drivers/nouveau/nvc0} CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/src/gallium/drivers/nouveau .endfor GALLIUM_SOURCES.winsys/radeon/drm = \ radeon_drm_bo.c \ radeon_drm_cs.c \ radeon_drm_cs_dump.c \ radeon_drm_winsys.c GALLIUM_SOURCES.winsys/nouveau/drm = \ nouveau_drm_winsys.c GALLIUM_SOURCES.drivers/softpipe = \ sp_fs_exec.c \ sp_clear.c \ sp_fence.c \ sp_flush.c \ sp_query.c \ sp_context.c \ sp_draw_arrays.c \ sp_prim_vbuf.c \ sp_quad_pipe.c \ sp_quad_stipple.c \ sp_quad_depth_test.c \ sp_quad_fs.c \ sp_quad_blend.c \ sp_screen.c \ sp_setup.c \ sp_state_blend.c \ sp_state_clip.c \ sp_state_derived.c \ sp_state_sampler.c \ sp_state_shader.c \ sp_state_so.c \ sp_state_rasterizer.c \ sp_state_surface.c \ sp_state_vertex.c \ sp_texture.c \ sp_tex_sample.c \ sp_tex_tile_cache.c \ sp_tile_cache.c \ sp_surface.c GALLIUM_SOURCES.winsys/sw/null = \ null_sw_winsys.c GALLIUM_SOURCES.winsys/sw/dri = \ dri_sw_winsys.c GALLIUM_SOURCES.winsys/sw/kms-dri = \ kms_dri_sw_winsys.c GALLIUM_SOURCES.state_trackers/dri = \ dri_context.c \ dri_drawable.c \ dri_query_renderer.c \ dri_screen.c \ drisw.c \ dri2.c .for _f in ${GALLIUM_SOURCES.state_trackers/dri} CPPFLAGS.${_f} += -I${X11SRCDIR.Mesa}/src/gallium/state_trackers/dri/common .endfor # missing CPPFLAGS+= \ -DGALLIUM_SOFTPIPE \ -DGALLIUM_STATIC_TARGETS=1 \ -DMESA_EGL_NO_X11_HEADERS .for _d in ${GALLIUM_SUBDIRS} SRCS+= ${GALLIUM_SOURCES.${_d}} .PATH: ${X11SRCDIR.Mesa}/src/gallium/${_d} .endfor #. if defined(${GALLIUM_SOURCES.${_d}}) #SRCS+= ${GALLIUM_SOURCES.${_d}} #. endif .include "../libloader.old.mk" .if ${BUILD_RADEON} == 1 CFLAGS+= -pthread LDFLAGS+= -pthread LIBDPLIBS+= pthread ${.CURDIR}/../../../../../lib/libpthread .endif LIBDPLIBS+= m ${.CURDIR}/../../../../../lib/libm .if ${BUILD_RADEON} == 1 || ${BUILD_NOUVEAU} == 1 LIBDPLIBS+= drm ${.CURDIR}/../libdrm .if ${BUILD_RADEON} == 1 LIBDPLIBS+= drm_radeon ${.CURDIR}/../libdrm_radeon .endif # ${BUILD_RADEON} == 1 .if ${BUILD_NOUVEAU} == 1 LIBDPLIBS+= drm_nouveau ${.CURDIR}/../libdrm_nouveau .endif # ${BUILD_NOUVEAU} == 1 .endif # ${BUILD_RADEON} == 1 || ${BUILD_NOUVEAU} == 1 LIBDPLIBS+= glapi ${.CURDIR}/../libglapi.old LIBDPLIBS+= expat ${.CURDIR}/../../../../../external/mit/expat/lib/libexpat LDFLAGS+= -Wl,--version-script=${X11SRCDIR.Mesa}/src/gallium/targets/dri/dri.sym ## build mesagallium parts MESA_SRC_MODULES= main math vbo state_tracker program asm_s .include "../libmesa.old.mk" .include "../libglsl.old.mk" # Special addition for just gallium; it misses the rest of asm_c files. .PATH: ${X11SRCDIR.Mesa}/src/mesa/x86 SRCS+= common_x86.c .if ${MACHINE} == "amd64" || ${MACHINE} == "i386" SRCS+= streaming-load-memcpy.c CFLAGS.streaming-load-memcpy.c+= -msse4.1 .endif .include "../driver.old.mk" .PATH: ${X11SRCDIR.Mesa}/src/gallium/targets/dri SRCS+= target.c CPPFLAGS+= \ -I${X11SRCDIR.Mesa}/src/gallium/include \ -I${X11SRCDIR.Mesa}/src/gallium/auxiliary \ -I${X11SRCDIR.Mesa}/src/gallium/drivers \ -I${X11SRCDIR.Mesa}/../src/mesa/drivers/dri/common CPPFLAGS.target.c += \ -DDRI_TARGET \ -DGALLIUM_GALAHAD \ -DGALLIUM_NOOP \ -DGALLIUM_RBUG \ -DGALLIUM_TRACE \ -DGALLIUM_SOFTPIPE \ -I${X11SRCDIR.Mesa}/src/gallium/state_trackers/dri \ -I${X11SRCDIR.Mesa}/src/loader \ -I${X11SRCDIR.Mesa}/src/gallium/winsys .if ${BUILD_RADEON} == 1 CPPFLAGS.target.c += \ -DGALLIUM_R200 \ -DGALLIUM_R600 .endif # ${BUILD_RADEON} == 1 .if ${BUILD_NOUVEAU} == 1 CPPFLAGS.target.c += \ -DGALLIUM_NOUVEAU .endif # ${BUILD_NOUVEAU} == 1 CWARNFLAGS.clang+= -Wno-error=constant-conversion \ -Wno-error=tautological-constant-out-of-range-compare \ -Wno-error=pointer-sign \ -Wno-error=switch \ -Wno-error=absolute-value \ -Wno-error=tautological-compare \ -Wno-error=static-in-inline \ -Wno-error=logical-not-parentheses .include LIBDIR= ${X11USRLIBDIR}/modules/dri .for _d in ${DRIVERS} SYMLINKS+= gallium_dri.so ${DRIDIR}/${_d}_dri.so SYMLINKS+= gallium_dri.so.${SHLIB_MAJOR} ${DRIDIR}/${_d}_dri.so.${SHLIB_MAJOR} .if ${MKDEBUG} != "no" SYMLINKS+= gallium_dri.so.${SHLIB_MAJOR}.debug ${DRIDEBUGDIR}/${_d}_dri.so.${SHLIB_MAJOR}.debug .endif .endfor .if ${MACHINE_ARCH} == "sparc" || ${COMMON_MACHINE_ARCH:U} == "sparc" COPTS+= ${${ACTIVE_CC} == "clang":? -Wa,-Av8plus :} .endif .include # Don't regenerate c files .y.c: