X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=configure.ac;h=451502cd2939e59a61d8f192aa88e812ea67fac2;hb=9fdbe9791602575288cd890ea57b9d4f51b80520;hp=7bd2913f37ccd32f959b50bf616f1e1c4837dce0;hpb=58f0dbba0090989a047c65f2590698a29b70df36;p=rrdtool.git diff --git a/configure.ac b/configure.ac index 7bd2913..451502c 100644 --- a/configure.ac +++ b/configure.ac @@ -52,14 +52,13 @@ AC_PREREQ(2.59) dnl At the TOP of the HEADER AH_TOP([ - #ifndef RRD_CONFIG_H #define RRD_CONFIG_H + /* IEEE can be prevented from raising signals with fpsetmask(0) */ #undef MUST_DISABLE_FPMASK /* IEEE math only works if SIGFPE gets actively set to IGNORE */ - #undef MUST_DISABLE_SIGFPE /* realloc does not support NULL as argument */ @@ -72,241 +71,17 @@ AH_TOP([ # endif #endif - ]) +]) AH_BOTTOM([ -/* make sure that we pickup the correct stuff from all headers */ -#ifdef HAVE_FEATURES_H -#undef _XOPEN_SOURCE /* keep unmodified */ -#undef _BSD_SOURCE /* keep unmodified */ -#define _XOPEN_SOURCE 600 -#define _BSD_SOURCE 1 -# include -#endif - -/* FreeBSD 4.8 wants this included BEFORE sys/types.h */ -#ifdef HAVE_SYS_MMAN_H -# include -#endif - -#ifdef HAVE_SYS_TYPES_H -# include -#endif - -#ifdef HAVE_SYS_PARAM_H -# include -#endif -#ifndef MAXPATH -# ifdef PATH_MAX -# define MAXPATH PATH_MAX -# endif -#endif -#ifndef MAXPATH -/* else try the BSD variant */ -# ifdef MAXPATHLEN -# define MAXPATH MAXPATHLEN -# endif -#endif - -#ifdef HAVE_ERRNO_H -# include -#endif - -#if !defined HAVE_MADVISE && defined HAVE_POSIX_MADVISE -/* use posix_madvise family */ -# define madvise posix_madvise -# define MADV_NORMAL POSIX_MADV_NORMAL -# define MADV_RANDOM POSIX_MADV_RANDOM -# define MADV_SEQUENTIAL POSIX_MADV_SEQUENTIAL -# define MADV_WILLNEED POSIX_MADV_WILLNEED -# define MADV_DONTNEED POSIX_MADV_DONTNEED -#endif -#if defined HAVE_MADVISE || defined HAVE_POSIX_MADVISE -# define USE_MADVISE 1 -#endif - -#ifdef HAVE_SYS_STAT_H -# include -#endif - -#ifdef HAVE_FCNTL_H -#include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif - -#ifdef TIME_WITH_SYS_TIME -# include -# include -#else -# ifdef HAVE_SYS_TIME_H -# include -# else -# include -# endif -#endif - -#ifdef HAVE_SYS_TIMES_H -# include -#endif - -#ifdef HAVE_SYS_RESOURCE_H -# include -#if (defined(__svr4__) && defined(__sun__)) -/* Solaris headers (pre 2.6) do not have a getrusage prototype. - Use this instead. */ -extern int getrusage(int, struct rusage *); -#endif /* __svr4__ && __sun__ */ -#endif - - -/* define strrchr, strchr and memcpy, memmove in terms of bsd funcs - make sure you are NOT using bcopy, index or rindex in the code */ - -#ifdef STDC_HEADERS -# include -#else -# ifndef HAVE_STRCHR -# define strchr index -# define strrchr rindex -# endif -char *strchr (), *strrchr (); -# ifndef HAVE_MEMMOVE -# define memcpy(d, s, n) bcopy ((s), (d), (n)) -# define memmove(d, s, n) bcopy ((s), (d), (n)) -# endif -#endif - -#ifdef NO_NULL_REALLOC -# define rrd_realloc(a,b) ( (a) == NULL ? malloc( (b) ) : realloc( (a) , (b) )) -#else -# define rrd_realloc(a,b) realloc((a), (b)) -#endif - -#ifdef NEED_MALLOC_MALLOC_H +#ifdef MUST_HAVE_MALLOC_MALLOC_H # include #endif -#ifdef HAVE_STDIO_H -# include -#endif - -#ifdef HAVE_STDLIB_H -# include -#endif - -#ifdef HAVE_CTYPE_H -# include -#endif +#include -#ifdef HAVE_DIRENT_H -# include -# define NAMLEN(dirent) strlen((dirent)->d_name) -#else -# define dirent direct -# define NAMLEN(dirent) (dirent)->d_namlen -# ifdef HAVE_SYS_NDIR_H -# include -# endif -# ifdef HAVE_SYS_DIR_H -# include -# endif -# ifdef HAVE_NDIR_H -# include -# endif #endif - -#ifdef MUST_DISABLE_SIGFPE -# include -#endif - -#ifdef MUST_DISABLE_FPMASK -# include -#endif - - -#ifdef HAVE_MATH_H -# include -#endif - -#ifdef HAVE_FLOAT_H -# include -#endif - -#ifdef HAVE_IEEEFP_H -# include -#endif - -#ifdef HAVE_FP_CLASS_H -# include -#endif - -/* for Solaris */ -#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASS)) -# define HAVE_ISINF 1 -# ifdef isinf -# undef isinf /* confuse autoconf */ -# endif -# define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF) -#endif - -/* solaris 10 it defines isnan such that only forte can compile it ... bad bad */ -#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS)) -# undef isnan /* confuse autoconf to NOT remove this */ -# define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN) -#endif - -/* for OSF1 Digital Unix */ -#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H)) -# define HAVE_ISINF 1 -# define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF) -#endif - -#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_PLUS_INF) && defined(FP_MINUS_INF)) -# define HAVE_ISINF 1 -# define isinf(a) (fpclassify(a) == FP_MINUS_INF || fpclassify(a) == FP_PLUS_INF) -#endif - -#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_INFINITE)) -# define HAVE_ISINF 1 -# define isinf(a) (fpclassify(a) == FP_INFINITE) -#endif - -/* for AIX */ -#if (! defined(HAVE_ISINF) && defined(HAVE_CLASS)) -# define HAVE_ISINF 1 -# define isinf(a) (class(a) == FP_MINUS_INF || class(a) == FP_PLUS_INF) -#endif - -#if (! defined (HAVE_FINITE) && defined (HAVE_ISFINITE)) -# define HAVE_FINITE 1 -# define finite(a) isfinite(a) -#endif - -#if (! defined(HAVE_FINITE) && defined(HAVE_ISNAN) && defined(HAVE_ISINF)) -# define HAVE_FINITE 1 -# define finite(a) (! isnan(a) && ! isinf(a)) -#endif - -#ifndef HAVE_FINITE -#error "Can't compile without finite function" -#endif - -#ifndef HAVE_ISINF -#error "Can't compile without isinf function" -#endif - -#if (! defined(HAVE_FDATASYNC) && defined(HAVE_FSYNC)) -#define fdatasync fsync -#endif - -#if (!defined(HAVE_FDATASYNC) && !defined(HAVE_FSYNC)) -#error "Can't compile with without fsync and fdatasync" -#endif - -#endif /* RRD_CONFIG_H */ ]) dnl Process Special Options @@ -355,8 +130,9 @@ CONFIGURE_PART(Audit Compilation Environment) dnl Check for the compiler and static/shared library creation. -AC_PROG_CC AC_PROG_CPP +AC_PROG_CC +AM_PROG_CC_C_O AC_PROG_LIBTOOL dnl Try to detect/use GNU features @@ -525,7 +301,7 @@ volatile int x;volatile float f; ]], [[x = isinf(f)]])],[AC_MSG_RESULT(yes) AC_DEFINE(HAVE_ISINF)],[AC_MSG_RESULT(no)])]) dnl finite is BSD, isfinite is C99, so prefer the latter -AC_CACHE_CHECK([whether isfinite is broken],[have_broken_isfinite],[ +AC_CACHE_CHECK([whether isfinite is broken],[ac_cv_have_broken_isfinite],[ AC_TRY_RUN([ #ifdef HAVE_MATH_H #include @@ -544,24 +320,30 @@ int main () #endif #endif return 0; -}],[ -have_broken_isfinite=no],have_broken_isfinite=yes,[ +}],[ac_cv_have_broken_isfinite=no],[ac_cv_have_broken_isfinite=yes],[ case "${target}" in - hppa*-*-hpux*) have_broken_isfinite=yes ;; - *-sun-solaris2.8) have_broken_isfinite=yes ;; - *) have_broken_isfinite=no ;; + hppa*-*-hpux*) ac_cv_have_broken_isfinite=yes ;; + *-sun-solaris2.8) ac_cv_have_broken_isfinite=yes ;; + *) ac_cv_have_broken_isfinite=no ;; esac]) ]) -if test "x$have_broken_isfinite" = "xno"; then + +dnl the test does not seem to work on solaris 2.8 +dnl so lets fix this by hand +case "${target}" in + *-sun-solaris2.8) ac_cv_have_broken_isfinite=yes ;; +esac + +if test "x$ac_cv_have_broken_isfinite" = "xno"; then AC_DEFINE(HAVE_ISFINITE) else -AC_CHECK_FUNCS(finite,[], - [AC_CHECK_FUNCS(isfinite,[], - [AC_MSG_CHECKING(for isfinite with ) - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include + AC_CHECK_FUNCS(finite,[], + [AC_CHECK_FUNCS(isfinite,[], + [AC_MSG_CHECKING(for isfinite with ) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include volatile int x;volatile float f; ]],[[x = isfinite(f)]])],[AC_MSG_RESULT(yes) AC_DEFINE(HAVE_ISFINITE)],[AC_MSG_RESULT(no)])])]) -fi +fi AC_FULL_IEEE @@ -660,8 +442,8 @@ AC_LINK_IFELSE( [[#include #include ]], [[malloc(1)]] - ), - [AC_DEFINE(NEED_MALLOC_MALLOC_H) + ),[ + AC_DEFINE([MUST_HAVE_MALLOC_MALLOC_H]) AC_MSG_RESULT([yes we do])], [AC_MSG_ERROR([Can not figure how to compile malloc])] ) @@ -685,7 +467,7 @@ EX_CHECK_ALL(cairo, cairo_font_options_create, cairo.h, EX_CHECK_ALL(cairo, cairo_svg_surface_create, cairo-svg.h, cairo-svg, 1.4.6, http://cairographics.org/releases/, "") EX_CHECK_ALL(cairo, cairo_pdf_surface_create, cairo-pdf.h, cairo-pdf, 1.4.6, http://cairographics.org/releases/, "") EX_CHECK_ALL(cairo, cairo_ps_surface_create, cairo-ps.h, cairo-ps, 1.4.6, http://cairographics.org/releases/, "") -dnl EX_CHECK_ALL(glib-2.0, glib_check_version, glib.h, glib-2.0, 2.12.12, ftp://ftp.gtk.org/pub/glib/2.12/, "") +EX_CHECK_ALL(glib-2.0, glib_check_version, glib.h, glib-2.0, 2.12.12, ftp://ftp.gtk.org/pub/glib/2.12/, "") EX_CHECK_ALL(pango-1.0, pango_cairo_context_set_font_options, pango/pango.h, pangocairo, 1.17, http://ftp.gnome.org/pub/GNOME/sources/pango/1.17, "") EX_CHECK_ALL(xml2, xmlParseFile, libxml/parser.h, libxml-2.0, 2.6.31, http://xmlsoft.org/downloads.html, /usr/include/libxml2)