Quoting Jani Nikula (2019-04-03 11:06:36) > The below commits added dummy files to test that certain headers are > self-contained, i.e. compilable as standalone units: > > 39e2f501c1b4 ("drm/i915: Split struct intel_context definition to its own header") > 3a891a626794 ("drm/i915: Move intel_engine_mask_t around for use by i915_request_types.h") > 8b74594aa455 ("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. I knew it would work :-p > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> > Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> > --- > drivers/gpu/drm/i915/Makefile | 16 +++++--------- > drivers/gpu/drm/i915/Makefile.header-test | 21 +++++++++++++++++++ > .../i915/test_i915_active_types_standalone.c | 7 ------- > .../test_i915_gem_context_types_standalone.c | 7 ------- > .../test_i915_priolist_types_standalone.c | 7 ------- > .../test_i915_scheduler_types_standalone.c | 7 ------- > .../test_i915_timeline_types_standalone.c | 7 ------- > .../test_intel_context_types_standalone.c | 7 ------- > .../i915/test_intel_engine_types_standalone.c | 7 ------- > .../test_intel_workarounds_types_standalone.c | 7 ------- > 10 files changed, 26 insertions(+), 67 deletions(-) > create mode 100644 drivers/gpu/drm/i915/Makefile.header-test > delete mode 100644 drivers/gpu/drm/i915/test_i915_active_types_standalone.c > delete mode 100644 drivers/gpu/drm/i915/test_i915_gem_context_types_standalone.c > delete mode 100644 drivers/gpu/drm/i915/test_i915_priolist_types_standalone.c > delete mode 100644 drivers/gpu/drm/i915/test_i915_scheduler_types_standalone.c > delete mode 100644 drivers/gpu/drm/i915/test_i915_timeline_types_standalone.c > delete mode 100644 drivers/gpu/drm/i915/test_intel_context_types_standalone.c > delete mode 100644 drivers/gpu/drm/i915/test_intel_engine_types_standalone.c > delete mode 100644 drivers/gpu/drm/i915/test_intel_workarounds_types_standalone.c > > diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile > index 30bf33..dba77b 100644 > --- a/drivers/gpu/drm/i915/Makefile > +++ b/drivers/gpu/drm/i915/Makefile > @@ -57,17 +57,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 \ > @@ -218,3 +207,8 @@ i915-y += intel_lpe_audio.o > > obj-$(CONFIG_DRM_I915) += i915.o > obj-$(CONFIG_DRM_I915_GVT_KVMGT) += gvt/kvmgt.o > + > +# Extra header tests > +ifeq ($(CONFIG_DRM_I915_WERROR),y) > +include $(src)/Makefile.header-test > +endif Can we get the headers tested first? Fixing the standalone tests is a lot easier than traversing the dependency chain of includes in a regular compile file. > diff --git a/drivers/gpu/drm/i915/Makefile.header-test b/drivers/gpu/drm/i915/Makefile.header-test > new file mode 100644 > index 000000..0cae6e3 > --- /dev/null > +++ b/drivers/gpu/drm/i915/Makefile.header-test > @@ -0,0 +1,21 @@ > +# SPDX-License-Identifier: MIT > +# Copyright © 2019 Intel Corporation > + > +# Test the headers are compilable as standalone units > + > +quiet_cmd_header_test = HDRTEST $@ > + cmd_header_test = echo "\#include \"$(<F)\"" > $@ > + > +header_test_%.c: %.h > + $(call cmd,header_test) > + > +# To test <base>.h add header_test_<base>.o here > +extra-y += \ > + header_test_i915_active_types.o \ > + header_test_i915_gem_context_types.o \ > + header_test_i915_priolist_types.o \ > + header_test_i915_scheduler_types.o \ > + header_test_i915_timeline_types.o \ > + header_test_intel_context_types.o \ > + header_test_intel_engine_types.o \ > + header_test_intel_workarounds_types.o Should there be a way to add the autogenerated files to make clean? -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx