bionic (9) acinclude.9rheolef.gz

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.