Skip to contentSkip to conversation

core/help: fix custom help without a .config

PATCH New Yann E. MORIN 4 participants 8 messages Mar 20, 2016 – Apr 18, 2016 Kbuild

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 core/help: fix custom help without a .config

When there is no .config, we do not source $(BR2_EXTERNAL)/external.mk. So we can not expose the custom help in that situation.

It is now known whether sourcing $(BR2_EXTERNAL)/external.mk outside the HAVE_DOT_CONFIG conditional block is entirely safe. Even if it would work today, we would have a hard time not breaking it in the future, because we do not have automatic checks for that and would need to rely on users reporting issues after the fact.

Instead, we require the custom help to be defined in its own file in the br2-external tree. This way, we can safely include it unconditionally.

---
 Makefile                             | 11 +++++++----
 docs/manual/customize-outside-br.txt |  7 ++++---
 2 files changed, 11 insertions(+), 7 deletions(-)
Makefile +7 -4
index ea8b1e4..03657d5 100644
@@ -976,10 +976,13 @@ endif
 	@echo 'it on-line at http://buildroot.org/docs.html'
 	@echo
 
-# This rule does nothing, it is expected to be overloaded by
-# a br2-external tree or a local.mk . However, it must exist,
-# as we reference it in the main help, above. Making the rule
-# .PHONY does not work.
+ifneq ($(wildcard $(BR2_EXTERNAL)/help.mk),)
+include $(BR2_EXTERNAL)/help.mk
+endif
+
+# This rule does nothing, it is expected to be overloaded by a
+# br2-external tree. However, it must exist, as we reference it
+# as a dependency of the main help, above.
 help-custom:
 
 list-defconfigs:
docs/manual/customize-outside-br.txt +4 -3
index be1827e..4f1c752 100644
@@ -108,9 +108,10 @@ And then in +$(BR2_EXTERNAL)/package/package1+ and
    normal +make <name>_defconfig+ command. They will be visible under the
    +User-provided configs+' label in the 'make list-defconfigs' output.
 
-Additionally, an +external.mk+ file may define the +help-custom+ make
-rule, to document custom make targets specific to this +BR2_EXTERNAL+
-tree. The help is completely free-form.
+Additionally, a +BR2_EXTERNAL+ tree may provide a file named +help.mk+
+that defines the +help-custom+ make rule, to document custom make
+targets specific to this +BR2_EXTERNAL+ tree. The help is completely
+free-form. See below for a sample +$(BR2_EXTERNAL)/help.mk+ file:
 
 ------
 help-custom:
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/1 core/help: fix custom help without a .config

Quoted 11 lines · Yann E. MORIN

When there is no .config, we do not source $(BR2_EXTERNAL)/external.mk. So we can not expose the custom help in that situation.

It is now known whether sourcing $(BR2_EXTERNAL)/external.mk outside the HAVE_DOT_CONFIG conditional block is entirely safe. Even if it would work today, we would have a hard time not breaking it in the future, because we do not have automatic checks for that and would need to rely on users reporting issues after the fact.

Instead, we require the custom help to be defined in its own file in the br2-external tree. This way, we can safely include it unconditionally.

IMHO that custom help was a bad idea. It's adding complexity, an extra file in
BR2_EXTERNAL, and really not that useful...

Quoted 14 lines
---
  Makefile                             | 11 +++++++----
  docs/manual/customize-outside-br.txt |  7 ++++---
  2 files changed, 11 insertions(+), 7 deletions(-)
Makefile +0 -0
index ea8b1e4..03657d5 100644

Makefile endif · line 980

Quoted 9 lines
Makefile +2 -4
@@ -976,10 +976,13 @@ endif
  	@echo 'it on-line at http://buildroot.org/docs.html'
  	@echo
 
-# This rule does nothing, it is expected to be overloaded by
-# a br2-external tree or a local.mk . However, it must exist,
-# as we reference it in the main help, above. Making the rule
-# .PHONY does not work.
+ifneq ($(wildcard $(BR2_EXTERNAL)/help.mk),)
+include $(BR2_EXTERNAL)/help.mk

Why not just -include?

Regards,
Arnout

Quoted 27 lines
Makefile +5 -0
+endif
+
+# This rule does nothing, it is expected to be overloaded by a
+# br2-external tree. However, it must exist, as we reference it
+# as a dependency of the main help, above.
  help-custom:
 
  list-defconfigs:
docs/manual/customize-outside-br.txt +4 -3
index be1827e..4f1c752 100644
@@ -108,9 +108,10 @@ And then in +$(BR2_EXTERNAL)/package/package1+ and
     normal +make <name>_defconfig+ command. They will be visible under the
     +User-provided configs+' label in the 'make list-defconfigs' output.
 
-Additionally, an +external.mk+ file may define the +help-custom+ make
-rule, to document custom make targets specific to this +BR2_EXTERNAL+
-tree. The help is completely free-form.
+Additionally, a +BR2_EXTERNAL+ tree may provide a file named +help.mk+
+that defines the +help-custom+ make rule, to document custom make
+targets specific to this +BR2_EXTERNAL+ tree. The help is completely
+free-form. See below for a sample +$(BR2_EXTERNAL)/help.mk+ file:
 
  ------
  help-custom:
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#2 lore raw

PATCH 1/1 core/help: fix custom help without a .config

Hello,

Quoted 10 lines · Arnout Vandecappelle
Quoted 9 lines · Yann E. MORIN

When there is no .config, we do not source $(BR2_EXTERNAL)/external.mk. So we can not expose the custom help in that situation.

It is now known whether sourcing $(BR2_EXTERNAL)/external.mk outside the HAVE_DOT_CONFIG conditional block is entirely safe. Even if it would work today, we would have a hard time not breaking it in the future, because we do not have automatic checks for that and would need to rely on users reporting issues after the fact.

Quoted 5 lines
Quoted 2 lines

Instead, we require the custom help to be defined in its own file in the br2-external tree. This way, we can safely include it unconditionally.

IMHO that custom help was a bad idea. It's adding complexity, an extra file in
BR2_EXTERNAL, and really not that useful...

Agreed. I'm not sure it's worth it. It's still time to revert if we don't think it's a good idea. Peter?

Without this custom help thing, it is already possible to define some custom make target in external.mk that will display some help. It won't be available until a configuration is defined, but oh well, who reads help texts anyway?

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#3 lore raw

PATCH 1/1 core/help: fix custom help without a .config

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

Hi,

Quoted 6 lines
Quoted 5 lines
Quoted 2 lines

Instead, we require the custom help to be defined in its own file in the br2-external tree. This way, we can safely include it unconditionally.

IMHO that custom help was a bad idea. It's adding complexity, an extra file in BR2_EXTERNAL, and really not that useful...

Quoted 7 lines

Agreed. I'm not sure it's worth it. It's still time to revert if we don't think it's a good idea. Peter?

Without this custom help thing, it is already possible to define some custom make target in external.mk that will display some help. It won't be available until a configuration is defined, but oh well, who reads help texts anyway?

Yeah, I also think this adds too much complexity just for a pointer to help text. I think we should drop it.

Signature · 2 lines
Venlig hilsen,
Peter Korsgaard 
#4 lore raw

PATCH 1/1 core/help: fix custom help without a .config

Hello,

Quoted 7 lines · Peter Korsgaard
Quoted 4 lines

Without this custom help thing, it is already possible to define some custom make target in external.mk that will display some help. It won't be available until a configuration is defined, but oh well, who reads help texts anyway?

Yeah, I also think this adds too much complexity just for a pointer to help text. I think we should drop it.

So will you revert it?

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#5 lore raw

PATCH 1/1 core/help: fix custom help without a .config

Thomas, Peter, All,

On 2016-04-16 09:28 +0200, Thomas Petazzoni spake thusly:

Quoted 10 lines · Peter Korsgaard
Quoted 7 lines
Quoted 4 lines

Without this custom help thing, it is already possible to define some custom make target in external.mk that will display some help. It won't be available until a configuration is defined, but oh well, who reads help texts anyway?

Yeah, I also think this adds too much complexity just for a pointer to help text. I think we should drop it.

So will you revert it?

I'll send the patches to revert it.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'
#6 lore raw

PATCH 1/1 core/help: fix custom help without a .config

In reply to Yann E. MORIN
Quoted 11 lines · Yann E. MORIN

When there is no .config, we do not source $(BR2_EXTERNAL)/external.mk. So we can not expose the custom help in that situation.

It is now known whether sourcing $(BR2_EXTERNAL)/external.mk outside the HAVE_DOT_CONFIG conditional block is entirely safe. Even if it would work today, we would have a hard time not breaking it in the future, because we do not have automatic checks for that and would need to rely on users reporting issues after the fact.

Instead, we require the custom help to be defined in its own file in the br2-external tree. This way, we can safely include it unconditionally.

Custom help has been reverted now, so I marked this patch as rejected.

Regards,
Arnout

