#!/bin/sh
# Stolen from rep-config and adapted for use with xmlrpc-c.
# Other bits stolen from gnome-config & automake output.

prefix=/home/bryanh/rpcinst
exec_prefix=${prefix}

bindir=${exec_prefix}/bin
sbindir=${exec_prefix}/sbin
libexecdir=${exec_prefix}/libexec
datadir=${prefix}/share
sysconfdir=${prefix}/etc
sharedstatedir=${prefix}/com
localstatedir=${prefix}/var
libdir=${exec_prefix}/lib
infodir=${prefix}/info
mandir=${prefix}/man
includedir=${prefix}/include

pkgdatadir=$datadir/xmlrpc-c
pkglibdir=$libdir/xmlrpc-c
pkgincludedir=$includedir/xmlrpc-c

ENABLE_LIBXML2_BACKEND="no"
MUST_BUILD_CURL_CLIENT="yes"
MUST_BUILD_WININET_CLIENT="no"
MUST_BUILD_LIBWWW_CLIENT="yes"

usage="Usage: xmlrpc-c-config <feature> ... <option> ...

The features are:
  c++            legacy C++ wrapper API
  c++2           modern C++ API
  client         client functions
  cgi-server     CGI-based server functions
  abyss-server   ABYSS-based server functions

Options are:
  --version      The version number of the package
  --features     List all features (aka modules) currently installed
  --cflags       C compiler flags to use when '#include'ing package headers
  --libs         Libraries and flags to use when linking programs normally
  --ldadd        Libraries to use with automake
  --ldflags      Flags to use with automake & libtool
  --prefix       The prefix under which the package was installed
  --exec-prefix  The executable prefix under which the package was installed
  --*dir         The various directories under which the package was installed"

if test $# -eq 0; then
      echo "${usage}" 1>&2
      exit 1
fi

if test "${ENABLE_LIBXML2_BACKEND}" = "yes"; then
  LIBXML=""
else
  LIBXML="-lxmlrpc_xmlparse -lxmlrpc_xmltok"
fi

needCpp=no

the_libdirs="-L${exec_prefix}/lib"
the_libs="-lxmlrpc ${LIBXML}"
the_rpath=
the_wl_rpath=
cpp_libs=

while test $# -gt 0; do
  case $1 in
    c++)
      the_libs="-lxmlrpc_cpp $the_libs"

      # Unfortunately, there is just one legacy CPP library for
      # everything, and it needs all the C libraries -- base, client,
      # and server.  So all legacy C++ programs get linked with client
      # and server libraries, whether they need them or not.

      the_libs="-lxmlrpc_server_abyss $the_libs"
      the_libs="-lxmlrpc_server $the_libs"
      the_libs="-lxmlrpc_client $the_libs"
      ;;
    c++2)
      needCpp=yes
      the_libs="-lxmlrpc++ $the_libs"
      ;;
    cgi-server)
      the_libs="-lxmlrpc_server $the_libs"
      the_libs="-lxmlrpc_server_cgi $the_libs"
      ;;
    abyss-server)
      the_libs="-lpthread $the_libs"
      the_libs="-lxmlrpc_abyss $the_libs"
      the_libs="-lxmlrpc_server $the_libs"
      the_libs="-lxmlrpc_server_abyss $the_libs"
      if test "${needCpp}" = "yes"; then
        the_libs="-lxmlrpc_server++ $the_libs"
        the_libs="-lxmlrpc_server_abyss++ $the_libs"
        fi
      ;;
    client|libwww-client)
      # libwww-client is for backward compatibility
      the_libs="-lxmlrpc_client $the_libs"

      if test "${MUST_BUILD_WININET_CLIENT}" = "yes"; then
        the_libs=" $the_libs"
        the_rpath=" $the_rpath"
        the_wl_rpath=" $the_wl_rpath"
      fi
      if test "${MUST_BUILD_CURL_CLIENT}" = "yes"; then
        the_libs="-L/subsys/curl/lib -lcurl -lssl -lcrypto -ldl -lz -lpthread $the_libs"
        the_rpath="-rpath /subsys/curl/lib $the_rpath"
        the_wl_rpath="-Wl,--rpath -Wl,/subsys/curl/lib $the_wl_rpath"
      fi
      if test "${MUST_BUILD_LIBWWW_CLIENT}" = "yes"; then
        the_libs="-L /usr/link/w3c-libwww -lwwwxml -lxmltok -lxmlparse -lwwwzip -lwwwinit -lwwwapp -lwwwhtml -lwwwtelnet -lwwwnews -lwwwhttp -lwwwmime -lwwwgopher -lwwwftp -lwwwfile -lwwwdir -lwwwcache -lwwwstream -lwwwmux -lwwwtrans -lwwwcore -lwwwutils -lmd5 -ldl -lz -L /subsys/openssl/link -lssl -lcrypto $the_libs"
        the_rpath=" $the_rpath"
        the_wl_rpath=" $the_wl_rpath"
      fi
      if test "${needCpp}" = "yes"; then
        the_libs="-lxmlrpc_client++ $the_libs"
        fi
      ;;
    --version)
      echo "1.03.11"
      exit 0
      ;;
    --modules)
      echo "unicode c++ abyss-server libwww-client curl-client "
      exit 0
      ;;
    --features)
      echo "unicode c++ abyss-server libwww-client curl-client "
      exit 0
      ;;
    --cflags)
      echo "-I${prefix}/include"
      exit 0
      ;;
    --libs)
      echo "$the_libdirs $the_libs $the_wl_rpath"
      exit 0
      ;;
    --ldadd)
      echo "$the_libdirs $the_libs"
      exit 0
      ;;
    --ldflags)
      echo "$the_rpath"
      exit 0
      ;;
    --prefix)
      echo "/home/bryanh/rpcinst"
      exit 0
      ;;
    --exec-prefix)
      echo "${prefix}"
      exit 0
      ;;
    --*dir)
      # Swiped from gnome-config.
      dirname=\$`echo $1 | sed -e 's,^--,,'`
      dirname=`eval echo $dirname`
      test -z "$dirname" && exit 1
      echo $dirname
      exit 0
      ;;
    --help)
      echo "${usage}" 1>&2
      exit 0
      ;;
    *)
      echo "${usage}" 1>&2
      exit 1
      ;;
  esac
  shift
done

echo "${usage}" 1>&2
exit 1
