diff mbox series

[v3,01/11] kbuild: add PYTHON2 and PYTHON3 variables

Message ID 1520932332-2449-2-git-send-email-yamada.masahiro@socionext.com
State Accepted
Commit e9781b52d4e0e3381351d3483cfd173a968dcbe6
Headers show
Series Add Kconfig unit tests | expand

Commit Message

Masahiro Yamada March 13, 2018, 9:12 a.m. UTC
The variable 'PYTHON' allows users to specify a proper executable
name in case the default 'python' does not work.  However, this does
not address the case where both Python 2.x and 3.x scripts are used
in one source tree.

PEP 394 (https://www.python.org/dev/peps/pep-0394/) provides a
convention for Python scripts portability.  Here is a quotation:

  In order to tolerate differences across platforms, all new code
  that needs to invoke the Python interpreter should not specify
  'python', but rather should specify either 'python2' or 'python3'.
  This distinction should be made in shebangs, when invoking from a
  shell script, when invoking via the system() call, or when invoking
  in any other context.
  One exception to this is scripts that are deliberately written to
  be source compatible with both Python 2.x and 3.x. Such scripts may
  continue to use python on their shebang line without affecting their
  portability.

To meet this requirement, this commit adds new variables 'PYTHON2'
and 'PYTHON3'.

arch/ia64/scripts/unwcheck.py is the only script that has ever used
$(PYTHON).  Recent commit bd5edbe67794 ("ia64: convert unwcheck.py to
python3") converted it to be compatible with both Python 2.x and 3.x,
so this is the exceptional case where the use of 'python' is allowed.
So, I did not touch arch/ia64/Makefile.

tools/perf/Makefile.config sets PYTHON and PYTHON2 by itself, so it
is not affected by this commit.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

---

Changes in v3:
  - Keep PYTHON as-is because ia64 recently converted its script
    compatible with Python 3.x

Changes in v2:
  - Add backward compatibility for PYTHON

 Makefile | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

-- 
2.7.4
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index e02d092..7a5f85e 100644
--- a/Makefile
+++ b/Makefile
@@ -385,6 +385,8 @@  INSTALLKERNEL  := installkernel
 DEPMOD		= /sbin/depmod
 PERL		= perl
 PYTHON		= python
+PYTHON2		= python2
+PYTHON3		= python3
 CHECK		= sparse
 
 CHECKFLAGS     := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \
@@ -430,7 +432,7 @@  GCC_PLUGINS_CFLAGS :=
 
 export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
 export CPP AR NM STRIP OBJCOPY OBJDUMP HOSTLDFLAGS HOST_LOADLIBES
-export MAKE LEX YACC AWK GENKSYMS INSTALLKERNEL PERL PYTHON UTS_MACHINE
+export MAKE LEX YACC AWK GENKSYMS INSTALLKERNEL PERL PYTHON PYTHON2 PYTHON3 UTS_MACHINE
 export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
 
 export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS