#!/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
#
# --------------------------------------------------------------------------
# author: Pierre.Saramito@imag.fr
# date: 20 january 2000

##
#@commandfile rheolef-config get installation directories
#@addindex command `rheolef-config`
#@addindex installing
#@addindex configure
#@addindex Makefile
#@addindex environment sanity check writes
#
#Example
#=======
#The following command returns the Rheolef libraries directory:
#
#      rheolef-config --libdir
#
#An environment sanity check writes:
#
#      rheolef-config --check
#
#Description
#===========
#This command is useful 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.
#The `rheolef-config` command returns
#these settings.
#
#Note that `rheolef-config` could be used in Makefiles
#for the determination of linker flags.
#
#Another useful feature is the `--check` option.
#When 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: `bindir` 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 `bindir`.
#
#      rheolef-config --shlibpath-var
#
#Since it is a common mistake to have incorrect values
#for these variable, for novice users or for adanced ones,
#especially when dealing with several
#installed versions, the environment sanity check writes:
#
#      rheolef-config --check
#
#If there is mistakes, a hint is suggested to fix it
#and the return status is 1. Instead, the return status is 0.
#
#Options
#=======
#`--version`
#>	Rheolef version.
#`--help`
#>	print option summary and exit.
#`--prefix`
#>	install architecture-independent files location.
#`--exec-prefix`
#>  	architecture-dependent files location.
#`--includedir`
#>  	include header directory.
#`--bindir`
#>  	executables directory.
#`--mandir`
#>  	man documentation directory.
#`--libdir`
#>  	object code libraries directory.
#`--datadir`  \n
#`--datarootdir`
#>  	read-only architecture-independent data location.
#`--pkgdatadir`
#>  	read-only architecture-independent data location; specific for package.
#`--cxx`
#>  	compiler invocation (e.g. g++ or clang++).
#`--includes`
#>  	include compiler flags.
#`--libs`
#>  	library compiler flags.
#`--shlibpath-var`
#>  	the shared library path variable.
#`--library-interface-version`
#>  	the library interface version.
#`--hardcode-libdir-flag-spec`
#>      flag to hardcode a libdir into a binary during linking.
#`--is-distributed`
#>      true or false: whether it is the distributed version.
#`--float`
#>      returns the rheolef Float type. Float is `double`
#>      by default. It could also be an extended arithmetic precision type
#>      as `dd_real` (quadruple precision or `qd_real` (octuple precision),
#>	depending on the configure option at compile time.
#`--have-old-code` \n
#`--have-new-code`
#>      true or false: whether it is the new/old code branch that is installed.

version=7.2
prefix=/usr
exec_prefix=/usr
bindir=${exec_prefix}/bin
libdir=${prefix}/lib/arm-linux-gnueabihf
pkglibdir=${prefix}/lib/arm-linux-gnueabihf/rheolef
datadir=${prefix}/share
datarootdir=${prefix}/share
mandir=${prefix}/share/man
includedir=${prefix}/include
docdir=/usr/share/doc/rheolef-doc
exampledir=$docdir/examples
incsubst="   -I/usr/include/suitesparse -I/usr/include/suitesparse    -I/usr/include/eigen3      "
libsubst="-lgmp -lumfpack -lamd -lcholmod -lccolamd -lcolamd -lcamd -lamd -lsuitesparseconfig -lamd         "
cxx="g++"
includes="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/eigen3 -g  -ffile-prefix-map=/build/reproducible-path/rheolef-7.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -std=c++17 -fpermissive -Wno-unused -Wno-strict-aliasing -Wno-deprecated-declarations -Wno-narrowing -O2 ${incsubst} -I${prefix}/include -I${prefix}/lib/arm-linux-gnueabihf"
libs="-L${prefix}/lib/arm-linux-gnueabihf -lrheolef    ${libsubst} -Wl,-z,relro -Wl,-z,now -g -O2 -ffile-prefix-map=/build/reproducible-path/rheolef-7.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wl,--as-needed  -Wl,-rpath -Wl,/lib/arm-linux-gnueabihf"
ldadd="${prefix}/lib/arm-linux-gnueabihf/librheolef.la ${libsubst} -Wl,-z,relro -Wl,-z,now -g -O2 -ffile-prefix-map=/build/reproducible-path/rheolef-7.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wl,--as-needed  -Wl,-rpath -Wl,/lib/arm-linux-gnueabihf"
NEW_INCLUDES_RHEOLEF=
NEW_LIBS_RHEOLEF=
library_interface_version=7.2
shlibpath_var="LD_LIBRARY_PATH"
hardcode_libdir_flag_spec="-Wl,-rpath -Wl,/lib/arm-linux-gnueabihf"
use_distributed="false"
use_new_code="true"
use_old_code="false"
QD_EXT=""
usage="rheolef-config
	[--version
	| --help
	| --prefix
	| --exec-prefix
	| --includedir
	| --bindir
	| --libdir
	| --docdir
	| --exampledir
	| --mandir
	| --pkglibdir
	| --datadir
	| --datarootdir
	| --pkgdatadir
	| --cxx
	| --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};;
  --cxx) echo ${cxx};;
  --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

