Commit c2400ec3 authored by Jani Nikula's avatar Jani Nikula
Browse files

drm/i915: add Makefile magic for testing headers are self-contained



The below commits added dummy files to test that certain headers are
self-contained, i.e. compilable as standalone units:

39e2f501 ("drm/i915: Split struct intel_context definition to its own header")
3a891a62 ("drm/i915: Move intel_engine_mask_t around for use by i915_request_types.h")
8b74594a ("drm/i915: Split out i915_priolist_types into its own header")

The idea is fine, but the implementation is a bit tedious and
inflexible, and does not really scale well.

Implement the same in make using autogenerated dummy sources to include
the headers.

v2 by Chris:
- Use patsubst
- Add .gitignore
- Add clean-files for generated dummy sources

v3 by Jani:
- Fix make clean
- Add the tests to i915-y instead of extra-y

v4 by Jani:
- quiet_cmd whitespace fix

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190403135236.8398-1-jani.nikula@intel.com
parent 8fb44c1d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
header_test_*.c
+4 −12
Original line number Diff line number Diff line
@@ -32,10 +32,13 @@ CFLAGS_intel_fbdev.o = $(call cc-disable-warning, override-init)
subdir-ccflags-y += \
	$(call as-instr,movntdqa (%eax)$(comma)%xmm0,-DCONFIG_AS_MOVNTDQA)

# Extra header tests
include $(src)/Makefile.header-test

# Please keep these build lists sorted!

# core driver code
i915-y := i915_drv.o \
i915-y += i915_drv.o \
	  i915_irq.o \
	  i915_memcpy.o \
	  i915_mm.o \
@@ -57,17 +60,6 @@ i915-$(CONFIG_COMPAT) += i915_ioc32.o
i915-$(CONFIG_DEBUG_FS) += i915_debugfs.o intel_pipe_crc.o
i915-$(CONFIG_PERF_EVENTS) += i915_pmu.o

# Test the headers are compilable as standalone units
i915-$(CONFIG_DRM_I915_WERROR) += \
	test_i915_active_types_standalone.o \
	test_i915_gem_context_types_standalone.o \
	test_i915_priolist_types_standalone.o \
	test_i915_scheduler_types_standalone.o \
	test_i915_timeline_types_standalone.o \
	test_intel_context_types_standalone.o \
	test_intel_engine_types_standalone.o \
	test_intel_workarounds_types_standalone.o

# GEM code
i915-y += \
	  i915_active.o \
+23 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: MIT
# Copyright © 2019 Intel Corporation

# Test the headers are compilable as standalone units
header_test := \
	i915_active_types.h \
	i915_gem_context_types.h \
	i915_priolist_types.h \
	i915_scheduler_types.h \
	i915_timeline_types.h \
	intel_context_types.h \
	intel_engine_types.h \
	intel_workarounds_types.h

quiet_cmd_header_test = HDRTEST $@
      cmd_header_test = echo "\#include \"$(<F)\"" > $@

header_test_%.c: %.h
	$(call cmd,header_test)

i915-$(CONFIG_DRM_I915_WERROR) += $(foreach h,$(header_test),$(patsubst %.h,header_test_%.o,$(h)))

clean-files += $(foreach h,$(header_test),$(patsubst %.h,header_test_%.c,$(h)))
+0 −7
Original line number Diff line number Diff line
/*
 * SPDX-License-Identifier: MIT
 *
 * Copyright © 2019 Intel Corporation
 */

#include "i915_active_types.h"
+0 −7
Original line number Diff line number Diff line
/*
 * SPDX-License-Identifier: MIT
 *
 * Copyright © 2019 Intel Corporation
 */

#include "i915_gem_context_types.h"
Loading