#!/bin/sh
# @configure_input@

xmlada_config_dir=`dirname $0`
prefix=`(cd "$xmlada_config_dir"; pwd)`
prefix=`dirname $prefix`

exec_prefix=@exec_prefix@
libdir=/usr/lib/i386-linux-gnu/xmlada

sources_dir="${prefix}/share/ada/adainclude"
ali_files_dir=/usr/lib/i386-linux-gnu/ada/adalib
shared_lib_dir=/usr/lib/i386-linux-gnu
static_lib_dir=/usr/lib/i386-linux-gnu

cflags_static=""
cflags_relocatable=""
mflags_static=""
mflags_relocatable=""
libs_relocatable="-L${shared_lib_dir}"
libs_static=""
full_libs_relocatable=""
full_libs_static=""

for module in dom sax schema unicode input_sources; do
    cflags_static="${cflags_static} -I${sources_dir}/xmlada_${module}"
    cflags_relocatble="${cflags_relocatable} -I${sources_dir}/xmlada_${module}"

    mflags_static="${mflags_static} -aI${sources_dir}/xmlada_${module} -aO${ali_files_dir}_xmlada_${module}"
    mflags_relocatable="${mflags_relocatable} -aI${sources_dir}/xmlada_${module} -aO${ali_files_dir}/xmlada_${module}"
done

for module in sax unicode; do
   libs_static="${libs_static} ${static_lib_dir}/libxmlada_${module}.a"
   libs_relocatable="${libs_relocatable} -lxmlada_${module}"
done

libs_static="${libs_static} ${static_lib_dir}/libxmlada_input_sources.a"
libs_relocatable="${libs_relocatable} -lxmlada_input_sources"

for module in dom schema; do
    full_libs_static="${full_libs_static} ${static_lib_dir}/libxmlada_${module}.a"
    full_libs_relocatable="${full_libs_relocatable} -lxmlada_${module}"
done

show_cflags=0
show_mflags=1
show_libs=1
sax_only=0
libtype=relocatable

usage()
{
   cat <<EOF
Usage: xmlada-config [OPTIONS]
Options:
        No option:
            Output all the flags (compiler and linker) required
            to compiler your program
        [--prefix]
            Output the directory in which XML/Ada is installed
        [--version|-v]
            Output the version of XML/Ada
        [--libs]
            Output the linker flags to use for XML/Ada
        [--cflags]
            Output the compiler flags to use for XML/Ada
        [--sax]
            Output all the flags to use for XML/Ada, provided
            you are not using the DOM module.
        [--static]
            Output all the flags (compiler and linker) required to
            compile a static version of your program
        [--shared]
            Output flags to link with a shared library
EOF
}

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

  case $1 in
    --help|-h)
      usage 1>&2
      exit 1
      ;;
    --prefix)
      echo $prefix
      exit 0
      ;;
    --version|-v)
      echo XmlAda 4.5.2015
      exit 0
      ;;
    --libs)
      show_libs=1
      show_cflags=0
      show_mflags=0
      ;;
    --sax)
      sax_only=1
      ;;
    --cflags)
      show_libs=0
      show_cflags=1
      show_mflags=0
      ;;
    --static)
      libtype=static
      ;;
    --shared)
      libtype=relocatable
      ;;
    *)
      usage 1>&2
      exit 1
      ;;
  esac
  shift
done

result=""

if [ $show_cflags = 1 ]; then
   result="$cflags"
fi

if [ $show_mflags = 1 ]; then
   if [ $libtype = static ]; then
      result="$mflags_static"
   else
      result="$mflags_relocatable"
   fi

   if [ $show_libs = 1 ]; then
      result="$result -largs "
   fi
fi

if [ $show_libs = 1 ]; then
   if [ $libtype = static ]; then
      result="${result}${libs_static}"
      if [ $sax_only = 0 ]; then
         result="${result} ${full_libs_static}"
      fi
   else
      result="${result}${libs_relocatable}"
      if [ $sax_only = 0 ]; then
         result="${result} ${full_libs_relocatable}"
      fi
   fi
fi

echo $result