Quoted 50 lines
---
  Makefile                             | 11 +++++++----
  docs/manual/customize-outside-br.txt |  7 ++++---
  2 files changed, 11 insertions(+), 7 deletions(-)
Makefile +7 -4
index ea8b1e4..03657d5 100644
@@ -976,10 +976,13 @@ endif
  	@echo 'it on-line at http://buildroot.org/docs.html'
  	@echo
 
-# This rule does nothing, it is expected to be overloaded by
-# a br2-external tree or a local.mk . However, it must exist,
-# as we reference it in the main help, above. Making the rule
-# .PHONY does not work.
+ifneq ($(wildcard $(BR2_EXTERNAL)/help.mk),)
+include $(BR2_EXTERNAL)/help.mk
+endif
+
+# This rule does nothing, it is expected to be overloaded by a
+# br2-external tree. However, it must exist, as we reference it
+# as a dependency of the main help, above.
  help-custom:
 
  list-defconfigs:
docs/manual/customize-outside-br.txt +4 -3
index be1827e..4f1c752 100644
@@ -108,9 +108,10 @@ And then in +$(BR2_EXTERNAL)/package/package1+ and
     normal +make <name>_defconfig+ command. They will be visible under the
     +User-provided configs+' label in the 'make list-defconfigs' output.
 
-Additionally, an +external.mk+ file may define the +help-custom+ make
-rule, to document custom make targets specific to this +BR2_EXTERNAL+
-tree. The help is completely free-form.
+Additionally, a +BR2_EXTERNAL+ tree may provide a file named +help.mk+
+that defines the +help-custom+ make rule, to document custom make
+targets specific to this +BR2_EXTERNAL+ tree. The help is completely
+free-form. See below for a sample +$(BR2_EXTERNAL)/help.mk+ file:
 
  ------
  help-custom:
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#7 lore raw

PATCH 1/1 core/help: fix custom help without a .config

Arnout, All,

On 2016-04-18 00:51 +0200, Arnout Vandecappelle spake thusly:

Quoted 10 lines · Yann E. MORIN
Quoted 9 lines

When there is no .config, we do not source $(BR2_EXTERNAL)/external.mk. So we can not expose the custom help in that situation.

It is now known whether sourcing $(BR2_EXTERNAL)/external.mk outside the HAVE_DOT_CONFIG conditional block is entirely safe. Even if it would work today, we would have a hard time not breaking it in the future, because we do not have automatic checks for that and would need to rely on users reporting issues after the fact.

Quoted 4 lines
Quoted 2 lines

Instead, we require the custom help to be defined in its own file in the br2-external tree. This way, we can safely include it unconditionally.

Custom help has been reverted now, so I marked this patch as rejected.

Yes, thanks! :-)

Regards,
Yann E. MORIN.

Quoted 62 lines

Regards,
Arnout

Quoted 50 lines
---
 Makefile                             | 11 +++++++----
 docs/manual/customize-outside-br.txt |  7 ++++---
 2 files changed, 11 insertions(+), 7 deletions(-)
Makefile +7 -4
index ea8b1e4..03657d5 100644
@@ -976,10 +976,13 @@ endif
 	@echo 'it on-line at http://buildroot.org/docs.html'
 	@echo
 
-# This rule does nothing, it is expected to be overloaded by
-# a br2-external tree or a local.mk . However, it must exist,
-# as we reference it in the main help, above. Making the rule
-# .PHONY does not work.
+ifneq ($(wildcard $(BR2_EXTERNAL)/help.mk),)
+include $(BR2_EXTERNAL)/help.mk
+endif
+
+# This rule does nothing, it is expected to be overloaded by a
+# br2-external tree. However, it must exist, as we reference it
+# as a dependency of the main help, above.
 help-custom:
 
 list-defconfigs:
docs/manual/customize-outside-br.txt +4 -3
index be1827e..4f1c752 100644
@@ -108,9 +108,10 @@ And then in +$(BR2_EXTERNAL)/package/package1+ and
    normal +make <name>_defconfig+ command. They will be visible under the
    +User-provided configs+' label in the 'make list-defconfigs' output.
 
-Additionally, an +external.mk+ file may define the +help-custom+ make
-rule, to document custom make targets specific to this +BR2_EXTERNAL+
-tree. The help is completely free-form.
+Additionally, a +BR2_EXTERNAL+ tree may provide a file named +help.mk+
+that defines the +help-custom+ make rule, to document custom make
+targets specific to this +BR2_EXTERNAL+ tree. The help is completely
+free-form. See below for a sample +$(BR2_EXTERNAL)/help.mk+ file:
 
 ------
 help-custom:
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'