2013-07-16 18:30:06

by Jim Baxter

[permalink] [raw]
Subject: [RFC] kbuild: Build samples directory with make modules

If CONFIG_SAMPLES is enabled with any of the sample
modules enabled, they are only built if the make command
includes uImage and modules (i.e. make uImage modules).

This patches allows the kernel and modules to be built
separately, this is how openembedded and yocto build
the kernel.

Signed-off-by: Jim Baxter <[email protected]>
---
Makefile | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index 29339b4..1acd69f 100644
--- a/Makefile
+++ b/Makefile
@@ -772,9 +772,6 @@ vmlinux: scripts/link-vmlinux.sh $(vmlinux-deps) FORCE
ifdef CONFIG_HEADERS_CHECK
$(Q)$(MAKE) -f $(srctree)/Makefile headers_check
endif
-ifdef CONFIG_SAMPLES
- $(Q)$(MAKE) $(build)=samples
-endif
ifdef CONFIG_BUILD_DOCSRC
$(Q)$(MAKE) $(build)=Documentation
endif
@@ -943,6 +940,9 @@ all: modules

PHONY += modules
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
+ifdef CONFIG_SAMPLES
+ $(Q)$(MAKE) $(build)=samples
+endif
$(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
@$(kecho) ' Building modules, stage 2.';
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
--
1.7.10.4


2013-07-16 19:37:19

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [RFC] kbuild: Build samples directory with make modules

On Tue, Jul 16, 2013 at 07:29:50PM +0100, Jim Baxter wrote:
> If CONFIG_SAMPLES is enabled with any of the sample
> modules enabled, they are only built if the make command
> includes uImage and modules (i.e. make uImage modules).

With the current location samples are built when you build vmlinux.
And vmlinux is implicit when you just type "make".

With the suggestion you have samples are built when you do "make modules".
IMO this is less logical than to built them with vmlinux as we do today.

Sam

2013-07-16 21:15:51

by Jim Baxter

[permalink] [raw]
Subject: Re: [RFC] kbuild: Build samples directory with make modules

On 16/07/13 20:37, Sam Ravnborg wrote:
> On Tue, Jul 16, 2013 at 07:29:50PM +0100, Jim Baxter wrote:
>> If CONFIG_SAMPLES is enabled with any of the sample
>> modules enabled, they are only built if the make command
>> includes uImage and modules (i.e. make uImage modules).
>
> With the current location samples are built when you build vmlinux.
> And vmlinux is implicit when you just type "make".
>
> With the suggestion you have samples are built when you do "make modules".
> IMO this is less logical than to built them with vmlinux as we do today.
>
> Sam
>

Hi,

I am building it with:
make uImage
make modules

At least bitbake in Yocto and Openembedded is.

Running make on it's own is the equivalent of:
make vmlinux modules

which builds the samples directory, however if you run:
make vmlinux
make modules

Then the Samples are not built, that is what I am trying to fix.

Thank you,
Jim