Makefile revision 1.3 1 1.3 riastrad # SPDX-License-Identifier: GPL-2.0
2 1.1 riastrad #
3 1.1 riastrad # Makefile for the drm device driver. This driver provides support for the
4 1.1 riastrad # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
5 1.1 riastrad
6 1.3 riastrad # Add a set of useful warning flags and enable -Werror for CI to prevent
7 1.3 riastrad # trivial mistakes from creeping in. We have to do this piecemeal as we reject
8 1.3 riastrad # any patch that isn't warning clean, so turning on -Wall -Wextra (or W=1) we
9 1.3 riastrad # need to filter out dubious warnings. Still it is our interest
10 1.3 riastrad # to keep running locally with W=1 C=1 until we are completely clean.
11 1.3 riastrad #
12 1.3 riastrad # Note the danger in using -Wall -Wextra is that when CI updates gcc we
13 1.3 riastrad # will most likely get a sudden build breakage... Hopefully we will fix
14 1.3 riastrad # new warnings before CI updates!
15 1.3 riastrad subdir-ccflags-y := -Wall -Wextra
16 1.3 riastrad subdir-ccflags-y += $(call cc-disable-warning, unused-parameter)
17 1.3 riastrad subdir-ccflags-y += $(call cc-disable-warning, type-limits)
18 1.3 riastrad subdir-ccflags-y += $(call cc-disable-warning, missing-field-initializers)
19 1.3 riastrad subdir-ccflags-y += $(call cc-disable-warning, unused-but-set-variable)
20 1.3 riastrad # clang warnings
21 1.3 riastrad subdir-ccflags-y += $(call cc-disable-warning, sign-compare)
22 1.3 riastrad subdir-ccflags-y += $(call cc-disable-warning, sometimes-uninitialized)
23 1.3 riastrad subdir-ccflags-y += $(call cc-disable-warning, initializer-overrides)
24 1.3 riastrad subdir-ccflags-y += $(call cc-disable-warning, uninitialized)
25 1.3 riastrad subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror
26 1.3 riastrad
27 1.3 riastrad # Fine grained warnings disable
28 1.3 riastrad CFLAGS_i915_pci.o = $(call cc-disable-warning, override-init)
29 1.3 riastrad CFLAGS_display/intel_fbdev.o = $(call cc-disable-warning, override-init)
30 1.3 riastrad
31 1.3 riastrad subdir-ccflags-y += \
32 1.3 riastrad $(call as-instr,movntdqa (%eax)$(comma)%xmm0,-DCONFIG_AS_MOVNTDQA)
33 1.3 riastrad
34 1.3 riastrad subdir-ccflags-y += -I$(srctree)/$(src)
35 1.3 riastrad
36 1.2 riastrad # Please keep these build lists sorted!
37 1.2 riastrad
38 1.2 riastrad # core driver code
39 1.3 riastrad i915-y += i915_drv.o \
40 1.2 riastrad i915_irq.o \
41 1.3 riastrad i915_getparam.o \
42 1.2 riastrad i915_params.o \
43 1.3 riastrad i915_pci.o \
44 1.3 riastrad i915_scatterlist.o \
45 1.3 riastrad i915_suspend.o \
46 1.3 riastrad i915_switcheroo.o \
47 1.2 riastrad i915_sysfs.o \
48 1.3 riastrad i915_utils.o \
49 1.2 riastrad intel_csr.o \
50 1.3 riastrad intel_device_info.o \
51 1.3 riastrad intel_memory_region.o \
52 1.3 riastrad intel_pch.o \
53 1.2 riastrad intel_pm.o \
54 1.3 riastrad intel_runtime_pm.o \
55 1.3 riastrad intel_sideband.o \
56 1.3 riastrad intel_uncore.o \
57 1.3 riastrad intel_wakeref.o
58 1.3 riastrad
59 1.3 riastrad # core library code
60 1.3 riastrad i915-y += \
61 1.3 riastrad i915_memcpy.o \
62 1.3 riastrad i915_mm.o \
63 1.3 riastrad i915_sw_fence.o \
64 1.3 riastrad i915_sw_fence_work.o \
65 1.3 riastrad i915_syncmap.o \
66 1.3 riastrad i915_user_extensions.o
67 1.2 riastrad
68 1.2 riastrad i915-$(CONFIG_COMPAT) += i915_ioc32.o
69 1.3 riastrad i915-$(CONFIG_DEBUG_FS) += i915_debugfs.o display/intel_pipe_crc.o
70 1.3 riastrad i915-$(CONFIG_PERF_EVENTS) += i915_pmu.o
71 1.2 riastrad
72 1.3 riastrad # "Graphics Technology" (aka we talk to the gpu)
73 1.3 riastrad gt-y += \
74 1.3 riastrad gt/debugfs_engines.o \
75 1.3 riastrad gt/debugfs_gt.o \
76 1.3 riastrad gt/debugfs_gt_pm.o \
77 1.3 riastrad gt/gen6_ppgtt.o \
78 1.3 riastrad gt/gen8_ppgtt.o \
79 1.3 riastrad gt/intel_breadcrumbs.o \
80 1.3 riastrad gt/intel_context.o \
81 1.3 riastrad gt/intel_engine_cs.o \
82 1.3 riastrad gt/intel_engine_heartbeat.o \
83 1.3 riastrad gt/intel_engine_pm.o \
84 1.3 riastrad gt/intel_engine_pool.o \
85 1.3 riastrad gt/intel_engine_user.o \
86 1.3 riastrad gt/intel_ggtt.o \
87 1.3 riastrad gt/intel_gt.o \
88 1.3 riastrad gt/intel_gt_irq.o \
89 1.3 riastrad gt/intel_gt_pm.o \
90 1.3 riastrad gt/intel_gt_pm_irq.o \
91 1.3 riastrad gt/intel_gt_requests.o \
92 1.3 riastrad gt/intel_gtt.o \
93 1.3 riastrad gt/intel_llc.o \
94 1.3 riastrad gt/intel_lrc.o \
95 1.3 riastrad gt/intel_mocs.o \
96 1.3 riastrad gt/intel_ppgtt.o \
97 1.3 riastrad gt/intel_rc6.o \
98 1.3 riastrad gt/intel_renderstate.o \
99 1.3 riastrad gt/intel_reset.o \
100 1.3 riastrad gt/intel_ring.o \
101 1.3 riastrad gt/intel_ring_submission.o \
102 1.3 riastrad gt/intel_rps.o \
103 1.3 riastrad gt/intel_sseu.o \
104 1.3 riastrad gt/intel_timeline.o \
105 1.3 riastrad gt/intel_workarounds.o
106 1.3 riastrad # autogenerated null render state
107 1.3 riastrad gt-y += \
108 1.3 riastrad gt/gen6_renderstate.o \
109 1.3 riastrad gt/gen7_renderstate.o \
110 1.3 riastrad gt/gen8_renderstate.o \
111 1.3 riastrad gt/gen9_renderstate.o
112 1.3 riastrad i915-y += $(gt-y)
113 1.3 riastrad
114 1.3 riastrad # GEM (Graphics Execution Management) code
115 1.3 riastrad gem-y += \
116 1.3 riastrad gem/i915_gem_busy.o \
117 1.3 riastrad gem/i915_gem_clflush.o \
118 1.3 riastrad gem/i915_gem_client_blt.o \
119 1.3 riastrad gem/i915_gem_context.o \
120 1.3 riastrad gem/i915_gem_dmabuf.o \
121 1.3 riastrad gem/i915_gem_domain.o \
122 1.3 riastrad gem/i915_gem_execbuffer.o \
123 1.3 riastrad gem/i915_gem_fence.o \
124 1.3 riastrad gem/i915_gem_internal.o \
125 1.3 riastrad gem/i915_gem_object.o \
126 1.3 riastrad gem/i915_gem_object_blt.o \
127 1.3 riastrad gem/i915_gem_lmem.o \
128 1.3 riastrad gem/i915_gem_mman.o \
129 1.3 riastrad gem/i915_gem_pages.o \
130 1.3 riastrad gem/i915_gem_phys.o \
131 1.3 riastrad gem/i915_gem_pm.o \
132 1.3 riastrad gem/i915_gem_region.o \
133 1.3 riastrad gem/i915_gem_shmem.o \
134 1.3 riastrad gem/i915_gem_shrinker.o \
135 1.3 riastrad gem/i915_gem_stolen.o \
136 1.3 riastrad gem/i915_gem_throttle.o \
137 1.3 riastrad gem/i915_gem_tiling.o \
138 1.3 riastrad gem/i915_gem_userptr.o \
139 1.3 riastrad gem/i915_gem_wait.o \
140 1.3 riastrad gem/i915_gemfs.o
141 1.3 riastrad i915-y += \
142 1.3 riastrad $(gem-y) \
143 1.3 riastrad i915_active.o \
144 1.3 riastrad i915_buddy.o \
145 1.3 riastrad i915_cmd_parser.o \
146 1.1 riastrad i915_gem_evict.o \
147 1.3 riastrad i915_gem_fence_reg.o \
148 1.1 riastrad i915_gem_gtt.o \
149 1.2 riastrad i915_gem.o \
150 1.3 riastrad i915_globals.o \
151 1.3 riastrad i915_query.o \
152 1.3 riastrad i915_request.o \
153 1.3 riastrad i915_scheduler.o \
154 1.1 riastrad i915_trace_points.o \
155 1.3 riastrad i915_vma.o \
156 1.3 riastrad intel_region_lmem.o \
157 1.3 riastrad intel_wopcm.o
158 1.2 riastrad
159 1.2 riastrad # general-purpose microcontroller (GuC) support
160 1.3 riastrad i915-y += gt/uc/intel_uc.o \
161 1.3 riastrad gt/uc/intel_uc_fw.o \
162 1.3 riastrad gt/uc/intel_guc.o \
163 1.3 riastrad gt/uc/intel_guc_ads.o \
164 1.3 riastrad gt/uc/intel_guc_ct.o \
165 1.3 riastrad gt/uc/intel_guc_fw.o \
166 1.3 riastrad gt/uc/intel_guc_log.o \
167 1.3 riastrad gt/uc/intel_guc_submission.o \
168 1.3 riastrad gt/uc/intel_huc.o \
169 1.3 riastrad gt/uc/intel_huc_fw.o
170 1.2 riastrad
171 1.2 riastrad # modesetting core code
172 1.3 riastrad i915-y += \
173 1.3 riastrad display/intel_atomic.o \
174 1.3 riastrad display/intel_atomic_plane.o \
175 1.3 riastrad display/intel_audio.o \
176 1.3 riastrad display/intel_bios.o \
177 1.3 riastrad display/intel_bw.o \
178 1.3 riastrad display/intel_cdclk.o \
179 1.3 riastrad display/intel_color.o \
180 1.3 riastrad display/intel_combo_phy.o \
181 1.3 riastrad display/intel_connector.o \
182 1.3 riastrad display/intel_display.o \
183 1.3 riastrad display/intel_display_power.o \
184 1.3 riastrad display/intel_dpio_phy.o \
185 1.3 riastrad display/intel_dpll_mgr.o \
186 1.3 riastrad display/intel_dsb.o \
187 1.3 riastrad display/intel_fbc.o \
188 1.3 riastrad display/intel_fifo_underrun.o \
189 1.3 riastrad display/intel_frontbuffer.o \
190 1.3 riastrad display/intel_hdcp.o \
191 1.3 riastrad display/intel_hotplug.o \
192 1.3 riastrad display/intel_lpe_audio.o \
193 1.3 riastrad display/intel_overlay.o \
194 1.3 riastrad display/intel_psr.o \
195 1.3 riastrad display/intel_quirks.o \
196 1.3 riastrad display/intel_sprite.o \
197 1.3 riastrad display/intel_tc.o \
198 1.3 riastrad display/intel_vga.o
199 1.3 riastrad i915-$(CONFIG_ACPI) += \
200 1.3 riastrad display/intel_acpi.o \
201 1.3 riastrad display/intel_opregion.o
202 1.3 riastrad i915-$(CONFIG_DRM_FBDEV_EMULATION) += \
203 1.3 riastrad display/intel_fbdev.o
204 1.2 riastrad
205 1.2 riastrad # modesetting output/encoder code
206 1.3 riastrad i915-y += \
207 1.3 riastrad display/dvo_ch7017.o \
208 1.3 riastrad display/dvo_ch7xxx.o \
209 1.3 riastrad display/dvo_ivch.o \
210 1.3 riastrad display/dvo_ns2501.o \
211 1.3 riastrad display/dvo_sil164.o \
212 1.3 riastrad display/dvo_tfp410.o \
213 1.3 riastrad display/icl_dsi.o \
214 1.3 riastrad display/intel_crt.o \
215 1.3 riastrad display/intel_ddi.o \
216 1.3 riastrad display/intel_dp.o \
217 1.3 riastrad display/intel_dp_aux_backlight.o \
218 1.3 riastrad display/intel_dp_link_training.o \
219 1.3 riastrad display/intel_dp_mst.o \
220 1.3 riastrad display/intel_dsi.o \
221 1.3 riastrad display/intel_dsi_dcs_backlight.o \
222 1.3 riastrad display/intel_dsi_vbt.o \
223 1.3 riastrad display/intel_dvo.o \
224 1.3 riastrad display/intel_gmbus.o \
225 1.3 riastrad display/intel_hdmi.o \
226 1.3 riastrad display/intel_lspcon.o \
227 1.3 riastrad display/intel_lvds.o \
228 1.3 riastrad display/intel_panel.o \
229 1.3 riastrad display/intel_sdvo.o \
230 1.3 riastrad display/intel_tv.o \
231 1.3 riastrad display/intel_vdsc.o \
232 1.3 riastrad display/vlv_dsi.o \
233 1.3 riastrad display/vlv_dsi_pll.o
234 1.3 riastrad
235 1.3 riastrad # perf code
236 1.3 riastrad i915-y += \
237 1.3 riastrad oa/i915_oa_hsw.o \
238 1.3 riastrad oa/i915_oa_bdw.o \
239 1.3 riastrad oa/i915_oa_chv.o \
240 1.3 riastrad oa/i915_oa_sklgt2.o \
241 1.3 riastrad oa/i915_oa_sklgt3.o \
242 1.3 riastrad oa/i915_oa_sklgt4.o \
243 1.3 riastrad oa/i915_oa_bxt.o \
244 1.3 riastrad oa/i915_oa_kblgt2.o \
245 1.3 riastrad oa/i915_oa_kblgt3.o \
246 1.3 riastrad oa/i915_oa_glk.o \
247 1.3 riastrad oa/i915_oa_cflgt2.o \
248 1.3 riastrad oa/i915_oa_cflgt3.o \
249 1.3 riastrad oa/i915_oa_cnl.o \
250 1.3 riastrad oa/i915_oa_icl.o \
251 1.3 riastrad oa/i915_oa_tgl.o
252 1.3 riastrad i915-y += i915_perf.o
253 1.3 riastrad
254 1.3 riastrad # Post-mortem debug and GPU hang state capture
255 1.3 riastrad i915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o
256 1.3 riastrad i915-$(CONFIG_DRM_I915_SELFTEST) += \
257 1.3 riastrad gem/selftests/igt_gem_utils.o \
258 1.3 riastrad selftests/i915_random.o \
259 1.3 riastrad selftests/i915_selftest.o \
260 1.3 riastrad selftests/igt_atomic.o \
261 1.3 riastrad selftests/igt_flush_test.o \
262 1.3 riastrad selftests/igt_live_test.o \
263 1.3 riastrad selftests/igt_mmap.o \
264 1.3 riastrad selftests/igt_reset.o \
265 1.3 riastrad selftests/igt_spinner.o
266 1.1 riastrad
267 1.2 riastrad # virtual gpu code
268 1.2 riastrad i915-y += i915_vgpu.o
269 1.1 riastrad
270 1.3 riastrad ifeq ($(CONFIG_DRM_I915_GVT),y)
271 1.3 riastrad i915-y += intel_gvt.o
272 1.3 riastrad include $(src)/gvt/Makefile
273 1.3 riastrad endif
274 1.3 riastrad
275 1.3 riastrad obj-$(CONFIG_DRM_I915) += i915.o
276 1.3 riastrad obj-$(CONFIG_DRM_I915_GVT_KVMGT) += gvt/kvmgt.o
277 1.3 riastrad
278 1.3 riastrad # header test
279 1.3 riastrad
280 1.3 riastrad # exclude some broken headers from the test coverage
281 1.3 riastrad no-header-test := \
282 1.3 riastrad display/intel_vbt_defs.h \
283 1.3 riastrad gvt/execlist.h \
284 1.3 riastrad gvt/fb_decoder.h \
285 1.3 riastrad gvt/gtt.h \
286 1.3 riastrad gvt/gvt.h \
287 1.3 riastrad gvt/interrupt.h \
288 1.3 riastrad gvt/mmio_context.h \
289 1.3 riastrad gvt/mpt.h \
290 1.3 riastrad gvt/scheduler.h
291 1.3 riastrad
292 1.3 riastrad extra-$(CONFIG_DRM_I915_WERROR) += \
293 1.3 riastrad $(patsubst %.h,%.hdrtest, $(filter-out $(no-header-test), \
294 1.3 riastrad $(shell cd $(srctree)/$(src) && find * -name '*.h')))
295 1.1 riastrad
296 1.3 riastrad quiet_cmd_hdrtest = HDRTEST $(patsubst %.hdrtest,%.h,$@)
297 1.3 riastrad cmd_hdrtest = $(CC) $(c_flags) -S -o /dev/null -x c /dev/null -include $<; touch $@
298 1.1 riastrad
299 1.3 riastrad $(obj)/%.hdrtest: $(src)/%.h FORCE
300 1.3 riastrad $(call if_changed_dep,hdrtest)
301