#!/bin/sh
#
# This file is part of Rheolef.
#
# Copyright (C) 2000-2009 Pierre Saramito 
#
# Rheolef is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# Rheolef is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Rheolef; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
# --------------------------------------------------------------------------

#Prog:rheolef-config
#NAME: @code{rheolef-config} -- get installation directories
#@pindex rheolef-config
#@cindex installing
#@cindex configure
#@cindex Makefile
#EXAMPLE: 
#@noindent
#  The following command returns the rheolef libraries directory:
#@example
#	rheolef-config --libdir
#@end example
#@noindent
#  An environment sanity check writes:
#@example
#	rheolef-config --check
#@end example
#DESCRIPTION:       
#  @noindent
#  This command is usefull when linking executables with rheolef:
#  libraries locations are required by the link editor.
#  Such directories are defined while configuring rheolef,
#  before to compile and install @pxref{Installing}.
#  The @code{rheolef-config} command returns
#  these settings.
#
#  @noindent
#  Note that @code{rheolef-config} could be used in Makefiles
#  for the determination of linker flags.
#
#@toindex hpux, operating system
#  @noindent
#  Another usefull feature is the @code{--check} option.
#  When @code{rheolef} is installed in a user directory,
#  i.e. not as root, the sane run-time environment depends
#  upon two environment variables. The first one is the
#  PATH: @code{bkindir} directory may be present in PATH.
#  The second environment variable is related to shared
#  libraries, and its name is system-dependent, e.g.
#  LD_LIBRARY_PATH on most platforms and SHLIB_PATH on HP-UX.
#  Its content may contains @code{bindir}.
#@example
#	rheolef-config --shlibpath-var
#@end example
#@cindex environment sanity check writes
#  @noindent
#  Since it is a common mistake to have incorrect values
#  for these variable, for novice users or for adanced ones,
#  especialy when dealing with several
#  installed versions, the environment sanity check writes:
#@example
#	rheolef-config --check
#@end example
#  @noindent
#  If there is mistakes, a hint is suggested to fix it
#  and the return status is 1. Instead, the return status is 0.
#FILE OPTIONS:
#@table @code
#@item --version
#	rheolef version.
#@item --help
#	print option summary and exit.
#@item --prefix
#	install architecture-independent files location.
#@item --exec-prefix
#  	architecture-dependent files location.
#@item --includedir
#  	include header directory.
#@item --bindir
#  	executables directory.
#@item --mandir
#  	man documentation directory.
#@item --libdir
#  	object code libraries directory.
#@item --datadir
#@itemx --datarootdir
#  	read-only architecture-independent data location.
#@item --pkgdatadir
#  	read-only architecture-independent data location; specific for package.
#@item --includes
#  	include compiler flags.
#@item --libs
#  	library compiler flags.
#@item --shlibpath-var
#  	the shared library path variable.
#@item --library-interface-version
#  	the library interface version.
#@item --hardcode-libdir-flag-spec
#       flag to hardcode a libdir into a binary during linking.
#@item --is-distributed
#       true or false: whether it is the distributed version.
#@item --float
#       returns the rheolef Float type. Float is @code{double}
#       by defaut. It could also be an extended arithmetic precision type
#       as @code{dd_real} (quadruple precisio or @code{qd_real} (octuple precision),
#	depending on the configure option at compile time.
#@item --have-old-code
#@itemx --have-new-code
#       true or false: whether it is the new/old code branch that is installed.
#@end table
#
#DATE:
#    20 january 2000
#END:

