#!/bin/sh

glib_libs="-Wl,-R/usr/pkg/lib -L/usr/pkg/lib -lglib-2.0 -lintl"
glib_cflags="-I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include"
glib_thread_libs="-L/usr/pkg/lib -lgthread-2.0 -pthread -Wl,-R/usr/pkg/lib -lglib-2.0 -lintl"
glib_thread_cflags="-I/usr/pkg/include -pthread -I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include"
glib_module_libs="-Wl,--export-dynamic -L/usr/pkg/lib -lgmodule-2.0 -pthread -Wl,-R/usr/pkg/lib -lglib-2.0 -lintl"
glib_module_cflags="-I/usr/pkg/include -pthread -I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include"

prefix=/usr/pkg
exec_prefix=${prefix}
exec_prefix_set=no

usage()
{
	cat <<EOF
Usage: gts-config [OPTIONS] [LIBRARIES]
Options:
	[--prefix[=DIR]]
	[--exec-prefix[=DIR]]
	[--version]
	[--libs]
	[--cflags]
	[--check]
Libraries:
	gts
	gmodule
	gthread
EOF
	exit $1
}

uniquify()
{
    echo $1 | awk '{
	for (i = 1; i <= NF; i++) {
	    unique = 1;
	    for (j = i + 1; j <= NF && unique; j++)
		if ($i == $j)
		    unique = 0;
            if (unique)
		printf ("%s ", $i);
	}
    }'
}

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
      if test $exec_prefix_set = no ; then
        exec_prefix=$optarg
      fi
      ;;
    --prefix)
      echo_prefix=yes
      ;;
    --exec-prefix=*)
      exec_prefix=$optarg
      exec_prefix_set=yes
      ;;
    --exec-prefix)
      echo_exec_prefix=yes
      ;;
    --version)
      echo 0.7.6
      exit 0
      ;;
    --cflags)
      echo_cflags=yes
      ;;
    --libs)
      echo_libs=yes
      ;;
    --check)
      echo_check=yes
      ;;
    gts)
      lib_gts=yes
      ;;
    gmodule)
      lib_gmodule=yes
      ;;
    gthread)
      lib_gthread=yes
      ;;
    *)
      usage 1 1>&2
      ;;
  esac
  shift
done

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
	if test "$lib_gmodule" = "yes"; then
	    glib_cflags="$glib_cflags $glib_module_cflags"
	fi
	if test "$lib_gthread" = "yes"; then
	    glib_cflags="$glib_cflags $glib_thread_cflags"
	fi
	glib_cflags="$glib_cflags -I${prefix}/include"
	glib_cflags=`uniquify "$glib_cflags"`
        if test "$echo_check" = "yes"; then
	    echo -DGTS_CHECK_CASTS $glib_cflags
        else
	    echo $glib_cflags
	fi
fi
if test "$echo_libs" = "yes"; then
	if test "$lib_gmodule" = "yes"; then
	    glib_libs="$glib_libs $glib_module_libs"
	fi
	if test "$lib_gthread" = "yes"; then
	    glib_libs="$glib_libs $glib_thread_libs"
	fi
	glib_libs="-L${exec_prefix}/lib -lgts $glib_libs -lm"
	glib_libs=`uniquify "$glib_libs"`
	echo $glib_libs
fi
