1#	$NetBSD: libmesa.old.mk,v 1.3 2023/07/15 21:24:46 rjs Exp $
2#
3# Consumer of this Makefile should set MESA_SRC_MODULES.
4
5CPPFLAGS.ac_surface.c+=	${${ACTIVE_CC} == "clang":? -Wno-error=enum-conversion :}
6
7# The source file lists derived from src/mesa/Makefile.sources.
8# Please keep the organization in line with those files.
9
10# Main sources
11PATHS.main=	mesa/main ../../src/mesa/main ../../src/mapi/glapi
12INCLUDES.main=	glsl mesa/main ../../src/compiler/nir
13SRCS.main= \
14	accum.c \
15	api_arrayelt.c \
16	api_loopback.c \
17	api_exec.c \
18	arbprogram.c \
19	arrayobj.c \
20	atifragshader.c \
21	attrib.c \
22	barrier.c \
23	bbox.c \
24	blend.c \
25	blit.c \
26	bufferobj.c \
27	buffers.c \
28	clear.c \
29	clip.c \
30	colortab.c \
31	compute.c \
32	condrender.c \
33	conservativeraster.c \
34	context.c \
35	convolve.c \
36	copyimage.c \
37	cpuinfo.c \
38	MESAdebug.c \
39	debug_output.c \
40	depth.c \
41	dlist.c \
42	draw.c \
43	drawpix.c \
44	drawtex.c \
45	draw_validate.c \
46	enable.c \
47	enums.c \
48	errors.c \
49	MESAeval.c \
50	execmem.c \
51	extensions.c \
52	extensions_table.c \
53	externalobjects.c \
54	fbobject.c \
55	feedback.c \
56	ff_fragment_shader.cpp \
57	ffvertex_prog.c \
58	fog.c \
59	format_fallback.c \
60	format_pack.c \
61	format_unpack.c \
62	format_utils.c \
63	formatquery.c \
64	formats.c \
65	framebuffer.c \
66	get.c \
67	genmipmap.c \
68	getstring.c \
69	glformats.c \
70	glspirv.c \
71	glthread.c \
72	hash.c \
73	hint.c \
74	histogram.c \
75	image.c \
76	imports.c \
77	light.c \
78	lines.c \
79	marshal.c \
80	marshal_generated.c \
81	matrix.c \
82	mipmap.c \
83	mm.c \
84	multisample.c \
85	objectlabel.c \
86	objectpurge.c \
87	pack.c \
88	pbo.c \
89	performance_monitor.c \
90	performance_query.c \
91	pipelineobj.c \
92	MESApixel.c \
93	MESApixelstore.c \
94	pixeltransfer.c \
95	points.c \
96	polygon.c \
97	program_binary.c \
98	program_resource.c \
99	querymatrix.c \
100	queryobj.c \
101	rastpos.c \
102	readpix.c \
103	remap.c \
104	renderbuffer.c \
105	robustness.c \
106	samplerobj.c \
107	scissor.c \
108	shaderapi.c \
109	shaderimage.c \
110	shaderobj.c \
111	shader_query.cpp \
112	shared.c \
113	state.c \
114	stencil.c \
115	syncobj.c \
116	texcompress.c \
117	texcompress_astc.cpp \
118	texcompress_bptc.c \
119	texcompress_cpal.c \
120	texcompress_etc.c \
121	texcompress_fxt1.c \
122	texcompress_rgtc.c \
123	texcompress_s3tc.c \
124	texenv.c \
125	texformat.c \
126	texgen.c \
127	texgetimage.c \
128	teximage.c \
129	texobj.c \
130	texparam.c \
131	texstate.c \
132	texstorage.c \
133	texstore.c \
134	texturebindless.c \
135	textureview.c \
136	transformfeedback.c \
137	uniform_query.cpp \
138	uniforms.c \
139	varray.c \
140	vdpau.c \
141	version.c \
142	viewport.c \
143	vtxfmt.c \
144	es1_conversion.c
145
146# AMD common code
147PATHS.amd=	amd/common amd/addrlib/src amd/addrlib/src/core \
148		amd/addrlib/src/gfx9 amd/addrlib/src/r800
149INCLUDES.amd=	amd amd/common ../../src/amd/common \
150		amd/addrlib amd/addrlib/inc \
151		amd/addrlib/src amd/addrlib/src/core \
152		amd/addrlib/src/r800 \
153		amd/addrlib/src/chip/r800 \
154		amd/addrlib/src/gfx9 \
155		amd/addrlib/src/chip/gfx9
156
157SRCS.amd+= \
158	addrinterface.cpp \
159	addrelemlib.cpp \
160	addrlib.cpp \
161	addrlib1.cpp \
162	addrlib2.cpp \
163	addrobject.cpp \
164	coord.cpp \
165	gfx9addrlib.cpp \
166	ciaddrlib.cpp \
167	egbaddrlib.cpp \
168	siaddrlib.cpp \
169	ac_binary.c \
170	ac_llvm_build.c \
171	ac_llvm_helper.cpp \
172	ac_llvm_util.c \
173	ac_shader_util.c \
174	ac_nir_to_llvm.c \
175	ac_gpu_info.c \
176	ac_surface.c \
177	ac_debug.c
178
179# XXX  avoid source name clashes with glx
180.PATH:		${X11SRCDIR.Mesa}/src/mesa/main
181BUILDSYMLINKS+=	${X11SRCDIR.Mesa}/src/mesa/main/pixel.c MESApixel.c \
182		${X11SRCDIR.Mesa}/src/mesa/main/pixelstore.c MESApixelstore.c \
183		${X11SRCDIR.Mesa}/src/mesa/main/eval.c MESAeval.c \
184		${X11SRCDIR.Mesa}/src/mesa/main/debug.c MESAdebug.c
185
186# Math sources
187PATHS.math=	mesa/math
188SRCS.math= \
189	m_debug_clip.c \
190	m_debug_norm.c \
191	m_debug_xform.c \
192	m_eval.c \
193	m_matrix.c \
194	m_translate.c \
195	m_vector.c
196
197PATHS.math_xform=	mesa/math
198SRCS.math_xform= \
199	m_xform.c
200
201
202# VBO sources
203PATHS.vbo=	mesa/vbo
204INCLUDES.vbo=	gallium/auxiliary
205SRCS.vbo= \
206	vbo_context.c \
207	vbo_exec_api.c \
208	vbo_exec.c \
209	vbo_exec_draw.c \
210	vbo_exec_eval.c \
211	vbo_minmax_index.c \
212	vbo_noop.c \
213	vbo_primitive_restart.c \
214	vbo_save_api.c \
215	vbo_save.c \
216	vbo_save_draw.c \
217	vbo_save_loopback.c
218
219# TNL sources
220PATHS.tnl=	mesa/tnl
221SRCS.tnl= \
222	t_context.c \
223	t_draw.c \
224	t_pipeline.c \
225	t_rebase.c \
226	t_split.c \
227	t_split_copy.c \
228	t_split_inplace.c \
229	t_vb_fog.c \
230	t_vb_light.c \
231	t_vb_normals.c \
232	t_vb_points.c \
233	t_vb_program.c \
234	t_vb_render.c \
235	t_vb_texgen.c \
236	t_vb_texmat.c \
237	t_vb_vertex.c \
238	t_vertex.c \
239	t_vertex_generic.c \
240	t_vertex_sse.c \
241	t_vp_build.c
242
243# Software raster sources
244PATHS.swrast=		mesa/swrast
245INCLUDES.swrast=	mesa/main
246SRCS.swrast= \
247	s_aaline.c \
248	s_aatriangle.c \
249	s_alpha.c \
250	s_atifragshader.c \
251	s_bitmap.c \
252	s_blend.c \
253	s_blit.c \
254	s_clear.c \
255	s_context.c \
256	s_copypix.c \
257	s_depth.c \
258	s_drawpix.c \
259	s_feedback.c \
260	s_fog.c \
261	s_fragprog.c \
262	s_lines.c \
263	s_logic.c \
264	s_masking.c \
265	s_points.c \
266	s_renderbuffer.c \
267	s_span.c \
268	s_stencil.c \
269	s_texcombine.c \
270	s_texfetch.c \
271	s_texfilter.c \
272	s_texrender.c \
273	s_texture.c \
274	s_triangle.c \
275	s_zoom.c
276
277# swrast_setup
278PATHS.ss=	mesa/swrast_setup
279SRCS.ss= \
280	ss_context.c \
281	ss_triangle.c 
282
283
284# Common driver sources
285PATHS.common=	mesa/drivers/common
286SRCS.common= \
287	driverfuncs.c   \
288	meta_blit.c     \
289	meta_generate_mipmap.c  \
290	meta.c
291
292# ASM C driver sources
293PATHS.asm_c=	mesa/x86 mesa/x86/rtasm mesa/sparc mesa/x86-64
294SRCS.asm_c= \
295	common_x86.c \
296	x86_xform.c \
297	3dnow.c \
298	sse.c \
299	x86sse.c \
300	sparc.c \
301	x86-64.c
302
303# ASM assembler driver sources
304PATHS.asm_s=	mesa/x86 mesa/x86/rtasm mesa/sparc mesa/x86-64
305.if ${MACHINE} == "amd64"
306SRCS.asm_s= \
307	xform4.S
308CPPFLAGS+=	-I${X11SRCDIR.Mesa}/../src/mesa
309.elif ${MACHINE} == "sparc" || ${MACHINE} == "sparc64"
310SRCS.asm_s= \
311	sparc_clip.S \
312	norm.S \
313	xform.S
314.elif ${MACHINE} == "i386"
315SRCS.asm_s= \
316	common_x86_asm.S \
317	x86_xform2.S \
318	x86_xform3.S \
319	x86_xform4.S \
320	x86_cliptest.S \
321	mmx_blend.S \
322	3dnow_xform1.S \
323	3dnow_xform2.S \
324	3dnow_xform3.S \
325	3dnow_xform4.S \
326	sse_xform1.S \
327	sse_xform2.S \
328	sse_xform3.S \
329	sse_xform4.S \
330	sse_normal.S \
331	read_rgba_span_x86.S \
332	streaming-load-memcpy.c \
333	sse_minmax.c
334CPPFLAGS+=	-I${X11SRCDIR.Mesa}/../src/mesa
335.endif
336
337.if ${MACHINE} == "amd64" || ${MACHINE} == "i386"
338SRCS.asm_s+= \
339	streaming-load-memcpy.c \
340	sse_minmax.c
341COPTS.sse_minmax.c+= -msse4.1
342.endif
343
344# State tracker sources
345PATHS.state_tracker=	mesa/state_tracker
346INCLUDES.state_tracker=	glsl mesa/main
347SRCS.state_tracker= \
348	st_atifs_to_tgsi.c \
349	st_atom.c \
350	st_atom_array.c \
351	st_atom_atomicbuf.c \
352	st_atom_blend.c \
353	st_atom_clip.c \
354	st_atom_constbuf.c \
355	st_atom_depth.c \
356	st_atom_framebuffer.c \
357	st_atom_image.c \
358	st_atom_msaa.c \
359	st_atom_pixeltransfer.c \
360	st_atom_rasterizer.c \
361	st_atom_sampler.c \
362	st_atom_scissor.c \
363	st_atom_shader.c \
364	st_atom_stipple.c \
365	st_atom_storagebuf.c \
366	st_atom_tess.c \
367	st_atom_texture.c \
368	st_atom_viewport.c \
369	st_cb_bitmap.c \
370	st_cb_bitmap_shader.c \
371	st_cb_blit.c \
372	st_cb_bufferobjects.c \
373	st_cb_clear.c \
374	st_cb_compute.c \
375	st_cb_condrender.c \
376	st_cb_copyimage.c \
377	st_cb_drawpixels.c \
378	st_cb_drawpixels_shader.c \
379	st_cb_drawtex.c \
380	st_cb_eglimage.c \
381	st_cb_fbo.c \
382	st_cb_feedback.c \
383	st_cb_flush.c \
384	st_cb_memoryobjects.c \
385	st_cb_msaa.c \
386	st_cb_perfmon.c \
387	st_cb_program.c \
388	st_cb_queryobj.c \
389	st_cb_rasterpos.c \
390	st_cb_readpixels.c \
391	st_cb_semaphoreobjects.c \
392	st_cb_strings.c \
393	st_cb_syncobj.c \
394	st_cb_texture.c \
395	st_cb_texturebarrier.c \
396	st_cb_viewport.c \
397	st_cb_xformfb.c \
398	st_context.c \
399	st_copytex.c \
400	st_debug.c \
401	st_draw.c \
402	st_draw_feedback.c \
403	st_extensions.c \
404	st_format.c \
405	st_gen_mipmap.c \
406	st_glsl_to_ir.cpp \
407	st_glsl_to_nir.cpp \
408	st_glsl_to_tgsi.cpp \
409	st_glsl_to_tgsi_array_merge.cpp \
410	st_glsl_to_tgsi_private.cpp \
411	st_glsl_to_tgsi_temprename.cpp \
412	st_glsl_types.cpp \
413	st_manager.c \
414	st_mesa_to_tgsi.c \
415	st_nir_builtins.c \
416	st_nir_lower_builtin.c \
417	st_nir_lower_tex_src_plane.c \
418	st_pbo.c \
419	st_program.c \
420	st_sampler_view.c \
421	st_scissor.c \
422	st_shader_cache.c \
423	st_texture.c \
424	st_tgsi_lower_yuv.c
425
426# Program sources
427PATHS.program=	mesa/program ../../src/mesa/program
428INCLUDES.program=	glsl
429SRCS.program= \
430	arbprogparse.c \
431	ir_to_mesa.cpp \
432	prog_cache.c \
433	prog_execute.c \
434	prog_instruction.c \
435	prog_noise.c \
436	prog_opt_constant_fold.c \
437	prog_optimize.c \
438	prog_parameter.c \
439	prog_parameter_layout.c \
440	prog_print.c \
441	prog_statevars.c \
442	prog_to_nir.c \
443	program.c \
444	programopt.c \
445	program_parse.tab.c \
446	program_parse_extra.c \
447	symbol_table.c \
448	program_lexer.l
449
450# Generated
451#.PATH:	${X11SRCDIR.Mesa}/../src/mesa/program
452#SRCS.program+= \
453#	lex.yy.c
454
455
456# Run throught all the modules and setup the SRCS and CPPFLAGS etc.
457.for _mod_ in ${MESA_SRC_MODULES}
458
459SRCS+=	${SRCS.${_mod_}}
460
461. for _path_ in ${PATHS.${_mod_}}
462.PATH:	${X11SRCDIR.Mesa}/src/${_path_}
463. endfor
464
465. for _path_ in ${INCLUDES.${_mod_}}
466.  for _s in ${SRCS.${_mod_}}
467CPPFLAGS.${_s}+=	-I${X11SRCDIR.Mesa}/src/${_path_}
468.  endfor
469. endfor
470
471.endfor
472
473CPPFLAGS+=	-I${X11SRCDIR.Mesa}/include
474CPPFLAGS+=	-I${X11SRCDIR.Mesa}/src
475CPPFLAGS+=	-I${X11SRCDIR.Mesa}/src/mesa
476CPPFLAGS+=	-I${X11SRCDIR.Mesa}/src/mapi
477CPPFLAGS+=	-I${X11SRCDIR.Mesa}/src/gallium/include
478CPPFLAGS+=	-I${X11SRCDIR.Mesa}/../src/mapi/glapi
479CPPFLAGS+=	-I${X11SRCDIR.Mesa}/../src/mesa
480CPPFLAGS+=	-I${X11SRCDIR.Mesa}/../src/mesa/main
481CPPFLAGS+=	-I${X11SRCDIR.Mesa}/src/mesa/drivers/dri/common
482
483CPPFLAGS+=	\
484	-DPACKAGE_NAME=\"Mesa\" \
485	-DPACKAGE_TARNAME=\"mesa\" \
486	-DPACKAGE_VERSION=\"${MESA_VER}\" \
487	-DPACKAGE_STRING=\"Mesa\ ${MESA_VER}\" \
488	-DVERSION=\"${MESA_VER}\" \
489	-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi\?product=Mesa\" \
490	-DPACKAGE_URL=\"\" \
491	-DPACKAGE=\"mesa\" \
492
493CPPFLAGS+=	\
494	-DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 \
495	-DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 \
496	-DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 \
497	-DHAVE___BUILTIN_BSWAP32=1 -DHAVE___BUILTIN_BSWAP64=1 \
498	-DHAVE___BUILTIN_CLZ=1 -DHAVE___BUILTIN_CLZLL=1 \
499	-DHAVE___BUILTIN_CTZ=1 -DHAVE___BUILTIN_EXPECT=1 \
500	-DHAVE___BUILTIN_FFS=1 -DHAVE___BUILTIN_FFSLL=1 \
501	-DHAVE___BUILTIN_POPCOUNT=1 -DHAVE___BUILTIN_POPCOUNTLL=1 \
502	-DHAVE___BUILTIN_UNREACHABLE=1 -DHAVE_FUNC_ATTRIBUTE_CONST=1 \
503	-DHAVE_FUNC_ATTRIBUTE_FLATTEN=1 -DHAVE_FUNC_ATTRIBUTE_FORMAT=1 \
504	-DHAVE_FUNC_ATTRIBUTE_MALLOC=1 -DHAVE_FUNC_ATTRIBUTE_PACKED=1 \
505	-DHAVE_FUNC_ATTRIBUTE_PURE=1 -DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL=1 \
506	-DHAVE_FUNC_ATTRIBUTE_UNUSED=1 -DHAVE_FUNC_ATTRIBUTE_VISIBILITY=1 \
507	-DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT=1 \
508	-DHAVE_FUNC_ATTRIBUTE_WEAK=1 -DHAVE_FUNC_ATTRIBUTE_ALIAS=1 \
509	-DHAVE_FUNC_ATTRIBUTE_NORETURN=1 -DHAVE_ENDIAN_H=1 -DHAVE_DLADDR=1 \
510	-DHAVE_CLOCK_GETTIME=1 -DHAVE_PTHREAD_PRIO_INHERIT=1 \
511	-DHAVE_PTHREAD=1 \
512	-D__STDC_CONSTANT_MACROS \
513	-D__STDC_FORMAT_MACROS \
514	-D__STDC_LIMIT_MACROS \
515	-DUSE_GCC_ATOMIC_BUILTINS \
516	-DNDEBUG \
517	-DHAVE_SYS_SYSCTL_H \
518	-DHAVE_DLFCN_H \
519	-DHAVE_STRTOF \
520	-DHAVE_MKOSTEMP \
521	-DHAVE_TIMESPEC_GET \
522	-DHAVE_STRTOD_L \
523	-DHAVE_DL_ITERATE_PHDR \
524	-DHAVE_POSIX_MEMALIGN \
525	-DHAVE_ZLIB \
526	-DHAVE_LIBDRM -DGLX_USE_DRM \
527	-DGLX_INDIRECT_RENDERING \
528	-DGLX_DIRECT_RENDERING \
529	-DGLX_USE_TLS \
530	-DHAVE_X11_PLATFORM \
531	-DHAVE_DRM_PLATFORM \
532	-DENABLE_SHADER_CACHE \
533	-DHAVE_MINCORE
534
535.if ${MKLLVMRT} != "no"
536LLVM_VERSION!=		cd ${NETBSDSRCDIR}/external/apache2/llvm && ${MAKE} -V LLVM_VERSION
537HAVE_LLVM_VERSION!=	expr ${LLVM_VERSION:R:R} \* 256 + ${LLVM_VERSION:R:E} \* 16
538CPPFLAGS+=	\
539	-DHAVE_LLVM=${HAVE_LLVM_VERSION}
540CXXFLAGS+=	-fno-rtti
541.endif
542
543.include "../asm.mk"
544
545CPPFLAGS+=	\
546	-DHAVE_LIBDRM -DGLX_USE_DRM -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DHAVE_ALIAS -DMESA_EGL_NO_X11_HEADERS
547
548CPPFLAGS+=	\
549	-DYYTEXT_POINTER=1
550
551CFLAGS+=	-fvisibility=hidden -fno-strict-aliasing -fno-builtin-memcmp -fcommon
552
553.include "libGL.old/mesa-ver.mk"
554