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

prefix=/usr/local
exec_prefix=${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 '7.0.10 Q16 HDRI'
      ;;
    --cflags)
      /usr/bin/pkg-config --cflags MagickCore-7.Q16HDRI
      ;;
    --cxxflags)
      /usr/bin/pkg-config --cflags MagickCore-7.Q16HDRI
      ;;
    --cppflags)
      /usr/bin/pkg-config --cflags MagickCore-7.Q16HDRI
      ;;
    --ldflags)
      /usr/bin/pkg-config --libs MagickCore-7.Q16HDRI
      ;;
    --libs)
      /usr/bin/pkg-config --libs MagickCore-7.Q16HDRI
      ;;
    --coder-path)
      echo "/usr/local/lib/ImageMagick-7.0.10/modules-Q16HDRI/coders"
      ;;
    --filter-path)
      echo "/usr/local/lib/ImageMagick-7.0.10/modules-Q16HDRI/filters"
      ;;
    *)
      echo "${usage}" 1>&2
      exit 1
      ;;
  esac
  shift
done
