#! /bin/sh

################################################################################
# 
# variables set by configure
#

PACKAGE="babel"
VERSION="0.10.2"
CONFIGPATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games"

builddir="."
top_builddir="../"
abs_builddir="/home/hazelsct/babel-0.10.2/bin"
abs_top_builddir="/home/hazelsct/babel-0.10.2/bin/../."

srcdir="."
top_srcdir=".."
abs_srcdir="/home/hazelsct/babel-0.10.2/bin"
abs_top_srcdir="/home/hazelsct/babel-0.10.2/bin/.."

prefix="/usr"
exec_prefix="${prefix}"
bindir="${exec_prefix}/bin"
libdir="${exec_prefix}/lib"
sbindir="${exec_prefix}/sbin"
libexecdir="${exec_prefix}/libexec"
datadir="${prefix}/share"
sysconfdir="${prefix}/etc"
sharedstatedir="${prefix}/com"
localstatedir="${prefix}/var"
includedir="${prefix}/include"
jardir="${datadir}/java"
repodir="${datadir}/${PACKAGE}-${VERSION}/repository"

build="i686-pc-linux-gnu"
build_cpu="i686"
build_vendor="pc"
build_os="linux-gnu"
host="i686-pc-linux-gnu"
host_cpu="i686"
host_vendor="pc"
host_os="linux-gnu"
target="i686-pc-linux-gnu"
target_cpu="i686"
target_vendor="pc"
target_os="linux-gnu"

INSTALL="/usr/bin/install -c"
INSTALL_PROGRAM="${INSTALL}"
INSTALL_SCRIPT="${INSTALL}"
INSTALL_DATA="${INSTALL} -m 644"

EXEEXT=""
OBJEXT="o"
LIBS=""

CC="gcc-3.4"
WHICH_CC="/usr/bin/gcc-3.4"
CFLAGS="-g -O2 -fno-strict-aliasing -Wall -Wstrict-prototypes"
CPPFLAGS=""
LDFLAGS=""
SHARED_LIB_VAR="LD_LIBRARY_PATH"

PTHREAD_CC="gcc-3.4"
PTHREAD_CFLAGS="-pthread"
PTHREAD_LIBS=""

  SUPPORT_FORTRAN77="true"
# SUPPORT_FORTRAN77="false"
F77="g77-3.4"
WHICH_F77="/usr/bin/g77-3.4"
FFLAGS="-g -O2"
FLIBS=" -L/usr/lib/gcc/i486-linux/3.4.4 -L/usr/lib/gcc/i486-linux/3.4.4/../../../../lib -L/usr/lib/gcc/i486-linux/3.4.4/../../.. -L/lib/../lib -L/usr/lib/../lib  -lg2c -lm"
FMAIN="-lfrtbegin"

  SUPPORT_CXX="true"
# SUPPORT_CXX="false"
CXX="g++-3.4"
WHICH_CXX="/usr/bin/g++-3.4"
CXXFLAGS="-g -O2 -Wall"
CXXLIBS=" -L/usr/lib/gcc/i486-linux/3.4.4 -L/usr/lib/gcc/i486-linux/3.4.4/../../../../lib -L/usr/lib/gcc/i486-linux/3.4.4/../../.. -L/lib/../lib -L/usr/lib/../lib -lstdc++ -lm -lgcc_s -lgcc -lc"

  SUPPORT_JAVA="true"
# SUPPORT_JAVA="false"
JAVA="java"
WHICH_JAVA="/usr/bin/java"
JAVAC="javac"
WHICH_JAVAC="/usr/bin/javac"
JAR="fastjar"
WHICH_JAR="/usr/bin/fastjar"
JAVAH="/usr/lib/kaffe/bin/javah"
WHICH_JAVAH="/usr/lib/kaffe/bin/javah"
JAVAPREFIX=""
JAVAFLAGS=""
JAVACFLAGS=""
JNI_INCLUDES=""
JNI_LDFLAGS=" -L/usr/lib/kaffe/pthreads/jre/lib/i386 -R/usr/lib/kaffe/pthreads/jre/lib/i386 -L/usr/lib/kaffe/pthreads/jre/lib/i386 -R/usr/lib/kaffe/pthreads/jre/lib/i386 -L/usr/lib/kaffe/jre/lib/i386 -R/usr/lib/kaffe/jre/lib/i386 -L/usr/lib/kaffe/jre/lib/i386 -R/usr/lib/kaffe/jre/lib/i386 -L/usr/lib/kaffe/.system/jre/lib/i386 -R/usr/lib/kaffe/.system/jre/lib/i386 -L/usr/lib/kaffe/.system/jre/lib/i386 -R/usr/lib/kaffe/.system/jre/lib/i386"

  SUPPORT_PYTHON="true"
