All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] Makefile: honor PYTHON configuration properly
@ 2017-08-13 21:04 Clément Bœsch
  2017-08-13 21:20 ` Tom Rini
  2017-08-14  3:10 ` Jonathan Gray
  0 siblings, 2 replies; 7+ messages in thread
From: Clément Bœsch @ 2017-08-13 21:04 UTC (permalink / raw)
  To: u-boot

---
 Makefile       | 2 +-
 tools/Makefile | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 50a002e72f..1f70144e0a 100644
--- a/Makefile
+++ b/Makefile
@@ -1378,7 +1378,7 @@ $(timestamp_h): $(srctree)/Makefile FORCE
 	$(call filechk,timestamp.h)
 
 checkbinman: tools
-	@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools python )); then \
+	@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools $(PYTHON) )); then \
 		echo >&2; \
 		echo >&2 '*** binman needs the Python libfdt library.'; \
 		echo >&2 '*** Either install it on your system, or try:'; \
diff --git a/tools/Makefile b/tools/Makefile
index 0743677dc8..1940cdad1f 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -138,7 +138,7 @@ tools/_libfdt.so: $(LIBFDT_SRCS) $(LIBFDT_SWIG)
 		CPPFLAGS="$(_hostc_flags)" OBJDIR=tools \
 		SOURCES="$(LIBFDT_SRCS) tools/libfdt.i" \
 		SWIG_OPTS="-I$(srctree)/lib/libfdt -I$(srctree)/lib" \
-		$(libfdt_tree)/pylibfdt/setup.py --quiet build_ext \
+		$(PYTHON) $(libfdt_tree)/pylibfdt/setup.py build_ext \
 			--build-lib tools
 
 ifneq ($(CONFIG_MX23)$(CONFIG_MX28),)
-- 
2.14.1

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

* [U-Boot] [PATCH] Makefile: honor PYTHON configuration properly
  2017-08-13 21:04 [U-Boot] [PATCH] Makefile: honor PYTHON configuration properly Clément Bœsch
@ 2017-08-13 21:20 ` Tom Rini
  2017-08-13 22:36   ` Clément Bœsch
  2017-08-14  3:10 ` Jonathan Gray
  1 sibling, 1 reply; 7+ messages in thread
From: Tom Rini @ 2017-08-13 21:20 UTC (permalink / raw)
  To: u-boot

On Sun, Aug 13, 2017 at 11:04:03PM +0200, Clément Bœsch wrote:

> ---
>  Makefile       | 2 +-
>  tools/Makefile | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 50a002e72f..1f70144e0a 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1378,7 +1378,7 @@ $(timestamp_h): $(srctree)/Makefile FORCE
>  	$(call filechk,timestamp.h)
>  
>  checkbinman: tools
> -	@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools python )); then \
> +	@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools $(PYTHON) )); then \
>  		echo >&2; \
>  		echo >&2 '*** binman needs the Python libfdt library.'; \
>  		echo >&2 '*** Either install it on your system, or try:'; \
> diff --git a/tools/Makefile b/tools/Makefile
> index 0743677dc8..1940cdad1f 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -138,7 +138,7 @@ tools/_libfdt.so: $(LIBFDT_SRCS) $(LIBFDT_SWIG)
>  		CPPFLAGS="$(_hostc_flags)" OBJDIR=tools \
>  		SOURCES="$(LIBFDT_SRCS) tools/libfdt.i" \
>  		SWIG_OPTS="-I$(srctree)/lib/libfdt -I$(srctree)/lib" \
> -		$(libfdt_tree)/pylibfdt/setup.py --quiet build_ext \
> +		$(PYTHON) $(libfdt_tree)/pylibfdt/setup.py build_ext \
>  			--build-lib tools
>  
>  ifneq ($(CONFIG_MX23)$(CONFIG_MX28),)

A blank commit message here is not enough.  Where are you seeing what
type of problems?  Thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170813/bd71be16/attachment.sig>

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

* [U-Boot] [PATCH] Makefile: honor PYTHON configuration properly
  2017-08-13 21:20 ` Tom Rini
