#!/bin/bash

# Configuration, such as it is
WORKINGDIR="`pwd`/takocr" # Default is to make an ocropus directory in the current directory and use that >/dev/null 2>&1
#PREFIX="/Applications/TakOCR.app/Contents/Resources/" # Default is to use a non-standard directory for easy cleanup
PREFIX="/usr/local/" # Anything but /usr/local seems to fail right now... 
OCROPUSSVNARGS="-r 1307" # r1307 worked for me on OSX 10.5.6
TESSSVNARGS="-r 217" # r217 worked for me on OSX 10.5.6

# Do something with sudo right away so they can walk away and not worry about it
sudo ls >/dev/null 2>&1

mkdir -p $WORKINGDIR 
cd $WORKINGDIR 

echo "========> Making zlib"
curl -O http://www.gzip.org/zlib/zlib-1.2.3.tar.gz >/dev/null 2>&1
tar xzf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure --prefix=$PREFIX >/dev/null 2>&1
make >/dev/null 2>&1
sudo make install >/dev/null 2>&1
cd $WORKINGDIR

echo "========> Making libpng"
curl -O ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.34.tar.bz2 >/dev/null 2>&1
tar xjf libpng-1.2.34.tar.bz2
cd libpng-1.2.34
./configure --prefix=$PREFIX >/dev/null 2>&1
make >/dev/null 2>&1
sudo make install >/dev/null 2>&1
cd $WORKINGDIR

echo "========> Making libjpg"
curl -O http://www.ijg.org/files/jpegsrc.v6b.tar.gz >/dev/null 2>&1
tar xzf jpegsrc.v6b.tar.gz
cd jpeg-6b
cp /usr/share/libtool/config.sub .
cp /usr/share/libtool/config.guess .
./configure --enable-shared --enable-static --prefix=$PREFIX >/dev/null 2>&1
make >/dev/null 2>&1
sudo make install >/dev/null 2>&1
sudo ranlib $PREFIX/lib/libjpeg.a >/dev/null 2>&1
cd $WORKINGDIR 

echo "========> Making libtiff4"
curl -O ftp://ftp.remotesensing.org/pub/libtiff/tiff-3.8.2.tar.gz >/dev/null 2>&1
tar xzf tiff-3.8.2.tar.gz
cd tiff-3.8.2
./configure --enable-jpeg --with-jpeg-include-dir=$PREFIX/include --with-apple-opengl-framework --prefix=$PREFIX >/dev/null 2>&1
make >/dev/null 2>&1
sudo make install >/dev/null 2>&1

cd $WORKINGDIR 
echo "========> Making tesseract"
svn checkout $TESSSVNARGS http://tesseract-ocr.googlecode.com/svn/trunk/ tesseract-ocr-read-only >/dev/null 2>&1
cd tesseract-ocr-read-only
curl -O http://tesseract-ocr.googlecode.com/files/tesseract-2.00.nld.tar.gz >/dev/null 2>&1
curl -O http://tesseract-ocr.googlecode.com/files/tesseract-2.00.spa.tar.gz >/dev/null 2>&1
curl -O http://tesseract-ocr.googlecode.com/files/tesseract-2.00.deu.tar.gz >/dev/null 2>&1
curl -O http://tesseract-ocr.googlecode.com/files/tesseract-2.00.ita.tar.gz >/dev/null 2>&1
curl -O http://tesseract-ocr.googlecode.com/files/tesseract-2.00.fra.tar.gz >/dev/null 2>&1
curl -O http://tesseract-ocr.googlecode.com/files/tesseract-2.00.eng.tar.gz >/dev/null 2>&1
curl -O http://tesseract-ocr.googlecode.com/files/tesseract-2.01.deu-f.tar.gz >/dev/null 2>&1
curl -O http://tesseract-ocr.googlecode.com/files/tesseract-2.01.por.tar.gz >/dev/null 2>&1
curl -O http://tesseract-ocr.googlecode.com/files/tesseract-2.01.vie.tar.gz >/dev/null 2>&1
for i in *.tar.gz; do tar xzf $i;done
./configure --with-libtiff=$PREFIX/lib --with-extra-libraries=$PREFIX/lib --with-extra-includes=$PREFIX/include --prefix=$PREFIX >/dev/null 2>&1
make >/dev/null 2>&1
sudo make install >/dev/null 2>&1
cd $WORKINGDIR 

echo "========> Making IULib"
svn checkout -q http://iulib.googlecode.com/svn/trunk/ iulib >/dev/null 2>&1
cd iulib
./configure --prefix=$PREFIX >/dev/null 2>&1
make >/dev/null 2>&1
sudo make install >/dev/null 2>&1
cd $WORKINGDIR 

echo "========> Making Leptonica"
curl -O http://www.leptonica.com/source/leptonlib-1.60.tar.gz >/dev/null 2>&1
tar xzf leptonlib-1.60.tar.gz
cd leptonlib-1.60
autoconf
./configure --prefix=$PREFIX >/dev/null 2>&1
make >/dev/null 2>&1
sudo make install >/dev/null 2>&1
cd $WORKINGDIR 

echo "========> Making OpenFst"
curl -O http://cims.nyu.edu/~openfst/twiki/pub/FST/FstDownload/OpenFst-beta-20080422.tgz >/dev/null 2>&1
tar xzf OpenFst-beta-20080422.tgz
cd OpenFst/fst
perl -p -i -e 's/=.*#.*"(.*)" on macosx/=$1/' `find . -name "Makefile*"`
perl -p -i -e 's/.*empty on macosx.*//' `find . -name "Makefile*"`
make >/dev/null 2>&1
sudo mkdir -p $PREFIX/include/fst/lib
sudo cp lib/*.h $PREFIX/include/fst/lib
sudo cp lib/*.a $PREFIX/lib
cd $WORKINGDIR 

echo "========> Making OCRopus"
svn checkout $OCROPUSSVNARGS http://ocropus.googlecode.com/svn/trunk/ ocropus-svn
cd ocropus-svn
#LD_LIBRARY_DIRS=$PREFIX/lib/ 
./configure --prefix=$PREFIX --with-tesseract=$PREFIX --with-iulib=$PREFIX >/dev/null 2>&1
perl -p -i -e 's/\$\(AR\)\ *crf/\$\(AR\)\ cr/' `find . -name "Makefile*"`
make >/dev/null 2>&1
sudo make install >/dev/null 2>&1
cd $WORKINGDIR 

# Not needed, it seems. You might want it if you want a fully functioning Ghostscript install
#echo "========> Making Ghostscript Fonts"
#curl -O http://downloads.sourceforge.net/gs-fonts/ghostscript-fonts-std-8.11.tar.gz
#tar xzf ghostscript-fonts-std-8.11.tar.gz
#sudo cp -r fonts $PREFIX/share/fonts

echo "========> Making Ghostscript"
curl -O http://ghostscript.com/releases/ghostscript-8.64.tar.bz2
tar xjf ghostscript-8.64.tar.bz2
cd ghostscript-8.64
./configure --prefix=$PREFIX --without-x --with-driver=FILES --with-fontpath=$PREFIX/share/ --disable-cups --disable-gtk >/dev/null 2>&1
make >/dev/null 2>&1
sudo make install >/dev/null 2>&1
cd $WORKINGDIR

echo "========> Getting Imagemagick"
curl -O http://www.imagemagick.org/download/binaries/ImageMagick-universal-apple-darwin9.6.0.tar.gz >/dev/null 2>&1
tar xzf ImageMagick-universal-apple-darwin9.6.0.tar.gz
sudo cp -r ImageMagick-6.4.8 $PREFIX

