All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 01/22] core/pkg-utils: rationalise kconfig option mangling
Date: Sat,  4 Apr 2020 14:10:13 +0200	[thread overview]
Message-ID: <51d6198cedf58c1834394974bd9d2e281ec05f25.1586002215.git.yann.morin.1998@free.fr> (raw)
In-Reply-To: <cover.1586002215.git.yann.morin.1998@free.fr>

Currently, we have three macros that may mangle a .config file. All
three are modeled after the same pattern: removing the existing option
from the .config file, then adding the new definition for that option;
all three also implement that pattern with the same commands: sed and
echo.

This is all good so far, because it was simple enough, and the always
worked on a file passed in parameter.

However, we're soon going to change this file parameter to make it
optional, so that the file will then be auto-deduced for the current
package. In that case, the file to sed adn echo into will be a more
complex structure than just the parameter.

As such, move the actual mangling down to a helper macro, that is called
from the three existing ones.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
---
 package/pkg-utils.mk | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk
index d324934dba..91a492588e 100644
--- a/package/pkg-utils.mk
+++ b/package/pkg-utils.mk
@@ -11,20 +11,18 @@
 # package, and more.
 #
 
-define KCONFIG_ENABLE_OPT # (option, file)
-	$(SED) "/\\<$(1)\\>/d" $(2)
-	echo '$(1)=y' >> $(2)
+# KCONFIG_MUNGE_DOT_CONFIG (option, newline, file)
+define KCONFIG_MUNGE_DOT_CONFIG
+	$(SED) "/\\<$(strip $(1))\\>/d" $(strip $(3))
+	echo '$(strip $(2))' >> $(strip $(3))
 endef
 
-define KCONFIG_SET_OPT # (option, value, file)
-	$(SED) "/\\<$(1)\\>/d" $(3)
-	echo '$(1)=$(2)' >> $(3)
-endef
-
-define KCONFIG_DISABLE_OPT # (option, file)
-	$(SED) "/\\<$(1)\\>/d" $(2)
-	echo '# $(1) is not set' >> $(2)
-endef
+# KCONFIG_ENABLE_OPT (option, file)
+KCONFIG_ENABLE_OPT  = $(call KCONFIG_MUNGE_DOT_CONFIG, $(1), $(1)=y, $(2))
+# KCONFIG_SET_OPT (option, value, file)
+KCONFIG_SET_OPT     = $(call KCONFIG_MUNGE_DOT_CONFIG, $(1), $(1)=$(2), $(3))
+# KCONFIG_DISABLE_OPT  (option, file)
+KCONFIG_DISABLE_OPT = $(call KCONFIG_MUNGE_DOT_CONFIG, $(1), $(SHARP_SIGN) $(1) is not set, $(2))
 
 # Helper functions to determine the name of a package and its
 # directory from its makefile directory, using the $(MAKEFILE_LIST)
-- 
2.20.1

  reply	other threads:[~2020-04-04 12:10 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-04 12:10 [Buildroot] [PATCH 00/22] linux: allow packages to set kconfig options (branch yem/pkg-linux-opts) Yann E. MORIN
2020-04-04 12:10 ` Yann E. MORIN [this message]
2020-08-30  7:54   ` [Buildroot] [PATCH 01/22] core/pkg-utils: rationalise kconfig option mangling Peter Korsgaard
2020-04-04 12:10 ` [Buildroot] [PATCH 02/22] core/pkg-utils: kconfig mangling defaults to current package's .config Yann E. MORIN
2020-05-01 13:55   ` Thomas Petazzoni
2020-08-30  7:54   ` Peter Korsgaard
2020-04-04 12:10 ` [Buildroot] [PATCH 03/22] boot/barebox: don't specify .config to munge Yann E. MORIN
2020-04-04 12:10 ` [Buildroot] [PATCH 04/22] boot/uboot: " Yann E. MORIN
2020-04-04 12:10 ` [Buildroot] [PATCH 05/22] boot/busybox: " Yann E. MORIN
2020-04-04 12:10 ` [Buildroot] [PATCH 06/22] boot/swupdate: " Yann E. MORIN
2020-04-04 12:10 ` [Buildroot] [PATCH 07/22] boot/uclibc: " Yann E. MORIN
2020-04-04 12:10 ` [Buildroot] [PATCH 08/22] linux: " Yann E. MORIN
2020-04-04 12:10 ` [Buildroot] [PATCH 09/22] linux: allow packages to set options Yann E. MORIN
2020-05-01 13:56   ` Thomas Petazzoni
2020-04-04 12:10 ` [Buildroot] [PATCH 10/22] package/audit: bear the kernel options munging Yann E. MORIN
2020-04-06 12:10   ` Matthew Weber
2020-04-04 12:10 ` [Buildroot] [PATCH 11/22] package/intel-micro-code: " Yann E. MORIN
2020-04-04 12:10 ` [Buildroot] [PATCH 12/22] package/ktap: " Yann E. MORIN
2020-04-04 12:10 ` [Buildroot] [PATCH 13/22] package/pcm-tools: " Yann E. MORIN
2020-04-04 12:10 ` [Buildroot] [PATCH 14/22] package/linux-tools/perf: " Yann E. MORIN
2020-05-01 13:57   ` Thomas Petazzoni
2020-04-04 12:10 ` [Buildroot] [PATCH 15/22] package/systemd: " Yann E. MORIN
2020-04-04 12:10 ` [Buildroot] [PATCH 16/22] package/smack: " Yann E. MORIN
2020-04-04 12:10 ` [Buildroot] [PATCH 17/22] package/sunxi-mali-mainline-driver: " Yann E. MORIN
2020-04-04 12:10 ` [Buildroot] [PATCH 18/22] package/iptables: " Yann E. MORIN
2020-04-04 12:10 ` [Buildroot] [PATCH 19/22] package/xtables-addons: " Yann E. MORIN
2020-04-04 12:10 ` [Buildroot] [PATCH 20/22] package/wireguard-linux-compat: " Yann E. MORIN
2020-04-04 12:10 ` [Buildroot] [PATCH 21/22] package/libselinux: " Yann E. MORIN
2020-04-06 12:08   ` Matthew Weber
2020-04-19 18:14     ` Adam Duskett
2020-04-04 12:10 ` [Buildroot] [PATCH 22/22] package/kernel-module-imx-gpu-viv: " Yann E. MORIN
2020-05-01 13:54 ` [Buildroot] [PATCH 00/22] linux: allow packages to set kconfig options (branch yem/pkg-linux-opts) Thomas Petazzoni

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=51d6198cedf58c1834394974bd9d2e281ec05f25.1586002215.git.yann.morin.1998@free.fr \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /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.