@ 2017-08-13 22:36   ` Clément Bœsch
  0 siblings, 0 replies; 7+ messages in thread
From: Clément Bœsch @ 2017-08-13 22:36 UTC (permalink / raw)
  To: u-boot

On some systems `python` is `python3` (for instance, Archlinux). The `PYTHON`
variable can be used to point to `python2` to have a successful build.

The use of `PYTHON` is currently limited in the Makefile and needs to be
extended to at 2 other cases:

First, pylibfdt is required to be a Python 2 binding (binman imports pylibfdt
and is only compatible Python 2), so its setup.py needs to be called
accordingly. An alternative would be to change the libfdt setup.py shebang to
python2, but the binding is actually portable. Also, it would break on system
where there is no such thing as `python2`.

Secondly, the check of the libfdt import needs to be check against specificed
Python 2 path since the Python 2 compiled modules (in this case _libdft.so) are
not compatible with Python 3.

Note on the libfdt import: "@if $(PYTHON) -c 'import libfdt'; then..." is
probably simpler than the currently overkill sub-shells.
---
 Makefile       | 2 +-
 tools/Makefile | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 50a002e72f..1f70144e0a 100644
--- a/Makefile
+++ b/Makefile
@@ -1378,7 +1378,7 @@ $(timestamp_h): $(srctree)/Makefile FORCE
 	$(call filechk,timestamp.h)
 
 checkbinman: tools
-	@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools python )); then \
+	@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools $(PYTHON) )); then \
 		echo >&2; \
 		echo >&2 '*** binman needs the Python libfdt library.'; \
 		echo >&2 '*** Either install it on your system, or try:'; \
diff --git a/tools/Makefile b/tools/Makefile
index 0743677dc8..1940cdad1f 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -138,7 +138,7 @@ tools/_libfdt.so: $(LIBFDT_SRCS) $(LIBFDT_SWIG)
 		CPPFLAGS="$(_hostc_flags)" OBJDIR=tools \
 		SOURCES="$(LIBFDT_SRCS) tools/libfdt.i" \
 		SWIG_OPTS="-I$(srctree)/lib/libfdt -I$(srctree)/lib" \
-		$(libfdt_tree)/pylibfdt/setup.py --quiet build_ext \
+		$(PYTHON) $(libfdt_tree)/pylibfdt/setup.py build_ext \
 			--build-lib tools
 
 ifneq ($(CONFIG_MX23)$(CONFIG_MX28),)
-- 
2.14.0

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

* [U-Boot] [PATCH] Makefile: honor PYTHON configuration properly
  2017-08-13 21:04 [U-Boot] [PATCH] Makefile: honor PYTHON configuration properly Clément Bœsch
  2017-08-13 21:20 ` Tom Rini
@ 2017-08-14  3:10 ` Jonathan Gray
  2017-08-14  6:59   ` [U-Boot] [PATCH v3] " Clément Bœsch
  1 sibling, 1 reply; 7+ messages in thread
From: Jonathan Gray @ 2017-08-14  3:10 UTC (permalink / raw)
  To: u-boot

On Sun, Aug 13, 2017 at 11:04:03PM +0200, Cl??ment B??sch wrote:
> ---
>  Makefile       | 2 +-
>  tools/Makefile | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)

There is a similiar fragment in scripts/Makefile.spl with the checkdtoc
target that should also be fixed.

checkdtoc: tools
	@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools python )); then \

