rust-for-linux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Masahiro Yamada <masahiroy@kernel.org>
To: linux-kbuild@vger.kernel.org
Cc: Miguel Ojeda <ojeda@kernel.org>,
	rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org,
	Nathan Chancellor <nathan@kernel.org>,
	Nicolas Schier <nicolas@fjasle.eu>,
	Masahiro Yamada <masahiroy@kernel.org>
Subject: [PATCH 10/23] kbuild: refactor the check for missing config files
Date: Tue, 17 Sep 2024 23:16:38 +0900	[thread overview]
Message-ID: <20240917141725.466514-11-masahiroy@kernel.org> (raw)
In-Reply-To: <20240917141725.466514-1-masahiroy@kernel.org>

This commit refactors the check for missing configuration files, making
it easier to add more files to the list.

The format of the error message has been slightly changed, as follows:

[Before]

    ERROR: Kernel configuration is invalid.
           include/generated/autoconf.h or include/config/auto.conf are missing.
           Run 'make oldconfig && make prepare' on kernel src to fix it.

[After]

  ***
  ***  ERROR: Kernel configuration is invalid. The following files are missing:
  ***    - include/generated/autoconf.h
  ***    - include/config/auto.conf
  ***  Run "make oldconfig && make prepare" on kernel source to fix it.
  ***

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

 Makefile | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/Makefile b/Makefile
index 4992b2895dd5..3f5c273c2901 100644
--- a/Makefile
+++ b/Makefile
@@ -778,17 +778,22 @@ $(KCONFIG_CONFIG):
 else # !may-sync-config
 # External modules and some install targets need include/generated/autoconf.h
 # and include/config/auto.conf but do not care if they are up-to-date.
-# Use auto.conf to trigger the test
+# Use auto.conf to show the error message
+
+checked-configs := include/generated/autoconf.h include/config/auto.conf
+missing-configs := $(filter-out $(wildcard $(checked-configs)), $(checked-configs))
+
+ifdef missing-configs
 PHONY += include/config/auto.conf
 
 include/config/auto.conf:
-	@test -e include/generated/autoconf.h -a -e $@ || (		\
-	echo >&2;							\
-	echo >&2 "  ERROR: Kernel configuration is invalid.";		\
-	echo >&2 "         include/generated/autoconf.h or $@ are missing.";\
-	echo >&2 "         Run 'make oldconfig && make prepare' on kernel src to fix it.";	\
-	echo >&2 ;							\
-	/bin/false)
+	@echo   >&2 '***'
+	@echo   >&2 '***  ERROR: Kernel configuration is invalid. The following files are missing:'
+	@printf >&2 '***    - %s\n' $(missing-configs)
+	@echo   >&2 '***  Run "make oldconfig && make prepare" on kernel source to fix it.'
+	@echo   >&2 '***'
+	@/bin/false
+endif
 
 endif # may-sync-config
 endif # need-config
