automake-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[automake-commit] branch master updated: python: only use Python's sys.*


From: Karl Berry
Subject: [automake-commit] branch master updated: python: only use Python's sys.* values if the new option
Date: Sun, 19 Sep 2021 18:13:09 -0400

This is an automated email from the git hooks/post-receive script.

karl pushed a commit to branch master
in repository automake.

View the commit online:
https://git.savannah.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=563878435765c439182a4fe4dfb3158c31b2dad9

The following commit(s) were added to refs/heads/master by this push:
     new 5638784  python: only use Python's sys.* values if the new option
5638784 is described below

commit 563878435765c439182a4fe4dfb3158c31b2dad9
Author: Karl Berry <karl@freefriends.org>
AuthorDate: Sun Sep 19 15:12:27 2021 -0700

    python: only use Python's sys.* values if the new option
    
    --with-python-sys-prefix is specified; otherwise, return to
    previous behavior of using the GNU ${prefix} and ${exec_prefix}.
    
    * doc/automake.texi (Python): document the new behavior.
    * m4/python.m4 (AM_PATH_PYTHON): conditionalize use of Python's
    sys.* values on the new option --with-python-sys-prefix.
    * t/python-prefix.sh: doc update.
    * t/python-vars.sh: test both GNU and Python prefix values.
    * NEWS: mention this.
---
 NEWS               |   7 +-
 doc/automake.texi  |  19 ++--
 m4/python.m4       | 291 ++++++++++++++++++++++++++++++-----------------------
 t/python-prefix.sh |   2 -
 t/python-vars.sh   |  65 ++++++++----
 5 files changed, 230 insertions(+), 154 deletions(-)

diff --git a/NEWS b/NEWS
index adcfaab..7507b1b 100644
--- a/NEWS
+++ b/NEWS
@@ -7,8 +7,13 @@ New in ?.?.?:
 
 * Bugs fixed
 
-  - consistently depend on install-libLTLIBRARIES.
+  - PYTHON_PREFIX and PYTHON_EXEC_PREFIX are now set according to
+    Python's sys.* values only if the new configure option
+    --with-python-sys-prefix is specified. Otherwise, GNU default values
+    are used, as in the past. (The change in 1.16.3 was too incompatible.)
 
+  - consistently depend on install-libLTLIBRARIES.
+  
 * Distribution
 
   - use const for yyerror declaration in bison/yacc tests.
diff --git a/doc/automake.texi b/doc/automake.texi
index 0a0da61..59bc2f8 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -7882,17 +7882,22 @@ The Python version number, in the form 
@var{major}.@var{minor}
 
 @item PYTHON_PREFIX
 @itemx PYTHON_EXEC_PREFIX
+@opindex --with-python-sys-prefix
 @opindex --with-python_prefix
 @opindex --with-python_exec_prefix
 @vindex sys.prefix @r{Python variable}
 @vindex sys.exec_prefix @r{Python variable}
-The value of Python's @samp{sys.prefix} (resp.@:
-@samp{sys.exec_prefix}) variable. Sometimes the same as the standard
-@samp{$@{prefix@}} (@samp{$@{exec_prefix@}}), but differs on some
-platforms such as Mac@tie{}OS@tie{}x (where Python is usually
-installed as a Framework).  Can be set explicitly with the
-@option{--with-python_prefix} (@option{--with-python_exec_prefix})
-@file{configure} option.
+With no special options given, these have values @samp{$@{prefix@}}
+and @samp{$@{exec_prefix@}}, respectively (unexpanded; see below).
+
+The @file{configure} options @option{--with-python_prefix}
+and @option{--with-python_exec_prefix} set them to an explicit value.
+
+The @file{configure} option @option{--with-python-sys-prefix} set them
+to the values of Python's @samp{sys.prefix} and @samp{sys.exec_prefix}
+variables.  These often differ from @samp{$@{prefix@}} and
+@samp{$@{exec_prefix@}}, e.g., on platforms such as Mac@tie{}OS@tie{}x
+(where Python is usually installed as a Framework).
 
 @item PYTHON_PLATFORM
 @vindex sys.platform @r{Python variable}
diff --git a/m4/python.m4 b/m4/python.m4
index 56d9eb2..3a903a7 100644
--- a/m4/python.m4
+++ b/m4/python.m4
@@ -82,7 +82,7 @@ AC_DEFUN([AM_PATH_PYTHON],
   ])
 
   if test "$PYTHON" = :; then
-  dnl Run any user-specified action, or abort.
+    dnl Run any user-specified action, or abort.
     m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
   else
 
@@ -91,38 +91,63 @@ AC_DEFUN([AM_PATH_PYTHON],
   dnl trailing zero was eliminated. So now we output just the major
   dnl and minor version numbers, as numbers. Apparently the tertiary
   dnl version is not of interest.
-
+  dnl
   AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
     [am_cv_python_version=`$PYTHON -c "import sys; print ('%u.%u' % 
sys.version_info[[:2]])"`])
   AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
 
-  dnl Use the values of sys.prefix and sys.exec_prefix for the corresponding
-  dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX.  These are made
-  dnl distinct variables so they can be overridden if need be.  However,
-  dnl general consensus is that you shouldn't need this ability.
-  dnl Also allow directly setting the prefixes via configure args.
+  dnl At times, e.g., when building shared libraries, you may want
+  dnl to know which OS platform Python thinks this is.
+  dnl
+  AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
+    [am_cv_python_platform=`$PYTHON -c "import sys; 
sys.stdout.write(sys.platform)"`])
+  AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
 
-  if test "x$prefix" = xNONE
-  then
-   am__usable_prefix=$ac_default_prefix
+  dnl emacs-page
+  dnl If --with-python-sys-prefix is given, use the values of sys.prefix
+  dnl and sys.exec_prefix for the corresponding values of PYTHON_PREFIX
+  dnl and PYTHON_EXEC_PREFIX. Otherwise, use the GNU ${prefix} and
+  dnl ${exec_prefix} variables.
+  dnl 
+  dnl The two are made distinct variables so they can be overridden if
+  dnl need be, although general consensus is that you shouldn't need
+  dnl this separation.
+  dnl 
+  dnl Also allow directly setting the prefixes via configure options,
+  dnl overriding any default.
+  dnl
+  if test "x$prefix" = xNONE; then
+    am__usable_prefix=$ac_default_prefix
   else
-   am__usable_prefix=$prefix
+    am__usable_prefix=$prefix
   fi
 
+  # Allow user to request using sys.* values from Python,
+  # instead of the GNU $prefix values.
+  AC_ARG_WITH([python-sys-prefix],
+  [AS_HELP_STRING([--with-python-sys-prefix],
+                  [use Python's sys.prefix and sys.exec_prefix values])],
+  [am_use_python_sys=:],
+  [am_use_python_sys=false])
+
+  # Allow user to override whatever the default Python prefix is.
   AC_ARG_WITH([python_prefix],
   [AS_HELP_STRING([--with-python_prefix],
-                 [override the default PYTHON_PREFIX])],
-  [ am_python_prefix_subst="$withval"
-   am_cv_python_prefix="$withval"
-   AC_MSG_CHECKING([for $am_display_PYTHON prefix])
+                  [override the default PYTHON_PREFIX])],
+  [am_python_prefix_subst=$withval
+   am_cv_python_prefix=$withval
+   AC_MSG_CHECKING([for explicit $am_display_PYTHON prefix])
    AC_MSG_RESULT([$am_cv_python_prefix])],
   [
-  AC_CACHE_CHECK([for $am_display_PYTHON prefix], [am_cv_python_prefix],
-    [am_cv_python_prefix=`$PYTHON -c "import sys; 
sys.stdout.write(sys.prefix)"`])
+   if $am_use_python_sys; then
+     # using python sys.prefix value, not GNU
+     AC_CACHE_CHECK([for python default $am_display_PYTHON prefix],
+     [am_cv_python_prefix],
+     [am_cv_python_prefix=`$PYTHON -c "import sys; 
sys.stdout.write(sys.prefix)"`])
 
-  dnl If sys.prefix is a subdir of $prefix, replace the literal value of 
$prefix
-  dnl with a variable reference so it can be overridden.
-  case $am_cv_python_prefix in
+     dnl If sys.prefix is a subdir of $prefix, replace the literal value of
+     dnl $prefix with a variable reference so it can be overridden.
+     case $am_cv_python_prefix in
      $am__usable_prefix*)
        am__strip_prefix=`echo "$am__usable_prefix" | sed 's|.|.|g'`
        am_python_prefix_subst=`echo "$am_cv_python_prefix" | sed 
"s,^$am__strip_prefix,\\${prefix},"`
@@ -130,55 +155,68 @@ AC_DEFUN([AM_PATH_PYTHON],
      *)
        am_python_prefix_subst=$am_cv_python_prefix
        ;;
-  esac
-  ])
+     esac
+   else # using GNU prefix value, not python sys.prefix
+     am_python_prefix_subst='${prefix}'
+     am_python_prefix=$am_python_prefix_subst
+     AC_MSG_CHECKING([for GNU default $am_display_PYTHON prefix])
+     AC_MSG_RESULT([$am_python_prefix])
+   fi])
+  # Substituting python_prefix_subst value.
   AC_SUBST([PYTHON_PREFIX], [$am_python_prefix_subst])
 
+  # emacs-page Now do it all over again for Python exec_prefix, but with yet
+  # another conditional: fall back to regular prefix if that was specified.
   AC_ARG_WITH([python_exec_prefix],
   [AS_HELP_STRING([--with-python_exec_prefix],
-                 [override the default PYTHON_EXEC_PREFIX])],
-  [ am_python_exec_prefix_subst="$withval"
-   am_cv_python_exec_prefix="$withval"
-   AC_MSG_CHECKING([for $am_display_PYTHON exec_prefix])
+                  [override the default PYTHON_EXEC_PREFIX])],
+  [am_python_exec_prefix_subst=$withval
+   am_cv_python_exec_prefix=$withval
+   AC_MSG_CHECKING([for explicit $am_display_PYTHON exec_prefix])
    AC_MSG_RESULT([$am_cv_python_exec_prefix])],
   [
-  dnl --with-python_prefix was given - use its value for python_exec_prefix too
-  AS_IF([test -n "$with_python_prefix"], 
[am_python_exec_prefix_subst="$with_python_prefix"
-  am_cv_python_exec_prefix="$with_python_prefix"
-  AC_MSG_CHECKING([for $am_display_PYTHON exec_prefix])
-  AC_MSG_RESULT([$am_cv_python_exec_prefix])],
-  [
-  AC_CACHE_CHECK([for $am_display_PYTHON exec_prefix], 
[am_cv_python_exec_prefix],
-    [am_cv_python_exec_prefix=`$PYTHON -c "import sys; 
sys.stdout.write(sys.exec_prefix)"`])
-  dnl If sys.exec_prefix is a subdir of $exec_prefix, replace the
-  dnl literal value of $exec_prefix with a variable reference so it can
-  dnl be overridden.
-  if test "x$exec_prefix" = xNONE
-  then
-   am__usable_exec_prefix=$am__usable_prefix
-  else
-   am__usable_exec_prefix=$exec_prefix
-  fi
-  case $am_cv_python_exec_prefix in
-     $am__usable_exec_prefix*)
-       am__strip_prefix=`echo "$am__usable_exec_prefix" | sed 's|.|.|g'`
-       am_python_exec_prefix_subst=`echo "$am_cv_python_exec_prefix" | sed 
"s,^$am__strip_prefix,\\${exec_prefix},"`
-       ;;
-     *)
-       am_python_exec_prefix_subst=$am_cv_python_exec_prefix
-       ;;
-  esac
-  ])])
+   # no explicit --with-python_exec_prefix, but if
+   # --with-python_prefix was given, use its value for python_exec_prefix too.
+   AS_IF([test -n "$with_python_prefix"],
+   [am_python_exec_prefix_subst=$with_python_prefix
+    am_cv_python_exec_prefix=$with_python_prefix
+    AC_MSG_CHECKING([for python_prefix-given $am_display_PYTHON exec_prefix])
+    AC_MSG_RESULT([$am_cv_python_exec_prefix])],
+   [
+    # Set am__usable_exec_prefix whether using GNU or Python values,
+    # since we use that variable for pyexecdir.
+    if test "x$exec_prefix" = xNONE; then
+      am__usable_exec_prefix=$am__usable_prefix
+    else
+      am__usable_exec_prefix=$exec_prefix
+    fi
+    #
+    if $am_use_python_sys; then # using python sys.exec_prefix, not GNU
+      AC_CACHE_CHECK([for python default $am_display_PYTHON exec_prefix],
+      [am_cv_python_exec_prefix],
+      [am_cv_python_exec_prefix=`$PYTHON -c "import sys; 
sys.stdout.write(sys.exec_prefix)"`])
+      dnl If sys.exec_prefix is a subdir of $exec_prefix, replace the
+      dnl literal value of $exec_prefix with a variable reference so it can
+      dnl be overridden.
+      case $am_cv_python_exec_prefix in
+      $am__usable_exec_prefix*)
+        am__strip_prefix=`echo "$am__usable_exec_prefix" | sed 's|.|.|g'`
+        am_python_exec_prefix_subst=`echo "$am_cv_python_exec_prefix" | sed 
"s,^$am__strip_prefix,\\${exec_prefix},"`
+        ;;
+      *)
+        am_python_exec_prefix_subst=$am_cv_python_exec_prefix
+        ;;
+     esac
+   else # using GNU $exec_prefix, not python sys.exec_prefix
+     am_python_exec_prefix_subst='${exec_prefix}'
+     am_python_exec_prefix=$am_python_exec_prefix_subst
+     AC_MSG_CHECKING([for GNU default $am_display_PYTHON exec_prefix])
+     AC_MSG_RESULT([$am_python_exec_prefix])
+   fi])])
+  # Substituting python_exec_prefix_subst.
   AC_SUBST([PYTHON_EXEC_PREFIX], [$am_python_exec_prefix_subst])
 
-  dnl At times (like when building shared libraries) you may want
-  dnl to know which OS platform Python thinks this is.
-
-  AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
-    [am_cv_python_platform=`$PYTHON -c "import sys; 
sys.stdout.write(sys.platform)"`])
-  AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
-
-  # Just factor out some code duplication.
+  # Factor out some code duplication into this shell variable.
   am_python_setup_sysconfig="\
 import sys
 # Prefer sysconfig over distutils.sysconfig, for better compatibility
@@ -198,96 +236,95 @@ try:
 except ImportError:
     pass"
 
-  dnl Set up 4 directories:
+  dnl emacs-page Set up 4 directories:
 
-  dnl pythondir -- where to install python scripts.  This is the
-  dnl   site-packages directory, not the python standard library
-  dnl   directory like in previous automake betas.  This behavior
-  dnl   is more consistent with lispdir.m4 for example.
+  dnl 1. pythondir: where to install python scripts.  This is the
+  dnl    site-packages directory, not the python standard library
+  dnl    directory like in previous automake betas.  This behavior
+  dnl    is more consistent with lispdir.m4 for example.
   dnl Query distutils for this directory.
-  AC_CACHE_CHECK([for $am_display_PYTHON script directory],
-    [am_cv_python_pythondir],
-    [if test "x$am_cv_python_prefix" = x
-     then
-       am_py_prefix=$am__usable_prefix
-     else
-       am_py_prefix=$am_cv_python_prefix
-     fi
-     am_cv_python_pythondir=`$PYTHON -c "
+  dnl
+  AC_CACHE_CHECK([for $am_display_PYTHON script directory (pythondir)],
+  [am_cv_python_pythondir],
+  [if test "x$am_cv_python_prefix" = x; then
+     am_py_prefix=$am__usable_prefix
+   else
+     am_py_prefix=$am_cv_python_prefix
+   fi
+   am_cv_python_pythondir=`$PYTHON -c "
 $am_python_setup_sysconfig
 if can_use_sysconfig:
-    sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+  sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
 else:
-    from distutils import sysconfig
-    sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+  from distutils import sysconfig
+  sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
 sys.stdout.write(sitedir)"`
-     case $am_cv_python_pythondir in
-     $am_py_prefix*)
-       am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
-       am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed 
"s,^$am__strip_prefix,\\${PYTHON_PREFIX},"`
-       ;;
-     *)
-       case $am_py_prefix in
-         /usr|/System*) ;;
-         *)
-         
am_cv_python_pythondir="\${PYTHON_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
-         ;;
-       esac
-       ;;
+   #
+   case $am_cv_python_pythondir in
+   $am_py_prefix*)
+     am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+     am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed 
"s,^$am__strip_prefix,\\${PYTHON_PREFIX},"`
+     ;;
+   *)
+     case $am_py_prefix in
+       /usr|/System*) ;;
+       *) 
am_cv_python_pythondir="\${PYTHON_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
+          ;;
      esac
-    ])
+     ;;
+   esac
+  ])
   AC_SUBST([pythondir], [$am_cv_python_pythondir])
 
-  dnl pkgpythondir -- $PACKAGE directory under pythondir.  Was
-  dnl   PYTHON_SITE_PACKAGE in previous betas, but this naming is
-  dnl   more consistent with the rest of automake.
-
+  dnl 2. pkgpythondir: $PACKAGE directory under pythondir.  Was
+  dnl    PYTHON_SITE_PACKAGE in previous betas, but this naming is
+  dnl    more consistent with the rest of automake.
+  dnl
   AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
 
-  dnl pyexecdir -- directory for installing python extension modules
-  dnl   (shared libraries)
+  dnl 3. pyexecdir: directory for installing python extension modules
+  dnl    (shared libraries).
   dnl Query distutils for this directory.
-  AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
-    [am_cv_python_pyexecdir],
-    [if test "x$am_cv_python_exec_prefix" = x
-     then
-       am_py_exec_prefix=$am__usable_exec_prefix
-     else
-       am_py_exec_prefix=$am_cv_python_exec_prefix
-     fi
-     am_cv_python_pyexecdir=`$PYTHON -c "
+  dnl
+  AC_CACHE_CHECK([for $am_display_PYTHON extension module directory 
(pyexecdir)],
+  [am_cv_python_pyexecdir],
+  [if test "x$am_cv_python_exec_prefix" = x; then
+     am_py_exec_prefix=$am__usable_exec_prefix
+   else
+     am_py_exec_prefix=$am_cv_python_exec_prefix
+   fi
+   am_cv_python_pyexecdir=`$PYTHON -c "
 $am_python_setup_sysconfig
 if can_use_sysconfig:
-    sitedir = sysconfig.get_path('platlib', 
vars={'platbase':'$am_py_exec_prefix'})
+  sitedir = sysconfig.get_path('platlib', 
vars={'platbase':'$am_py_exec_prefix'})
 else:
-    from distutils import sysconfig
-    sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_exec_prefix')
+  from distutils import sysconfig
+  sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_exec_prefix')
 sys.stdout.write(sitedir)"`
-     case $am_cv_python_pyexecdir in
-     $am_py_exec_prefix*)
-       am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
-       am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed 
"s,^$am__strip_prefix,\\${PYTHON_EXEC_PREFIX},"`
-       ;;
-     *)
-       case $am_py_exec_prefix in
-         /usr|/System*) ;;
-         *)
-          
am_cv_python_pyexecdir="\${PYTHON_EXEC_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
-          ;;
-       esac
-       ;;
+   #
+   case $am_cv_python_pyexecdir in
+   $am_py_exec_prefix*)
+     am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+     am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed 
"s,^$am__strip_prefix,\\${PYTHON_EXEC_PREFIX},"`
+     ;;
+   *)
+     case $am_py_exec_prefix in
+       /usr|/System*) ;;
+       *) 
am_cv_python_pyexecdir="\${PYTHON_EXEC_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
+          ;;
      esac
-    ])
+     ;;
+   esac
+  ])
   AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
 
-  dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
-
+  dnl 4. pkgpyexecdir: $(pyexecdir)/$(PACKAGE)
+  dnl
   AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
 
   dnl Run any user-specified action.
   $2
   fi
-
 ])
 
 
diff --git a/t/python-prefix.sh b/t/python-prefix.sh
index 3179d42..6231a57 100755
--- a/t/python-prefix.sh
+++ b/t/python-prefix.sh
@@ -15,8 +15,6 @@
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 # Test configure options --with-python_prefix and --with-python_exec_prefix.
-# We can't test with no prefixes specified, since the default is to
-# install in Python's sys.prefix and sys.exec_prefix directories.
 
 required=python
 . test-init.sh
diff --git a/t/python-vars.sh b/t/python-vars.sh
index 9070c75..c6da7e4 100644
--- a/t/python-vars.sh
+++ b/t/python-vars.sh
@@ -15,7 +15,8 @@
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 # Check that AM_PATH_PYTHON correctly sets all the output variables
-# advertised in the manual.
+# advertised in the manual, both with the GNU prefix values and the
+# Python sys.* prefix values.
 
 required=python
 . test-init.sh
@@ -61,16 +62,22 @@ check-local: test-in test-am
 .PHONY: test-in test-am
 
 test-in:
+       @echo "> doing test-in"
+       @echo ">> contents of pythondir:"
        cat pythondir
        case `cat pythondir` in '$${PYTHON_PREFIX}'/*);; *) exit 1;; esac
+       @echo ">> contents of pyexecdir:"
        cat pyexecdir
        case `cat pyexecdir` in '$${PYTHON_EXEC_PREFIX}'/*);; *) exit 1;; esac
+       @echo ">> contents of vars-exp:"
        cat $(srcdir)/vars-exp
+       @echo ">> contents of vars-got:"
        cat $(builddir)/vars-got
        diff $(srcdir)/vars-exp $(builddir)/vars-got
 
 ## Note: this target's rules will be extended in the "for" loop below.
 test-am:
+       @echo "> doing test-am"
        case '$(pythondir)' in '$(PYTHON_PREFIX)'/*);; *) exit 1;; esac
        case '$(pyexecdir)' in '$(PYTHON_EXEC_PREFIX)'/*);; *) exit 1;; esac
 END
@@ -78,35 +85,59 @@ END
 echo @pythondir@ > pythondir.in
 echo @pyexecdir@ > pyexecdir.in
 
-: > vars-exp
-: > vars-got.in
-
-for var in $pyvars; do
-  eval val=\$$var
-  echo "var=$val" >> vars-exp
-  echo "var=@$var@" >> vars-got.in
-  echo "${tab}test x'\$($var)' = x'$val' || test \"\$NO_CHECK_PYTHON_PREFIX\"" 
>> Makefile.am
-done
-
-cat Makefile.am
-cat vars-got.in
+# This depends on whether we're doing GNU or Python values, per arg.
+setup_vars_file ()
+{
+  vartype=$1
+  : > vars-exp
+  : > vars-got.in
+
+  for var in $pyvars; do
+    if test x"$vartype" = xgnu; then
+      # when not using Python sys.* values, PYTHON_*PREFIX will vary;
+      # the computed value will be (something like) "/usr",
+      # but the expected value will be "${prefix}".
+      if test x"$var" = xPYTHON_PREFIX \
+         || test x"$var" = xPYTHON_EXEC_PREFIX; then
+        continue
+      fi
+    fi
+    eval val=\$$var
+    echo "var=$val  #$var"   >> vars-exp
+    echo "var=@$var@  #$var" >> vars-got.in
+    echo "${tab}test x'\$($var)' = x'$val' || test 
\"\$NO_CHECK_PYTHON_PREFIX\"" >> Makefile.am
+  done
+}
+
+setup_vars_file gnu
 
 $ACLOCAL
 $AUTOMAKE --add-missing
 
+# some debugging output.
 for var in pythondir pyexecdir $pyvars; do
   grep "^$var *=" Makefile.in
 done
 
-instdir=$(pwd)/inst
-
 $AUTOCONF
-./configure --prefix="$instdir" PYTHON="$PYTHON"
 
+# Do GNU values.
+./configure PYTHON="$PYTHON"
 $MAKE test-in test-am
+run_make distcheck
+
+# Do Python values.
+setup_vars_file python
+instdir=$(pwd)/inst
+./configure PYTHON="$PYTHON" --with-python-sys-prefix --prefix="$instdir"
+$MAKE test-in test-am
+#
 # This tries to install to $PYTHON_PREFIX, which may not be writable.
 # Override it to something safe, but then of course we have to skip
 # checking that it is what we originally set it to.
-run_make distcheck PYTHON_PREFIX="$instdir" NO_CHECK_PYTHON_PREFIX=1
+run_make distcheck \
+  PYTHON_PREFIX="$instdir" \
+  NO_CHECK_PYTHON_PREFIX=1 \
+  AM_DISTCHECK_CONFIGURE_FLAGS=--with-python-sys-prefix
 
 :



reply via email to

[Prev in Thread] Current Thread [Next in Thread]