> 
> diff --git a/Makefile b/Makefile
> index 50a002e72f..1f70144e0a 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1378,7 +1378,7 @@ $(timestamp_h): $(srctree)/Makefile FORCE
>  	$(call filechk,timestamp.h)
>  
>  checkbinman: tools
> -	@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools python )); then \
> +	@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools $(PYTHON) )); then \
>  		echo >&2; \
>  		echo >&2 '*** binman needs the Python libfdt library.'; \
>  		echo >&2 '*** Either install it on your system, or try:'; \
> diff --git a/tools/Makefile b/tools/Makefile
> index 0743677dc8..1940cdad1f 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -138,7 +138,7 @@ tools/_libfdt.so: $(LIBFDT_SRCS) $(LIBFDT_SWIG)
>  		CPPFLAGS="$(_hostc_flags)" OBJDIR=tools \
>  		SOURCES="$(LIBFDT_SRCS) tools/libfdt.i" \
>  		SWIG_OPTS="-I$(srctree)/lib/libfdt -I$(srctree)/lib" \
> -		$(libfdt_tree)/pylibfdt/setup.py --quiet build_ext \
> +		$(PYTHON) $(libfdt_tree)/pylibfdt/setup.py build_ext \
>  			--build-lib tools
>  
>  ifneq ($(CONFIG_MX23)$(CONFIG_MX28),)
> -- 
> 2.14.1
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH v3] Makefile: honor PYTHON configuration properly
  2017-08-14  3:10 ` Jonathan Gray
@ 2017-08-14  6:59   ` Clément Bœsch
  2017-08-14 15:35     ` Jonathan Gray
  2017-08-20 23:29     ` [U-Boot] [U-Boot, " Tom Rini
  0 siblings, 2 replies; 7+ messages in thread
From: Clément Bœsch @ 2017-08-14  6:59 UTC (permalink / raw)
  To: u-boot

On some systems `python` is `python3` (for instance, Archlinux). The
`PYTHON` variable can be used to point to `python2` to have a successful
build.

The use of `PYTHON` is currently limited in the Makefile and needs to be
extended in other places:

First, pylibfdt is required to be a Python 2 binding (binman imports
pylibfdt and is only compatible Python 2), so its setup.py needs to be
called accordingly. An alternative would be to change the libfdt
setup.py shebang to python2, but the binding is actually portable. Also,
it would break on system where there is no such thing as `python2`.

Secondly, the libfdt import checks need to be done against Python 2 as
well since the Python 2 compiled modules (in this case _libdft.so) can
not be imported from Python 3.

Note on the libfdt imports: "@if ! PYTHONPATH=tools $(PYTHON) -c 'import
libfdt'; then..." is probably simpler than the currently sub-optimal
pipe.
---
 Makefile             | 2 +-
 scripts/Makefile.spl | 2 +-
 tools/Makefile       | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index 50a002e72f..1f70144e0a 100644
--- a/Makefile
+++ b/Makefile
@@ -1378,7 +1378,7 @@ $(timestamp_h): $(srctree)/Makefile FORCE
 	$(call filechk,timestamp.h)
 
 checkbinman: tools
-	@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools python )); then \
+	@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools $(PYTHON) )); then \
 		echo >&2; \
 		echo >&2 '*** binman needs the Python libfdt library.'; \
 		echo >&2 '*** Either install it on your system, or try:'; \
diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
index ac3c2c7f13..c47248cc57 100644
--- a/scripts/Makefile.spl
+++ b/scripts/Makefile.spl
@@ -356,7 +356,7 @@ ifneq ($(cmd_files),)
 endif
 
 checkdtoc: tools
-	@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools python )); then \
+	@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools $(PYTHON) )); then \
 		echo '*** dtoc needs the Python libfdt library. Either '; \
 		echo '*** install it on your system, or try:'; \
 		echo '***'; \
diff --git a/tools/Makefile b/tools/Makefile
index 0743677dc8..1940cdad1f 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -138,7 +138,7 @@ tools/_libfdt.so: $(LIBFDT_SRCS) $(LIBFDT_SWIG)
 		CPPFLAGS="$(_hostc_flags)" OBJDIR=tools \
 		SOURCES="$(LIBFDT_SRCS) tools/libfdt.i" \
 		SWIG_OPTS="-I$(srctree)/lib/libfdt -I$(srctree)/lib" \
-		$(libfdt_tree)/pylibfdt/setup.py --quiet build_ext \
+		$(PYTHON) $(libfdt_tree)/pylibfdt/setup.py build_ext \
 			--build-lib tools
 
 ifneq ($(CONFIG_MX23)$(CONFIG_MX28),)
-- 
2.14.1

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

