#!/bin/sh

## variables

CONFIG_PREFIX=/usr/local
CONFIG_MAPNIK_LIBNAME=mapnik
CONFIG_MAPNIK_INCLUDE=${CONFIG_PREFIX}/include
CONFIG_MAPNIK_LIB=${CONFIG_PREFIX}/lib
CONFIG_MAPNIK_VERSION='2.0.1'
CONFIG_MAPNIK_LDFLAGS=' -L/usr/local/lib -L/usr/lib -L/usr/X11R6/lib'
CONFIG_DEP_LIBS=' -lfreetype -lltdl -lpng -ltiff -lz -ljpeg -lproj -licuuc -lboost_filesystem-mt -lboost_regex-mt -lxml2 -lboost_thread-mt -lboost_system-mt -l['agg'] -lcairomm-1.0 -lcairo -lgobject-2.0 -lglib-2.0 -lintl -lpcre -lpixman-1 -lfontconfig -lexpat -lxcb-shm -lxcb-render -lXrender -lXext -lX11 -lxcb -lpthread-stubs -lXau -lXdmcp -lsigc-2.0'
CONFIG_OTHER_INCLUDES=' -I/usr/local/include/agg2 -I/usr/local/include/postgresql -I/usr/local/include/libxml2 -I/usr/local/include -I/usr/local/include/libpng -I/usr/include -I/usr/X11R6/include/freetype2 -I/usr/X11R6/include -DHAVE_JPEG -pthread -ansi -Wall -pthread -ftemplate-depth-300 -DOPENBSD -DBOOST_SPIRIT_THREADSAFE -DMAPNIK_THREADSAFE -O3 -finline-functions -Wno-inline -DNDEBUG -DHAVE_CAIRO -DHAVE_LIBXML2  -I/usr/local/include/cairomm-1.0 -I/usr/local/lib/cairomm-1.0/include -I/usr/local/include/cairo -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/X11R6/include/pixman-1 -I/usr/local/include/sigc++-2.0 -I/usr/local/lib/sigc++-2.0/include'
CONFIG_FONTS='/usr/X11R6/lib/X11/fonts/TTF'
CONFIG_INPUT_PLUGINS='/usr/local/lib/mapnik/input'
CONFIG_GIT_REVISION=''


## program below

CONFIG_JSON="{
  \"prefix\": \"${CONFIG_PREFIX}\",
  \"mapnik_libname\": \"${CONFIG_MAPNIK_LIBNAME}\",
  \"mapnik_include\": \"${CONFIG_MAPNIK_INCLUDE}\",
  \"mapnik_lib\": \"${CONFIG_MAPNIK_LIB}\",
  \"version\": \"${CONFIG_MAPNIK_VERSION}\",
  \"ldflags\": \"${CONFIG_MAPNIK_LDFLAGS}\",
  \"dep_libs\": \"${CONFIG_DEP_LIBS}\",
  \"other_includes\": \"${CONFIG_OTHER_INCLUDES}\",
  \"fonts\": \"${CONFIG_FONTS}\",
  \"input_plugins\": \"${CONFIG_INPUT_PLUGINS}\",
  \"git_revision\": \"${CONFIG_GIT_REVISION}\"
}"

usage()
{
    cat <<EOF
Usage: mapnik-config [OPTION]

Known values for OPTION are:

  --prefix          display mapnik prefix [default $CONFIG_PREFIX]
  --prefix=DIR      change mapnik prefix [default $CONFIG_PREFIX]
  --libs            print library linking information
  --dep-libs        print library linking information for mapnik depedencies
  --ldflags         print library paths (-L) information
  --cflags          print pre-processor and compiler flags
  --fonts           print default fonts directory
  --input-plugins   print default input plugins directory
  --json            print all config options as json object
  --help            display this help and exit
  -v --version      output version information
  --git-revision    output git hash
EOF

    exit $1
}

if test $# -eq 0; then
    usage 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
      includedir=$CONFIG_PREFIX/include
      CONFIG_MAPNIK_LIB=$CONFIG_PREFIX/lib
      ;;

    --prefix)
      echo $CONFIG_PREFIX
      ;;

    -v)
      echo $CONFIG_MAPNIK_VERSION
      ;;

    --version)
      echo $CONFIG_MAPNIK_VERSION
      ;;

    --json)
      echo $CONFIG_JSON
      ;;

    --git-revision)
      echo ${CONFIG_GIT_REVISION}
      ;;

    --help)
      usage 0
      ;;

    --fonts)
      echo ${CONFIG_FONTS}
      ;;

    --input-plugins)
      echo ${CONFIG_INPUT_PLUGINS}
      ;;

    --cflags)
      echo -I${CONFIG_MAPNIK_INCLUDE} ${CONFIG_OTHER_INCLUDES}
      ;;

    --libs)
      echo -L${CONFIG_MAPNIK_LIB} -l${CONFIG_MAPNIK_LIBNAME}
      ;;

    --ldflags)
      echo ${CONFIG_MAPNIK_LDFLAGS}
      ;;

    --lib-name)
      echo ${CONFIG_MAPNIK_LIBNAME}
      ;;

    --dep-libs)
      echo ${CONFIG_DEP_LIBS}
      ;;

    *)
  # if no matches, return 'usage 1' meaning usage + 1 (error return type)
  usage 1
  exit 1
  ;;
    esac
    shift
done

exit 0