-- 
2.43.0


  parent reply	other threads:[~2024-09-17 14:17 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-17 14:16 [PATCH 00/23] kbuild: support building external modules in a separate build directory Masahiro Yamada
2024-09-17 14:16 ` [PATCH 01/23] kbuild: doc: update the description about Kbuild/Makefile split Masahiro Yamada
2024-09-18 15:35   ` Nicolas Schier
2024-09-17 14:16 ` [PATCH 02/23] kbuild: doc: remove description about grepping CONFIG options Masahiro Yamada
2024-09-18 15:35   ` Nicolas Schier
2024-09-17 14:16 ` [PATCH 03/23] kbuild: doc: remove outdated description of the limitation on -I usage Masahiro Yamada
2024-09-18 15:38   ` Nicolas Schier
2024-09-17 14:16 ` [PATCH 04/23] kbuild: doc: remove the description about shipped files Masahiro Yamada
2024-09-18 16:24   ` Nicolas Schier
2024-09-19 16:53     ` Masahiro Yamada
2024-09-17 14:16 ` [PATCH 05/23] kbuild: doc: describe the -C option precisely for external module builds Masahiro Yamada
2024-09-18 16:44   ` Nicolas Schier
2024-09-18 16:47   ` Nicolas Schier
2024-09-17 14:16 ` [PATCH 06/23] kbuild: doc: replace "gcc" in external module description Masahiro Yamada
2024-09-19 11:22   ` Nicolas Schier
2024-09-17 14:16 ` [PATCH 07/23] kbuild: remove unnecessary prune of rust/alloc for rustfmt Masahiro Yamada
2024-09-19 11:23   ` Nicolas Schier
2024-09-19 13:46     ` Nicolas Schier
2024-09-30 14:29       ` Miguel Ojeda
2024-09-17 14:16 ` [PATCH 08/23] kbuild: simplify find command " Masahiro Yamada
2024-09-19 13:54   ` Nicolas Schier
2024-09-19 13:59     ` Masahiro Yamada
2024-09-30 18:37   ` Miguel Ojeda
2024-10-01  2:18     ` Masahiro Yamada
2024-10-01  5:45       ` Miguel Ojeda
2024-09-17 14:16 ` [PATCH 09/23] speakup: use SPKDIR=$(src) to specify the source directory Masahiro Yamada
2024-10-03 18:25   ` Nicolas Schier
2024-09-17 14:16 ` Masahiro Yamada [this message]
2024-09-25 14:04   ` [PATCH 10/23] kbuild: refactor the check for missing config files Nicolas Schier
2024-09-17 14:16 ` [PATCH 11/23] kbuild: check the presence of include/generated/rustc_cfg Masahiro Yamada
2024-09-25 14:10   ` Nicolas Schier
2024-09-30 14:37   ` Miguel Ojeda
2024-09-17 14:16 ` [PATCH 12/23] scripts/nsdeps: use VPATH as src_prefix Masahiro Yamada
2024-09-25 14:18   ` Nicolas Schier
2024-09-26  7:30     ` Nicolas Schier
2024-09-17 14:16 ` [PATCH 13/23] kbuild: replace two $(abs_objtree) with $(CURDIR) in top Makefile Masahiro Yamada
2024-09-25 14:27   ` Nicolas Schier
2024-09-17 14:16 ` [PATCH 14/23] kbuild: add $(objtree)/ prefix to some in-kernel build artifacts Masahiro Yamada
2024-09-26  7:50   ` Nicolas Schier
2024-09-17 14:16 ` [PATCH 15/23] kbuild: rename abs_objtree to abs_output Masahiro Yamada
2024-09-26  7:51   ` Nicolas Schier
2024-09-17 14:16 ` [PATCH 16/23] kbuild: use 'output' variable to create the output directory Masahiro Yamada
2024-09-26  7:54   ` Nicolas Schier
2024-09-17 14:16 ` [PATCH 17/23] kbuild: build external modules in their directory Masahiro Yamada
2024-10-03 18:41   ` Nicolas Schier
2024-09-17 14:16 ` [PATCH 18/23] kbuild: remove extmod_prefix, MODORDER, MODULES_NSDEPS variables Masahiro Yamada
2024-10-03 18:47   ` Nicolas Schier
2024-11-10  1:36     ` Masahiro Yamada
2024-09-17 14:16 ` [PATCH 19/23] kbuild: support building external modules in a separate build directory Masahiro Yamada
2024-10-03 19:47   ` Nicolas Schier
2024-10-04 19:45     ` Nicolas Schier
2024-11-10  1:36       ` Masahiro Yamada
2024-11-10  1:36     ` Masahiro Yamada
2024-09-17 14:16 ` [PATCH 20/23] kbuild: support -fmacro-prefix-map for external modules Masahiro Yamada
2024-10-04 18:51   ` Nicolas Schier
2024-09-17 14:16 ` [PATCH 21/23] kbuild: use absolute path in the generated wrapper Makefile Masahiro Yamada
2024-10-04 19:02   ` Nicolas Schier
2024-11-29 23:31   ` Caleb Connolly
2024-11-30  9:19     ` Masahiro Yamada
2024-09-17 14:16 ` [PATCH 22/23] kbuild: make wrapper Makefile more convenient for external modules Masahiro Yamada
2024-10-04 19:46   ` Nicolas Schier
2024-09-17 14:16 ` [PATCH 23/23] kbuild: allow to start building external module in any directory Masahiro Yamada
2024-10-04 20:05   ` Nicolas Schier
2024-09-20 10:39 ` [PATCH 00/23] kbuild: support building external modules in a separate build directory Nicolas Schier
2024-09-20 12:58   ` Masahiro Yamada
2024-09-20 13:41     ` Nicolas Schier
2024-09-28  6:50 ` Masahiro Yamada
2024-09-30 14:28   ` Miguel Ojeda
2024-10-04 20:16 ` Nicolas Schier

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=20240917141725.466514-11-masahiroy@kernel.org \
    --to=masahiroy@kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nathan@kernel.org \
    --cc=nicolas@fjasle.eu \
    --cc=ojeda@kernel.org \
    --cc=rust-for-linux@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).