# SUPPORT_PYTHON="false"
  SERVER_PYTHON="true"
# SERVER_PYTHON="false"
PYTHON="python2.4"
WHICH_PYTHON="/usr/bin/python2.4"
PYTHON_VERSION="2.4"
PYTHONINC="/usr/include/python2.4"
PYTHONLIB="/usr/lib/python2.4"
PYTHON_SHARED_LIBRARY="/usr/lib/python2.4/config/libpython2.4.so"
PYTHON_SHARED_LIBRARY_DIR="/usr/lib/python2.4/config"

#  SUPPORT_FORTRAN90="true"
 SUPPORT_FORTRAN90="false"
FC=""
WHICH_FC=""
FCFLAGS=""
FCLIBS=""
F90MAIN=""

CHASM_FORTRAN_VENDOR=""
CHASM_FORTRAN_MFLAGS=""
CHASM_CFLAGS=""
CHASM_LIBS=""

  SUPPORT_STATIC="true"
# SUPPORT_STATIC="false"
  SUPPORT_SHARED="true"
# SUPPORT_SHARED="false"

XML2_CONFIG="/usr/bin/xml2-config"
LIBXML_REQUIRED_VERSION="2.4.0"
LIBXML2_LIB="/usr/lib/libxml2.la"
LIBXML2_CFLAGS="-I/usr/include/libxml2"

ALL_VARS="PACKAGE VERSION CONFIGPATH builddir top_builddir abs_builddir abs_top_builddir srcdir top_srcdir abs_srcdir abs_top_srcdir prefix exec_prefix bindir libdir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir includedir jardir repodir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA EXEEXT OBJEXT LIBS CC WHICH_CC CFLAGS CPPFLAGS LDFLAGS SHARED_LIB_VAR PTHREAD_CC PTHREAD_CFLAGS PTHREAD_LIBS SUPPORT_FORTRAN77 F77 WHICH_F77 FFLAGS FLIBS FMAIN SUPPORT_CXX CXX WHICH_CXX CXXFLAGS CXXLIBS SUPPORT_JAVA JAVA WHICH_JAVA JAVAC WHICH_JAVAC JAR WHICH_JAR JAVAH WHICH_JAVAH JAVAPREFIX JAVAFLAGS JAVACFLAGS JNI_INCLUDES JNI_LDFLAGS SUPPORT_PYTHON SERVER_PYTHON PYTHON WHICH_PYTHON PYTHON_VERSION PYTHONINC PYTHONLIB PYTHON_SHARED_LIBRARY PYTHON_SHARED_LIBRARY_DIR SUPPORT_FORTRAN90 FC WHICH_FC FCFLAGS FCLIBS FCMAIN SUPPORT_STATIC SUPPORT_SHARED CHASM_FORTRAN_VENDOR CHASM_FORTRAN_MFLAGS CHASM_CFLAGS CHASM_LIBS XML2_CONFIG LIBXML_REQUIRED_VERSION LIBXML2_LIB LIBXML2_CFLAGS"

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


