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.

rheolef-6.7                                        rheolef-6.7                               acinclude(9rheolef)