[0/5] kbuild: allow big modules to sub-divide Makefiles

Message ID 20190806063923.1266-1-yamada.masahiro@socionext.com
Headers show
  • kbuild: allow big modules to sub-divide Makefiles
Related show


Masahiro Yamada Aug. 6, 2019, 6:39 a.m.
Recently, Jani Nikula requests a better build system support
for drivers spanning multiple directories.
(better kbuild support for drivers spanning multiple directories?)

I implemented it, so please take a look at it.

The single targets do not work correctly.

The single targets have never worked correctly:

[1] For instance, "make drivers/foo/bar/baz.o" will descend into
    drivers/foo/bar/Makefile, which may not necessarily specify
    the build rule of baz.o

    It is possible for drivers/foo/Makefile having
        obj-$(CONFIG_BAZ) += bar/baz.o

[2] subdir-ccflags-y does not work.

    The single targets directly descend into the directory of
    that file resides.

    It missed subdir-ccflags-y if it is specifies in parent

Perhaps, I will have to manage correct implementation of single targets.

Masahiro Yamada (5):
  kbuild: treat an object as multi-used when $(foo-) is set
  kbuild: clean up modname calculation
  kbuild: rename cmd_ar_builtin to cmd_ar_no_sym
  kbuild: support composite objects spanning across multiple Makefiles
  drm: i915: hierachize Makefiles

 drivers/gpu/drm/i915/Makefile               | 126 ++------------------
 drivers/gpu/drm/i915/display/Makefile       |  64 ++++++++++
 drivers/gpu/drm/i915/gem/Makefile           |  27 +++++
 drivers/gpu/drm/i915/gem/selftests/Makefile |   3 +
 drivers/gpu/drm/i915/gt/Makefile            |  16 +++
 drivers/gpu/drm/i915/gvt/Makefile           |  32 ++++-
 drivers/gpu/drm/i915/selftests/Makefile     |   9 ++
 scripts/Makefile.build                      |  39 +++---
 scripts/Makefile.lib                        |  66 ++++++----
 9 files changed, 218 insertions(+), 164 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/gem/selftests/Makefile
 create mode 100644 drivers/gpu/drm/i915/selftests/Makefile