usage()
{

    exit_code=$1
    cat <<EOF
Usage: babel-config [OPTION]

    This tool is provided to query information about how Babel 
    was configured and installed.

Generic options:
    --version       show Babel version
    --help          display this help and exit.

Installation directories Babel was configured to:
    --prefix        root for all platform independent files
    --exec-prefix   root for all platform specific files
    --bindir        platform specific executables
    --libdir        platform specific libraries
    --includedir    platform independent C (and C++) header files
    --datadir       platform independent data
    --jardir        where jar files are installed
    --repodir       where XML repository for SIDL types are installed

Language support enabled/disabled at configuration time:
    --with-<LANG>   exits 0 if language support was enabled, 1 otherwise
    --with-server-python 
		    same as above if server-side python is enabled

* <LANG> is any one of {c, c++, f77, f90, java, python}

Help building things to work with Babel
    --xml2-config   Fully qualified path to xml2-config script
    --includes      -I prepended directories for Babel
    --includes-jni  -I prepended directories for JNI, if enabled in Babel
    --includes-py   -I prepended directories for Python, if enabled in Babel
    --includes-xml2 -I prepended directories for XML2 
    --flags-<LANG>  all flags for <LANG>, if enabled *
    --flags-cpp     same as CPPFLAGS
    --flags-javac
    --libs-<LANG>   all link library directives for <LANG>, if enabled 
    --libs-<LANG>-L -L prepended directories for <LANG>, if enabled
    --libs-<LANG>-l -l prepended libraries for <LANG>, if enabled
    --libtool-xml2   XML2 libtool library .la

Low-level query: 
    --query-var=<variable-name>      literal query of what was recorded/used at 
				     configure time.  Nonzero exit if variable 
				     not explicitly set.

    --which-var=<variable-name>      absolute path expansion using configure 
				     time PATH variable, nonzero exit if cannot 
				     find.  No protection against nonsensical
				     combinations, such as --which-var=LDFLAGS

    --configpath-var=<variable-name> absolute path as recorded at configure 
				     time, nonzero exit if absolute path was 
				     not recorded.

Low-level dump:  writes VARNAME=value pairs, one per line.
    --dump-vars
    --dump-vars=PREFIX  (prefixes PREFIX to all variables)

*NOTE:  Babel uses libtool to compile and link libraries, examples, and tests.
	babel-config presents information passed into libtool.  But, libtool 
	may add/change compiler or linker flags as code is being built. 
	(e.g. may add -fPIC -DPIC)
EOF
    exit $exit_code
}

dump_vars() 
{
 varname_prefix=${1:-""}
 for i in $ALL_VARS; do
    j=`eval echo \\$$i`;
    echo $varname_prefix$i=\"$j\";
 done
}

echo_libs()
{
    constraint=`echo "$1" | sed -e 's/--[_a-zA-Z0-9\+]*-[_a-zA-Z0-9\+]*//'`
    shift
    Lcommands=
    lcommands=
    ocommands=
    while test $# -gt 0; do
	case "$1" in 
	-L*)
	    Lcommands="$Lcommands $1"
	    ;;
	-l*)
	    lcommands="$lcommands $1"
	    ;;
	*)
	    ocommands="$ocommands $1"
	    ;;
	esac
	shift
    done
    if test -z "$constraint"; then
	echo $Lcommands $lcommands $ocommands
    elif test "$constraint" = "-L"; then
	echo $Lcommands
    elif test "$constraint" = "-l"; then
	echo $lcommands
    else
	exit 1
    fi
    exit 0
}



if test $# -eq 0; then
    usage 1
fi


