diff mbox series

[1/2] package/pkg-kconfig: hide defconfig targets if defconfig not supported

Message ID 20210725141146.539853-1-arnout@mind.be
State Accepted
Headers show
Series [1/2] package/pkg-kconfig: hide defconfig targets if defconfig not supported | expand

Commit Message

Arnout Vandecappelle July 25, 2021, 2:11 p.m. UTC
When the savedefconfig target is not supported by a kconfig package,
(like is the case for busybox) it doesn't make sense to define
busybox-savedefconfig or busybox-update-defconfig. Calling these leads
to an error from busybox itself "No rule to make target
'savedefconfig'.", which may be confusing.

Only define the savedefconfig and update-defconfig target if
$(2)_KCONFIG_SUPPORTS_DEFCONFIG is YES.

Note that we also need to define it as phony in the condition, otherwise
'make busybox-update-defconfig' will just say "Nothing to be done" and
we really want the error "No rule to make target
'busybox-update-defconfig'".

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
 package/pkg-kconfig.mk | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Comments

Yann E. MORIN July 31, 2021, 11:33 a.m. UTC | #1
Arnout, All,

On 2021-07-25 16:11 +0200, Arnout Vandecappelle (Essensium/Mind) spake thusly:
> When the savedefconfig target is not supported by a kconfig package,
> (like is the case for busybox) it doesn't make sense to define
> busybox-savedefconfig or busybox-update-defconfig. Calling these leads
> to an error from busybox itself "No rule to make target
> 'savedefconfig'.", which may be confusing.
> 
> Only define the savedefconfig and update-defconfig target if
> $(2)_KCONFIG_SUPPORTS_DEFCONFIG is YES.
> 
> Note that we also need to define it as phony in the condition, otherwise
> 'make busybox-update-defconfig' will just say "Nothing to be done" and
> we really want the error "No rule to make target
> 'busybox-update-defconfig'".
> 
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

Applied to master, thanks. But see a nit below...

> ---
>  package/pkg-kconfig.mk | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/package/pkg-kconfig.mk b/package/pkg-kconfig.mk
> index 715c3e04ec..baad2e3baf 100644
> --- a/package/pkg-kconfig.mk
> +++ b/package/pkg-kconfig.mk
> @@ -279,8 +279,11 @@ $(1)-check-configuration-done:
>  		exit 1; \
>  	fi
>  
> +ifeq ($$($(2)_KCONFIG_SUPPORTS_DEFCONFIG),YES)
>  $(1)-savedefconfig: $(1)-check-configuration-done
>  	$$(call kconfig-package-savedefconfig,$(2))
> +.PHONY: $(1)-savedefconfig
> +endif
>  
>  # Target to copy back the configuration to the source configuration file
>  # Even though we could use 'cp --preserve-timestamps' here, the separate
> @@ -289,6 +292,7 @@ $(1)-update-config: PKG=$(2)
>  $(1)-update-config: $(1)-check-configuration-done
>  	$$(call kconfig-package-update-config,$$($(2)_KCONFIG_DOTCONFIG))
>  
> +ifeq ($$($(2)_KCONFIG_SUPPORTS_DEFCONFIG),YES)
>  # Note: make sure the timestamp of the stored configuration is not newer than
>  # the .config to avoid a useless rebuild. Note that, contrary to
>  # $(1)-update-config, the reference for 'touch' is _not_ the file from which
> @@ -296,6 +300,8 @@ $(1)-update-config: $(1)-check-configuration-done
>  $(1)-update-defconfig: PKG=$(2)
>  $(1)-update-defconfig: $(1)-savedefconfig
>  	$$(call kconfig-package-update-config,defconfig)
> +.PHONY: $(1)-update-defconfig

I think that the usual convention is to put the PHONY rule right before
the corresponding rule, not after, so I've just changed that (in both
places in this patch, and in the following patch too).

Thanks!

Regards,
Yann E. MORIN.

> +endif
>  
>  # Target to output differences between the configuration obtained via the
>  # defconfig + fragments (if any) and the current configuration.
> @@ -315,9 +321,7 @@ endif # package enabled
>  
>  .PHONY: \
>  	$(1)-update-config \
> -	$(1)-update-defconfig \
>  	$(1)-diff-config \
> -	$(1)-savedefconfig \
>  	$(1)-check-configuration-done \
>  	$$($(2)_DIR)/.kconfig_editor_% \
>  	$$(addprefix $(1)-,$$($(2)_KCONFIG_EDITORS))
> -- 
> 2.31.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
diff mbox series

Patch

diff --git a/package/pkg-kconfig.mk b/package/pkg-kconfig.mk
index 715c3e04ec..baad2e3baf 100644
--- a/package/pkg-kconfig.mk
+++ b/package/pkg-kconfig.mk
@@ -279,8 +279,11 @@  $(1)-check-configuration-done:
 		exit 1; \
 	fi
 
+ifeq ($$($(2)_KCONFIG_SUPPORTS_DEFCONFIG),YES)
 $(1)-savedefconfig: $(1)-check-configuration-done
 	$$(call kconfig-package-savedefconfig,$(2))
+.PHONY: $(1)-savedefconfig
+endif
 
 # Target to copy back the configuration to the source configuration file
 # Even though we could use 'cp --preserve-timestamps' here, the separate
@@ -289,6 +292,7 @@  $(1)-update-config: PKG=$(2)
 $(1)-update-config: $(1)-check-configuration-done
 	$$(call kconfig-package-update-config,$$($(2)_KCONFIG_DOTCONFIG))
 
+ifeq ($$($(2)_KCONFIG_SUPPORTS_DEFCONFIG),YES)
 # Note: make sure the timestamp of the stored configuration is not newer than
 # the .config to avoid a useless rebuild. Note that, contrary to
 # $(1)-update-config, the reference for 'touch' is _not_ the file from which
@@ -296,6 +300,8 @@  $(1)-update-config: $(1)-check-configuration-done
 $(1)-update-defconfig: PKG=$(2)
 $(1)-update-defconfig: $(1)-savedefconfig
 	$$(call kconfig-package-update-config,defconfig)
+.PHONY: $(1)-update-defconfig
+endif
 
 # Target to output differences between the configuration obtained via the
 # defconfig + fragments (if any) and the current configuration.
@@ -315,9 +321,7 @@  endif # package enabled
 
 .PHONY: \
 	$(1)-update-config \
-	$(1)-update-defconfig \
 	$(1)-diff-config \
-	$(1)-savedefconfig \
 	$(1)-check-configuration-done \
 	$$($(2)_DIR)/.kconfig_editor_% \
 	$$(addprefix $(1)-,$$($(2)_KCONFIG_EDITORS))