#! /bin/sh

###########################################################
#
# @file: config/saga-config(.in)
#
# @description:
#   saga-config can be used to determine what compile and linker
#   flags should be used for compiling programs using the SAGA.
#
# Copyright (c) 2005-2007 Andre Merzky (andre@merzky.net)
# This file is part of the SAGA Engine.
#
# Contributed by Andre Merzky   <merzky@cs.vu.nl>.
#
###########################################################

### LICENSE ###

saga_prefix="/home/condor/execute/dir_10569/userdir/stage/usr"
saga_version="1.3.3"
saga_compiler="g++"
saga_compiler_version="4.1.2"
saga_syslibs=" -lsaga_package_job -lsaga_package_file -lsaga_package_replica -lsaga_package_namespace -lsaga_package_stream -lsaga_package_rpc -lsaga_package_advert -lsaga_package_sd -lsaga_package_cpr -lsaga_package_isn  -L/usr/lib  -lboost_thread -pthread -lboost_filesystem -lboost_regex -lboost_serialization -lboost_iostreams"
saga_syscppflags="-E -I$saga_prefix/include/ -I$saga_prefix/include/saga/boost -I/usr/include/ -pthread"
saga_syscxxflags="-g  -I$saga_prefix/include/ -I$saga_prefix/include/saga/boost -I/usr/include/ -pthread"
saga_ostype="SAGA_LINUX"

usage()
{
  cat <<EOF

  Usage: saga-config [OPTIONS]

  Options:

    [--packages=all]     set SAGA packages to consider
                         (default: all)

    [--prefix]           get install prefix
    [--version]          get version
    [--compiler]         get compiler
    [--compiler-version] get compiler version
    [--cxxflags]         get compiler flags
    [--cppflags]         get precompiler flags
    [--ldflags]          get linker flags
    [--libs]             get linker flags

EOF
  exit $1
}

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
    --packages=*)
      check_packages=`echo $1 | sed 's/^--packages=//' | sed 's/,/ /'`
      ;;
    --prefix)
      print_saga_prefix=1
      ;;
    --version)
      print_saga_version=1
      ;;
    --cxxflags)
      print_saga_cxxflags=1
      ;;
    --cppflags)
      print_saga_cppflags=1
      ;;
    --ldflags)
      print_saga_libs=1
      ;;
    --libs)
      print_saga_libs=1
      ;;
    --compiler)
      print_saga_compiler=1
      ;;
    --compiler-version)
      print_saga_compiler_version=1
      ;;
    *)
      usage 1 1>&2
      ;;
  esac
  shift
done

if ! test "x$SAGA_LOCATION" = "x" ;
then
     saga_prefix=$SAGA_LOCATION
fi

if test "x$check_packages" = "x" ;
then
  check_packages=all
fi

saga_cppflags="$saga_syscppflags -I$saga_prefix/include"
saga_cxxflags="$saga_syscxxflags"
saga_libs="-L$saga_prefix/lib -lsaga_engine $saga_syslibs"

#####################################################################
#
# find package libs
#
saga_package_libs=""
saga_package_all="no"

# find individual packages
for package in $check_packages
do
  if test "x$package" = "xall" ;
  then

    SO=so
    if test "x$saga_ostype" = "xSAGA_APPLE"; then
      SO=dylib
    fi

    # find all packages
    LIBFILTER="sed 's/\.$SO//g'"
    arg1="$saga_prefix/lib/libsaga_package_*.$SO"
    arg2="s/\.$SO//"
    arg3="s/.*\///"
    arg4="s/^lib/-l/"
    saga_package_libs=`ls $arg1 | sed "$arg2" | sed "$arg3" | sed "$arg4"`
    saga_package_all="yes"

  else

    if test "x$saga_package_all" = "xno" ;
    then
      arg1="$saga_prefix/lib/libsaga_package_$package.$SO"
      arg2="s/\.$SO//"
      arg3="s/.*\///"
      arg4="s/^lib/-l/"
      this_package_lib=`ls $arg1 | sed "$arg2" | sed "$arg3" | sed "$arg4"`

      if test "x$this_package_lib" = "x" ;
      then
        echo "no such package found: $package"
        exit -1
      fi

      saga_package_libs="$saga_package_libs$this_package_lib "
    fi

  fi
done

#####################################################################

if [ x != x"$print_saga_prefix" ] ;
then
   echo    $saga_prefix
fi

if [ x != x"$print_saga_version" ] ;
then
   echo    $saga_version
fi

if [ x != x"$print_saga_cxxflags" ] ;
then
   echo    $saga_cxxflags
fi

if [ x != x"$print_saga_cppflags" ] ;
then
   echo    $saga_cppflags
fi

if [ x != x"$print_saga_libs" ] ;
then
      echo $saga_libs $saga_package_libs
fi

if [ x != x"$print_saga_compiler" ] ;
then
      echo $saga_compiler
fi

if [ x != x"$print_saga_compiler_version" ] ;
then
      echo $saga_compiler_version
fi

exit 0