while test $# -gt 0; do
    case "$1" in 
    -*=*) optarg=`echo "$1" | sed -e 's/[-_a-zA-Z0-9]*=//'`;;
    *) optarg= ;;
    esac

    case $1 in
    --version)
	echo $VERSION
	exit 0
	;;
    --exec-prefix)
	echo $exec_prefix
	exit 0
	;;
    --prefix)
	echo $prefix
	exit 0
	;;
    --*dir)
	dirname=\$`echo $1 | sed -e 's,^--,,'`
	dirname=`eval echo $dirname`
	test -z "dirname" && exit 1
	echo $dirname
	exit 0
	;;
    --help)
	usage 0
	;;
    --dump-vars) 
	dump_vars ""
	;;
    --dump-vars=* ) 
	dump_vars $optarg
	;;
    --with-bindings)
	bindings="c"
	if test "$SUPPORT_CXX" = "true"; then
	  bindings="$bindings c++ uc++"
	fi
	if test "$SUPPORT_FORTRAN77" = "true"; then
	  bindings="$bindings f77"
	fi
	if test "$SUPPORT_FORTRAN90" = "true"; then
	  bindings="$bindings f90"
	fi
	if test "$SUPPORT_JAVA" = "true"; then
	  bindings="$bindings java"
	fi
	if test "$SUPPORT_PYTHON" = "true"; then
	  bindings="$bindings python"
	fi
	echo $bindings
	exit 0
	;;
    --with-c)
	exit 0 #Babel cannot work without C
	;;
    --with-c++)
	test "$SUPPORT_CXX" = "true" && exit 0
	exit 1
	;;
    --with-uc++)
	test "$SUPPORT_CXX" = "true" && exit 0
	exit 1
	;;
    --with-f77)
	test "$SUPPORT_FORTRAN77" = "true" && exit 0
	exit 1
        ;;
    --with-f90)
        test "$SUPPORT_FORTRAN90" = "true" && exit 0
	exit 1
	;;
    --with-java)
	test "$SUPPORT_JAVA" = "true" && exit 0
	exit 1
        ;;
    --with-python)
	test "$SUPPORT_PYTHON" = "true" && exit 0
	exit 1
	;;
    --with-server-python)
	test "$SERVER_PYTHON" = "true" && exit 0
	exit 1
	;;
    --query-var=*)
	for i in $ALL_VARS; do
	  if test "X$i" = "X$optarg"; then
	    value=`eval echo \\$$optarg`
 	    test -z "value" && exit 1
	    echo $value
	    exit 0
          fi
	done
	exit 1
	;;
    --which-var=*)
	for i in $ALL_VARS; do
	  if test "X$i" = "X$optarg"; then
 	    value=`eval echo \\$$optarg`
	    test -z "value" && exit 1
	    value=`echo "$value" | awk -F" " '{print $1}'`
            case $value in 
              /*) # already an absolute path... just verify it exists.
		if test -e "$value"; then
		  echo $value
		  exit 0
		fi
		;;
	      *)
	   	cpath=`echo "$CONFIGPATH" | sed -e 's/:/ /g'`
	        for j in $cpath; do 
	          if test -e "$j/$value"; then
	 	    echo "$j/$value";
		    exit 0
	          fi
                done
                ;;
            esac
	    exit 1
	  fi
        done
	exit 1
	;;
    --configpath-var=*)
	for i in $ALL_VARS; do
	  if test "X$i" = "XWHICH_$optarg"; then
	    varname=`eval echo \\$WHICH_$optarg`
	    test -z "varname" && exit 1
	    echo $varname
	    exit 0;
          fi; 
        done
        exit 1
	;;
    --xml2-config)
	echo $XML2_CONFIG
	exit 0
	;;
    --includes)
	if test "$includedir" = "${exec_prefix}/include" ; then
	    echo "-I$includedir"
	else
	    echo "-I$includedir -I${exec_prefix}/include"
	fi
	exit 0
	;;
    --includes-jni)
	test "$SUPPORT_JAVA" = "false" && exit 1
	echo $JNI_INCLUDES
	exit 0
	;;
    --includes-py)
	test "$SUPPORT_PYTHON" = "false" && exit 1
	pyversion=`basename $PYTHONINC`
	echo $includedir/$pyversion/babel
	exit 0
	;;
    --includes-xml2)
	echo $LIBXML2_CFLAGS
	exit 0
	;;
    --flags-c)
	echo $CFLAGS
	exit 0
	;;
    --flags-cpp)
	echo $CPPFLAGS
	exit 0
	;;
    --flags-c++)
	echo $CXXFLAGS
	exit 0
	;;
    --flags-f77)
	echo $FFLAGS
	exit 0
	;;
    --flags-f90)
	echo $FCFLAGS
	exit 0
	;;
    --flags-java)
	echo $JAVAFLAGS
	exit 0
	;;
    --flags-javac)
	echo $JAVACFLAGS
	exit 0
	;;
    --flags-python)
	echo 
	exit 0;
	;;
    --libs-c | --libs-c-L | --libs-c-l)
	echo_libs $1 $LDFLAGS
	;;
    --libs-c++ | --libs-c++-L | --libs-c++-l)
	test "$SUPPORT_CXX" = "false" && exit 1
	echo_libs $1 $CXXLIBS
	;;
    --libs-f77 | --libs-f77-L | --libs-f77-l)
	test "$SUPPORT_FORTRAN77" = "false" && exit 1
	echo_libs $1 $FLIBS
	;;
    --libs-f90 | --libs-f90-L | --libs-f90-l)
	test "$SUPPORT_FORTRAN90" = "false" && exit 1
	echo_libs $1 $FCLIBS
	;;
    --libs-java | --libs-java-L | --libs-java-l)
	test "$SUPPORT_JAVA" = "false" && exit 1
	echo_libs $1 $JNI_LDFLAGS
	;;
    --libs-python | --libs-python-L | --libs-python-l)
	test "$SUPPORT_PYTHON" = "false" && exit 1
	test "$SERVER_PYTHON" = "false" && exit 1
	echo_libs $1 "-L$PYTHON_SHARED_LIBRARY_DIR" "-lpython${PYTHON_VERSION}"
	;;
    --libtool-xml2) 
	echo $LIBXML2_LIB
	exit 0
	;;
    --*)
	usage 1
	;;
    *)
	usage 1
	;;
    esac
    shift	
done



