#!/bin/sh

glib_libs="-L/usr/local/lib -lwrap -lglib"
glib_cflags="-I/usr/local/include/glib-1.2 -I/usr/local/lib/glib/include"
glib_thread_libs="-L/usr/local/lib -lwrap -lgthread -lwrap -lglib -lwrap -lpthread"
glib_thread_cflags="-I/usr/local/include/glib-1.2 -I/usr/local/lib/glib/include -D_REENTRANT"
glib_module_libs="-L/usr/local/lib -lwrap -lgmodule -lwrap -lglib -lwrap -ldl"
glib_module_cflags="-I/usr/local/include/glib-1.2 -I/usr/local/lib/glib/include"

prefix=/usr/local
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 = 1; j < i && 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.0
      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
