#! /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"
 if test "@includedir@" != "/usr/include" ; then
  echo -I@includedir@ $cflags
 else
  echo $cflags
 fi
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
