[U-Boot] [PATCH] env: Fix operation of 'make environ'

This was broken by the recent environment refactoring. Specifically:
$ make environ scripts/Makefile.build:59: tools/environ/Makefile: No such file or directory make[1]: *** No rule to make target 'tools/environ/Makefile'. Stop. make: *** [Makefile:1469: environ] Error 2
Fix this by updating the Makefile and adjusting the #include filesnames in two C files.
Fixes: ec74f5f (Makefile: Rename 'env' target to 'environ') Reported-by: Måns Rullgård mans@mansr.com Signed-off-by: Simon Glass sjg@chromium.org ---
Makefile | 2 +- tools/env/env_attr.c | 2 +- tools/env/env_flags.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile index a0f3bfd2a52..dd9d5678118 100644 --- a/Makefile +++ b/Makefile @@ -1466,7 +1466,7 @@ checkarmreloc: u-boot fi
environ: scripts_basic - $(Q)$(MAKE) $(build)=tools/$@ + $(Q)$(MAKE) $(build)=tools/env
tools-only: scripts_basic $(version_h) $(timestamp_h) $(Q)$(MAKE) $(build)=tools diff --git a/tools/env/env_attr.c b/tools/env/env_attr.c index 502d4c900bf..4d8536335c3 100644 --- a/tools/env/env_attr.c +++ b/tools/env/env_attr.c @@ -1 +1 @@ -#include "../../common/env_attr.c" +#include "../../env/attr.c" diff --git a/tools/env/env_flags.c b/tools/env/env_flags.c index b261cb8e390..71e13e2021f 100644 --- a/tools/env/env_flags.c +++ b/tools/env/env_flags.c @@ -1 +1 @@ -#include "../../common/env_flags.c" +#include "../../env/flags.c"

Simon Glass sjg@chromium.org writes:
This was broken by the recent environment refactoring. Specifically:
$ make environ scripts/Makefile.build:59: tools/environ/Makefile: No such file or directory make[1]: *** No rule to make target 'tools/environ/Makefile'. Stop. make: *** [Makefile:1469: environ] Error 2
Fix this by updating the Makefile and adjusting the #include filesnames in two C files.
Fixes: ec74f5f (Makefile: Rename 'env' target to 'environ') Reported-by: Måns Rullgård mans@mansr.com Signed-off-by: Simon Glass sjg@chromium.org
Makefile | 2 +- tools/env/env_attr.c | 2 +- tools/env/env_flags.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
This still breaks any build scripts using the old target (yes, there are many). That's probably acceptable, but a mention of it in some release note would be nice.
Come to think of it, if we're anyway going to break things, how about giving that target a more descriptive name than environ? I suggest envtools.
diff --git a/Makefile b/Makefile index a0f3bfd2a52..dd9d5678118 100644 --- a/Makefile +++ b/Makefile @@ -1466,7 +1466,7 @@ checkarmreloc: u-boot fi
environ: scripts_basic
- $(Q)$(MAKE) $(build)=tools/$@
- $(Q)$(MAKE) $(build)=tools/env
tools-only: scripts_basic $(version_h) $(timestamp_h) $(Q)$(MAKE) $(build)=tools diff --git a/tools/env/env_attr.c b/tools/env/env_attr.c index 502d4c900bf..4d8536335c3 100644 --- a/tools/env/env_attr.c +++ b/tools/env/env_attr.c @@ -1 +1 @@ -#include "../../common/env_attr.c" +#include "../../env/attr.c" diff --git a/tools/env/env_flags.c b/tools/env/env_flags.c index b261cb8e390..71e13e2021f 100644 --- a/tools/env/env_flags.c +++ b/tools/env/env_flags.c @@ -1 +1 @@ -#include "../../common/env_flags.c"
+#include "../../env/flags.c"
2.14.1.342.g6490525c54-goog

