xref: /netbsd-src/external/mit/xorg/lib/dri/Makefile (revision cc576e1d8e4f4078fd4e81238abca9fca216f6ec)
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