From 34bc02c7bc8b7e8c267e6da9a8c35a6c25f1b72e Mon Sep 17 00:00:00 2001 From: Ben Gamari <ben@smart-cactus.org> Date: Sun, 17 Nov 2019 19:10:45 -0500 Subject: [PATCH] configure: Find Python3 for testsuite In addition, we prefer the Mingw64 Python distribution on Windows due to #17483. --- .gitlab-ci.yml | 2 +- aclocal.m4 | 11 +++++++++++ configure.ac | 3 +++ distrib/configure.ac.in | 3 +++ hadrian/cfg/system.config.in | 2 +- testsuite/mk/boilerplate.mk | 2 +- 6 files changed, 20 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e7d78e74af81..683f56c83bfc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -860,7 +860,7 @@ nightly-i386-windows-hadrian: - bash -c "PATH=`pwd`/toolchain/bin:$PATH make -j`mk/detect-cpu-count.sh`" - bash -c "PATH=`pwd`/toolchain/bin:$PATH make binary-dist-prep TAR_COMP_OPTS=-1" - bash -c "PATH=`pwd`/toolchain/bin:$PATH make test_bindist TEST_PREP=YES" - - bash -c 'make V=0 test THREADS=`mk/detect-cpu-count.sh` JUNIT_FILE=../../junit.xml' + - bash -c 'make V=0 test PYTHON=/mingw64/bin/python3 THREADS=`mk/detect-cpu-count.sh` JUNIT_FILE=../../junit.xml' tags: - x86_64-windows artifacts: diff --git a/aclocal.m4 b/aclocal.m4 index ed6e8a7c0d41..6b005acf8229 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -2513,4 +2513,15 @@ AC_DEFUN([FIND_LD],[ CHECK_LD_COPY_BUG([$1]) ]) +# FIND_PYTHON +# ----------- +# Find the version of `python` to use (for the testsuite driver) +# +AC_DEFUN([FIND_PYTHON],[ + dnl Prefer the mingw64 distribution on Windows due to #17483. + AC_PATH_PROG([PYTHON], [python3], [], [/mingw64/bin $PATH]) + PythonCmd="$PYTHON" + AC_SUBST([PythonCmd]) +]) + # LocalWords: fi diff --git a/configure.ac b/configure.ac index 812984ff9bfc..9f0e1567dd76 100644 --- a/configure.ac +++ b/configure.ac @@ -855,6 +855,9 @@ AC_PATH_PROG(XELATEX,xelatex) dnl ** check for makeinfo AC_PATH_PROG(MAKEINFO,makeinfo) +dnl ** check for Python for testsuite driver +FIND_PYTHON + dnl ** check for ghc-pkg command FP_PROG_GHC_PKG diff --git a/distrib/configure.ac.in b/distrib/configure.ac.in index 027df47db84c..c3df6203b58a 100644 --- a/distrib/configure.ac.in +++ b/distrib/configure.ac.in @@ -77,6 +77,9 @@ dnl ** Find the path to sed ** # AC_PATH_PROG(SedCmd,gsed sed,sed) +dnl ** check for Python for testsuite driver +FIND_PYTHON + XCODE_VERSION() dnl ** Which gcc to use? diff --git a/hadrian/cfg/system.config.in b/hadrian/cfg/system.config.in index b531bd8c31a0..5c494cf27e3d 100644 --- a/hadrian/cfg/system.config.in +++ b/hadrian/cfg/system.config.in @@ -28,7 +28,7 @@ makeinfo = @MAKEINFO@ # Python 3 is required to run test driver. # See: https://github.com/ghc/ghc/blob/master/testsuite/mk/boilerplate.mk#L220 -python = python3 +python = @PythonCmd@ # Information about builders: #============================ diff --git a/testsuite/mk/boilerplate.mk b/testsuite/mk/boilerplate.mk index 7eb89d978573..5cdc40e68c1f 100644 --- a/testsuite/mk/boilerplate.mk +++ b/testsuite/mk/boilerplate.mk @@ -217,7 +217,7 @@ $(eval $(call canonicalise,TOP_ABS)) GS = gs CP = cp RM = rm -f -PYTHON = python3 +PYTHON ?= python3 ifeq "$(CHECK_API_ANNOTATIONS)" "" CHECK_API_ANNOTATIONS := $(abspath $(TOP)/../inplace/bin/check-api-annotations) -- GitLab