On Mon, Aug 28, 2017 at 12:01:51PM +0100, Måns Rullgård wrote:
Simon Glass sjg@chromium.org writes:
This was broken by the recent environment refactoring. Specifically:
$ make environ scripts/Makefile.build:59: tools/environ/Makefile: No such file or directory make[1]: *** No rule to make target 'tools/environ/Makefile'. Stop. make: *** [Makefile:1469: environ] Error 2
Fix this by updating the Makefile and adjusting the #include filesnames in two C files.
Fixes: ec74f5f (Makefile: Rename 'env' target to 'environ') Reported-by: Måns Rullgård mans@mansr.com Signed-off-by: Simon Glass sjg@chromium.org
This still breaks any build scripts using the old target (yes, there are many). That's probably acceptable, but a mention of it in some release note would be nice.
Come to think of it, if we're anyway going to break things, how about giving that target a more descriptive name than environ? I suggest envtools.
Too early, no coffee. Can't we do some make logic so that 'env' is still a target and thus we don't break those scripts? Otherwise, yes, I'll make sure to indicate in at least the v2017.09 release email that we renamed 'env' to envtools or something. Thanks!

On Mon, Aug 28, 2017 at 6:13 AM, Tom Rini trini@konsulko.com wrote:
On Mon, Aug 28, 2017 at 12:01:51PM +0100, Måns Rullgård wrote:
Simon Glass sjg@chromium.org writes:
This was broken by the recent environment refactoring. Specifically:
$ make environ scripts/Makefile.build:59: tools/environ/Makefile: No such file or directory make[1]: *** No rule to make target 'tools/environ/Makefile'. Stop. make: *** [Makefile:1469: environ] Error 2
Fix this by updating the Makefile and adjusting the #include filesnames in two C files.
Fixes: ec74f5f (Makefile: Rename 'env' target to 'environ') Reported-by: Måns Rullgård mans@mansr.com Signed-off-by: Simon Glass sjg@chromium.org
This still breaks any build scripts using the old target (yes, there are many). That's probably acceptable, but a mention of it in some release note would be nice.
Come to think of it, if we're anyway going to break things, how about giving that target a more descriptive name than environ? I suggest envtools.
Too early, no coffee. Can't we do some make logic so that 'env' is still a target and thus we don't break those scripts? Otherwise, yes, I'll make sure to indicate in at least the v2017.09 release email that we renamed 'env' to envtools or something. Thanks!
It's really just building the fw_printenv tool (which uses a symlink for fw_setenv). It seems like a much clearer make target, and source dir for that matter, would be fw_printenv.
-Joe

Hi,
On 29 August 2017 at 00:08, Joe Hershberger joe.hershberger@ni.com wrote:
On Mon, Aug 28, 2017 at 6:13 AM, Tom Rini trini@konsulko.com wrote:
On Mon, Aug 28, 2017 at 12:01:51PM +0100, Måns Rullgård wrote:
Simon Glass sjg@chromium.org writes:
This was broken by the recent environment refactoring. Specifically:
$ make environ scripts/Makefile.build:59: tools/environ/Makefile: No such file or directory make[1]: *** No rule to make target 'tools/environ/Makefile'. Stop. make: *** [Makefile:1469: environ] Error 2
Fix this by updating the Makefile and adjusting the #include filesnames in two C files.
Fixes: ec74f5f (Makefile: Rename 'env' target to 'environ') Reported-by: Måns Rullgård mans@mansr.com Signed-off-by: Simon Glass sjg@chromium.org
This still breaks any build scripts using the old target (yes, there are many). That's probably acceptable, but a mention of it in some release note would be nice.
Come to think of it, if we're anyway going to break things, how about giving that target a more descriptive name than environ? I suggest envtools.
Too early, no coffee. Can't we do some make logic so that 'env' is still a target and thus we don't break those scripts? Otherwise, yes, I'll make sure to indicate in at least the v2017.09 release email that we renamed 'env' to envtools or something. Thanks!
It's really just building the fw_printenv tool (which uses a symlink for fw_setenv). It seems like a much clearer make target, and source dir for that matter, would be fw_printenv.
-Joe
I decided to go with envtools for v2 since even though there is a symlink, there are two tools intended from this.
If you don't like it let me know and I can change it.
I could not figure out how to make the 'env' target build what we have now. We make each subdir a target in the main Makefile, so it just produced a duplicate target.
Regards, Simon
participants (4)
-
Joe Hershberger
-
Måns Rullgård
-
Simon Glass
-
Tom Rini