All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/5 v4] Introduction of kconfig-package (branch yem/patrickdp/kconfig-pkg)
@ 2014-08-03 15:32 Yann E. MORIN
  2014-08-03 15:32 ` [Buildroot] [PATCH 1/5 v4] uclibc: fixup config before calling menuconfig Yann E. MORIN
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Yann E. MORIN @ 2014-08-03 15:32 UTC (permalink / raw)
  To: buildroot

Hello All!

From: Thomas De Schampheleire <patrickdepinguin@gmail.com>

This patch series introduces a kconfig-package infrastructure and already
converts the uclibc and busybox packages.

I believe this series is complete in the sense that it could be applied as
one whole, not yet including the conversion of linux and barebox.

In a subsequent series, linux and barebox can be converted to
kconfig-package too, but there will need to be some changes to
kconfig-package to support them.
One particular difference with uclibc/busybox is that linux/barebox use a
different method to copy the original config file: instead of simply copying
it to build_dir/.config, it is first copied to arch/.../buildroot_defconfig
and then 'make ... buildroot_defconfig' is called. I'm considering in adding
a FOO_KCONFIG_INSTALL_CONFIG_CMDS variable to support this, which defaults
to the simple copy used by busybox/uclibc, but can be overwritten
appropriately by linux and barebox.
Anyway, this part is not yet ready and will only be available for 2014.11.

Changes v3 -> v4:
  - add missing 4th argument when calling inner-kconfig-package  (Yann)


Regards,
Yann E. MORIN.


The following changes since commit 01370132c10cb2d194042e08fefbc9cec8392c66:

  gst-fsl-plugins, libfslvpuwrap: add missing select (2014-08-03 14:47:03 +0200)

are available in the git repository at:

  git://gitorious.org/buildroot/buildroot.git yem/patrickdp/kconfig-pkg

for you to fetch changes up to 437a2f63b7dd1357bf859133053f4b877bc2a0e9:

  busybox: convert to kconfig-package infrastructure (2014-08-03 17:17:12 +0200)

----------------------------------------------------------------
Thomas De Schampheleire (5):
      uclibc: fixup config before calling menuconfig
      infra: introduce a kconfig-package infrastructure
      manual: add documentation for kconfig-package
      uclibc: convert to kconfig-package infrastructure
      busybox: convert to kconfig-package infrastructure

 docs/manual/adding-packages-kconfig.txt | 56 ++++++++++++++++++++++
 docs/manual/adding-packages.txt         |  2 +
 package/Makefile.in                     |  1 +
 package/busybox/busybox.mk              | 25 ++++------
 package/pkg-kconfig.mk                  | 82 +++++++++++++++++++++++++++++++++
 package/uclibc/uclibc.mk                | 34 ++++----------
 6 files changed, 160 insertions(+), 40 deletions(-)
 create mode 100644 docs/manual/adding-packages-kconfig.txt
 create mode 100644 package/pkg-kconfig.mk

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 1/5 v4] uclibc: fixup config before calling menuconfig
  2014-08-03 15:32 [Buildroot] [PATCH 0/5 v4] Introduction of kconfig-package (branch yem/patrickdp/kconfig-pkg) Yann E. MORIN
@ 2014-08-03 15:32 ` Yann E. MORIN
  2014-08-03 15:32 ` [Buildroot] [PATCH 2/5 v4] infra: introduce a kconfig-package infrastructure Yann E. MORIN
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Yann E. MORIN @ 2014-08-03 15:32 UTC (permalink / raw)
  To: buildroot

From: Thomas De Schampheleire <patrickdepinguin@gmail.com>

The uclibc-menuconfig command is currently run based on the user-specified
config file, while the fixup of the config file is done afterwards.
However, it makes more sense to do an initial fixup _before_ running
menuconfig, so that the options presented to the user are consistent with
the final configuration.

This patch changes the dependency of the menuconfig target from .config to
.stamp_config_fixup_done to achieve this.

Suggested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/uclibc/uclibc.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
index e7749af..80a88a4 100644
--- a/package/uclibc/uclibc.mk
+++ b/package/uclibc/uclibc.mk
@@ -542,7 +542,7 @@ $(UCLIBC_DIR)/.stamp_config_fixup_done: $(UCLIBC_DIR)/.config
 
 $(UCLIBC_TARGET_CONFIGURE): $(UCLIBC_DIR)/.stamp_config_fixup_done
 
-uclibc-menuconfig: $(UCLIBC_DIR)/.config
+uclibc-menuconfig: $(UCLIBC_DIR)/.stamp_config_fixup_done
 	$(MAKE) -C $(UCLIBC_DIR) \
 		$(UCLIBC_MAKE_FLAGS) \
 		PREFIX=$(STAGING_DIR) \
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 2/5 v4] infra: introduce a kconfig-package infrastructure
  2014-08-03 15:32 [Buildroot] [PATCH 0/5 v4] Introduction of kconfig-package (branch yem/patrickdp/kconfig-pkg) Yann E. MORIN
  2014-08-03 15:32 ` [Buildroot] [PATCH 1/5 v4] uclibc: fixup config before calling menuconfig Yann E. MORIN
