mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-07-30 06:36:34 +00:00
package/pkg-kconfig.mk: reusability improvements
This patch refactors savedefconfig and the configuration re-generation to separate macros so that the functionality can be re-used in further rules. Signed-off-by: Marcel Patzlaff <m.patzlaff@pilz.de> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
parent
9ace1cff33
commit
38a1954ad9
@ -30,6 +30,28 @@ endef
|
|||||||
PKG_KCONFIG_COMMON_OPTS = \
|
PKG_KCONFIG_COMMON_OPTS = \
|
||||||
HOSTCC=$(HOSTCC_NOCCACHE)
|
HOSTCC=$(HOSTCC_NOCCACHE)
|
||||||
|
|
||||||
|
# Macro to save the defconfig file
|
||||||
|
# $(1): the name of the package in upper-case letters
|
||||||
|
define kconfig-package-savedefconfig
|
||||||
|
$($(1)_MAKE_ENV) $(MAKE) -C $($(1)_DIR) \
|
||||||
|
$(PKG_KCONFIG_COMMON_OPTS) $($(1)_KCONFIG_OPTS) savedefconfig
|
||||||
|
endef
|
||||||
|
|
||||||
|
# The correct way to regenerate a .config file is to use 'make olddefconfig'.
|
||||||
|
# For historical reasons, the target name is 'oldnoconfig' between Linux kernel
|
||||||
|
# versions 2.6.36 and 3.6, and remains as an alias in later versions.
|
||||||
|
# In older versions, and in some other projects that use kconfig, the target is
|
||||||
|
# not supported at all, and we use 'yes "" | make oldconfig' as a fallback
|
||||||
|
# only, as this can fail in complex cases.
|
||||||
|
# $(1): the name of the package in upper-case letters
|
||||||
|
define kconfig-package-regen-dot-config
|
||||||
|
$(if $(filter olddefconfig,$($(1)_KCONFIG_RULES)),
|
||||||
|
$(Q)$($(1)_KCONFIG_MAKE) olddefconfig,
|
||||||
|
$(if $(filter oldnoconfig,$($(1)_KCONFIG_RULES)),
|
||||||
|
$(Q)$($(1)_KCONFIG_MAKE) oldnoconfig,
|
||||||
|
$(Q)(yes "" | $($(1)_KCONFIG_MAKE) oldconfig)))
|
||||||
|
endef
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# inner-kconfig-package -- generates the make targets needed to support a
|
# inner-kconfig-package -- generates the make targets needed to support a
|
||||||
# kconfig package
|
# kconfig package
|
||||||
@ -104,20 +126,6 @@ $(2)_KCONFIG_RULES = \
|
|||||||
$$(shell $$($(2)_KCONFIG_MAKE) -pn config 2>/dev/null | \
|
$$(shell $$($(2)_KCONFIG_MAKE) -pn config 2>/dev/null | \
|
||||||
sed 's/^\([_0-9a-zA-Z]*config\):.*/\1/ p; d')
|
sed 's/^\([_0-9a-zA-Z]*config\):.*/\1/ p; d')
|
||||||
|
|
||||||
# The correct way to regenerate a .config file is to use 'make olddefconfig'.
|
|
||||||
# For historical reasons, the target name is 'oldnoconfig' between Linux kernel
|
|
||||||
# versions 2.6.36 and 3.6, and remains as an alias in later versions.
|
|
||||||
# In older versions, and in some other projects that use kconfig, the target is
|
|
||||||
# not supported at all, and we use 'yes "" | make oldconfig' as a fallback
|
|
||||||
# only, as this can fail in complex cases.
|
|
||||||
define $(2)_REGEN_DOT_CONFIG
|
|
||||||
$$(if $$(filter olddefconfig,$$($(2)_KCONFIG_RULES)),
|
|
||||||
$$(Q)$$($(2)_KCONFIG_MAKE) olddefconfig,
|
|
||||||
$$(if $$(filter oldnoconfig,$$($(2)_KCONFIG_RULES)),
|
|
||||||
$$(Q)$$($(2)_KCONFIG_MAKE) oldnoconfig,
|
|
||||||
$$(Q)(yes "" | $$($(2)_KCONFIG_MAKE) oldconfig)))
|
|
||||||
endef
|
|
||||||
|
|
||||||
# The specified source configuration file and any additional configuration file
|
# The specified source configuration file and any additional configuration file
|
||||||
# fragments are merged together to .config, after the package has been patched.
|
# fragments are merged together to .config, after the package has been patched.
|
||||||
# Since the file could be a defconfig file it needs to be expanded to a
|
# Since the file could be a defconfig file it needs to be expanded to a
|
||||||
@ -128,7 +136,7 @@ $$($(2)_DIR)/$$($(2)_KCONFIG_STAMP_DOTCONFIG): $$($(2)_KCONFIG_FILE) $$($(2)_KCO
|
|||||||
$$(INSTALL) -m 0644 -D $$($(2)_KCONFIG_FILE) $$(@D)/$$($(2)_KCONFIG_DOTCONFIG))
|
$$(INSTALL) -m 0644 -D $$($(2)_KCONFIG_FILE) $$(@D)/$$($(2)_KCONFIG_DOTCONFIG))
|
||||||
$$(Q)support/kconfig/merge_config.sh -m -O $$(@D) \
|
$$(Q)support/kconfig/merge_config.sh -m -O $$(@D) \
|
||||||
$$(@D)/$$($(2)_KCONFIG_DOTCONFIG) $$($(2)_KCONFIG_FRAGMENT_FILES)
|
$$(@D)/$$($(2)_KCONFIG_DOTCONFIG) $$($(2)_KCONFIG_FRAGMENT_FILES)
|
||||||
$$($(2)_REGEN_DOT_CONFIG)
|
$$(call kconfig-package-regen-dot-config,$(2))
|
||||||
$$(Q)touch $$(@D)/$$($(2)_KCONFIG_STAMP_DOTCONFIG)
|
$$(Q)touch $$(@D)/$$($(2)_KCONFIG_STAMP_DOTCONFIG)
|
||||||
|
|
||||||
# If _KCONFIG_FILE or _KCONFIG_FRAGMENT_FILES exists, this dependency is
|
# If _KCONFIG_FILE or _KCONFIG_FRAGMENT_FILES exists, this dependency is
|
||||||
@ -145,7 +153,7 @@ $$($(2)_DIR)/$$($(2)_KCONFIG_STAMP_DOTCONFIG): | $$($(2)_KCONFIG_DEPENDENCIES)
|
|||||||
# The exact rules are specified by the package .mk file.
|
# The exact rules are specified by the package .mk file.
|
||||||
define $(2)_FIXUP_DOT_CONFIG
|
define $(2)_FIXUP_DOT_CONFIG
|
||||||
$$($(2)_KCONFIG_FIXUP_CMDS)
|
$$($(2)_KCONFIG_FIXUP_CMDS)
|
||||||
$$($(2)_REGEN_DOT_CONFIG)
|
$$(call kconfig-package-regen-dot-config,$(2))
|
||||||
$$(Q)touch $$($(2)_DIR)/.stamp_kconfig_fixup_done
|
$$(Q)touch $$($(2)_DIR)/.stamp_kconfig_fixup_done
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -236,8 +244,7 @@ $(1)-check-configuration-done:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
$(1)-savedefconfig: $(1)-check-configuration-done
|
$(1)-savedefconfig: $(1)-check-configuration-done
|
||||||
$$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) \
|
$$(call kconfig-package-savedefconfig,$(2))
|
||||||
$$(PKG_KCONFIG_COMMON_OPTS) $$($(2)_KCONFIG_OPTS) savedefconfig
|
|
||||||
|
|
||||||
# Target to copy back the configuration to the source configuration file
|
# Target to copy back the configuration to the source configuration file
|
||||||
# Even though we could use 'cp --preserve-timestamps' here, the separate
|
# Even though we could use 'cp --preserve-timestamps' here, the separate
|
||||||
|
Loading…
x
Reference in New Issue
Block a user