[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: automake 1.16.4 and new PYTHON_PREFIX
From: |
Luke Mewburn |
Subject: |
Re: automake 1.16.4 and new PYTHON_PREFIX |
Date: |
Thu, 26 Aug 2021 15:58:08 +1000 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
On 21-08-25 10:00, Karl Berry wrote:
| yf> Would keeping PYTHON_PREFIX but changing its default to the
| "classical" value be a working solution for this ?
|
| Yes, I think we should. And I think I should have been smart enough to
| realize that changing the default behavior was too risky in the first
| place. Apologies for that.
|
| My thought now is to add yet one more option, like
| --python-prefix-from-python, to get the new 1.16.4 behavior of using the
| "computed" sys.* values. Else go back to the previous $prefix-based
behavior.
|
| Does that sound sensible? A better name for the option?
|
| Joshua (or anyone), would you be willing to work on something like by
| any chance? Would be greatly, greatly, appreciated. I am way
| overcommitted right now (like all of us, I know ...).
|
| please keep the --with-python_prefix
|
| Definitely. --thanks, karl.
Currently overriding the python module path to install in the default
python module path in a manner that works for DESTDIR and distcheck
is a bit tricky, especially when using a different prefix.
I think we need an easy way to set a default for this behaviour
from within configure.ac, similar to AC_PREFIX_DEFAULT(), so that
the end-user doesn't have to pass a bunch of options to configure
just to get the build to work sensibly.
The current workaround I use is described below. If there was a
cleaner/more standardized mechanism built into automake / autoconf,
I'd use that.
Change the default prefix in configure.ac:
AC_PREFIX_DEFAULT([/opt/something])
Set defaults for make variables in configure.ac:
AC_SUBST([PY_OVERRIDE_BASE],
[$($PYTHON -c 'from distutils import sysconfig;
print(sysconfig.PREFIX)')])
dnl Note: Makefile sets PY_OVERRIDE_PREFIX from $(prefix) or
$(PY_OVERRIDE_BASE)
AC_SUBST([PY_OVERRIDE_EXTDIR],
[$($PYTHON -c 'from distutils import sysconfig;
print(sysconfig.get_python_lib(plat_specific=1,prefix="${PY_OVERRIDE_PREFIX}"))')])
Use a (non-portable) GNU make snippet in Makefile.am:
# Install python module to $(prefix) if it's not /opt/something,
# otherwise the default python prefix in $(PY_OVERRIDE_BASE).
#
PY_OVERRIDE_PREFIX := $(patsubst
/opt/something,$(PY_OVERRIDE_BASE),$(prefix))
pkgpyexecdir = $(PY_OVERRIDE_EXTDIR)/mymodule
This latter requires in configure.ac:
AM_INIT_AUTOMAKE([-Wno-portability])
Luke.
signature.asc
Description: PGP signature