1#	$NetBSD: Makefile,v 1.35 2023/06/03 08:52:54 lukem Exp $
2
3.include <bsd.own.mk>
4
5# Set this to 2014 for the last release, which does not support newer
6# chipsets as well, but cause major problems on older chipsets.
7INTEL_DRIVER_DATE?=	2019
8
9.if ${INTEL_DRIVER_DATE} > 2014
10DRIVER=		xf86-video-intel
11.else
12DRIVER=		xf86-video-intel-2014
13.endif
14DRIVER_NAME=	intel_drv
15
16# main module
17SRCS+=		intel_device.c
18SRCS+=		intel_options.c
19SRCS+=		intel_module.c
20SRCS+=		backlight.c
21SRCS+=		fd.c
22
23# legacy/i810
24.PATH:	${X11SRCDIR.${DRIVER}}/src/legacy/i810
25SRCS+=		i810_accel.c
26SRCS+=		i810_cursor.c
27SRCS+=		i810_dga.c
28SRCS+=		i810_dri.c
29SRCS+=		i810_driver.c
30SRCS+=		i810_hwmc.c
31SRCS+=		i810_memory.c
32SRCS+=		i810_video.c
33SRCS+=		i810_wmark.c
34
35# sna
36.PATH:	${X11SRCDIR.${DRIVER}}/src/sna
37SRCS+=		blt.c
38SRCS+=		kgem.c
39SRCS+=		gen2_render.c
40SRCS+=		gen3_render.c
41SRCS+=		gen4_common.c
42SRCS+=		gen4_render.c
43SRCS+=		gen4_source.c
44SRCS+=		gen4_vertex.c
45SRCS+=		gen5_render.c
46SRCS+=		gen6_common.c
47SRCS+=		gen6_render.c
48SRCS+=		gen7_render.c
49SRCS+=		gen8_eu.c
50SRCS+=		gen8_render.c
51SRCS+=		gen8_vertex.c
52.if ${INTEL_DRIVER_DATE} > 2014
53SRCS+=		gen9_render.c
54.endif
55
56SRCS+=		sna_accel.c
57SRCS+=		sna_acpi.c
58SRCS+=		sna_blt.c
59SRCS+=		sna_composite.c
60SRCS+=		sna_cpu.c
61SRCS+=		sna_damage.c
62SRCS+=		sna_display.c
63SRCS+=		sna_display_fake.c
64SRCS+=		sna_dri2.c
65#SRCS+=		sna_dri3.c
66SRCS+=		sna_driver.c
67SRCS+=		sna_glyphs.c
68SRCS+=		sna_gradient.c
69SRCS+=		sna_io.c
70#SRCS+=		sna_present.c
71SRCS+=		sna_render.c
72SRCS+=		sna_stream.c
73SRCS+=		sna_threads.c
74SRCS+=		sna_tiling.c
75SRCS+=		sna_transform.c
76SRCS+=		sna_trapezoids.c
77SRCS+=		sna_trapezoids_boxes.c
78SRCS+=		sna_trapezoids_imprecise.c
79SRCS+=		sna_trapezoids_mono.c
80SRCS+=		sna_trapezoids_precise.c
81SRCS+=		sna_vertex.c
82SRCS+=		sna_video.c
83SRCS+=		sna_video_hwmc.c
84SRCS+=		sna_video_overlay.c
85SRCS+=		sna_video_sprite.c
86SRCS+=		sna_video_textured.c
87
88# sna/brw
89.PATH:	${X11SRCDIR.${DRIVER}}/src/sna/brw
90SRCS+=		brw_disasm.c
91SRCS+=		brw_eu.c
92SRCS+=		brw_eu_emit.c
93SRCS+=		brw_sf.c
94SRCS+=		brw_wm.c
95
96# sna/fb
97.PATH:	${X11SRCDIR.${DRIVER}}/src/sna/fb
98SRCS+=		fbarc.c
99SRCS+=		fbbitmap.c
100SRCS+=		fbblt.c
101SRCS+=		fbbltone.c
102SRCS+=		fbclip.c
103SRCS+=		fbcopy.c
104SRCS+=		fbfill.c
105SRCS+=		fbgc.c
106SRCS+=		fbglyph.c
107SRCS+=		fbimage.c
108SRCS+=		fbline.c
109SRCS+=		fbpict.c
110SRCS+=		fbpoint.c
111SRCS+=		fbpush.c
112SRCS+=		fbseg.c
113SRCS+=		fbspan.c
114SRCS+=		fbstipple.c
115SRCS+=		fbtile.c
116SRCS+=		fbutil.c
117
118# uxa
119.PATH:	${X11SRCDIR.${DRIVER}}/src/uxa
120SRCS+=		i830_3d.c
121SRCS+=		i830_render.c
122SRCS+=		i915_3d.c
123SRCS+=		i915_render.c
124SRCS+=		i915_video.c
125SRCS+=		i965_3d.c
126SRCS+=		i965_render.c
127SRCS+=		i965_video.c
128SRCS+=		intel_batchbuffer.c
129SRCS+=		intel_display.c
130SRCS+=		intel_dri.c
131SRCS+=		intel_driver.c
132SRCS+=		intel_hwmc.c
133SRCS+=		intel_memory.c
134#SRCS+=		intel_present.c
135#SRCS+=		intel_sync.c
136SRCS+=		intel_uxa.c
137SRCS+=		intel_uxa_video.c
138SRCS+=		intel_video.c
139SRCS+=		intel_video_overlay.c
140SRCS+=		uxa.c
141SRCS+=		uxa-accel.c
142SRCS+=		uxa-glyphs.c
143SRCS+=		uxa-render.c
144SRCS+=		uxa-unaccel.c
145
146MAN=		intel.4
147
148CPPFLAGS+=      -I${DESTDIR}${X11INCDIR}/X11
149CPPFLAGS+=      -I${DESTDIR}${X11INCDIR}/X11/dri
150CPPFLAGS+=      -I${DESTDIR}${X11INCDIR}/libdrm
151CPPFLAGS+=	-I${X11SRCDIR.${DRIVER}}/src
152CPPFLAGS+=	-I${X11SRCDIR.${DRIVER}}/src/render_program
153CPPFLAGS+=	-I${X11SRCDIR.${DRIVER}}/xvmc
154
155# Use the Intel-style __sync_* atomic primitives.
156
157CPPFLAGS+=	-DDEFAULT_ACCEL_METHOD=SNA
158CPPFLAGS+=	-DENABLE_XVMC=1
159CPPFLAGS+=	-DHAS_PIXMAN_GLYPHS=1
160CPPFLAGS+=	-DHAS_PIXMAN_TRIANGLES=1
161CPPFLAGS+=	-DHAVE_ATOMIC_PRIMITIVES=1
162CPPFLAGS+=	-DHAVE_CPUID_H=1
163CPPFLAGS+=	-DHAVE_DGAPROC_H=1
164CPPFLAGS+=	-DHAVE_DLFCN_H=1
165CPPFLAGS+=	-DHAVE_DRI1=1
166CPPFLAGS+=	-DHAVE_DRI2=1
167CPPFLAGS+=	-DHAVE_DRI2_H=1
168CPPFLAGS+=	-DHAVE_DRISTRUCT_H=1
169CPPFLAGS+=	-DHAVE_DRI_H=1
170CPPFLAGS+=	-DHAVE_GETLINE=1
171CPPFLAGS+=	-DHAVE_INTTYPES_H=1
172CPPFLAGS+=	-DHAVE_MEMORY_H=1
173CPPFLAGS+=	-DHAVE_SAREA_H=1
174CPPFLAGS+=	-DHAVE_STDINT_H=1
175CPPFLAGS+=	-DHAVE_STDLIB_H=1
176CPPFLAGS+=	-DHAVE_STRINGS_H=1
177CPPFLAGS+=	-DHAVE_STRING_H=1
178CPPFLAGS+=	-DHAVE_STRLCAT=1
179CPPFLAGS+=	-DHAVE_STRLCPY=1
180CPPFLAGS+=	-DHAVE_STRNDUP=1
181CPPFLAGS+=	-DHAVE_SYS_IPC_H=1
182CPPFLAGS+=	-DHAVE_SYS_STAT_H=1
183CPPFLAGS+=	-DHAVE_SYS_TYPES_H=1
184CPPFLAGS+=	-DHAVE_UNISTD_H=1
185CPPFLAGS+=	-DHAVE_VGAHW_H=1
186CPPFLAGS+=	-DKMS=1
187CPPFLAGS+=	-DSTDC_HEADERS=1
188CPPFLAGS+=	-DUMS=1
189CPPFLAGS+=	-DUSE_BACKLIGHT=1
190CPPFLAGS+=	-DUSE_SNA=1
191CPPFLAGS+=	-DUSE_UXA=1
192# XXX without this we get visual corruption, but it doesn't seem to be tearing
193CPPFLAGS+=	-DTEARFREE
194
195# XXX This should not be hard-coded here...
196DRI_DRIVER_PATH=	/usr/X11R7/lib/modules/dri
197CPPFLAGS+=		-DDRI_DRIVER_PATH=\"${DRI_DRIVER_PATH:Q}\" \
198			-DHAVE_XF86_CURSOR_RESET_CURSOR \
199			-DDEFAULT_DRI_LEVEL=2
200
201# XXX new version things:
202CPPFLAGS+=		-DHAVE_DEV_WSCONS_WSCONSIO_H
203
204# XXX Probably better to set this in Makefile.xf86-driver, conditional
205# on ELF &c.
206CFLAGS+=	-fvisibility=hidden
207
208LIBDPLIBS+=	Xfont		${.CURDIR}/../../../lib/libXfont
209LIBDPLIBS+=	drm_intel	${.CURDIR}/../../../lib/libdrm_intel
210LIBDPLIBS+=	pthread		${NETBSDSRCDIR}/lib/libpthread
211
212.include "../Makefile.xf86-driver"
213
214.if ${XORG_SERVER_SUBDIR} == "xorg-server.old"
215SRCS+=		i810_xaa.c
216.endif
217
218CWARNFLAGS.clang+=	-Wno-parentheses -Wno-tautological-compare \
219			-Wno-empty-body -Wno-error
220
221COPTS+=	-fcommon
222
223COPTS.sna_display.c+=	-Wno-stack-protector
224COPTS.sna_threads.c+=	-Wno-stack-protector
225COPTS.sna_trapezoids.c+=	-Wno-stack-protector
226COPTS.sna_trapezoids_boxes.c+=	-Wno-stack-protector
227COPTS.sna_trapezoids_imprecise.c+=	-Wno-stack-protector
228COPTS.sna_trapezoids_mono.c+=	-Wno-stack-protector
229COPTS.sna_trapezoids_precise.c+=	-Wno-stack-protector
230COPTS.i965_video.c+=	-Wno-stack-protector
231
232COPTS.sna_damage.c+=		${CC_WNO_ADDRESS_OF_PACKED_MEMBER}
233COPTS.sna_display.c+=		-Wno-error	# XXX deprecated
234COPTS.intel_driver.c+=		-Wno-error	# XXX deprecated
235