version=6.6
prefix=/usr
exec_prefix=/usr
bindir=${exec_prefix}/bin
libdir=${exec_prefix}/lib
pkglibdir=${exec_prefix}/lib/rheolef
datadir=${prefix}/share
datarootdir=${prefix}/share
mandir=/usr/share/man
includedir=${prefix}/include
docdir=/usr/share/doc/rheolef-doc
exampledir=$docdir/examples
includes="-Wdate-time -D_FORTIFY_SOURCE=2   -fstack-protector-strong -Wformat -Werror=format-security -std=c++11 -Wall -Werror -Wno-unused -Wno-strict-aliasing -Wno-literal-suffix -Wno-deprecated-declarations -O3 @INCLUDES_FLOAT@ -I/usr/lib/openmpi/include  -I${prefix}/include -I${exec_prefix}/lib"
libs="-L${exec_prefix}/lib -lrheolef -lCGAL -lgmp   -lumfpack -lamd  -lamd   -lptscotchparmetis -lptscotch -lptscotcherrexit -lz    -lboost_mpi -lboost_serialization -L/usr/lib/openmpi/lib -lmpi_cxx -lmpi  -Wl,-Bsymbolic-functions -Wl,-z,relro -O3  -O3 -fstack-protector-strong -Wformat -Werror=format-security  -Wl,-rpath -Wl,/usr/lib"
ldadd="${exec_prefix}/lib/librheolef.la -lCGAL -lgmp   -lumfpack -lamd  -lamd   -lptscotchparmetis -lptscotch -lptscotcherrexit -lz    -lboost_mpi -lboost_serialization -L/usr/lib/openmpi/lib -lmpi_cxx -lmpi  -Wl,-Bsymbolic-functions -Wl,-z,relro -O3  -O3 -fstack-protector-strong -Wformat -Werror=format-security  -Wl,-rpath -Wl,/usr/lib"
library_interface_version=6.6
shlibpath_var="LD_LIBRARY_PATH"
hardcode_libdir_flag_spec="-Wl,-rpath -Wl,/usr/lib"
use_distributed="true"
use_new_code="true"
if test x"$use_new_code" = x"true"; then
  use_old_code="false"
else
  use_old_code="true"
fi
QD_EXT=""
usage="rheolef-config
	[--version
	| --help
	| --prefix
	| --exec-prefix
	| --includedir
	| --bindir
	| --libdir
	| --docdir
	| --exampledir
	| --mandir
	| --pkglibdir
	| --datadir
	| --datarootdir
	| --pkgdatadir
	| --includes
	| --libs
	| --ldadd
	| --shlibpath-var
	| --library-interface-version
	| --hardcode-libdir-flag-spec
	| --is-distributed
	| --float
	| --have-new-code
	| --have-old-code
	| --check]
"

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

while test $# -ne 0; do
  case $1 in
  --version) echo ${version};;
  --help) echo ${usage} >&2; exit 0;;
  --prefix) echo ${prefix};;
  --exec-prefix) echo ${exec_prefix};;
  --libdir) echo ${libdir};;
  --pkglibdir) echo ${pkglibdir};;
  --bindir) echo ${bindir};;
  --docdir) echo ${docdir};;
  --exampledir) echo ${exampledir};;
  --mandir) echo ${mandir};;
  --datadir) echo ${datarootdir};;
  --datarootdir) echo ${datarootdir};;
  --pkgdatadir) echo ${datarootdir}/rheolef;;
  --includedir) echo ${includedir};;
  --includes) echo ${includes};;
  --libs) echo ${libs};;
  --ldadd) echo ${ldadd};;
  --shlibpath-var) echo ${shlibpath_var};;
  --library-interface-version) echo ${library_interface_version};;
  --hardcode-libdir-flag-spec) echo ${hardcode_libdir_flag_spec};;
  --is-distributed) echo ${use_distributed};;
  --float)
	case x"$QD_EXT" in
  	x)    float="double";;
  	x.dd) float="dd_real";;
  	x.qd) float="qd_real";;
  	x.float128) float="float128";;
  	*) float="undefined";;
	esac
        echo ${float};;
  --have-new-code) echo ${use_new_code};;
  --have-old-code) echo ${use_old_code};;
  --check) /bin/sh ${datadir}/rheolef/check-shlibpath_var.sh \
  		${shlibpath_var} ${libdir} ${bindir};;
  *) echo ${usage} >&2; exit 1;;
  esac
  shift
done

