acinclude(9)
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 installa- tion. 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 LDFLAGS, respec- tively, 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 LDFLAGS, 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_fac- torInpMtx 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 LDFLAGS, respectively, If not, set the shell variable to "no". Includes and libraries options are given shell variable $rheo_ldadd_taucs and $rheo_includes_taucs. These shell variables could be set for instance by appropriates "--with-taucs-ldadd="'rheo_ldadd_taucs' and "--with- taucs-includes="'rheo_includes_taucs' options. RHEO_CHECK_BOOST 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, If not, set the shell variable to "no". Includes options are given in the shell variable $rheo_includes_boost. These shell variables could be set for instance by appropriates "--with-boost-includes="'rheo_includes_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 LDFLAGS, respec- tively, 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 LDFLAGS, 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="'lib- dir_spooles' and "--with-spooles-includes="'incdir_spooles' 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 LDFLAGS, 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_umf- pack' 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 "-I"'dir_malloc_dbg'"/include" to CFLAGS, add 'dir_mal- loc_dbg'"/lib/libmalloc_dbg.a" to LDFLAGS. Here, 'dir_malloc_dbg' is the directory such that 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 Make- file.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_names- pace" 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 sub- mitted 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 sub- stitues 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 func- tion in the "c++" library. Nevertheless, this fonctionality is usefull to open a pipe stream class, as "pstream(3)". 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_wierdgettimeof- day" and define HAVE_WIERDGETTIMEOFDAY accordingly. RHEO_CHECK_BSDGETTIMEOFDAY For BSD systems, check whether the "BSDgettimeofday(timeval*, time- zone*)" function exists and set the corresponding shell value "rheo_have_bsdgettimeofday" and define HAVE_BSDGETTIMEOFDAY accord- ingly. RHEO_CHECK_AMICCLK Check whether the clock "amicclk()" function exists and set the corre- sponding shell value "rheo_have_amicclk" and define HAVE_AMICCLK accordingly. RHEO_CHECK_TEMPLATE_FULL_SPECIALIZATION Check whether the template specialization syntax "template<>" is sup- ported 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_tem- plate_full_specialization" to "yes" and defines HAVE_TEMPLATE_FULL_SPE- CIALIZATION. 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 corre- sponding 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_KAI Check wheter we are using KAI C++ compiler. If so, set the shell vari- able "ac_cv_prog_kcc" to "yes". 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_CRAY Check wheter we are using CRAY C++ compiler. If so, set the shell variable "ac_cv_prog_cray_cc" to "yes" and defines HAVE_CRAY_CXX. If not, set the shell variable no "no". The shell variable is also exported for sub-shells. RHEO_PROG_CC_DEC Check wheter we are using DEC C++ compiler. If so, set the shell vari- able "ac_cv_prog_dec_cc" to "yes". If not, set the shell variable no "no". The shell variable is also exported for sub-shells, such as ltconfig from libtool. RHEO_RECOGNIZE_CXX Check wheter we are able to recognize the C++ compiler. Tested compil- ers: The KAI C++ compiler that defines: __KCC (KCC-3.2b) The GNU C++ compiler that defines: __GNUC__ (egcs-1.1.1) The CRAY C++ compiler that defines: cray The DEC C++ compiler that defines: __DECCXX 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 cl) AC_PROG_CXX(c++ g++ cxx KCC CC CC cc++ xlC aCC) RHEO_RECOGNIZE_CXX 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 correspond- ing shell value "rheo_have_latex_hyperref" and HAVE_LATEX_HYPEREF (for Makefiles) accordingly.