Provided by: librheolef-dev_6.7-6_amd64 bug

NAME

       acinclude -- autoconf macros

DESCRIPTION

       These macros test for particular system featutres that rheolef uses. These tests print the
       messages telling the user which feature they are looking for  and  what  they  find.  They
       cache  their  results  for  future  configure  runs.   Some of these macros set some shell
       variable, defines some output variables for the `config.h' header,  or  performs  Makefile
       macros subsitutions.  See autoconf documentation for how to use such variables.

SYNOPSIS

       Follows a list of particular check required for a successfull installation.

       RHEO_CHECK_GINAC

       Check  to  see  if GiNaC library exists.  If so, set the shell variable rheo_have_ginac to
       "yes", defines HAVE_GINAC and substitues  INCLUDES_GINAC  and  LADD_GINAC  for  adding  in
       CFLAGS and LIBS, respectively, If not, set the shell variable rheo_have_ginac to "no".

       RHEO_CHECK_CLN

       Check  to  see  if  library  -lcln exists.  If so, set the shell variable rheo_have_cln to
       "yes", defines HAVE_CLN and substitues INCLUDES_CLN and LADD_CLN for adding in CFLAGS  and
       LIBS,  respectively,  If not, set the shell variable no "no".  Includes and libraries path
       are searched from a given shell variable rheo_dir_cln.  This shell variable could  be  set
       for  instance  by  an  appropriate  --with-cln=value_dir_cln option.  The default value is
       /usr/local/math.

       RHEO_CHECK_SPOOLES_2_0

       Check to see if spooles library has old version 2.0  since  FrontMtx_factorInpMtx  profile
       has  changed  in  version  2.2.  If so, defines HAVE_SPOOLES_2_0.  This macro is called by
       RHEO_CHECK_SPOOLES.

       RHEO_CHECK_TAUCS

       Check to see if taucs  library  and  headers  exists.   If  so,  set  the  shell  variable
       "rheo_have_taucs"   to   "yes",  defines  HAVE_TAUCS  and  substitues  INCLUDES_TAUCS  and
       LADD_TAUCS for adding in CXXFLAGS and LIBS, respectively, If not, set the  shell  variable
       to  "no".   Includes  and libraries options are given shell variable $rheo_ldadd_taucs and
       $rheo_incdir_taucs.  These shell variables could  be  set  for  instance  by  appropriates
       "--with-taucs-ldadd="'rheo_ldadd_taucs'   and  "--with-taucs-includes="'rheo_incdir_taucs'
       options.

       RHEO_CHECK_BOOST_UBLAS

       Check to see if boost headers exists.  If so, set the shell variable "rheo_have_boost"  to
       "yes",  defines  HAVE_BOOST  and  substitues  INCLUDES_BOOST  for  adding in CXXFLAGS, and
       LDADD_BOOST for adding in LIBS.  If not, set the shell variable to "no".  Includes options
       are  given  in the shell variables $rheo_incdir_boost and $rheo_libdir_boost.  These shell
       variables    could    be    set    for    instance    by    appropriates    "--with-boost-
       includes="'rheo_incdir_boost' and "--with-boost-libdir="'rheo_libdir_boost' options.

       RHEO_CHECK_ZLIB

       Check  to  see  if  zlib  library  and  headers  exists.   If  so,  set the shell variable
       "rheo_have_zlib" to "yes", defines HAVE_ZLIB and substitues  INCLUDES_ZLIB  and  LADD_ZLIB
       for  adding  in  CXXFLAGS  and LIBS, respectively, If not, set the shell variable to "no".
       Includes and libraries path are searched from given shell variable $rheo_dir_zlib/lib  and
       $rheo_incdir_zlib.   Default value for $rheo_incdir_zlib is $rheo_dir_zlib/include.  These
       shell variables could be set for instance  by  appropriates  "--with-zlib="'dir_zlib'  and
       "--with-zlib-includes="'incdir_zlib' options.

       RHEO_CHECK_SPOOLES

       Check  to  see  if  spooles  library  and  headers  exists.  If so, set the shell variable
       "rheo_have_spooles" to "yes", defines HAVE_SPOOLES  and  substitues  INCLUDES_SPOOLES  and
       LADD_SPOOLES for adding in CXXFLAGS and LIBS, respectively, If not, set the shell variable
       to  "no".   Includes  and  libraries  path  are  searched  from   given   shell   variable
       "rheo_libdir_spooles"  and  "rheo_incdir_spooles".  These shell variables could be set for
       instance   by   appropriates   "--with-spooles="'libdir_spooles'   and    "--with-spooles-
       includes="'incdir_spooles' options.

       RHEO_CHECK_CHOLMOD

       Check  to  see  if  cholmod  library  and  headers  exists.  If so, set the shell variable
       "rheo_have_cholmod" to "yes", defines HAVE_CHOLMOD  and  substitues  INCLUDES_CHOLMOD  and
       LADD_CHOLMOD for adding in CXXFLAGS and LIBS, respectively, If not, set the shell variable
       to  "no".   Includes  and  libraries  path  are  searched  from   given   shell   variable
       "rheo_libdir_cholmod"  and  "rheo_incdir_cholmod".  These shell variables could be set for
       instance   by   appropriates   "--with-cholmod="'libdir_cholmod'   and    "--with-cholmod-
       includes="'incdir_cholmod' options.

       RHEO_CHECK_UMFPACK

       Check  to  see  if  umfpack  library  and  headers  exists.  If so, set the shell variable
       "rheo_have_umfpack" to "yes", defines HAVE_UMFPACK  and  substitues  INCLUDES_UMFPACK  and
       LADD_UMFPACK for adding in CXXFLAGS and LIBS, respectively, If not, set the shell variable
       to  "no".   Includes  and  libraries  path  are  searched  from   given   shell   variable
       "rheo_libdir_umfpack"  and  "rheo_incdir_umfpack".  These shell variables could be set for
       instance   by   appropriates   "--with-umfpack="'libdir_umfpack'   and    "--with-umfpack-
       includes="'incdir_umfpack' options.

       RHEO_CHECK_MALLOC_DBG

       Check  to see if malloc debug library -lmalloc_dbg and corresponding header <malloc_dbg.h>
       exists.   If  so,  set  the  shell  variable  rheo_have_malloc_dbg   to   "yes",   defines
       HAVE_MALLOC_DBG,       add       -Idir_malloc_dbg/include       to       CFLAGS,       add
       dir_malloc_dbg/lib/libmalloc_dbg.a to LIBS.  Here, dir_malloc_dbg is  the  directory  such
       that  dir_malloc_dbg/bin  appears  in  PATH  and the command dir_malloc_dbg/bin/malloc_dbg
       exists.  If not, set the variable to "no".  Set also LIBS_MALLOC_DBG to these flags.

       RHEO_CHECK_DMALLOC

       Check  whether  the  dmalloc  package  exists  and  set  the  corresponding  shell   value
       "rheo_have_dmalloc"  and  HAVE_DMALLOC  (in  Makefile.am and config.h) accordingly, create
       LDADD_DMALLOC and LDADD_DMALLOCXX Makefile.am variables.

       RHEO_CHECK_NAMESPACE

       Check whether the namespace feature is supported by the C++ compiler.  value. So,  try  to
       compile the following code:

                  namespace computers {
                     struct keyboard { int getkey() const { return 0; } };
                  }
                  namespace music {
                     struct keyboard { void playNote(int note); };
                  }
                  namespace music {
                     void keyboard::playNote(int note) { }
                  }
                  using namespace computers;
             int main() {
                keyboard x;
                int z = x.getkey();
                music::keyboard y;
                y.playNote(z);
                return 0;
             }

       If  it  compile,  set  the corresponding shell variable "rheo_have_namespace" to "yes" and
       defines HAVE_NAMESPACE.  If not, set the variable no "no".

       RHEO_CHECK_STD_NAMESPACE

       Some compilers (e.g.  GNU  C++  2.7.2)  does  not  support  the  full  namespace  feature.
       Nevertheless,  they support the "std:" namespace for the C++ library.  is supported by the
       C++ compiler. The following code is submitted to the compiler:

                #include<vector.h>
                extern "C" void exit(int);
                int main() {
                    std::vector<int> x(3);
                         return 0;
                }

       If it compile, set the corresponding shell variable "rheo_have_std_namespace" to "yes" and
       defines HAVE_STD_NAMESPACE.  If not, set the variable no "no".

       RHEO_PROG_GNU_MAKE

       Find  command make and check whether make is GNU make.  If so, set the corresponding shell
       variable "rheo_prog_gnu_make" to "yes" and substitues no_print_directory_option to  "--no-
       print-directory".  If not, set the shell variable no "no".

       RHEO_CHECK_ISTREAM_RDBUF

       RHEO_CHECK_IOS_BP

       Check  to  see if "iostream::rdbuf(void*)" function exists, that set the "ios" buffer of a
       stream. Despite this function is standard, numerous compilers  does  not  furnish  it.   a
       common  implementation  is to set directly the buffer variable. For instance, the CRAY C++
       compiler implements this variable  as  "ios::bp".   These  two  functions  set  the  shell
       variables  "rheo_have_istream_rdbuf"  and "rheo_have_ios_bp" and define HAVE_ISTREAM_RDBUF
       and HAVE_IOS_BP respectively.

       RHEO_CHECK_IOS_SETSTATE

       Check to see if "ios::setstate(long)" function exists, that set the "ios"  state  variable
       of a stream. Despite this function is standard, numerous compilers does not furnish it.  a
       common implementation is to set directly the buffer variable. For instance, the  CRAY  C++
       compiler   does   not   implements   it.    This   function   set   the   shell  variables
       "rheo_have_ios_setstate" and define HAVE_IOS_SETSTATE.

       RHEO_CHECK_FILEBUF_INT

       RHEO_CHECK_FILEBUF_FILE

       RHEO_CHECK_FILEBUF_FILE_MODE

       Check  wheter  "filebuf::filebuf(int  fileno)",  "filebuf::filebuf(FILE*  fd)"  exist,  or
       "filebuf::filebuf(FILE*   fd,   ios::openmode)"  exist,  respectively.   If  so,  set  the
       corresponding shell variable "rheo_have_filebuf_int" (resp.  "rheo_have_filebuf_file")  to
       "yes"  and  defines HAVE_FILEBUF_INT, (resp. HAVE_FILEBUF_FILE).  If not, set the variable
       no "no".  Notes that there is no standardisation of this function in  the  "c++"  library.
       Nevertheless, this fonctionality is usefull to open a pipe stream class, as "pstream(3)".

       RHEO_CXX_CLOCK_GETTIME

       Tries to determine whether clock_gettime is useable.

       RHEO_CHECK_GETTIMEOFDAY

       Check  whether  the  "gettimeofday(timeval*,  timezone*)"  function  exists  and  set  the
       corresponding  shell   value   "rheo_have_gettimeofday"   and   define   HAVE_GETTIMEOFDAY
       accordingly.

       RHEO_CHECK_WIERDGETTIMEOFDAY

       This  is  for  Solaris, where they decided to change the CALLING SEQUENCE OF gettimeofday!
       Check whether the "gettimeofday(timeval*)" function exists and set the corresponding shell
       value "rheo_have_wierdgettimeofday" and define HAVE_WIERDGETTIMEOFDAY accordingly.

       RHEO_CHECK_BSDGETTIMEOFDAY

       For  BSD systems, check whether the "BSDgettimeofday(timeval*, timezone*)" function exists
       and  set  the   corresponding   shell   value   "rheo_have_bsdgettimeofday"   and   define
       HAVE_BSDGETTIMEOFDAY accordingly.

       RHEO_CHECK_AMICCLK

       Check  whether the clock "amicclk()" function exists and set the corresponding shell value
       "rheo_have_amicclk" and define HAVE_AMICCLK accordingly.

       RHEO_CHECK_TEMPLATE_FULL_SPECIALIZATION

       Check whether the template specialization syntax "template<>" is supported by the compiler
       value. So, try to compile, run and check the return value for the following code:

             template<class T> struct toto {
                 int tutu() const { return 1; }
             };
             template<> struct toto<float> {
                 int tutu() const { return 0; }
             };
             main() {
              toto<float> x;
              return x.tutu();
             }

       If  so,  set  the corresponding shell variable "rheo_have_template_full_specialization" to
       "yes" and defines HAVE_TEMPLATE_FULL_SPECIALIZATION.  If not, set the variable no "no".

       RHEO_CHECK_ISNAN_DOUBLE

       RHEO_CHECK_ISINF_DOUBLE

       RHEO_CHECK_FINITE_DOUBLE

       RHEO_CHECK_INFINITY

       RHEO_CHECK_ABS_DOUBLE

       RHEO_CHECK_SQR_DOUBLE

       Check whether the funtions

                   bool isnan(double);
                   bool isinf(double);
                   bool finite(double);
                   double infinity();
                   double abs();
                   double sqr();

       are supported by the compiler, respectively.  If so, set the corresponding shell  variable
       "rheo_have_xxx" to "yes" and defines HAVE_XXX.  If not, set the variable no "no".

       RHEO_CHECK_FLEX

       Check  to  see  if  the  "flex"  command  and  the  corresponding header "FlexLexer.h" are
       available.  If so, set the shell variable "rheo_have_flex" to "yes" and substitues FLEX to
       "flex"  and FLEXLEXER_H to the full path for FlexLexer.h If not, set the shell variable no
       "no".

       RHEO_PROG_CC_INTEL

       Check  wheter  we  are  using  INTEL  C++  compiler.   If  so,  set  the  shell   variable
       "ac_cv_prog_icc"  to  "yes"  and define HAVE_INTEL_CXX.  If not, set the shell variable no
       "no".  The shell variable is also exported for sub-shells, such as ltconfig from libtool.

       RHEO_PROG_CC_CLANG

       Check  wheter  we  are  using  CLANG  C++  compiler.   If  so,  set  the  shell   variable
       "ac_cv_prog_clang"  to  "yes" and define HAVE_INTEL_CLANG.  If not, set the shell variable
       no "no".  The shell variable is also  exported  for  sub-shells,  such  as  ltconfig  from
       libtool.

       RHEO_CLANG_LINK_LIBSTDCXX

       Check  wheter  CLANG  C++  compiler  links  correctly with std c++ lib.  If not, exit with
       error.   This   is   still   a   bug   in   debian/testing   (stretch)   in   june   2016.
       https://llvm.org/bugs/show_bug.cgi?id=24844

       RHEO_RECOGNIZE_CXX

       Check wheter we are able to recognize the C++ compiler.  Tested compilers:

                The GNU   C++ compiler that defines: __GNUC__  (egcs-1.1.1)
                The INTEL C++ compiler that defines: __ICC     (ICPC-12)

       If   so,   substitue   RECOGNIZED_CXX   to   a   specific   compiler's   rule  file,  e.g,
       {}"$top_srcdir/config/gnu_cxx.mk", for a subsequent Makefile include.  If  not,  substitue
       to  "/dev/null".   Substitutes also EXTRA_LDFLAGS.  Raw cc is the C compiler associated to
       the C++ one. By this way C and C++ files are handled with a .c  suffix.  Special  C  files
       that requiere the cc compiler, such as "alloca.c" use some specific makefile rule.

        usage example:

           AC_PROG_CC(gcc cc icc cl)
           AC_PROG_CXX(c++ g++ cxx icpc KCC CC CC cc++ xlC aCC)
           RHEO_RECOGNIZE_CXX

       RHEO_GXX2011_PRE

       Check  for  the  "-std=c++0x"  support  for g++.  Requires a recent version of the GNU C++
       compiler (>= 4.5).

       RHEO_GXX2011

       Check for the "-std=c++11" support for g++.  Requires a recent  version  of  the  GNU  C++
       compiler (>= 4.7).

       RHEO_OPTIMIZE_CXX

       Set some optimization flags associated to the recognized C++ compiler and platform.

       RHEO_CHECK_LATEX_HYPEREF

       Check  whether  the  hyperref  LaTeX  package exists and set the corresponding shell value
       "rheo_have_latex_hyperref" and HAVE_LATEX_HYPEREF (for Makefiles) accordingly.

       RHEO_CHECK_MPI

       Check for the "mpirun" command, the corresponding header "mpi.h" and library  "-lmpi"  are
       available.   If so, set the shell variable "rheo_have_mpi" to "yes", and substitues MPIRUN
       to "mpirun" and RUN to "mpirun -np 2", INCLUDES_MPI and LDADD_MPI.  If not, set the  shell
       variable no "no".

       RHEO_CHECK_METIS

       Check  for  the  "cgal" computational geometry library.  Defines HAVE_METIS and substitues
       INCLUDES_METIS and LDADD_METIS.

       RHEO_CHECK_PARMETIS

       Check   for   the   "parmetis"   libraries.    Defines   HAVE_PARMETIS   and    substitues
       INCLUDES_PARMETIS and LDADD_PARMETIS.  Requires the MPI library.

       RHEO_CHECK_SCOTCH

       Check  for  the  "scotch" distributed mesh partitioner libraries.  Defines HAVE_SCOTCH and
       substitues INCLUDES_SCOTCH and LDADD_SCOTCH.  Requires the MPI library.

       RHEO_CHECK_BOOST

       Check for  the  "boost"  library.   Defines  HAVE_BOOST  and  substitues  LDADD_BOOST  and
       INCLUDES_BOOST.

       RHEO_CHECK_BLAS

       Check  for  the  "blas"  basic  linear algebra subroutines library.  Defines HAVE_BLAS and
       substitues LDADD_BLAS and INCLUDES_BLAS.

       RHEO_CHECK_SCALAPACK

       Check  for  the  "scalapack"  basic   linear   algebra   subroutines   library.    Defines
       HAVE_SCALAPACK and substitues LDADD_SCALAPACK and INCLUDES_SCALAPACK.

       RHEO_CHECK_TRILINOS

       Check  for the "trilinos" distributed preconditioner libraries.  Defines HAVE_TRILINOS and
       substitues INCLUDES_TRILINOS and LDADD_TRILINOS.  Requires the MPI and SCOTCH libraries.

       RHEO_CHECK_PASTIX

       Check for the "pastix" sequential or distributed direct solver libraries, depending on the
       "rheo_use_distributed" shell variable.  Defines HAVE_PASTIX and substitues INCLUDES_PASTIX
       and LDADD_PASTIX.

       RHEO_CHECK_MUMPS

       Check for the  "mumps"  distributed  direct  solver  libraries.   Defines  HAVE_MUMPS  and
       substitues INCLUDES_MUMPS and LDADD_MUMPS.  Requires the MPI and SCOTCH libraries.

       RHEO_CHECK_MUMPS_WITH_PTSCOTCH_SUPPORT

       Check    whether   "mumps"   is   configured   with   the   "ptscotch"   support   Defines
       HAVE_MUMPS_WITH_PTSCOTCH and the shell variable rheo_have_mumps_with_ptscotch.

       RHEO_CHECK_MUMPS_WITH_SCOTCH_SUPPORT

       Check   whether   "mumps"   is   configured   with   the    "scotch"    support    Defines
       HAVE_MUMPS_WITH_SCOTCH and the shell variable rheo_have_mumps_with_scotch.

       RHEO_CHECK_MUMPS_WITH_PARMETIS_SUPPORT

       Check    whether   "mumps"   is   configured   with   the   "parmetis"   support   Defines
       HAVE_MUMPS_WITH_PARMETIS and the shell variable rheo_have_mumps_with_parmetis.

       RHEO_CHECK_MUMPS_WITH_METIS_SUPPORT

       Check whether "mumps" is configured with the "metis" support Defines HAVE_MUMPS_WITH_METIS
       and the shell variable rheo_have_mumps_with_metis.

       RHEO_CHECK_STD_INITIALIER_LIST

       Some  compilers  (e.g.  GNU C++ 4.4.x) does not support the std::initializer_list feature.
       Set the corresponding shell variable "rheo_have_std_initializer_list" to "yes" and defines
       HAVE_STD_INITIALIZER_LIST.  If not, set the variable no "no".

       RHEO_CHECK_GMP

       Check  for  the  "gmp"  gnu  multi-precision  library.   Defines  HAVE_GMP  and substitues
       INCLUDES_GMP and LDADD_GMP.

       RHEO_CHECK_MPFR

       Check for the "mpfr"  gnu  multi-precision  library.   Defines  HAVE_MPFR  and  substitues
       INCLUDES_MPFR and LDADD_MPFR.

       RHEO_CHECK_CGAL

       Check  for  the  "cgal"  computational geometry library.  Defines HAVE_CGAL and substitues
       INCLUDES_CGAL and LDADD_CGAL.

       RHEO_DEBIAN_FIX_LIBTOOL

       Fix rpath libtool issue for debian packaging.  See also http://wiki.debian.org/RpathIssue

       RHEO_CHECK_QD

       Check for the  "qd"  for  double-double  and  quad-quad  arithmetic  Defines  HAVE_QD  and
       substitues INCLUDES_QD and LDADD_QD.

       RHEO_CHECK_FLOAT128

       Check  for  the  "float128"  arithmetic  (boost multiprecision and GNU quadmath).  Defines
       HAVE_FLOAT128 and substitues INCLUDES_FLOAT128 and LDADD_FLOAT128.