@ 2014-08-03 15:32 ` Yann E. MORIN
  2014-08-03 15:32 ` [Buildroot] [PATCH 3/5 v4] manual: add documentation for kconfig-package Yann E. MORIN
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Yann E. MORIN @ 2014-08-03 15:32 UTC (permalink / raw)
  To: buildroot

From: Thomas De Schampheleire <patrickdepinguin@gmail.com>

There are several packages that have a configuration file managed by
kconfig: uclibc, busybox, linux and barebox. All these packages need some
make targets to handle the kconfig specificities: creating a configuration
(menuconfig, ...) and saving it back (update-config, ...)

These targets should be the same for each of these packages, but
unfortunately they are not. Especially with respect to saving back the
configuration to the original config file, there are many differences.

A previous set of patches fixed these targets for the uclibc package.
This patch extracts these targets into a common kconfig-package
infrastructure, with the goals of:
- aligning the behavior of all kconfig-based packages
- removing code duplication

In order to use this infrastructure, a package should at a minimum specify
FOO_KCONFIG_FILE and eval the kconfig-package macro. The supported
configuration editors can be set with FOO_KCONFIG_EDITORS and defaults to
menuconfig only.
Additionally, a package can specify FOO_KCONFIG_OPT for extra options to
pass to the invocation of the kconfig editors, and FOO_KCONFIG_FIXUP_CMDS
for a list of shell commands used to fixup the .config file after a
configuration has been created/edited.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
[yann.morin.1998 at free.fr: add missing 4th argument when calling to
 inner-kconfig-package (namely, 'target']
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

---
Since I was involved with that patch, I did not add me reviewed-by tag.
---
 package/Makefile.in    |  1 +
 package/pkg-kconfig.mk | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 83 insertions(+)
 create mode 100644 package/pkg-kconfig.mk

diff --git a/package/Makefile.in b/package/Makefile.in
index 106a04c..60816b4 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -394,3 +394,4 @@ include package/pkg-perl.mk
 include package/pkg-python.mk
 include package/pkg-virtual.mk
 include package/pkg-generic.mk
+include package/pkg-kconfig.mk
diff --git a/package/pkg-kconfig.mk b/package/pkg-kconfig.mk
new file mode 100644
index 0000000..5220fdf
--- /dev/null
+++ b/package/pkg-kconfig.mk
@@ -0,0 +1,82 @@
+################################################################################
+# Kconfig package infrastructure
+#
+# This file implements an infrastructure that eases development of
+# package .mk files for packages that use kconfig for configuration files.
+# It is based on the generic-package infrastructure, and inherits all of its
+# features.
+#
+# See the Buildroot documentation for details on the usage of this
+# infrastructure.
+#
+################################################################################
+
+################################################################################
+# inner-kconfig-package -- generates the make targets needed to support a
+# kconfig package
+#
+#  argument 1 is the lowercase package name
+#  argument 2 is the uppercase package name, including a HOST_ prefix
+#             for host packages
+#  argument 3 is the uppercase package name, without the HOST_ prefix
+#             for host packages
+#  argument 4 is the type (target or host)
+################################################################################
+
+define inner-kconfig-package
+
+# Call the generic package infrastructure to generate the necessary
+# make targets.
+# Note: this must be done _before_ attempting to use $$($(2)_DIR) in a
+# dependency expression
+$(call inner-generic-package,$(1),$(2),$(3),$(4))
+
+# Default values
+
+$(2)_KCONFIG_EDITORS ?= menuconfig
+$(2)_KCONFIG_OPT ?=
+$(2)_KCONFIG_FIXUP_CMDS ?=
+
+# FOO_KCONFIG_FILE is required
+
+ifndef $(2)_KCONFIG_FILE
+$$(error Internal error: no value specified for $(2)_KCONFIG_FILE)
+endif
+
+# The .config file is obtained by copying it from the specified source
+# configuration file, after the package has been patched.
+
+$$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE) | $(1)-patch
+	$$(INSTALL) -m 0644 $$($(2)_KCONFIG_FILE) $$($(2)_DIR)/.config
+
+# In order to get a usable, consistent configuration, some fixup may be needed.
+# The exact rules are specified by the package .mk file.
+
+$$($(2)_DIR)/.stamp_kconfig_fixup_done: $$($(2)_DIR)/.config
+	$$($(2)_KCONFIG_FIXUP_CMDS)
+	$$(Q)touch $$@
+
+# Before running configure, the configuration file should be present and fixed
+
+$$($(2)_TARGET_CONFIGURE): $$($(2)_DIR)/.stamp_kconfig_fixup_done
+
+# Configuration editors (menuconfig, ...)
+
+$$(addprefix $(1)-,$$($(2)_KCONFIG_EDITORS)): $$($(2)_DIR)/.stamp_kconfig_fixup_done
+	$$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) \
+		$$($(2)_KCONFIG_OPT) $$(subst $(1)-,,$$@)
+	rm -f $$($(2)_DIR)/.stamp_{kconfig_fixup_done,configured,built}
+	rm -f $$($(2)_DIR)/.stamp_{target,staging}_installed
+
+# Target to copy back the configuration to the source configuration file
+
+$(1)-update-config: $$($(2)_DIR)/.stamp_kconfig_fixup_done
+	cp -f $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
+
+endef # inner-kconfig-package
+
+################################################################################
+# kconfig-package -- the target generator macro for kconfig packages
+################################################################################
+
+kconfig-package = $(call inner-kconfig-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target)
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 3/5 v4] manual: add documentation for kconfig-package
  2014-08-03 15:32 [Buildroot] [PATCH 0/5 v4] Introduction of kconfig-package (branch yem/patrickdp/kconfig-pkg) Yann E. MORIN
  2014-08-03 15:32 ` [Buildroot] [PATCH 1/5 v4] uclibc: fixup config before calling menuconfig Yann E. MORIN
  2014-08-03 15:32 ` [Buildroot] [PATCH 2/5 v4] infra: introduce a kconfig-package infrastructure Yann E. MORIN
