/* @configure_input@ */ /* This file contains defaults for various configuration options. */ /*******************/ /* * Set this true if the system has ANSI C header files. */ #ifndef STDC_HEADERS #define STDC_HEADERS 0 #endif /* * Algae can use the GNU Readline facility if it's available. */ #ifndef HAVE_LIBREADLINE #define HAVE_LIBREADLINE 0 #endif /* * Algae's debug level can be set by the `-d' command-line option. * If the DEBUG macro is false, that level defaults to 0. If DEBUG * is true, the debug level defaults to 1 and additional debugging * code (not accessible through the debug level) is included. */ #ifndef DEBUG #define DEBUG 0 #endif /* * SuperLU can be compiled with its own debugging code, which also * produces huge amounts of output. */ #ifndef SUPERLU_DEBUG #define SUPERLU_DEBUG 0 #endif /* * Use Doug Lea's dlmalloc package, if possible. */ #ifndef USE_DLMALLOC #define USE_DLMALLOC 1 #endif /* * If set, use the dbmalloc package for memory usage debugging. */ #ifndef DMALLOC #define DMALLOC 0 #endif /* * Algae can use the sparse routines in BCSLIB, if it's available. */ #ifndef HAVE_LIBBCSEXT #define HAVE_LIBBCSEXT 0 #endif /* * Should we use the single precision BCSLIB routines (as on a Cray)? */ #ifndef SINGLE_BCSLIB #define SINGLE_BCSLIB 0 #endif /* * Algae can call the NPSOL package, if it's available. */ #ifndef HAVE_NPSOL #define HAVE_NPSOL 0 #endif /* * Algae can call the SuperLU routines for solving sparse linear systems. */ #ifndef HAVE_LIBSUPERLU #define HAVE_LIBSUPERLU 1 #endif /* * Use fftw for fast Fourier transforms? */ #ifndef HAVE_FFTW3_H #define HAVE_FFTW3_H 0 #endif #ifndef HAVE_FFTW #define HAVE_FFTW 0 #endif /* * Enable both legacy fft and fftw? The fftw package is meant to be a * drop-in replacement. If this is set, then both packages are used, * and the fftw code is accessed with the `fftw' and `ifftw' functions. * Intended only for debugging and performance comparisons. */ #ifndef USE_BOTH_FFT #define USE_BOTH_FFT 1 #endif /* * Provide our own `div' function? */ #ifndef HAVE_DIV #define HAVE_DIV 0 #endif /* * Provide our own `div_t' typedef? Define as `Div_t' if needed. */ #ifndef div_t #undef div_t #endif /* * Some systems have instead of . */ #ifndef HAVE_FCNTL_H #define HAVE_FCNTL_H 0 #endif /* * Is available? */ #ifndef HAVE_SYS_TIME_H #define HAVE_SYS_TIME_H 0 #endif /* * How about ? */ #ifndef HAVE_SYS_IOCTL_H #define HAVE_SYS_IOCTL_H 0 #endif /* * And ? */ #ifndef HAVE_SYS_WAIT_H #define HAVE_SYS_WAIT_H 0 #endif /* * Ensure that size_t is defined. */ #ifndef size_t #undef size_t #endif /* * This is used for the DYNASTY I/O routines. Usually, FORTRAN * unformatted records have their length, in bytes, written at the * beginning and end of each record. If FORTRAN_BINARY_BY_WORDS is * true, the units are 4-byte words instead. */ #ifndef FORTRAN_BINARY_BY_WORDS #define FORTRAN_BINARY_BY_WORDS 0 #endif /* * We need on some systems. */ #ifndef HAVE_MEMORY_H #define HAVE_MEMORY_H 0 #endif /* * For systems without the `abs' function. */ #ifndef HAVE_ABS #define HAVE_ABS 0 #endif /* * For systems without the inverse hyperbolic trig functions. */ #ifndef HAVE_ACOSH #define HAVE_ACOSH 0 #endif #ifndef HAVE_ASINH #define HAVE_ASINH 0 #endif #ifndef HAVE_ATANH #define HAVE_ATANH 0 #endif /* * For systems with the `rint' math function. */ #ifndef HAVE_RINT #define HAVE_RINT 0 #endif /* * For systems with a lax `log' math function, where errno is not set * for log(0). */ #ifndef LAX_LOG #define LAX_LOG 0 #endif /* * Is there an `isnan' for IEEE math? */ #ifndef HAVE_ISNAN #define HAVE_ISNAN 0 #endif /* * Is there a `finite' for IEEE math? */ #ifndef HAVE_FINITE #define HAVE_FINITE 0 #endif /* * Sometimes 'rint' is there, but there's no declaration for it. */ #ifndef HAVE_RINT_DECL #define HAVE_RINT_DECL 0 #endif /* * Some systems (like VMS) will take some work to get `fork' * working. If NO_EXEC is true, we just skip it. */ #ifndef NO_EXEC #define NO_EXEC 0 #endif /* * Some systems (like VMS) don't have a `fcntl' equivalent. If * NO_FCNTL is true, we'll do without it, and just hope that we * don't get a deadlock. */ #ifndef NO_FCNTL #define NO_FCNTL 0 #endif /* * True if the system has a file. */ #ifndef HAVE_FLOAT_H #define HAVE_FLOAT_H 0 #endif /* * True if the system has a file. */ #ifndef HAVE_STDLIB_H #define HAVE_STDLIB_H 0 #endif /* * True if the system has a file. AIX only, AFAIK. */ #ifndef HAVE_STANDARDS_H #define HAVE_STANDARDS_H 0 #endif /* * True if we have the `strerror' function. */ #ifndef HAVE_STRERROR #define HAVE_STRERROR 0 #endif /* * True if we have the `strchr' function. */ #ifndef HAVE_STRCHR #define HAVE_STRCHR 0 #endif /* * True if we have the `strtod' function. */ #ifndef HAVE_STRTOD #define HAVE_STRTOD 0 #endif /* * True if we have the `memcpy' function. */ #ifndef HAVE_MEMCPY #define HAVE_MEMCPY 0 #endif /* * True if you have the `random' and `srandom' functions. */ #ifndef HAVE_RANDOM #define HAVE_RANDOM 0 #endif /* * True if you have the `drand48' and `srand48' functions. */ #ifndef HAVE_DRAND48 #define HAVE_DRAND48 0 #endif /* * True if the system has a file. */ #ifndef HAVE_STDARG_H #define HAVE_STDARG_H 0 #endif /* * True if the system has a file. */ #ifndef HAVE_UNISTD_H #define HAVE_UNISTD_H 0 #endif /* * True if the system has a file. */ #ifdef HAVE_MALLOC_H #undef HAVE_MALLOC_H #endif /* * Skip ANSI prototyping? Probably not a good idea if HAVE_STDARG_H is * false, because of conflicts in the way we've done the VA_ALIST * macros for the functions in "message.c". */ #ifndef NO_PROTOS #define NO_PROTOS 0 #endif /* * Define const empty if the compiler doesn't fully support it. */ #ifndef const #undef const #endif /* * Define signed empty if the compiler doesn't support it. */ #ifndef signed #undef signed #endif /* * Algae's binary files are written in IEEE big-endian form. We need to * know what form this machine uses. */ #ifndef WORDS_BIGENDIAN #define WORDS_BIGENDIAN 0 #endif /* * LAPACK 1.0 didn't have unsymmetric generalized eigenvalue solvers. * Algae requires LAPACK 1.1 or later, unless this macro is true. */ #ifndef LAPACK_1_0 #define LAPACK_1_0 0 #endif /* * Look for the memory trace function in the GNU C Library. */ #ifndef HAVE_MTRACE #define HAVE_MTRACE 0 #endif #ifndef HAVE_MCHECK_H #define HAVE_MCHECK_H 0 #endif /* * We need setitimer(3C) to run the execution profiler. */ #ifndef HAVE_SETITIMER #define HAVE_SETITIMER 0 #endif /* * The execution profiler signals SIGPROF every PROFILE_INTERVAL * microseconds. I suppose it's a nice problem to have, but machines * are so fast these days that the typical system timer resolution of * 10ms is barely adequate for profiling. */ #ifndef PROFILE_INTERVAL #define PROFILE_INTERVAL 10000 #endif /* * What type do signal handlers return? */ #ifndef RETSIGTYPE #define RETSIGTYPE void #endif /* * We prefer to use sigaction(2) over signal(2) or sigset(2). It * isn't available on older systems, though. */ #ifndef HAVE_SIGACTION #define HAVE_SIGACTION 0 #endif /* * If dlopen(3) is available, figure that we have a working dynamic * linking loader. */ #ifndef HAVE_DLOPEN #define HAVE_DLOPEN 0 #endif /* * Protect against buffer overflows. */ #ifndef HAVE_SNPRINTF #define HAVE_SNPRINTF 0 #endif #ifndef HAVE_VSNPRINTF #define HAVE_VSNPRINTF 0 #endif /* * Some systems require signal handlers to be reinstalled after * a signal is caught. */ #ifndef RESET_SIGNAL_HANDLER #define RESET_SIGNAL_HANDLER 0 #endif /* * Algae has problems running the execution profiler on some OS's. * In some cases, it's a shortcoming in Algae -- we don't restart * interrupted system calls as is required on some systems. In * other cases, the problem is with OS bugs. Set this false to * disable the execution profiler. */ #ifndef ENABLE_PROFILER #define ENABLE_PROFILER 1 #endif /* * Is there a working matherr(3) on board? */ #ifndef HAVE_MATHERR #define HAVE_MATHERR 1 #endif /* * On Titan machines, Fortran external names are uppercase, with no * leading or trailing underscores. Algae has #defines that assume * these names are lowercase. Set this macro true to skip the * #defines and leave them uppercase. */ #ifndef NO_FORTRAN_DEFS #define NO_FORTRAN_DEFS 0 #endif /* * We may need to supply our own Fortran ETIME function. */ #ifndef HAVE_ETIME #define HAVE_ETIME 0 #endif /******** floating point exception stuff ********/ /* * Bring in if it exists. (Intel) */ #ifndef HAVE_FENV_H #define HAVE_FENV_H 0 #endif /* * Bring in if it exists. (Alpha) */ #ifndef HAVE_MACHINE_FPU_H #define HAVE_MACHINE_FPU_H 0 #endif /* * Bring in if it exists. (SYSV, Sparc) */ #ifndef HAVE_IEEEFP_H #define HAVE_IEEEFP_H 0 #endif /* * Bring in if it exists. (SYSV, Sparc) */ #ifndef HAVE_SIGINFO_H #define HAVE_SIGINFO_H 0 #endif /* * Bring in if it exists. (SYSV, Sparc) */ #ifndef HAVE_UCONTEXT_H #define HAVE_UCONTEXT_H 0 #endif /* * Set floating point exception mask (Linux) */ #ifndef HAVE_FEENABLEEXCEPT #define HAVE_FEENABLEEXCEPT 0 #endif /* * Set floating point exception mask (Sparc, Alpha, SYSV) */ #ifndef HAVE_FPSETMASK #define HAVE_FPSETMASK 0 #endif /* * Set floating point exception mask (HP) */ #ifndef HAVE_FPSETDEFAULTS #define HAVE_FPSETDEFAULTS 0 #endif