Blame view
tools/extras/install_sequitur.sh
4.54 KB
8dcb6dfcb first commit |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
#!/bin/bash set -u set -e # Make sure we are in the tools/ directory. if [ `basename $PWD` == extras ]; then cd .. fi ! [ `basename $PWD` == tools ] && \ echo "You must call this script from the tools/ directory" && exit 1; # Install python-devel package if not already available # first, makes sure distutils.sysconfig usable if ! $(python -c "import distutils.sysconfig" &> /dev/null); then echo "$0: WARNING: python library distutils.sysconfig not usable, this is necessary to figure out the path of Python.h." >&2 echo "Proceeding with installation." >&2 else # get include path for this python version INCLUDE_PY=$(python -c "from distutils import sysconfig as s; print(s.get_python_inc())") if [ ! -f "${INCLUDE_PY}/Python.h" ]; then echo "$0 : ERROR: python-devel/python-dev not installed" >&2 if which yum >&/dev/null; then # this is a red-hat system echo "$0: we recommend that you run (our best guess):" echo " sudo yum install python-devel" fi if which apt-get >&/dev/null; then # this is a debian system echo "$0: we recommend that you run (our best guess):" echo " sudo apt-get install python-dev" fi exit 1 fi fi command -v swig >/dev/null 2>&1 || { echo >&2 "$0: Error: I require swig but it's not installed."; echo >&2 " Please install swig and run this script again. " exit 1; } if [ -d ./g2p ] || [ -d sequitur ] ; then echo >&2 "$0: Warning: old installation of Sequitur found. You should manually" echo >&2 " delete the directories tools/sequitur and/or tools/g2p and " echo >&2 " edit the file tools/env.sh and remove manually all references to it" exit 1 fi if [ ! -d ./sequitur-g2p ] ; then git clone https://github.com/sequitur-g2p/sequitur-g2p.git sequitur-g2p || { echo >&2 "$0: Warning: git clone operation ended unsuccessfully" echo >&2 " I will assume this is because you don't have https support" echo >&2 " compiled into your git " git clone git@github.com:sequitur-g2p/sequitur-g2p.git sequitur-g2p if [ $? -ne 0 ]; then echo >&2 "$0: Error git clone operation ended unsuccessfully" echo >&2 " Clone the github repository (https://github.com/sequitur-g2p/sequitur-g2p.git)" echo >&2 " manually and re-run the script" fi } else echo >&2 "$0: Updating the repository -- we will try to merge with local changes (if you have any)" ( cd sequitur-g2p/ git pull # this would work also, but would drop all local modifications #git fetch #git reset --hard origin/master ) || { echo >&2 "Failed to do git pull, delete the sequitur dir and run again"; exit 1 } fi ( cd sequitur-g2p #we had some reports that the CPPFLAGS is needed under MacOS X but we could not #reproduce it, actually, this, however, seems to work just fine for us #the primary issue is that real GNU GCC does not accept that switch #in addition, Apple fake g++ based on LLVM version 8.1 prints warning about #the libstdc++ should no longer be used. if (g++ --version 2>/dev/null | grep -s "LLVM version 8.0" >/dev/null) ; then #Apple fake-g++ make CXX=g++ CC=gcc CPPFLAGS="-stdlib=libstdc++" else make CXX=g++ CC=gcc fi # the next two lines deal with the issue that the new setup tools # expect the directory in which we will be installing to be visible # as module directory to python site_packages_dir=$(PYTHONPATH="" python -m site --user-site | grep -oE "lib.*") SEQUITUR=$(pwd)/$site_packages_dir # some bits of info to troubleshoot this in case people have problems echo -n >&2 "USER SITE: "; PYTHONPATH="" python -m site --user-site echo >&2 "SEQUITUR_PACKAGE: ${site_packages_dir:-}" echo >&2 "SEQUITUR: $SEQUITUR" echo >&2 "PYTHONPATH: ${PYTHONPATH:-}" mkdir -p $SEQUITUR PYTHONPATH=${PYTHONPATH:-}:$SEQUITUR python setup.py install --prefix `pwd` ) || { echo >&2 "Problem installing sequitur!" exit 1 } site_packages_dir=$(cd sequitur-g2p; find ./lib{,64} -type d -name site-packages | head -n 1) ( set +u [ ! -z "${SEQUITUR}" ] && \ echo >&2 "SEQUITUR variable is aleady defined. Undefining..." && \ unset SEQUITUR [ -f ./env.sh ] && . ./env.sh [ ! -z "${SEQUITUR}" ] && \ echo >&2 "SEQUITUR config is already in env.sh" && exit wd=`pwd` wd=`readlink -f $wd || pwd` echo "export SEQUITUR=\"$wd/sequitur-g2p\"" echo "export PATH=\"\$PATH:\${SEQUITUR}/bin\"" echo "export PYTHONPATH=\"\${PYTHONPATH:-}:\$SEQUITUR/${site_packages_dir}\"" ) >> env.sh echo >&2 "Installation of SEQUITUR finished successfully" echo >&2 "Please source tools/env.sh in your path.sh to enable it" |