mbox series

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

Message ID 20190806063923.1266-1-yamada.masahiro@socionext.com (mailing list archive)
Headers show
Series kbuild: allow big modules to sub-divide Makefiles | expand

Message

Masahiro Yamada Aug. 6, 2019, 6:39 a.m. UTC
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.

Note:
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
    Makefiles.

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

Comments

Sam Ravnborg Aug. 10, 2019, 6:46 a.m. UTC | #1
Hi Masahiro

On Tue, Aug 06, 2019 at 03:39:18PM +0900, Masahiro Yamada wrote:
> 
> 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.
> 
> Note:
> The single targets do not work correctly.
> 
> The single targets have never worked correctly:

It works in most cases, but now always.
I dunno how much it is used.
Myself I almost always do make /drivers/foo/bar/
> 
> [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
>     Makefiles.
> 
> Perhaps, I will have to manage correct implementation of single targets.
The day that kbuild has a separate step to read all Makefiles
and then without using recursive make can build the kernel we can have
this fixed.
Until then we can accpet it as is - as fixing this may not be simple.

	Sam