This implement the suggestion is issue #467 but the test suite is still not completely passing with pypy3. * m4/pypath.m4: Detect the suffix for extensions. * python/Makefile.am: Use it. * tests/run.in: Recognize pypy3 as a Python version.
123 lines
3.4 KiB
Bash
Executable file
123 lines
3.4 KiB
Bash
Executable file
#!/bin/sh
|
|
# -*- coding: utf-8 -*-
|
|
# Copyright (C) 2010-2011, 2014-2016, 2018-2021 Laboratoire de Recherche
|
|
# et Developpement de l'EPITA (LRDE).
|
|
# Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6
|
|
# (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
|
|
# Pierre et Marie Curie.
|
|
#
|
|
# This file is part of Spot, a model checking library.
|
|
#
|
|
# Spot is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# Spot is distributed in the hope that it will be useful, but WITHOUT
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
|
# License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
# Darwin needs some help in figuring out where non-installed libtool
|
|
# libraries are (on this platform libtool encodes the expected final
|
|
# path of dependent libraries in each library).
|
|
modpath='@abs_top_builddir@/python/.libs:@abs_top_builddir@/python/spot/.libs'
|
|
modpath=$modpath:'@abs_top_builddir@/spot/ltsmin/.libs'
|
|
modpath=$modpath:'@abs_top_builddir@/spot/gen/.libs'
|
|
modpath=$modpath:'@abs_top_builddir@/spot/.libs'
|
|
modpath=$modpath:'@abs_top_builddir@/buddy/src/.libs'
|
|
|
|
# We need access to both the *.py files, and the *.so. We used to
|
|
# rely on a module called ltihooks.py to teach the import function how
|
|
# to load a Libtool library, but it started to cause issues with
|
|
# Python 2.6.
|
|
pypath=
|
|
for i in python python/spot; do
|
|
for j in '@abs_top_builddir@' '@abs_top_srcdir@'; do
|
|
pypath=$j/$i:$j/$i/.libs:$pypath
|
|
done
|
|
done
|
|
pypath=${pypath%:}
|
|
|
|
PATH="@abs_top_builddir@/bin:$PATH"
|
|
export PATH
|
|
|
|
test -z "$1" &&
|
|
PYTHONPATH=$pypath DYLD_LIBRARY_PATH=$modpath:$DYLD_LIBRARY_PATH \
|
|
exec $PREFIXCMD @PYTHON@
|
|
srcdir="@srcdir@"
|
|
|
|
# Reset CFLAGS, because some tests call the compiler, and we do not
|
|
# want to inherit parameters likes -std=c11 -fvisibility=hidden
|
|
CFLAGS=
|
|
export CFLAGS
|
|
CXX='@CXX@'
|
|
export CXX
|
|
CXXFLAGS='@CXXFLAGS@'
|
|
export CXXFLAGS
|
|
top_builddir='@abs_top_builddir@'
|
|
export top_builddir
|
|
top_srcdir='@abs_top_srcdir@'
|
|
export top_srcdir
|
|
|
|
PERL='@PERL@'
|
|
export PERL
|
|
|
|
# Reset those variables, as they may affect the output of DOT.
|
|
SPOT_DOTEXTRA=
|
|
export SPOT_DOTEXTRA
|
|
SPOT_DOTDEFAULT=
|
|
export SPOT_DOTDEFAULT=
|
|
|
|
SPOT_UNINSTALLED=1
|
|
export SPOT_UNINSTALLED
|
|
|
|
case $1 in
|
|
*/*)
|
|
dir=${1%/*}
|
|
dir=${dir##*/}
|
|
mkdir -p $dir
|
|
cd $dir
|
|
case $1 in
|
|
../*)
|
|
base=../$1
|
|
;;
|
|
[\\/$]* | ?:[\\/]* )
|
|
base=$1
|
|
;;
|
|
*)
|
|
base=${1##*/}
|
|
;;
|
|
esac
|
|
|
|
test $srcdir != '.' && srcdir="@abs_srcdir@/$dir"
|
|
shift
|
|
set x "$base" "$@"
|
|
shift
|
|
;;
|
|
esac
|
|
|
|
export srcdir
|
|
|
|
case $1 in
|
|
*.ipynb)
|
|
PYTHONPATH=$pypath DYLD_LIBRARY_PATH=$modpath:$DYLD_LIBRARY_PATH \
|
|
PYTHONIOENCODING=utf-8:surrogateescape \
|
|
exec $PREFIXCMD @PYTHON@ @abs_srcdir@/python/ipnbdoctest.py "$@";;
|
|
*.py)
|
|
PYTHONPATH=$pypath DYLD_LIBRARY_PATH=$modpath:$DYLD_LIBRARY_PATH \
|
|
exec $PREFIXCMD @PYTHON@ "$@";;
|
|
*.test)
|
|
exec sh -x "$@";;
|
|
*.pl)
|
|
exec $PERL "$@";;
|
|
*python*|*jupyter*|*pypy*)
|
|
PYTHONPATH=$pypath DYLD_LIBRARY_PATH=$modpath:$DYLD_LIBRARY_PATH \
|
|
exec $PREFIXCMD "$@";;
|
|
*)
|
|
echo "Unknown extension" >&2
|
|
exit 2;;
|
|
esac
|