#!/bin/sh
#
# Copyright (c) 2000 - 2008 Kungliga Tekniska Högskolan
# (Royal Institute of Technology, Stockholm, Sweden). 
# All rights reserved. 
#
# Redistribution and use in source and binary forms, with or without 
# modification, are permitted provided that the following conditions 
# are met: 
#
# 1. Redistributions of source code must retain the above copyright 
#    notice, this list of conditions and the following disclaimer. 
#
# 2. Redistributions in binary form must reproduce the above copyright 
#    notice, this list of conditions and the following disclaimer in the 
#    documentation and/or other materials provided with the distribution. 
#
# 3. Neither the name of the Institute nor the names of its contributors 
#    may be used to endorse or promote products derived from this software 
#    without specific prior written permission. 
#
# THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
# ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
# SUCH DAMAGE. 
#

do_all=no
do_libs=no
do_lib_deps=no
do_cflags=no
do_usage=no
print_prefix=no
print_exec_prefix=no
library=
lib_krb5=no
lib_gssapi=no
lib_kadm_client=no
lib_kadm_server=no
lib_kafs=no

if test $# -eq 0; then
  do_usage=yes
  usage_exit=1
fi

for i in $*; do
  case $i in
  --help)
    do_usage=yes
    usage_exit=0
    ;;
  --all)
    do_all=yes
    ;;
  --vendor)
    echo "Heimdal"
    exit 0;
    ;;
  --version)
    echo "heimdal 7.8.0"
    exit 0
    ;;
  --prefix=*)
    prefix=`echo $i | sed 's/^--prefix=//'`
    ;;
  --prefix)
    print_prefix=yes
    ;;
  --exec-prefix=*)
    exec_prefix=`echo $i | sed 's/^--exec-prefix=//'`
    ;;
  --exec-prefix)
    print_exec_prefix=yes
    ;;
  --libs)
    do_libs=yes
    ;;
  --deps)
    do_lib_deps=yes
    ;;
  --cflags)
    do_cflags=yes
    ;;
  krb5)
    library=krb5
    lib_krb5=yes
    ;;
  gssapi)
    library=gssapi
    lib_gssapi=yes
    ;;
  kadm-client)
    library=kadm-client
    lib_kadm_client=yes
    ;;
  kadm-server)
    library=kadm-server
    lib_kadm_server=yes
    ;;
  kafs)
    library=kafs
    lib_kafs=yes
    ;;
  *)
    echo "unknown option: $i"
    exit 1
    ;;
  esac
done

if test "$do_usage" = "yes"; then
    echo "usage: $0 [options] [libraries]"
    echo "options:   [--help]         show this message"
    echo "           [--all]          display version, vendor, etc."
    echo "           [--version]      display version information"
    echo "           [--prefix]       display the prefix of Kerberos"
    echo "           [--exec-prefix]  display the exec_prefix of Kerberos"
    echo "           [--cflags]       display the CFLAGS required"
    echo "           [--libs]         display the libraries required to link"
    echo "           [--deps]         display the dependent libs required"
    echo "                            for static linking"
    echo
    echo "libraries: krb5             Kerberos 5 applications"
    echo "           gssapi           GSSAPI applications"
    echo "           kadm-client      libkadm5 client"
    echo "           kadm-server      libkadm5 server"
    echo "           kafs             kafs"
    exit $usage_exit
fi

if test X"$library" = X; then
    lib_krb5=yes
fi

if test "$prefix" = ""; then
  prefix=/usr/pkg
fi
if test "$exec_prefix" = ""; then
  exec_prefix=/usr/pkg
fi

libdir=/usr/pkg/lib
includedir=/usr/pkg/include/krb5

if test "$do_all" = "yes"; then
    echo "Version:     heimdal 7.8.0"
    echo "Vendor:      Heimdal"
    echo "Prefix:      $prefix"
    echo "Exec_prefix: $exec_prefix"
    exit 0
fi

if test "$print_prefix" = "yes"; then
    echo $prefix
    exit 0
fi

if test "$print_exec_prefix" = "yes"; then
    echo $exec_prefix
    exit 0
fi

# The following rpath_flag setting code is distilled from MIT Kerberos'
# src/config/shlib.conf.  Some of this seems ancient and likely to be
# wrong in some cases, but right for all the cases we probably care
# about.  Also, this will very likely be wrong depending on how the
# caller will be doing link-edits (with what compiler-driver or
# link-editor)!  There's no fixing this.
#
# In principle this doesn't belong here: application should instead use
# krb5-config --libdir to get the directory to use for the rpath, then
# workout the rpath flags on their own.  Of course, there's no --libdir
# option...  And MIT's krb5-config does include rpath flags.
#
# Compatibility with MIT is the winning consideration for now.
rpath_flag='-R'

if test "$do_libs" = "yes"; then
    deplibs=""
    if test "$lib_gssapi" = yes; then
	lib_flags="$lib_flags -lgssapi"
	deplibs="$deplibs -lheimntlm"
	if test X"$do_lib_deps" = Xyes; then
	    lib_krb5=yes
	fi
    fi
    if test "$lib_kadm_client" = yes; then
	lib_flags="$lib_flags -lkadm5clnt"
	if test X"$do_lib_deps" = Xyes; then
	    lib_krb5=yes
	fi
    fi
    if test "$lib_kadm_server" = yes; then
	lib_flags="$lib_flags -lkadm5srv"
	deplibs="$deplibs "
	if test X"$do_lib_deps" = Xyes; then
	    lib_krb5=yes
	fi
    fi
    if test "$lib_kafs" = yes; then
	lib_flags="$lib_flags -lkafs"
	if test X"$do_lib_deps" = Xyes; then
	    lib_krb5=yes
	fi
    fi
    if test "$lib_krb5" = yes; then
	lib_flags="$lib_flags -lkrb5"
    fi
    deplibs="$deplibs -lhx509 -lcom_err"
    deplibs="$deplibs -lhcrypto -lasn1 -lwind -lheimbase -lroken"
    deplibs="$deplibs -lcrypt  "
    deplibs="$deplibs  "
    if test X"$do_lib_deps" = X"yes"; then
	lib_flags="$lib_flags $deplibs"
    fi
    if test X"$libdir" != X/usr/lib; then
	lib_flags="-L${libdir} $lib_flags"
	if test X"$rpath_flag" != X; then
	    lib_flags="${rpath_flag}${libdir} $lib_flags"
	fi
    fi

    echo ${lib_flags}
fi
if test "$do_cflags" = "yes"; then
    cflags=""
    if test X"${includedir}" != X/usr/include; then
	cflags="-I${includedir} $cflags"
    fi
    echo $cflags
fi

exit 0
