#! /bin/sh

prefix=@prefix@
exec_prefix=@exec_prefix@
includedir=@includedir@
libdir=@libdir@

usage()
{
    cat <<EOF
Usage: xml2-config [OPTION]

Known values for OPTION are:

  --prefix=DIR		change libxml prefix [default $prefix]
  --exec-prefix=DIR	change libxml exec prefix [default $exec_prefix]
  --libs		print library linking information
  --cflags		print pre-processor and compiler flags
  --modules		module support enabled
  --help		display this help and exit
  --version		output version information
EOF

    exit $1
}

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

cflags=false
libs=false

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
	includedir=$prefix/include
	libdir=$prefix/lib
	;;

    --prefix)
	echo $prefix
	;;

    --exec-prefix=*)
      exec_prefix=$optarg
      libdir=$exec_prefix/lib
      ;;

    --exec-prefix)
      echo $exec_prefix
      ;;

    --version)
	echo @VERSION@
	exit 0
	;;

    --help)
	usage 0
	;;

    --cflags)
       	echo @XML_INCLUDEDIR@ @XML_CFLAGS@
       	;;

    --libtool-libs)
	echo ${libdir}/@XML_LIBTOOLLIBS@
        ;;

    --modules)
       	echo @WITH_MODULES@
       	;;

    --libs)
        if [ "`uname`" = "Linux" ]
	then
	    if [ "@XML_LIBDIR@" = "-L/usr/lib64" ]
	    then
		echo @XML_LIBS@ 
	    else
		echo @XML_LIBDIR@ @XML_LIBS@ 
	    fi
	else
	    echo @XML_LIBDIR@ @XML_LIBS@ 
	fi
       	;;

    *)
	usage
	exit 1
	;;
    esac
    shift
done

exit 0
