#!/bin/sh

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

CLAW_INCLUDE_DIRECTORY=$(echo "/usr/include/" | sed 's/;/ /g')
CLAW_DEFINITIONS=$(echo "-DCLAW_JPEG_SUPPORT;-DCLAW_PNG_SUPPORT" | sed 's/;/ /g')
CLAW_VERSION="1.7.4"

# Flags telling which parts of the CLAW library the user want
FLAG_ALL_LIBRARIES=0
FLAG_CONFIGURATION_FILE_LIBRARIES=0
FLAG_APPLICATION_LIBRARIES=0
FLAG_DYNAMIC_LIBRARY_LIBRARIES=0
FLAG_GRAPHIC_LIBRARIES=0
FLAG_LOGGER_LIBRARIES=0
FLAG_NET_LIBRARIES=0
FLAG_TWEEN_LIBRARIES=0

usage="Usage: claw-config [all|application|configuration_file|dynamic_library|graphic|logger|net|tween] [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags] [--libs]"

print_libraries()
{
  if [ $FLAG_ALL_LIBRARIES -eq 1 ]
  then
    FLAG_APPLICATION_LIBRARIES=1
    FLAG_CONFIGURATION_FILE_LIBRARIES=1
    FLAG_DYNAMIC_LIBRARY_LIBRARIES=1
    FLAG_GRAPHIC_LIBRARIES=1
    FLAG_LOGGER_LIBRARIES=1
    FLAG_NET_LIBRARIES=1
    FLAG_TWEEN_LIBRARIES=1
  fi

  if [ $FLAG_APPLICATION_LIBRARIES -eq 1 ]
  then
    echo -n "-lclaw_application -lclaw_logger "
  fi

  if [ $FLAG_DYNAMIC_LIBRARY_LIBRARIES -eq 1 ]
  then
    echo -n "-lclaw_dynamic_library -ldl "
  fi

  if [ $FLAG_CONFIGURATION_FILE_LIBRARIES -eq 1 ]
  then
    echo -n "-lclaw_configuration_file "
  fi

  if [ $FLAG_GRAPHIC_LIBRARIES -eq 1 ]
  then
    echo -n "-lclaw_graphic "

    if echo "$CLAW_DEFINITIONS" | grep -q "CLAW_PNG_SUPPORT"
    then
      echo -n "-lpng -lz "
    fi

    if echo "$CLAW_DEFINITIONS" | grep -q "CLAW_JPEG_SUPPORT"
    then
      echo -n "-ljpeg "
    fi
  fi

  if [ $FLAG_LOGGER_LIBRARIES -eq 1 ]
  then
    echo -n "-lclaw_logger "
  fi

  if [ $FLAG_NET_LIBRARIES -eq 1 ]
  then
    echo -n "-lclaw_net "
  fi

  if [ $FLAG_TWEEN_LIBRARIES -eq 1 ]
  then
    echo -n "-lclaw_tween "
  fi

  echo
}

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
    all)
      FLAG_ALL_LIBRARIES=1
      ;;
    application)
      FLAG_APPLICATION_LIBRARIES=1
      ;;
    configuration_file)
      FLAG_CONFIGURATION_FILE_LIBRARIES=1
      ;;
    dynamic_library)
      FLAG_DYNAMIC_LIBRARY_LIBRARIES=1
      ;;
    graphic)
      FLAG_GRAPHIC_LIBRARIES=1
      ;;
    logger)
      FLAG_LOGGER_LIBRARIES=1
      ;;
    net)
      FLAG_NET_LIBRARIES=1
      ;;
    --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 $CLAW_VERSION
      ;;
    --cflags|--cppflags|--cxxflags)
      echo -I$CLAW_INCLUDE_DIRECTORY $CLAW_DEFINITIONS
      ;;
    --include)
      echo -I$CLAW_INCLUDE_DIRECTORY
      ;;
     --libs)
      libdirs="-L${exec_prefix}/lib "

      echo -n "$libdirs"
      echo $(print_libraries)
      ;;
    *)
      echo "${usage}" 1>&2
      exit 1
      ;;
  esac
  shift
done