* [U-Boot] [PATCH v3] Makefile: honor PYTHON configuration properly
  2017-08-14  6:59   ` [U-Boot] [PATCH v3] " Clément Bœsch
@ 2017-08-14 15:35     ` Jonathan Gray
  2017-08-20 23:29     ` [U-Boot] [U-Boot, " Tom Rini
  1 sibling, 0 replies; 7+ messages in thread
From: Jonathan Gray @ 2017-08-14 15:35 UTC (permalink / raw)
  To: u-boot

On Mon, Aug 14, 2017 at 08:59:11AM +0200, Cl??ment B??sch wrote:
> On some systems `python` is `python3` (for instance, Archlinux). The
> `PYTHON` variable can be used to point to `python2` to have a successful
> build.
> 
> The use of `PYTHON` is currently limited in the Makefile and needs to be
> extended in other places:
> 
> First, pylibfdt is required to be a Python 2 binding (binman imports
> pylibfdt and is only compatible Python 2), so its setup.py needs to be
> called accordingly. An alternative would be to change the libfdt
> setup.py shebang to python2, but the binding is actually portable. Also,
> it would break on system where there is no such thing as `python2`.
> 
> Secondly, the libfdt import checks need to be done against Python 2 as
> well since the Python 2 compiled modules (in this case _libdft.so) can
> not be imported from Python 3.
> 
> Note on the libfdt imports: "@if ! PYTHONPATH=tools $(PYTHON) -c 'import
> libfdt'; then..." is probably simpler than the currently sub-optimal
> pipe.

Reviewed-by: Jonathan Gray <jsg@jsg.id.au>

This is also helpful for OpenBSD where python 2 is not 'python' or
'python2' but rather 'python2.7'.

> ---
>  Makefile             | 2 +-
>  scripts/Makefile.spl | 2 +-
>  tools/Makefile       | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 50a002e72f..1f70144e0a 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1378,7 +1378,7 @@ $(timestamp_h): $(srctree)/Makefile FORCE
>  	$(call filechk,timestamp.h)
>  
>  checkbinman: tools
> -	@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools python )); then \
> +	@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools $(PYTHON) )); then \
>  		echo >&2; \
>  		echo >&2 '*** binman needs the Python libfdt library.'; \
>  		echo >&2 '*** Either install it on your system, or try:'; \
> diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
> index ac3c2c7f13..c47248cc57 100644
> --- a/scripts/Makefile.spl
> +++ b/scripts/Makefile.spl
> @@ -356,7 +356,7 @@ ifneq ($(cmd_files),)
>  endif
>  
>  checkdtoc: tools
> -	@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools python )); then \
> +	@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools $(PYTHON) )); then \
>  		echo '*** dtoc needs the Python libfdt library. Either '; \
>  		echo '*** install it on your system, or try:'; \
>  		echo '***'; \
> diff --git a/tools/Makefile b/tools/Makefile
> index 0743677dc8..1940cdad1f 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -138,7 +138,7 @@ tools/_libfdt.so: $(LIBFDT_SRCS) $(LIBFDT_SWIG)
>  		CPPFLAGS="$(_hostc_flags)" OBJDIR=tools \
>  		SOURCES="$(LIBFDT_SRCS) tools/libfdt.i" \
>  		SWIG_OPTS="-I$(srctree)/lib/libfdt -I$(srctree)/lib" \
> -		$(libfdt_tree)/pylibfdt/setup.py --quiet build_ext \
> +		$(PYTHON) $(libfdt_tree)/pylibfdt/setup.py build_ext \
>  			--build-lib tools
>  
>  ifneq ($(CONFIG_MX23)$(CONFIG_MX28),)
> -- 
> 2.14.1
> 

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

* [U-Boot] [U-Boot, v3] Makefile: honor PYTHON configuration properly
  2017-08-14  6:59   ` [U-Boot] [PATCH v3] " Clément Bœsch
  2017-08-14 15:35     ` Jonathan Gray
@ 2017-08-20 23:29     ` Tom Rini
  1 sibling, 0 replies; 7+ messages in thread
From: Tom Rini @ 2017-08-20 23:29 UTC (permalink / raw)
  To: u-boot

On Mon, Aug 14, 2017 at 08:59:11AM +0200, Clément Bœsch wrote:

> On some systems `python` is `python3` (for instance, Archlinux). The
> `PYTHON` variable can be used to point to `python2` to have a successful
> build.
> 
> The use of `PYTHON` is currently limited in the Makefile and needs to be
> extended in other places:
> 
> First, pylibfdt is required to be a Python 2 binding (binman imports
> pylibfdt and is only compatible Python 2), so its setup.py needs to be
> called accordingly. An alternative would be to change the libfdt
> setup.py shebang to python2, but the binding is actually portable. Also,
> it would break on system where there is no such thing as `python2`.
> 
> Secondly, the libfdt import checks need to be done against Python 2 as
> well since the Python 2 compiled modules (in this case _libdft.so) can
> not be imported from Python 3.
> 
> Note on the libfdt imports: "@if ! PYTHONPATH=tools $(PYTHON) -c 'import
> libfdt'; then..." is probably simpler than the currently sub-optimal
> pipe.
> Reviewed-by: Jonathan Gray <jsg@jsg.id.au>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170820/e773b557/attachment.sig>

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

end of thread, other threads:[~2017-08-20 23:29 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-13 21:04 [U-Boot] [PATCH] Makefile: honor PYTHON configuration properly Clément Bœsch
2017-08-13 21:20 ` Tom Rini
2017-08-13 22:36   ` Clément Bœsch
2017-08-14  3:10 ` Jonathan Gray
2017-08-14  6:59   ` [U-Boot] [PATCH v3] " Clément Bœsch
2017-08-14 15:35     ` Jonathan Gray
2017-08-20 23:29     ` [U-Boot] [U-Boot, " Tom Rini

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.