@ 2014-08-03 15:32 ` Yann E. MORIN
  2014-08-03 15:32 ` [Buildroot] [PATCH 4/5 v4] uclibc: convert to kconfig-package infrastructure Yann E. MORIN
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Yann E. MORIN @ 2014-08-03 15:32 UTC (permalink / raw)
  To: buildroot

From: Thomas De Schampheleire <patrickdepinguin@gmail.com>

This patch adds documentation for the new kconfig-package infrastructure to
the manual.

Note that due to the simplicity of the infrastructure, the documentation
is not split in a 'tutorial' and a 'reference', like for the other
infrastructures. Instead, the usage is described in one section.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
[me: slight grammar fix 'copy -back- the configuration +back+ to...']
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

---
Since I was involved with that patch, I did not carry my initial
reviewed-by tag.
---
 docs/manual/adding-packages-kconfig.txt | 56 +++++++++++++++++++++++++++++++++
 docs/manual/adding-packages.txt         |  2 ++
 2 files changed, 58 insertions(+)
 create mode 100644 docs/manual/adding-packages-kconfig.txt

diff --git a/docs/manual/adding-packages-kconfig.txt b/docs/manual/adding-packages-kconfig.txt
new file mode 100644
index 0000000..f14b87b
--- /dev/null
+++ b/docs/manual/adding-packages-kconfig.txt
@@ -0,0 +1,56 @@
+// -*- mode:doc; -*-
+// vim: set syntax=asciidoc:
+
+=== Infrastructure for packages using kconfig for configuration files
+
+A popular way for a software package to handle user-specified
+configuration is +kconfig+. Among others, it is used by the Linux
+kernel, Busybox, and Buildroot itself. The presence of a .config file
+and a +menuconfig+ target are two well-known symptoms of kconfig being
+used.
+
+Buildroot features an infrastructure for packages that use kconfig for
+their configuration. This infrastructure provides the necessary logic to
+expose the package's +menuconfig+ target as +foo-menuconfig+ in
+Buildroot, and to handle the copying back and forth of the configuration
+file in a correct way.
+
+The +kconfig-package+ infrastructure is based on the +generic-package+
+infrastructure. All variables supported by +generic-package+ are
+available in +kconfig-package+ as well. See
+xref:generic-package-reference[] for more details.
+
+In order to use the +kconfig-package+ infrastructure for a Buildroot
+package, the minimally required lines in the +.mk+ file, in addition to
+the variables required by the +generic-package+ infrastructure, are:
+
+------------------------------
+FOO_KCONFIG_FILE = reference-to-source-configuration-file
+
+$(eval $(kconfig-package))
+------------------------------
+
+This snippet creates the following make targets:
+
+* +foo-menuconfig+, which calls the package's +menuconfig+ target
+
+* +foo-update-config+, which copies the configuration back to the source
+  configuration file.
+
+and ensures that the source configuration file is copied to the build
+directory at the right moment.
+
+In addition to these minimally required lines, several optional variables can
+be set to suit the needs of the package under consideration:
+
+* +FOO_KCONFIG_EDITORS+: a space-separated list of kconfig editors to
+  support, for example 'menuconfig xconfig'. By default, 'menuconfig'.
+
+* +FOO_KCONFIG_OPT+: extra options to pass when calling the kconfig
+  ediftors. This may need to include '$(FOO_MAKE_OPT)', for example. By
+  default, empty.
+
+* +FOO_KCONFIG_FIXUP_CMDS+: a list of shell commands needed to fixup the
+  configuration file after copying it or running a kconfig editor. Such
+  commands may be needed to ensure a configuration consistent with other
+  configuration of Buildroot, for example. By default, empty.
diff --git a/docs/manual/adding-packages.txt b/docs/manual/adding-packages.txt
index 31f92f4..9c97128 100644
--- a/docs/manual/adding-packages.txt
+++ b/docs/manual/adding-packages.txt
@@ -25,6 +25,8 @@ include::adding-packages-perl.txt[]
 
 include::adding-packages-virtual.txt[]
 
