#!/bin/sh

PKG_CONFIG="http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz"
PIXMAN="http://www.cairographics.org/releases/pixman-0.32.4.tar.gz"
CAIRO="http://cairographics.org/releases/cairo-1.12.16.tar.xz"
FREETYPE="http://download.savannah.gnu.org/releases/freetype/freetype-2.4.10.tar.gz"
LIBPNG="http://downloads.sourceforge.net/project/libpng/libpng16/1.6.10/libpng-1.6.10.tar.gz"
GIF_LIB="https://downloads.sourceforge.net/project/giflib/giflib-4.x/giflib-4.1.6/giflib-4.1.6.tar.gz"
PREFIX=${1-/usr/local}

require() {
  echo "... checking for $1"
  if test `which $1`; then
    echo "... found"
  else
    echo "... not found"
    exit 1
  fi
}

fetch() {
  local tarball=`basename $1`
  echo "... downloading $tarball"
  local dir=`basename $tarball .tar.gz`
  curl -# -L $1 -o $tarball \
    && echo "... unpacking" \
    && tar -zxf $tarball \
    && echo "... removing tarball" \
    && rm -fr $tarball \
    && install $dir
}

fetch_xz() {
  local tarball=`basename $1`
  echo "... downloading $tarball"
  local dir=`basename $tarball .tar.xz`
  curl -# -L $1 -o $tarball \
    && echo "... unpacking" \
    && tar -xJf $tarball \
    && echo "... removing tarball" \
    && rm -fr $tarball \
    && install $dir
}

install() {
  local dir=$1
  echo "... installing $1"
 cd $dir \
   && ./configure --disable-dependency-tracking --prefix=$PREFIX \
   && make \
   && make install \
   && echo "... removing $dir" \
   && cd .. && rm -fr $dir
}

echo "... installing to $PREFIX"
require curl
require tar
test `which pkg-config` || fetch $PKG_CONFIG
require 'pkg-config'
fetch $LIBPNG
fetch $GIF_LIB
fetch $FREETYPE
fetch $PIXMAN
fetch_xz $CAIRO