On systems using non-default `PREFIX`, `LIBDIR`, `SHLIBDIR`, `BINDIR` or `SBINDIR`, running `DESTDIR=/path/to/destdir ./scripts/env_use_destdir make test` does not perform the intended behavior, because the testing programs and libraries are installed into locations that are not added to `LD_LIBRARY_PATH` nor `PATH`. More precisely, with `LIBDIR=/usr/lib64 SHLIBDIR=/lib64`, `env_use_destdir` does not work. Fix this by adding the installation directories relative to `DESTDIR` in `LD_LIBRARY_PATH` and `PATH`. Signed-off-by: Nicolas Iooss <nicolas.iooss@xxxxxxx> --- scripts/env_use_destdir | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/scripts/env_use_destdir b/scripts/env_use_destdir index 491da58f9207..8274013e9cf0 100755 --- a/scripts/env_use_destdir +++ b/scripts/env_use_destdir @@ -22,7 +22,26 @@ if [ -z "${DESTDIR:-}" ] ; then fi export LD_LIBRARY_PATH="$DESTDIR/usr/lib:$DESTDIR/lib" +if [ -n "${PREFIX:-}" ] ; then + LD_LIBRARY_PATH="$DESTDIR$PREFIX/lib:$LD_LIBRARY_PATH" +fi +if [ -n "${LIBDIR:-}" ] ; then + LD_LIBRARY_PATH="$DESTDIR$LIBDIR:$LD_LIBRARY_PATH" +fi +if [ -n "${SHLIBDIR:-}" ] ; then + LD_LIBRARY_PATH="$DESTDIR$SHLIBDIR:$LD_LIBRARY_PATH" +fi + export PATH="$DESTDIR/usr/sbin:$DESTDIR/usr/bin:$DESTDIR/sbin:$DESTDIR/bin:$PATH" +if [ -n "${PREFIX:-}" ] ; then + PATH="$DESTDIR$PREFIX/sbin:$DESTDIR$PREFIX/bin:$LD_LIBRARY_PATH" +fi +if [ -n "${BINDIR:-}" ] ; then + PATH="$DESTDIR$BINDIR:$PATH" +fi +if [ -n "${SBINDIR:-}" ] ; then + PATH="$DESTDIR$SBINDIR:$PATH" +fi NEW_PYTHONPATH="$DESTDIR$(${PYTHON:-python3} -c "from distutils.sysconfig import *;print(get_python_lib(plat_specific=1, prefix='/usr'))"):$DESTDIR$(${PYTHON:-python3} -c "from distutils.sysconfig import *;print(get_python_lib(prefix='/usr'))")" if [ -n "${PYTHONPATH:-}" ] ; then -- 2.26.2