+include::adding-packages-kconfig.txt[]
+
 include::adding-packages-hooks.txt[]
 
 include::adding-packages-gettext.txt[]
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 4/5 v4] uclibc: convert to kconfig-package infrastructure
  2014-08-03 15:32 [Buildroot] [PATCH 0/5 v4] Introduction of kconfig-package (branch yem/patrickdp/kconfig-pkg) Yann E. MORIN
                   ` (2 preceding siblings ...)
  2014-08-03 15:32 ` [Buildroot] [PATCH 3/5 v4] manual: add documentation for kconfig-package Yann E. MORIN
@ 2014-08-03 15:32 ` Yann E. MORIN
  2014-08-03 15:32 ` [Buildroot] [PATCH 5/5 v4] busybox: " Yann E. MORIN
  2014-08-04  8:00 ` [Buildroot] [PATCH 0/5 v4] Introduction of kconfig-package (branch yem/patrickdp/kconfig-pkg) Thomas Petazzoni
  5 siblings, 0 replies; 8+ messages in thread
From: Yann E. MORIN @ 2014-08-03 15:32 UTC (permalink / raw)
  To: buildroot

From: Thomas De Schampheleire <patrickdepinguin@gmail.com>

This patch converts the uclibc package to the new kconfig-package
infrastructure, thus removing code duplication and ensuring a consistent
behavior of kconfig packages.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/uclibc/uclibc.mk | 34 ++++++++++------------------------
 1 file changed, 10 insertions(+), 24 deletions(-)

diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
index 80a88a4..c7203cc 100644
--- a/package/uclibc/uclibc.mk
+++ b/package/uclibc/uclibc.mk
@@ -37,6 +37,14 @@ ifndef UCLIBC_CONFIG_FILE
 UCLIBC_CONFIG_FILE = $(call qstrip,$(BR2_UCLIBC_CONFIG))
 endif
 
+UCLIBC_KCONFIG_FILE = $(UCLIBC_CONFIG_FILE)
+
+UCLIBC_KCONFIG_OPT = \
+		$(UCLIBC_MAKE_FLAGS) \
+		PREFIX=$(STAGING_DIR) \
+		DEVEL_PREFIX=/usr/ \
+		RUNTIME_PREFIX=$(STAGING_DIR)/ \
+
 UCLIBC_TARGET_ARCH = $(call qstrip,$(BR2_UCLIBC_TARGET_ARCH))
 
 ifeq ($(GENERATE_LOCALE),)
@@ -393,7 +401,7 @@ UCLIBC_MAKE_FLAGS = \
 	UCLIBC_EXTRA_CFLAGS="$(UCLIBC_EXTRA_CFLAGS) $(TARGET_ABI)" \
 	HOSTCC="$(HOSTCC)"
 
-define UCLIBC_FIXUP_DOT_CONFIG
+define UCLIBC_KCONFIG_FIXUP_CMDS
 	$(call KCONFIG_SET_OPT,CROSS_COMPILER_PREFIX,"$(TARGET_CROSS)",$(@D)/.config)
 	$(call KCONFIG_ENABLE_OPT,TARGET_$(UCLIBC_TARGET_ARCH),$(@D)/.config)
 	$(call KCONFIG_SET_OPT,TARGET_ARCH,"$(UCLIBC_TARGET_ARCH)",$(@D)/.config)
@@ -531,29 +539,7 @@ define UCLIBC_INSTALL_STAGING_CMDS
 	$(UCLIBC_INSTALL_UTILS_STAGING)
 endef
 
-$(eval $(generic-package))
-
-$(UCLIBC_DIR)/.config: $(UCLIBC_CONFIG_FILE) | uclibc-patch
-	$(INSTALL) -m 0644 $(UCLIBC_CONFIG_FILE) $(UCLIBC_DIR)/.config
-
-$(UCLIBC_DIR)/.stamp_config_fixup_done: $(UCLIBC_DIR)/.config
-	$(UCLIBC_FIXUP_DOT_CONFIG)
-	$(Q)touch $@
-
-$(UCLIBC_TARGET_CONFIGURE): $(UCLIBC_DIR)/.stamp_config_fixup_done
-
-uclibc-menuconfig: $(UCLIBC_DIR)/.stamp_config_fixup_done
-	$(MAKE) -C $(UCLIBC_DIR) \
-		$(UCLIBC_MAKE_FLAGS) \
-		PREFIX=$(STAGING_DIR) \
-		DEVEL_PREFIX=/usr/ \
-		RUNTIME_PREFIX=$(STAGING_DIR)/ \
-		menuconfig
-	rm -f $(UCLIBC_DIR)/.stamp_{config_fixup_done,configured,built}
-	rm -f $(UCLIBC_DIR)/.stamp_{target,staging}_installed
-
-uclibc-update-config: $(UCLIBC_DIR)/.stamp_config_fixup_done
-	cp -f $(UCLIBC_DIR)/.config $(UCLIBC_CONFIG_FILE)
+$(eval $(kconfig-package))
 
 # Before uClibc is built, we must have the second stage cross-compiler
 $(UCLIBC_TARGET_BUILD): | host-gcc-intermediate
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 5/5 v4] busybox: convert to kconfig-package infrastructure
  2014-08-03 15:32 [Buildroot] [PATCH 0/5 v4] Introduction of kconfig-package (branch yem/patrickdp/kconfig-pkg) Yann E. MORIN
                   ` (3 preceding siblings ...)
  2014-08-03 15:32 ` [Buildroot] [PATCH 4/5 v4] uclibc: convert to kconfig-package infrastructure Yann E. MORIN
@ 2014-08-03 15:32 ` Yann E. MORIN
  2014-08-04  8:01   ` Thomas Petazzoni
  2014-08-04  8:00 ` [Buildroot] [PATCH 0/5 v4] Introduction of kconfig-package (branch yem/patrickdp/kconfig-pkg) Thomas Petazzoni
  5 siblings, 1 reply; 8+ messages in thread
