1# $NetBSD: libmesa.mk,v 1.6 2010/07/19 05:34:27 mrg Exp $ 2# 3# Consumer of this Makefile should set MESA_SRC_MODULES. 4 5INCLUDES.all= . glapi main 6 7# Main sources 8PATHS.main= main 9INCLUDES.main= shader 10SRCS.main= \ 11 api_arrayelt.c \ 12 api_exec.c \ 13 api_loopback.c \ 14 api_noop.c \ 15 api_validate.c \ 16 accum.c \ 17 attrib.c \ 18 arrayobj.c \ 19 blend.c \ 20 bufferobj.c \ 21 buffers.c \ 22 clear.c \ 23 clip.c \ 24 colortab.c \ 25 condrender.c \ 26 context.c \ 27 convolve.c \ 28 cpuinfo.c \ 29 debug.c \ 30 depth.c \ 31 depthstencil.c \ 32 dlist.c \ 33 dlopen.c \ 34 drawpix.c \ 35 enable.c \ 36 enums.c \ 37 MESAeval.c \ 38 execmem.c \ 39 extensions.c \ 40 fbobject.c \ 41 feedback.c \ 42 ffvertex_prog.c \ 43 fog.c \ 44 formats.c \ 45 framebuffer.c \ 46 get.c \ 47 getstring.c \ 48 hash.c \ 49 hint.c \ 50 histogram.c \ 51 image.c \ 52 imports.c \ 53 light.c \ 54 lines.c \ 55 matrix.c \ 56 mipmap.c \ 57 mm.c \ 58 multisample.c \ 59 MESApixel.c \ 60 MESApixelstore.c \ 61 points.c \ 62 polygon.c \ 63 queryobj.c \ 64 rastpos.c \ 65 rbadaptors.c \ 66 readpix.c \ 67 remap.c \ 68 renderbuffer.c \ 69 scissor.c \ 70 shaders.c \ 71 shared.c \ 72 state.c \ 73 stencil.c \ 74 syncobj.c \ 75 texcompress.c \ 76 texcompress_s3tc.c \ 77 texcompress_fxt1.c \ 78 texenv.c \ 79 texenvprogram.c \ 80 texfetch.c \ 81 texformat.c \ 82 texgen.c \ 83 texgetimage.c \ 84 teximage.c \ 85 texobj.c \ 86 texparam.c \ 87 texrender.c \ 88 texstate.c \ 89 texstore.c \ 90 varray.c \ 91 version.c \ 92 viewport.c \ 93 vtxfmt.c 94 95# XXX avoid source name clashes with glx 96.PATH: ${X11SRCDIR.MesaLib}/src/mesa/main 97BUILDSYMLINKS= ${X11SRCDIR.MesaLib}/src/mesa/main/pixel.c MESApixel.c \ 98 ${X11SRCDIR.MesaLib}/src/mesa/main/pixelstore.c MESApixelstore.c \ 99 ${X11SRCDIR.MesaLib}/src/mesa/main/eval.c MESAeval.c 100 101# GL API sources 102PATHS.glapi= glapi main 103SRCS.glapi= \ 104 glapi.c \ 105 glapi_dispatch.c \ 106 glapi_getproc.c \ 107 glapi_nop.c \ 108 glthread.c 109 110# Math sources 111PATHS.math= math 112SRCS.math= \ 113 m_debug_clip.c \ 114 m_debug_norm.c \ 115 m_debug_xform.c \ 116 m_eval.c \ 117 m_matrix.c \ 118 m_translate.c \ 119 m_vector.c 120 121SRCS.math+= \ 122 m_xform.c 123 124# Software raster sources 125PATHS.swrast= swrast swrast_setup 126INCLUDES.swrast= shader 127SRCS.swrast= \ 128 s_aaline.c \ 129 s_aatriangle.c \ 130 s_accum.c \ 131 s_alpha.c \ 132 s_atifragshader.c \ 133 s_bitmap.c \ 134 s_blend.c \ 135 s_blit.c \ 136 s_clear.c \ 137 s_copypix.c \ 138 s_context.c \ 139 s_depth.c \ 140 s_drawpix.c \ 141 s_feedback.c \ 142 s_fog.c \ 143 s_fragprog.c \ 144 s_lines.c \ 145 s_logic.c \ 146 s_masking.c \ 147 s_points.c \ 148 s_readpix.c \ 149 s_span.c \ 150 s_stencil.c \ 151 s_texcombine.c \ 152 s_texfilter.c \ 153 s_triangle.c \ 154 s_zoom.c 155 156# swrast_setup 157.PATH: ${X11SRCDIR.MesaLib}/src/mesa/swrast_setup 158SRCS.ss= \ 159 ss_context.c \ 160 ss_triangle.c 161 162# TNL sources 163PATHS.tnl= tnl 164INCLUDES.tnl= shader 165SRCS.tnl= \ 166 t_context.c \ 167 t_pipeline.c \ 168 t_draw.c \ 169 t_rasterpos.c \ 170 t_vb_program.c \ 171 t_vb_render.c \ 172 t_vb_texgen.c \ 173 t_vb_texmat.c \ 174 t_vb_vertex.c \ 175 t_vb_cull.c \ 176 t_vb_fog.c \ 177 t_vb_light.c \ 178 t_vb_normals.c \ 179 t_vb_points.c \ 180 t_vp_build.c \ 181 t_vertex.c \ 182 t_vertex_sse.c \ 183 t_vertex_generic.c 184 185# VBO sources 186PATHS.vbo= vbo 187SRCS.vbo= \ 188 vbo_context.c \ 189 vbo_exec.c \ 190 vbo_exec_api.c \ 191 vbo_exec_array.c \ 192 vbo_exec_draw.c \ 193 vbo_exec_eval.c \ 194 vbo_rebase.c \ 195 vbo_split.c \ 196 vbo_split_copy.c \ 197 vbo_split_inplace.c \ 198 vbo_save.c \ 199 vbo_save_api.c \ 200 vbo_save_draw.c \ 201 vbo_save_loopback.c 202 203COPTS.vbo_save_draw.c= -Wno-error 204 205# statetracker 206 207# Shader sources 208PATHS.shader= shader 209INCLUDES.shader= shader/slang 210SRCS.shader= \ 211 arbprogparse.c \ 212 arbprogram.c \ 213 atifragshader.c \ 214 hash_table.c \ 215 lex.yy.c \ 216 nvfragparse.c \ 217 nvprogram.c \ 218 nvvertparse.c \ 219 program.c \ 220 program_parse.tab.c \ 221 program_parse_extra.c \ 222 prog_cache.c \ 223 prog_execute.c \ 224 prog_instruction.c \ 225 prog_noise.c \ 226 prog_optimize.c \ 227 prog_parameter.c \ 228 prog_parameter_layout.c \ 229 prog_print.c \ 230 prog_statevars.c \ 231 prog_uniform.c \ 232 programopt.c \ 233 symbol_table.c \ 234 shader_api.c 235 236# Shader language sources 237PATHS.slang= shader/slang 238INCLUDES.slang= shader 239SRCS.slang= \ 240 slang_builtin.c \ 241 slang_codegen.c \ 242 slang_compile.c \ 243 slang_compile_function.c \ 244 slang_compile_operation.c \ 245 slang_compile_struct.c \ 246 slang_compile_variable.c \ 247 slang_emit.c \ 248 slang_ir.c \ 249 slang_label.c \ 250 slang_link.c \ 251 slang_log.c \ 252 slang_mem.c \ 253 slang_print.c \ 254 slang_simplify.c \ 255 slang_storage.c \ 256 slang_typeinfo.c \ 257 slang_vartable.c \ 258 slang_utility.c 259 260.if 0 261ASM_C_SOURCES = \ 262 x86/common_x86.c \ 263 x86/x86_xform.c \ 264 x86/3dnow.c \ 265 x86/sse.c \ 266 x86/rtasm/x86sse.c \ 267 sparc/sparc.c \ 268 ppc/common_ppc.c \ 269 x86-64/x86-64.c 270 271X86_SOURCES = \ 272 x86/common_x86_asm.S \ 273 x86/x86_xform2.S \ 274 x86/x86_xform3.S \ 275 x86/x86_xform4.S \ 276 x86/x86_cliptest.S \ 277 x86/mmx_blend.S \ 278 x86/3dnow_xform1.S \ 279 x86/3dnow_xform2.S \ 280 x86/3dnow_xform3.S \ 281 x86/3dnow_xform4.S \ 282 x86/3dnow_normal.S \ 283 x86/sse_xform1.S \ 284 x86/sse_xform2.S \ 285 x86/sse_xform3.S \ 286 x86/sse_xform4.S \ 287 x86/sse_normal.S \ 288 x86/read_rgba_span_x86.S 289 290X86_API = \ 291 x86/glapi_x86.S 292 293X86-64_SOURCES = \ 294 x86-64/xform4.S 295 296X86-64_API = \ 297 x86-64/glapi_x86-64.S 298 299SPARC_SOURCES = \ 300 sparc/clip.S \ 301 sparc/norm.S \ 302 sparc/xform.S 303 304SPARC_API = \ 305 sparc/glapi_sparc.S 306.endif 307 308# Common driver sources 309PATHS.common= drivers/common 310INCLUDES.common= shader 311SRCS.common= \ 312 driverfuncs.c \ 313 meta.c 314 315# OSMesa driver sources 316PATHS.osmesa= drivers/osmesa 317INCLUDES.osmesa= shader 318SRCS.osmesa= \ 319 osmesa.c 320 321.for _mod_ in ${MESA_SRC_MODULES} 322 323SRCS+= ${SRCS.${_mod_}} 324 325. for _path_ in ${PATHS.${_mod_}} 326.PATH: ${X11SRCDIR.MesaLib}/src/mesa/${_path_} 327. endfor 328 329. for _path_ in ${INCLUDES.${_mod_}} 330CPPFLAGS+= -I${X11SRCDIR.MesaLib}/src/mesa/${_path_} 331. endfor 332 333.endfor 334 335.for _path_ in ${INCLUDES.all} 336CPPFLAGS+= -I${X11SRCDIR.MesaLib}/src/mesa/${_path_} 337.endfor 338 339LIBDPLIBS= m ${NETBSDSRCDIR}/lib/libm 340 341# build the shader headers 342.include "../../tools/glsl/Makefile.glsl" 343 344CPPFLAGS+= -I. 345 346# XXXX 347HEADERS.slang= library/slang_120_core_gc.h \ 348 library/slang_builtin_120_common_gc.h \ 349 library/slang_builtin_120_fragment_gc.h \ 350 library/slang_common_builtin_gc.h \ 351 library/slang_core_gc.h \ 352 library/slang_fragment_builtin_gc.h \ 353 library/slang_vertex_builtin_gc.h 354${SRCS.slang}: ${HEADERS.slang} 355 356library/slang_120_core_gc.h: slang_120_core.gc 357 -@mkdir -p library 358 $(GLSL) fragment $> library/slang_120_core_gc.h 359 360library/slang_builtin_120_common_gc.h: slang_builtin_120_common.gc 361 -@mkdir -p library 362 $(GLSL) fragment $> library/slang_builtin_120_common_gc.h 363 364library/slang_builtin_120_fragment_gc.h: slang_builtin_120_fragment.gc 365 -@mkdir -p library 366 $(GLSL) fragment $> library/slang_builtin_120_fragment_gc.h 367 368library/slang_common_builtin_gc.h: slang_common_builtin.gc 369 -@mkdir -p library 370 $(GLSL) fragment $> library/slang_common_builtin_gc.h 371 372library/slang_core_gc.h: slang_core.gc 373 -@mkdir -p library 374 $(GLSL) fragment $> library/slang_core_gc.h 375 376library/slang_fragment_builtin_gc.h: slang_fragment_builtin.gc 377 -@mkdir -p library 378 $(GLSL) fragment $> library/slang_fragment_builtin_gc.h 379 380library/slang_vertex_builtin_gc.h: slang_vertex_builtin.gc 381 -@mkdir -p library 382 $(GLSL) vertex $> library/slang_vertex_builtin_gc.h 383 384.PATH: ${X11SRCDIR.MesaLib}/src/mesa/shader/slang/library 385 386CLEANFILES+= ${HEADERS.slang} 387cleandir: cleanmesa 388cleanmesa: .PHONY 389 -@if [ -d library ]; then rmdir library; fi 390 391