mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
Add configure check for python program
Add a configure check that looks for python3 and python in that order since we had agreed in the past to prefer python3 over python in all our code. The patch also adjusts invocations through the various Makefiles to use the set variable. * configure.ac: Check for python3 or python. * configure: Regenerated. * config.make.in (PYTHON): New variable. * benchtests/Makefile: Don't define PYTHON. (bench): Define target only if PYTHON was defined. * Rules: Don't define PYTHON. Define pretty printer targets only if PYTHON was defined. (tests-printers): Add to tests-unsupported if PYTHON is not found. (python-flags, python-invoke): Remove. (tests-printers-out): Use PYTHON instead of python-invoke.
This commit is contained in:
parent
a5ac5676be
commit
8ce8299f94
14
ChangeLog
14
ChangeLog
@ -1,3 +1,17 @@
|
||||
2016-12-22 Siddhesh Poyarekar <siddhesh@sourceware.org>
|
||||
|
||||
* configure.ac: Check for python3 or python.
|
||||
* configure: Regenerated.
|
||||
* config.make.in (PYTHON): New variable.
|
||||
* benchtests/Makefile: Don't define PYTHON.
|
||||
(bench): Define target only if PYTHON was defined.
|
||||
* Rules: Don't define PYTHON.
|
||||
Define pretty printer targets only if PYTHON was defined.
|
||||
(tests-printers): Add to tests-unsupported if PYTHON is not
|
||||
found.
|
||||
(python-flags, python-invoke): Remove.
|
||||
(tests-printers-out): Use PYTHON instead of python-invoke.
|
||||
|
||||
2016-12-21 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
[BZ #20978]
|
||||
|
24
Rules
24
Rules
@ -114,6 +114,11 @@ tests-printers-programs := $(addprefix $(objpfx),$(tests-printers))
|
||||
# .out files with the output of running the pretty printer tests.
|
||||
tests-printers-out := $(patsubst %,$(objpfx)%.out,$(tests-printers))
|
||||
|
||||
ifndef PYTHON
|
||||
# Mark tests-printers tests as unsupported if we don't have PYTHON.
|
||||
tests-unsupported += $(tests-printers)
|
||||
endif
|
||||
|
||||
ifeq ($(build-programs),yes)
|
||||
others: $(addprefix $(objpfx),$(others) $(sysdep-others) $(extra-objs))
|
||||
else
|
||||
@ -124,9 +129,9 @@ endif
|
||||
others: $(py-const)
|
||||
|
||||
ifeq ($(run-built-tests),no)
|
||||
tests: $(addprefix $(objpfx),$(filter-out $(tests-unsupported),$(tests)) \
|
||||
$(test-srcs)) $(tests-special) \
|
||||
$(tests-printers-programs)
|
||||
tests: $(addprefix $(objpfx),$(filter-out $(tests-unsupported),$(tests) \
|
||||
$(tests-printers-programs)) \
|
||||
$(test-srcs)) $(tests-special)
|
||||
xtests: tests $(xtests-special)
|
||||
else
|
||||
tests: $(tests:%=$(objpfx)%.out) $(tests-special) $(tests-printers-out)
|
||||
@ -255,16 +260,8 @@ endif
|
||||
|
||||
endif # tests
|
||||
|
||||
ifdef PYTHON
|
||||
ifneq "$(strip $(tests-printers))" ""
|
||||
# We're defining this here for now; later it'll be defined at configure time
|
||||
# inside Makeconfig.
|
||||
PYTHON := python
|
||||
|
||||
# Invoke Python using -B to avoid generating .pyc files on the source dir,
|
||||
# so that we can keep it read-only.
|
||||
python-flags := -B
|
||||
|
||||
python-invoke := $(PYTHON) $(python-flags)
|
||||
|
||||
# Static pattern rule for building the test programs for the pretty printers.
|
||||
$(tests-printers-programs): %: %.o $(tests-printers-libs) \
|
||||
@ -283,9 +280,10 @@ py-env := PYTHONPATH=$(py-const-dir):$(..)scripts:$${PYTHONPATH}
|
||||
$(tests-printers-out): $(objpfx)%.out: $(objpfx)% %.py %.c $(pretty-printers) \
|
||||
$(..)scripts/test_printers_common.py
|
||||
$(test-wrapper-env) $(py-env) \
|
||||
$(python-invoke) $*.py $*.c $(objpfx)$* $(pretty-printers) > $@; \
|
||||
$(PYTHON) $*.py $*.c $(objpfx)$* $(pretty-printers) > $@; \
|
||||
$(evaluate-test)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
.PHONY: distclean realclean subdir_distclean subdir_realclean \
|
||||
|
@ -18,8 +18,6 @@
|
||||
# Makefile for benchmark tests. The only useful target here is `bench`.
|
||||
# Add benchmark functions in alphabetical order.
|
||||
|
||||
PYTHON := python
|
||||
|
||||
subdir := benchtests
|
||||
|
||||
include ../Makeconfig
|
||||
@ -146,7 +144,15 @@ bench-clean:
|
||||
rm -f $(timing-type) $(addsuffix .o,$(timing-type))
|
||||
rm -f $(addprefix $(objpfx),$(bench-extra-objs))
|
||||
|
||||
# Define the bench target only if the target has a usable python installation.
|
||||
ifdef PYTHON
|
||||
bench: bench-build bench-set bench-func bench-malloc
|
||||
else
|
||||
bench:
|
||||
@echo "The bench target needs python to run."
|
||||
@exit 1
|
||||
endif
|
||||
|
||||
# Target to only build the benchmark without running it. We generate locales
|
||||
# only if we're building natively.
|
||||
ifeq (no,$(cross-compiling))
|
||||
|
@ -126,6 +126,7 @@ MSGFMT = @MSGFMT@
|
||||
BASH = @BASH_SHELL@
|
||||
AWK = @AWK@
|
||||
PERL = @PERL@
|
||||
PYTHON = @PYTHON@
|
||||
|
||||
# Additional libraries.
|
||||
LIBGD = @LIBGD@
|
||||
|
62
configure
vendored
62
configure
vendored
@ -639,6 +639,8 @@ CXX_CMATH_HEADER
|
||||
CXX_CSTDLIB_HEADER
|
||||
CXX_SYSINCLUDES
|
||||
SYSINCLUDES
|
||||
PYTHON
|
||||
PYTHON_PROG
|
||||
AUTOCONF
|
||||
NM
|
||||
AWK
|
||||
@ -5086,17 +5088,73 @@ else
|
||||
AUTOCONF=no
|
||||
fi
|
||||
|
||||
# Check for python3 if available, or else python.
|
||||
for ac_prog in python3 python
|
||||
do
|
||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
set dummy $ac_prog; ac_word=$2
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
$as_echo_n "checking for $ac_word... " >&6; }
|
||||
if ${ac_cv_prog_PYTHON_PROG+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
if test -n "$PYTHON_PROG"; then
|
||||
ac_cv_prog_PYTHON_PROG="$PYTHON_PROG" # Let the user override the test.
|
||||
else
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
ac_cv_prog_PYTHON_PROG="$ac_prog"
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
IFS=$as_save_IFS
|
||||
|
||||
fi
|
||||
fi
|
||||
PYTHON_PROG=$ac_cv_prog_PYTHON_PROG
|
||||
if test -n "$PYTHON_PROG"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_PROG" >&5
|
||||
$as_echo "$PYTHON_PROG" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
|
||||
test -n "$PYTHON_PROG" && break
|
||||
done
|
||||
test -n "$PYTHON_PROG" || PYTHON_PROG="no"
|
||||
|
||||
case "x$PYTHON_PROG" in
|
||||
xno|x|x:) PYTHON_PROG=no ;;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
if test "x$PYTHON_PROG" = xno; then
|
||||
aux_missing="$aux_missing python"
|
||||
else
|
||||
PYTHON="$PYTHON_PROG -B"
|
||||
|
||||
fi
|
||||
|
||||
test -n "$critic_missing" && as_fn_error $? "
|
||||
*** These critical programs are missing or too old:$critic_missing
|
||||
*** Check the INSTALL file for required versions." "$LINENO" 5
|
||||
|
||||
test -n "$aux_missing" && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
|
||||
*** These auxiliary programs are missing or incompatible versions:$aux_missing
|
||||
*** some features will be disabled.
|
||||
*** some features or tests will be disabled.
|
||||
*** Check the INSTALL file for required versions." >&5
|
||||
$as_echo "$as_me: WARNING:
|
||||
*** These auxiliary programs are missing or incompatible versions:$aux_missing
|
||||
*** some features will be disabled.
|
||||
*** some features or tests will be disabled.
|
||||
*** Check the INSTALL file for required versions." >&2;}
|
||||
|
||||
# if using special system headers, find out the compiler's sekrit
|
||||
|
16
configure.ac
16
configure.ac
@ -1050,13 +1050,27 @@ else
|
||||
AUTOCONF=no
|
||||
fi
|
||||
|
||||
# Check for python3 if available, or else python.
|
||||
AC_CHECK_PROGS(PYTHON_PROG, python3 python,no)
|
||||
case "x$PYTHON_PROG" in
|
||||
xno|x|x:) PYTHON_PROG=no ;;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
if test "x$PYTHON_PROG" = xno; then
|
||||
aux_missing="$aux_missing python"
|
||||
else
|
||||
PYTHON="$PYTHON_PROG -B"
|
||||
AC_SUBST(PYTHON)
|
||||
fi
|
||||
|
||||
test -n "$critic_missing" && AC_MSG_ERROR([
|
||||
*** These critical programs are missing or too old:$critic_missing
|
||||
*** Check the INSTALL file for required versions.])
|
||||
|
||||
test -n "$aux_missing" && AC_MSG_WARN([
|
||||
*** These auxiliary programs are missing or incompatible versions:$aux_missing
|
||||
*** some features will be disabled.
|
||||
*** some features or tests will be disabled.
|
||||
*** Check the INSTALL file for required versions.])
|
||||
|
||||
# if using special system headers, find out the compiler's sekrit
|
||||
|
Loading…
Reference in New Issue
Block a user