From: Yann E. MORIN @ 2014-08-03 15:32 UTC (permalink / raw)
  To: buildroot

From: Thomas De Schampheleire <patrickdepinguin@gmail.com>

This patch converts the busybox package to the new kconfig-package
infrastructure, thus removing code duplication and ensuring a consistent
behavior of kconfig packages.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/busybox/busybox.mk | 25 +++++++++----------------
 1 file changed, 9 insertions(+), 16 deletions(-)

diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
index f7d28a7..db29636 100644
--- a/package/busybox/busybox.mk
+++ b/package/busybox/busybox.mk
@@ -45,6 +45,10 @@ ifndef BUSYBOX_CONFIG_FILE
 	BUSYBOX_CONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG))
 endif
 
+BUSYBOX_KCONFIG_FILE = $(BUSYBOX_CONFIG_FILE)
+BUSYBOX_KCONFIG_EDITORS = menuconfig xconfig gconfig
+BUSYBOX_KCONFIG_OPT = $(BUSYBOX_MAKE_OPTS)
+
 define BUSYBOX_PERMISSIONS
 /bin/busybox			 f 4755	0 0 - - - - -
 /usr/share/udhcpc/default.script f 755  0 0 - - - - -
@@ -136,10 +140,6 @@ define BUSYBOX_NETKITTELNET
 endef
 endif
 
