#! /bin/sh

prefix=@prefix@
exec_prefix=@exec_prefix@

usage()
{
  cat <<EOF
Usage: freetype-config [OPTIONS] [LIBRARIES]
Options:
 [--prefix[=DIR]]
 [--exec-prefix[=DIR]]
 [--version]
 [--libs]
 [--libtool]
 [--cflags]
EOF
  exit $1
}

if test $# -eq 0; then
  usage 1 1>&2
fi

while test $# -gt 0; do
  case "$1" in
  -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
  *) optarg= ;;
  esac

  case $1 in
  --prefix=*)
    prefix=$optarg
    local_prefix=yes
    ;;
  --prefix)
    echo_prefix=yes
    ;;
  --exec-prefix=*)
    exec_prefix=$optarg
    exec_prefix_set=yes
    local_prefix=yes
    ;;
  --exec-prefix)
    echo_exec_prefix=yes
    ;;
  --version)
    echo @ft_version@
    exit 0
    ;;
  --cflags)
    echo_cflags=yes
    ;;
  --libs)
    echo_libs=yes
    ;;
  --libtool)
    echo_libtool=yes
    ;;
  *)
    usage 1 1>&2
    ;;
  esac
  shift
done

if test "$local_prefix" = "yes" ; then
    if test "$exec_prefix_set" != "yes"; then
      exec_prefix=$prefix
    fi
fi

if test "$echo_prefix" = "yes"; then
 echo $prefix
fi

if test "$echo_exec_prefix" = "yes"; then
 echo $exec_prefix
fi

if test "$echo_cflags" = "yes"; then
 cflags="-I@includedir@/freetype2"
 echo $cflags $includes
fi

if test "$echo_libs" = "yes"; then
 libs="-lfreetype"
 if test "@libdir@" != "/usr/lib" ; then
  echo -L@libdir@ $libs
 else
  echo $libs
 fi
fi

if test "$echo_libtool" = "yes"; then
 convlib="libfreetype.la"
 echo @libdir@/$convlib
fi

# EOF
