#!/bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2010, 2011, 2014-2016, 2018 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/.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 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


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 \
    PYTHONIOENCODING=utf-8:surrogateescape \
    exec $PREFIXCMD @PYTHON@ @abs_srcdir@/python/ipnbdoctest.py "$@";;
  *.py)
    PYTHONPATH=$pypath DYLD_LIBRARY_PATH=$modpath \
    exec $PREFIXCMD @PYTHON@ "$@";;
  *.test)
    exec sh -x "$@";;
  *.pl)
    exec @PERL@ "$@";;
  *python*|*jupyter*)
    PYTHONPATH=$pypath DYLD_LIBRARY_PATH=$modpath \
    exec $PREFIXCMD "$@";;
  *)
    echo "Unknown extension" >&2
    exit 2;;
esac