-define BUSYBOX_COPY_CONFIG
-	$(INSTALL) -D -m 0644 $(BUSYBOX_CONFIG_FILE) $(BUSYBOX_BUILD_CONFIG)
-endef
-
 # Disable shadow passwords support if unsupported by the C library
 ifeq ($(BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS),)
 define BUSYBOX_INTERNAL_SHADOW_PASSWORDS
@@ -190,8 +190,7 @@ define BUSYBOX_NOCLOBBER_INSTALL
 	$(SED) 's/^noclobber="0"$$/noclobber="1"/' $(@D)/applets/install.sh
 endef
 
-define BUSYBOX_CONFIGURE_CMDS
-	$(BUSYBOX_COPY_CONFIG)
+define BUSYBOX_KCONFIG_FIXUP_CMDS
 	$(BUSYBOX_SET_MMU)
 	$(BUSYBOX_SET_LARGEFILE)
 	$(BUSYBOX_SET_IPV6)
@@ -203,6 +202,9 @@ define BUSYBOX_CONFIGURE_CMDS
 	$(BUSYBOX_INTERNAL_SHADOW_PASSWORDS)
 	$(BUSYBOX_SET_INIT)
 	$(BUSYBOX_SET_WATCHDOG)
+endef
+
+define BUSYBOX_CONFIGURE_CMDS
 	@yes "" | $(MAKE) ARCH=$(KERNEL_ARCH) CROSS_COMPILE="$(TARGET_CROSS)" \
 		-C $(@D) oldconfig
 	$(BUSYBOX_NOCLOBBER_INSTALL)
@@ -224,13 +226,4 @@ define BUSYBOX_INSTALL_TARGET_CMDS
 	$(BUSYBOX_INSTALL_WATCHDOG_SCRIPT)
 endef
 
-$(eval $(generic-package))
-
-busybox-menuconfig busybox-xconfig busybox-gconfig: busybox-patch
-	$(BUSYBOX_MAKE_ENV) $(MAKE) $(BUSYBOX_MAKE_OPTS) -C $(BUSYBOX_DIR) \
-		$(subst busybox-,,$@)
-	rm -f $(BUSYBOX_DIR)/.stamp_built
-	rm -f $(BUSYBOX_DIR)/.stamp_target_installed
-
-busybox-update-config: busybox-configure
-	cp -f $(BUSYBOX_BUILD_CONFIG) $(BUSYBOX_CONFIG_FILE)
+$(eval $(kconfig-package))
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 0/5 v4] Introduction of kconfig-package (branch yem/patrickdp/kconfig-pkg)
  2014-08-03 15:32 [Buildroot] [PATCH 0/5 v4] Introduction of kconfig-package (branch yem/patrickdp/kconfig-pkg) Yann E. MORIN
                   ` (4 preceding siblings ...)
  2014-08-03 15:32 ` [Buildroot] [PATCH 5/5 v4] busybox: " Yann E. MORIN
@ 2014-08-04  8:00 ` Thomas Petazzoni
  5 siblings, 0 replies; 8+ messages in thread
From: Thomas Petazzoni @ 2014-08-04  8:00 UTC (permalink / raw)
  To: buildroot

Yann, Thomas,

On Sun,  3 Aug 2014 17:32:39 +0200, Yann E. MORIN wrote:

> Thomas De Schampheleire (5):
>       uclibc: fixup config before calling menuconfig
>       infra: introduce a kconfig-package infrastructure
>       manual: add documentation for kconfig-package
>       uclibc: convert to kconfig-package infrastructure
>       busybox: convert to kconfig-package infrastructure

Thanks, I've applied the branch. Thanks both for working on this. It is
clearly reassuring when the branch has been in the hands of two
different developers, as it is a good indication that there has been
some independent testing from two separate persons.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 5/5 v4] busybox: convert to kconfig-package infrastructure
  2014-08-03 15:32 ` [Buildroot] [PATCH 5/5 v4] busybox: " Yann E. MORIN
@ 2014-08-04  8:01   ` Thomas Petazzoni
  0 siblings, 0 replies; 8+ messages in thread
From: Thomas Petazzoni @ 2014-08-04  8:01 UTC (permalink / raw)
  To: buildroot

Yann, Thomas,

On Sun,  3 Aug 2014 17:32:43 +0200, Yann E. MORIN wrote:

> +BUSYBOX_KCONFIG_FILE = $(BUSYBOX_CONFIG_FILE)
> +BUSYBOX_KCONFIG_EDITORS = menuconfig xconfig gconfig
> +BUSYBOX_KCONFIG_OPT = $(BUSYBOX_MAKE_OPTS)

At some point, maybe we'll want to refactor this a bit. It seems silly
to define BUSYBOX_CONFIG_FILE and BUSYBOX_MAKE_OPTS to then have to
"rename" them just for the sake of the kconfig-package infra usage. Why
not giving them the right name for the beginning?

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-08-04  8:01 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-03 15:32 [Buildroot] [PATCH 0/5 v4] Introduction of kconfig-package (branch yem/patrickdp/kconfig-pkg) Yann E. MORIN
2014-08-03 15:32 ` [Buildroot] [PATCH 1/5 v4] uclibc: fixup config before calling menuconfig Yann E. MORIN
2014-08-03 15:32 ` [Buildroot] [PATCH 2/5 v4] infra: introduce a kconfig-package infrastructure Yann E. MORIN
2014-08-03 15:32 ` [Buildroot] [PATCH 3/5 v4] manual: add documentation for kconfig-package Yann E. MORIN
2014-08-03 15:32 ` [Buildroot] [PATCH 4/5 v4] uclibc: convert to kconfig-package infrastructure Yann E. MORIN
2014-08-03 15:32 ` [Buildroot] [PATCH 5/5 v4] busybox: " Yann E. MORIN
2014-08-04  8:01   ` Thomas Petazzoni
2014-08-04  8:00 ` [Buildroot] [PATCH 0/5 v4] Introduction of kconfig-package (branch yem/patrickdp/kconfig-pkg) Thomas Petazzoni

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.