#! /bin/sh

prefix="@prefix@"
exec_prefix="@exec_prefix@"
libdir="@libdir@"
includedir="@includedir@"
version="@PACKAGE_VERSION@"

usage()
{
  cat <<EOF
Usage: fontconfig-config [OPTIONS] [LIBRARIES]
Options:
 [--prefix[=DIR]]
 [--exec-prefix[=DIR]]
 [--version]
 [--libs]
 [--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 $version
    exit 0
    ;;
  --cflags)
    echo_cflags=yes
    ;;
  --libs)
    echo_libs=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}"
 echo $cflags
fi

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

# EOF
