mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Roland Hieber <rhi@pengutronix.de>
To: ptxdist@pengutronix.de
Cc: Roland Hieber <rhi@pengutronix.de>
Subject: [ptxdist] [PATCH v2 4/6] ptxdist: implement 'defconfig' commands for kconfig packages
Date: Tue, 22 Sep 2020 11:28:59 +0200	[thread overview]
Message-ID: <20200922092901.30715-4-rhi@pengutronix.de> (raw)
In-Reply-To: <20200922092901.30715-1-rhi@pengutronix.de>

The current process to generate a kernel .config file from a defconfig
is a bit cumbersome:

  $ ptxdist extract kernel
  $ cd platform-foo/build-target/linux-<version>
  $ make ARCH=... CROSS_COMPILE=... foo_defconfig
  $ cp .config ../../../configs/platform-foo/kernelconfig

All kernel and barebox rules and templates already support the
<package>_%config target since commit b0f9f2fe33ca9027a554 (2020-08-07,
"barebox, kernel: enable use of {allyes, allno, allmod, alldef,
rand}config"), so we only need to wire them into the command line
parser, and then we can easily get a defconfig like this:

  $ ptxdist defconfig kernel                # most ARCHs
  $ ptxdist imx_v6_v7_defconfig kernel      # e.g. with ARCH=arm

Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
 * v2: fix <pkg> in help text, it's not an optional parameter

 bin/ptxdist           | 15 ++++++++++++++-
 doc/ref_parameter.rst |  9 +++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/bin/ptxdist b/bin/ptxdist
index 0d5e4328e1d6..000879f45187 100755
--- a/bin/ptxdist
+++ b/bin/ptxdist
@@ -705,6 +705,9 @@ Setup and Project Actions:
 
   menuconfig barebox		configure the bootloader Barebox
 
+  [<prefix>]defconfig <pkg>	generate a default config file for <pkg>
+				e.g.: ptxdist multi_v7_defconfig kernel
+
   oldconfig			run 'make oldconfig' on ptxconfig file
   allmodconfig			run 'make allmodconfig' on ptxconfig file
   allyesconfig			run 'make allyesconfig' on ptxconfig file
@@ -1267,6 +1270,16 @@ do_config()
 	case "${config}" in
 	menuconfig|nconfig|oldconfig|all*config|randconfig)
 		;;
+	*defconfig)
+		case "${part}" in
+			"ptx"|"ptxdist"|""|"setup"|"platform"|"board"|"user"|"collection")
+				echo
+				echo "${PTXDIST_LOG_PROMPT}error: cannot do a '${config}' for part '${part}'"
+				echo
+				exit 1
+				;;
+		esac
+		;;
 	*)
 		echo
 		echo "${PTXDIST_LOG_PROMPT}error: invalid use of '${FUNCNAME} ${@}'"
@@ -1625,7 +1638,7 @@ parse_second()
 
 ######## *config, *setup, toolchain
 
-		menuconfig|nconfig|oldconfig|allmodconfig|allyesconfig|allnoconfig|alldefconfig|randconfig)
+		menuconfig|nconfig|oldconfig|allmodconfig|allyesconfig|allnoconfig|*defconfig|randconfig)
 			do_config "${cmd}" "${@}"
 			exit
 			;;
diff --git a/doc/ref_parameter.rst b/doc/ref_parameter.rst
index 1d54fa4b4428..cac35cddb5ac 100644
--- a/doc/ref_parameter.rst
+++ b/doc/ref_parameter.rst
@@ -95,6 +95,15 @@ Setup and Project Actions
   functionality as ``menuconfig``. It can be used instead of ``menuconfig``
   for all the component described above.
 
+``[<prefix>]defconfig <package>``
+  generate a default config file for kconfig-based packages (kernel, barebox).
+  The ``[<prefix>]`` can be given optionally to use a specific defconfig file,
+  which depends on the respective package and the architecture.
+  Examples::
+
+    $ ptxdist defconfig kernel                # most ARCHs
+    $ ptxdist imx_v6_v7_defconfig kernel      # e.g. for ARCH=arm
+
 ``oldconfig [<component>]``, ``allmodconfig [<component>]``, ``allyesconfig [<component>]``, ``allnoconfig [<component>]``, ``alldefconfig [<component>]``, ``randconfig [<component>]``
   this action will run the corresponding kconfig action for the specified
   component. ``oldconfig`` will prompt for all new options.
-- 
2.28.0


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de

  parent reply	other threads:[~2020-09-22  9:28 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-22  9:28 [ptxdist] [PATCH v2 1/6] platform: bump default toolchain version Roland Hieber
2020-09-22  9:28 ` [ptxdist] [PATCH v2 2/6] kernel, barebox: add descriptive help text for config options Roland Hieber
2020-10-14 10:30   ` [ptxdist] [APPLIED] " Michael Olbrich
2020-09-22  9:28 ` [ptxdist] [PATCH v2 3/6] image-root-tgz: add a help text Roland Hieber
2020-10-14 10:30   ` [ptxdist] [APPLIED] " Michael Olbrich
2020-09-22  9:28 ` Roland Hieber [this message]
2020-09-28 13:34   ` [ptxdist] [PATCH v2 4/6] ptxdist: implement 'defconfig' commands for kconfig packages Alexander Dahl
2020-10-09  8:52     ` Michael Olbrich
2020-09-22  9:29 ` [ptxdist] [PATCH v2 5/6] rules: move magic symbol into rules/ptxdist-version.in Roland Hieber
2020-10-14 10:30   ` [ptxdist] [APPLIED] " Michael Olbrich
2020-09-22  9:29 ` [ptxdist] [PATCH v2 6/6] ptxdist: add 'init' commands to create new configs Roland Hieber
2020-10-14 10:30 ` [ptxdist] [APPLIED] platform: bump default toolchain version Michael Olbrich

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=20200922092901.30715-4-rhi@pengutronix.de \
    --to=rhi@pengutronix.de \
    --cc=ptxdist@pengutronix.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox