PYTHON= python$(EXE)
BUILDPYTHON= python$(BUILDEXE)
+HOSTRUNNER= @HOSTRUNNER@
+
PYTHON_FOR_REGEN?=@PYTHON_FOR_REGEN@
UPDATE_FILE=$(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/update_file.py
PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@
$(UPDATE_FILE) $(srcdir)/Lib/keyword.py $(srcdir)/Lib/keyword.py.new
.PHONY: regen-stdlib-module-names
-regen-stdlib-module-names: build_all Programs/_testembed
+regen-stdlib-module-names: all Programs/_testembed
# Regenerate Python/stdlib_module_names.h
# using Tools/scripts/generate_stdlib_module_names.py
$(RUNSHARED) ./$(BUILDPYTHON) \
######################################################################
TESTOPTS= $(EXTRATESTOPTS)
-TESTPYTHON= $(RUNSHARED) ./$(BUILDPYTHON) $(TESTPYTHONOPTS)
+TESTPYTHON= $(RUNSHARED) $(PYTHON_FOR_BUILD) $(TESTPYTHONOPTS)
TESTRUNNER= $(TESTPYTHON) $(srcdir)/Tools/scripts/run_tests.py
TESTTIMEOUT= 1200
# Remove "test_python_*" directories of previous failed test jobs.
# Pass TESTOPTS options because it can contain --tempdir option.
-cleantest: build_all
+cleantest: all
$(TESTRUNNER) $(TESTOPTS) --cleanup
# Run a basic set of regression tests.
# Like testall, but with only one pass and without multiple processes.
# Run an optional script to include information about the build environment.
-buildbottest: build_all platform
+buildbottest: all platform
-@if which pybuildbot.identify >/dev/null 2>&1; then \
pybuildbot.identify "CC='$(CC)'" "CXX='$(CXX)'"; \
fi
$(TESTRUNNER) -j 1 -u all -W --slowest --fail-env-changed --timeout=$(TESTTIMEOUT) $(TESTOPTS)
-pythoninfo: build_all
- $(RUNSHARED) ./$(BUILDPYTHON) -m test.pythoninfo
+pythoninfo: all
+ $(RUNSHARED) $(HOSTRUNNER) ./$(BUILDPYTHON) -m test.pythoninfo
QUICKTESTOPTS= $(TESTOPTS) -x test_subprocess test_io test_lib2to3 \
test_multibytecodec test_urllib2_localnet test_itertools \
# SSL tests
.PHONY: multisslcompile multissltest
-multisslcompile: build_all
+multisslcompile: all
$(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/ssl/multissltests.py --steps=modules
-multissltest: build_all
+multissltest: all
$(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/ssl/multissltests.py
install: @FRAMEWORKINSTALLFIRST@ commoninstall bininstall maninstall @FRAMEWORKINSTALLLAST@
unittest/test unittest/test/testmock
TEST_MODULES=@TEST_MODULES@
-libinstall: build_all $(srcdir)/Modules/xxmodule.c
+libinstall: all $(srcdir)/Modules/xxmodule.c
@for i in $(SCRIPTDIR) $(LIBDEST); \
do \
if test ! -d $(DESTDIR)$$i; then \
LINK_PYTHON_OBJS
LINK_PYTHON_DEPS
LIBRARY_DEPS
+HOSTRUNNER
STATIC_LIBPYTHON
GNULD
EXPORTSFROM
LIBS
CPPFLAGS
CPP
+HOSTRUNNER
PROFILE_TASK
LIBUUID_CFLAGS
LIBUUID_LIBS
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CPP C preprocessor
+ HOSTRUNNER Program to run CPython for the host platform
PROFILE_TASK
Python args for PGO generation task
LIBUUID_CFLAGS
RUNSHARED=
fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking HOSTRUNNER" >&5
+$as_echo_n "checking HOSTRUNNER... " >&6; }
+if test -z "$HOSTRUNNER"
+then
+ case $ac_sys_system/$ac_sys_emscripten_target in #(
+ Emscripten/node*) :
+
+ if test "x$enable_wasm_pthreads" = xyes; then :
+
+ HOSTRUNNER='node --experimental-wasm-threads --experimental-wasm-bulk-memory'
+
+else
+
+ HOSTRUNNER='node'
+
+fi
+ ;; #(
+ *) :
+ HOSTRUNNER=''
+ ;;
+esac
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $HOSTRUNNER" >&5
+$as_echo "$HOSTRUNNER" >&6; }
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDLIBRARY" >&5
$as_echo "$LDLIBRARY" >&6; }
RUNSHARED=
fi
+AC_ARG_VAR([HOSTRUNNER], [Program to run CPython for the host platform])
+AC_MSG_CHECKING([HOSTRUNNER])
+if test -z "$HOSTRUNNER"
+then
+ AS_CASE([$ac_sys_system/$ac_sys_emscripten_target],
+ [Emscripten/node*], [
+ AS_VAR_IF([enable_wasm_pthreads], [yes], [
+ HOSTRUNNER='node --experimental-wasm-threads --experimental-wasm-bulk-memory'
+ ], [
+ HOSTRUNNER='node'
+ ])
+ ],
+ [HOSTRUNNER='']
+ )
+fi
+AC_SUBST([HOSTRUNNER])
+AC_MSG_RESULT([$HOSTRUNNER])
+
AC_MSG_RESULT($LDLIBRARY)
# LIBRARY_DEPS, LINK_PYTHON_OBJS and LINK_PYTHON_DEPS variable