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
