#!/bin/sh

prefix=/usr/local
exec_prefix=${prefix}
exec_prefix_set=no
includedir=${prefix}/include
libdir=${exec_prefix}/lib

# if this script is in the same directory as libvncserver-config.in, assume not installed
if [ -f "`dirname "$0"`/libvncserver-config.in" ]; then
  dir="`dirname "$0"`"
  prefix="`cd "$dir"; pwd`"
  includedir="$prefix"
  libdir="$prefix/libvncserver/.libs $prefix/libvncclient/.libs"
fi

usage="\
Usage: LibVNCServer-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--link] [--libs] [--cflags]"

if test $# -eq 0; then
      echo "${usage}" 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
      if test $exec_prefix_set = no ; then
        exec_prefix=$optarg
      fi
      ;;
    --prefix)
      echo $prefix
      ;;
    --exec-prefix=*)
      exec_prefix=$optarg
      exec_prefix_set=yes
      ;;
    --exec-prefix)
      echo $exec_prefix
      ;;
    --version)
      echo 0.9.9
      ;;
    --cflags)
      if [ "$includedir" != /usr/include ]; then
	  includes=-I"$includedir"
      fi
      echo "$includes"
      ;;
    --libs)
      libs=""
      for dir in $libdir; do
        libs="$libs -L$dir"
        if [ "`uname`" = "SunOS" ]; then
          # why only Solaris??
          libs="$libs -R$dir"
        fi
      done
      echo "$libs" -lvncserver -lvncclient -lnsl -lpthread -lz -lpng -ljpeg -lresolv    
      ;;
    --link)
      echo gcc
      ;;
    *)
      echo "${usage}" 1>&2
      exit 1
      ;;
  esac
  shift
done

