Blame view

tools/extras/install_srilm.sh 2.36 KB
8dcb6dfcb   Yannick Estève   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
  #!/bin/bash
  
  current_path=`pwd`
  current_dir=`basename "$current_path"`
  
  if [ "tools" != "$current_dir" ]; then
      echo "You should run this script in tools/ directory!!"
      exit 1
  fi
  
  if [ ! -d liblbfgs-1.10 ]; then
      echo Installing libLBFGS library to support MaxEnt LMs
      bash extras/install_liblbfgs.sh || exit 1
  fi
  
  # http://www.speech.sri.com/projects/srilm/download.html
  if [ ! -f srilm.tgz ]; then
    echo This script cannot install SRILM in a completely automatic
    echo way because you need to put your address in a download form.
    echo Please download SRILM from http://www.speech.sri.com/projects/srilm/download.html
    echo put it in ./srilm.tgz, then run this script.
    exit 1
  fi
  
  ! which gawk 2>/dev/null && \
     echo "GNU awk is not installed so SRILM will probably not work correctly: refusing to install" && exit 1;
  
  mkdir -p srilm
  cd srilm
  tar -xvzf ../srilm.tgz
  
  major=`awk -F. '{ print $1 }' RELEASE`
  minor=`awk -F. '{ print $2 }' RELEASE`
  micro=`awk -F. '{ print $3 }' RELEASE`
  
  if [ $major -le 1 ] && [ $minor -le 7 ] && [ $micro -le 1 ]; then
    echo "Detected version 1.7.1 or earlier. Applying patch."
    patch -p0 < ../extras/srilm.patch
  fi
  
  # set the SRILM variable in the top-level Makefile to this directory.
  cp Makefile tmpf
  
  cat tmpf | awk -v pwd=`pwd` '/SRILM =/{printf("SRILM = %s
  ", pwd); next;} {print;}' \
    > Makefile || exit 1;
  
  mtype=`sbin/machine-type`
  
  echo HAVE_LIBLBFGS=1 >> common/Makefile.machine.$mtype
  grep ADDITIONAL_INCLUDES common/Makefile.machine.$mtype | \
      sed 's|$| -I$(SRILM)/../liblbfgs-1.10/include|' \
      >> common/Makefile.machine.$mtype
  
  grep ADDITIONAL_LDFLAGS common/Makefile.machine.$mtype | \
      sed 's|$| -L$(SRILM)/../liblbfgs-1.10/lib/ -Wl,-rpath -Wl,$(SRILM)/../liblbfgs-1.10/lib/|' \
      >> common/Makefile.machine.$mtype
  
  
  
  make || exit 1
  
  cd ..
  (
    [ ! -z "${SRILM}" ] && \
      echo >&2 "SRILM variable is aleady defined. Undefining..." && \
      unset SRILM
  
    [ -f ./env.sh ] && . ./env.sh
  
    [ ! -z "${SRILM}" ] && \
      echo >&2 "SRILM config is already in env.sh" && exit
  
    wd=`pwd`
    wd=`readlink -f $wd || pwd`
  
    echo "export SRILM=$wd/srilm"
    dirs="\${PATH}"
    for directory in $(cd srilm && find bin -type d ) ; do
      dirs="$dirs:\${SRILM}/$directory"
    done
    echo "export PATH=$dirs"
  ) >> env.sh
  
  echo >&2 "Installation of SRILM finished successfully"
  echo >&2 "Please source the tools/env.sh in your path.sh to enable it"