#!/bin/sh
#
# Configure options script for re-calling MagickCore compilation options
# required to use the MagickCore library.
#

prefix=@prefix@
exec_prefix=@exec_prefix@

usage="\
Usage: MagickCore-config [--cflags] [--cppflags] [--exec-prefix] [--ldflags] [--libs] [--prefix] [--version]"

if test $# -eq 0; then
      echo "${usage}" 1>&2
      echo "Example: gcc \`MagickCore-config --cflags --cppflags\` -o core core.c \`Magick-config --ldflags --libs\`" 1>&2
      exit 1
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
      ;;
    --exec-prefix=*)
      exec_prefix=$optarg
      ;;
    --exec-prefix)
      echo $exec_prefix
      ;;
    --version)
      echo '@PACKAGE_VERSION@ Q@QUANTUM_DEPTH@ @MAGICK_HDRI@'
      ;;
    --cflags)
      pkg-config --cflags MagickCore
      ;;
    --cxxflags)
      pkg-config --cflags MagickCore
      ;;
    --cppflags)
      pkg-config --cflags MagickCore
      ;;
    --ldflags)
      pkg-config --libs MagickCore
      ;;
    --libs)
      pkg-config --libs MagickCore
      ;;
    --coder-path)
      echo "@CODER_PATH@"
      ;;
    --filter-path)
      echo "@FILTER_PATH@"
      ;;
    *)
      echo "${usage}" 1>&2
      exit 1
      ;;
  esac
  shift
done
