#! /bin/sh
# ======================================================================
#  $Id: cldaq-config,v 1.6 2004/01/05 11:00:58 goiwai Exp $
#  $Name: CLDAQ-1-13-00 $
#  $Log: cldaq-config,v $
#  Revision 1.6  2004/01/05 11:00:58  goiwai
#  ܤεưˤѲʤǤ.
#  cldaq-config --prefix=/somewhere --foo
#  Ȥ,CLDAQ_INSTALLͤprefixǻꤷͥ褷ޤ.
#
#  Revision 1.4  2003/11/22 13:54:59  goiwai
#  *** empty log message ***
#
#  Revision 1.3  2003/10/06 13:31:43  goiwai
#  cldaq-config
#
#  Revision 1.2  2003/07/30 16:12:50  goiwai
#  ե˥ߥåȥĤ뤳Ȥˤޤ.
#
# ======================================================================

usage()
{
    cat <<EOF
Usage: cldaq-config [OPTIONS]
Options:
	[--prefix[=DIR]]
	[--cflags]
	[--libs]
	[--ldflags]
	[--ldlibs]
	[--version]
EOF
    exit $1
}

notset()
{
    cat <<EOF
*** Set and export enviroment variable "CLDAQ_INSTALL".
***	e.g.) setenv CLDAQ_INSTALL "/somewhere/CLDAQ"
***	e.g.) export CLDAQ_INSTALL="/somewhere/CLDAQ"
EOF
    exit $1
}

checkitout()
{
    if test $# -eq 0; then
	usage 1 1>&2
    fi

    if test -z "$CLDAQ_INSTALL" || ! test -d "$CLDAQ_INSTALL"; then
	notset 1 1>&2
    fi
}

setargs()
{
    projectname=CLDAQ
    prefix=$CLDAQ_INSTALL
    reset_prefix=no
    echo_prefix=no
    echo_version=no
    echo_cflags=no
    echo_libs=no
    echo_ldflags=no
    echo_ldlibs=no

    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
		;;
	    --prefix)
		echo_prefix=yes
		;;
	    --version)
		echo_version=yes
		;;
	    --cflags)
		echo_cflags=yes
		;;
	    --libs)
		echo_libs=yes
		;;
	    --ldflags)
		echo_ldflags=yes
		;;
	    --ldlibs)
		echo_ldlibs=yes
		;;
	    *)
		usage 1 1>&2
		;;
	esac
	shift
    done
}

prefix()
{
    if test "$echo_prefix" = "yes"; then
	echo $prefix
    fi
}

version()
{
    if test "$echo_version" = "yes"; then
	h="$prefix/source/system/Ttypes.h"
	if ! test -f $h; then
	    echo "*** No such a file <Ttypes.h> in [$prefix/source/system].";
	    exit 1
	fi
	v=$(grep '^static const Tstring Tversion = "[0-9]\+\.[0-9]\+\.[0-9]\+";$' $h | cut --delimiter='"' --fields=2)
	echo $v
    fi
}

cflags()
{
    if test "$echo_cflags" = "yes"; then
	base="$prefix/source"
	i=""
	for p in analysis datarecord geometry modules random run commands event interfaces persistency readout system; do
	    if test -z "$i"; then
		i="-I$base/$p"
	    else
		i="$i -I$base/$p"
	    fi
	done
	echo $i
    fi
}

ldlibs()
{
    if test "$echo_ldlibs" = "yes"; then
	echo "-l$projectname"
    fi
}

ldflags()
{
    if test "$echo_ldflags" = "yes"; then
	echo "-L$prefix/lib"
    fi
}

libs()
{
    if test "$echo_libs" = "yes"; then
	echo "-L$prefix/lib -l$projectname"
    fi
}

main()
{
    checkitout $*
    setargs $*
    prefix
    version
    cflags
    libs
    ldflags
    ldlibs
    exit 0
}

main $*
