#!/bin/sh

prefix=@prefix@
exec_prefix=@exec_prefix@
exec_prefix_set=no

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
    ;;
  --prefix)
    echo_prefix=yes
    ;;
  --exec-prefix=*)
    exec_prefix=$optarg
    exec_prefix_set=yes
    ;;
  --exec-prefix)
    echo_exec_prefix=yes
    ;;
  --version)
    echo @version_info@
    exit 0
    ;;
  --cflags)
    echo_cflags=yes
    ;;
  --libs)
    echo_libs=yes
    ;;
  --libtool)
    echo_libtool=yes
    ;;
  *)
    usage 1 1>&2
    ;;
  esac
  shift
done

if test "$exec_prefix_set" = "no"; then
  exec_prefix=$prefix
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"
 echo -L@libdir@ $libs
fi
if test "$echo_libtool" = "yes"; then
 convlib="libfreetype.la"
 echo @libdir@/$convlib
fi

# EOF
