From: Masahiro Yamada <masahiroy@kernel.org>
To: Michal Suchanek <msuchanek@suse.de>
Cc: Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>,
Michal Marek <michal.lkml@markovi.net>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] Revert "kbuild: merge scripts/mkmakefile to top Makefile"
Date: Thu, 27 May 2021 03:56:41 +0900 [thread overview]
Message-ID: <CAK7LNASEqKwQeLPXedyut+ykSJGPuq3CO1g_fS=sVDaZrwBPBQ@mail.gmail.com> (raw)
In-Reply-To: <20210526173855.5963-1-msuchanek@suse.de>
On Thu, May 27, 2021 at 2:39 AM Michal Suchanek <msuchanek@suse.de> wrote:
>
> This reverts commit 243b50c141d71fcf7b88e94474b3b9269f0b1f9d.
>
> When packaging the kernel it is built in different place from the one in
> which it will be installed. After build the makefile needs to be
> regenerated with the target location but with mkmakefile merged into
> Makefile tehre is no way to do that.
>
> Signed-off-by: Michal Suchanek <msuchanek@suse.de>
My patch was not working as expected
regardless of packaging.
Does the following fix-up work for you?
diff --git a/Makefile b/Makefile
index 54bb019a7da3..504327207d66 100644
--- a/Makefile
+++ b/Makefile
@@ -552,16 +552,13 @@ ifdef building_out_of_srctree
# At the same time when output Makefile generated, generate .gitignore to
# ignore whole output directory
-quiet_cmd_makefile = GEN $@
+quiet_cmd_makefile = GEN Makefile
cmd_makefile = { \
echo "\# Automatically generated by $(srctree)/Makefile: don't edit"; \
echo "include $(srctree)/Makefile"; \
- } > $@
+ } > Makefile
-Makefile: FORCE
- $(call cmd,makefile)
-
-outputmakefile: Makefile
+outputmakefile:
$(Q)if [ -f $(srctree)/.config -o \
-d $(srctree)/include/config -o \
-d $(srctree)/arch/$(SRCARCH)/include/generated ]; then \
@@ -572,6 +569,7 @@ outputmakefile: Makefile
false; \
fi
$(Q)ln -fsn $(srctree) source
+ $(call cmd,makefile)
$(Q)test -e .gitignore || \
{ echo "# this is build directory, ignore it"; echo "*"; } > .gitignore
endif
> ---
> Makefile | 15 +++------------
> scripts/mkmakefile | 17 +++++++++++++++++
> 2 files changed, 20 insertions(+), 12 deletions(-)
> create mode 100755 scripts/mkmakefile
>
> diff --git a/Makefile b/Makefile
> index 58b086b30144..462899c1b5d7 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -573,24 +573,14 @@ scripts_basic:
> $(Q)rm -f .tmp_quiet_recordmcount
>
> PHONY += outputmakefile
> -ifdef building_out_of_srctree
> # Before starting out-of-tree build, make sure the source tree is clean.
> # outputmakefile generates a Makefile in the output directory, if using a
> # separate output directory. This allows convenient use of make in the
> # output directory.
> # At the same time when output Makefile generated, generate .gitignore to
> # ignore whole output directory
> -
> -quiet_cmd_makefile = GEN $@
> - cmd_makefile = { \
> - echo "\# Automatically generated by $(srctree)/Makefile: don't edit"; \
> - echo "include $(srctree)/Makefile"; \
> - } > $@
> -
> -Makefile: FORCE
> - $(call cmd,makefile)
> -
> -outputmakefile: Makefile
> +outputmakefile:
> +ifdef building_out_of_srctree
> $(Q)if [ -f $(srctree)/.config -o \
> -d $(srctree)/include/config -o \
> -d $(srctree)/arch/$(SRCARCH)/include/generated ]; then \
> @@ -601,6 +591,7 @@ outputmakefile: Makefile
> false; \
> fi
> $(Q)ln -fsn $(srctree) source
> + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile $(srctree)
> $(Q)test -e .gitignore || \
> { echo "# this is build directory, ignore it"; echo "*"; } > .gitignore
> endif
> diff --git a/scripts/mkmakefile b/scripts/mkmakefile
> new file mode 100755
> index 000000000000..1cb174751429
> --- /dev/null
> +++ b/scripts/mkmakefile
> @@ -0,0 +1,17 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0
> +# Generates a small Makefile used in the root of the output
> +# directory, to allow make to be started from there.
> +# The Makefile also allow for more convinient build of external modules
> +
> +# Usage
> +# $1 - Kernel src directory
> +
> +if [ "${quiet}" != "silent_" ]; then
> + echo " GEN Makefile"
> +fi
> +
> +cat << EOF > Makefile
> +# Automatically generated by $0: don't edit
> +include $1/Makefile
> +EOF
> --
> 2.26.2
>
--
Best Regards
Masahiro Yamada
next prev parent reply other threads:[~2021-05-26 18:57 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-26 17:38 [PATCH] Revert "kbuild: merge scripts/mkmakefile to top Makefile" Michal Suchanek
2021-05-26 18:56 ` Masahiro Yamada [this message]
2021-05-26 20:28 ` Michal Suchánek
2021-05-28 17:15 ` Masahiro Yamada
2021-05-29 5:35 ` Michal Suchánek
2021-06-02 9:45 ` Masahiro Yamada
2021-06-02 10:03 ` Michal Suchánek
2021-06-02 15:44 ` Masahiro Yamada
2021-06-02 17:59 ` Michal Suchánek
2021-06-02 18:35 ` Masahiro Yamada
2021-06-17 7:57 ` Michal Suchánek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAK7LNASEqKwQeLPXedyut+ykSJGPuq3CO1g_fS=sVDaZrwBPBQ@mail.gmail.com' \
--to=masahiroy@kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michal.lkml@markovi.net \
--cc=msuchanek@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.