X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=configure.ac;h=322b03b26c243dba52efe84eef040fdd47e34e6b;hb=c9282a5807bc04f3ee94870d6d2a4e234c191c9a;hp=d634c051657622289c2f43ce56012adba4a98287;hpb=c24cf5317f753d0bfb376835b4f907462a770384;p=rrdtool.git diff --git a/configure.ac b/configure.ac index d634c05..322b03b 100644 --- a/configure.ac +++ b/configure.ac @@ -9,25 +9,25 @@ dnl tell automake the this script is for rrdtool dnl the official version number is dnl a.b.c -AC_INIT([rrdtool],[1.3rc9]) +AC_INIT([rrdtool],[1.3.6]) dnl for testing a numberical version number comes handy dnl the released version are dnl a.bccc dnl the devel versions will be something like dnl a.b999yymmddhh -NUMVERS=1.299908060801 +NUMVERS=1.3006 AC_SUBST(NUMVERS) -dnl for the linker to understand which version the library is compatible with -dnl we must keep a separate library version cout of the format c:r:a if any -dnl if only implementation changed but all interfaces are kept, do r++ -dnl when only functionality was added do c++,r=0,a++ -dnl if any functionality was removed do c++,r=0,a=0. +dnl for the linker to understand which versions the library are compatible with +dnl each other we must keep a separate library version cout of the format c:r:a. +dnl - if only implementation changed but all interfaces are kept, do r++ +dnl - if only functionality was added do c++,r=0,a++ +dnl - if any functionality was removed do c++,r=0,a=0. dnl dnl see http://sourceware.org/autobook/autobook/autobook_91.html dnl -LIBVERS=4:0:0 +LIBVERS=4:5:0 AC_SUBST(LIBVERS) AC_CANONICAL_TARGET @@ -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 - -#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 +#include -#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 @@ -385,7 +160,7 @@ CONFIGURE_PART(Checking for Header Files) dnl Checks for header files. AC_HEADER_STDC AC_HEADER_DIRENT -AC_CHECK_HEADERS(features.h sys/stat.h sys/types.h fcntl.h locale.h fp_class.h malloc.h unistd.h ieeefp.h math.h sys/times.h sys/param.h sys/resource.h signal.h float.h stdio.h stdlib.h errno.h string.h ctype.h) +AC_CHECK_HEADERS(libgen.h features.h sys/stat.h sys/types.h fcntl.h locale.h fp_class.h malloc.h unistd.h ieeefp.h math.h sys/times.h sys/param.h sys/resource.h signal.h float.h stdio.h stdlib.h errno.h string.h ctype.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST @@ -398,7 +173,6 @@ dnl Checks for libraries. AC_CHECK_FUNC(acos, , AC_CHECK_LIB(m, acos)) - dnl add pic flag in any case this makes sure all our code is relocatable eval `./libtool --config | grep pic_flag` CFLAGS="$CFLAGS $pic_flag" @@ -526,7 +300,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 @@ -545,28 +319,50 @@ 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 ;; - *) have_broken_isfinite=no ;; + hppa*-*-hpux*) ac_cv_have_broken_isfinite=yes ;; + *-solaris2.8) ac_cv_have_broken_isfinite=yes ;; + *-solaris2.9) 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/9 +dnl so lets fix this by hand +case "${target}" in + *-solaris2.8) ac_cv_have_broken_isfinite=yes ;; + *-solaris2.9) 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 CONFIGURE_PART(Resolve Portability Issues) +CHECK_FOR_WORKING_MS_ASYNC + +dnl Do we need getopt_long + +build_getopt=no +RRD_GETOPT_LONG="LIBC_HAS_GETOPT_LONG" +AC_CHECK_FUNC(getopt_long,[],[ +RRD_GETOPT_LONG="getopt_long" +build_getopt=yes +]) +AC_SUBST(RRD_GETOPT_LONG) +AM_CONDITIONAL(BUILD_GETOPT,[test $build_getopt = yes]) + dnl what does realloc do if it gets called with a NULL pointer AC_CACHE_CHECK([if realloc can deal with NULL], rd_cv_null_realloc, @@ -649,8 +445,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])] ) @@ -740,9 +536,9 @@ AC_MSG_RESULT(${COMP_PERL:-No Perl Modules will be built}) # Options to pass when configuring perl module ppref=$prefix -test "$ppref" = "NONE" && ppref=$ac_default_prefix +test "$ppref" = 'NONE' && ppref=$ac_default_prefix -PERL_MAKE_OPTIONS="PREFIX=$ppref LIB=$ppref/lib/perl/$PERL_VERSION" +PERL_MAKE_OPTIONS="PREFIX="'$(DESTDIR)'"$ppref LIB="'$(DESTDIR)'"$ppref/lib/perl/$PERL_VERSION" dnl pass additional perl options when generating Makefile from Makefile.PL AC_ARG_ENABLE(perl-site-install, @@ -804,6 +600,8 @@ else fi fi +rpref=$prefix +test "$rpref" = 'NONE' && rpref=$ac_default_prefix dnl pass additional ruby options when generating Makefile from Makefile.PL AC_ARG_ENABLE(ruby-site-install, @@ -811,7 +609,7 @@ AC_ARG_ENABLE(ruby-site-install, together with rrdtool in $prefix/lib/ruby. You have to add $prefix/lib/ruby/$ruby_version/$sitearch to you $: variable for ruby to find the RRD.so file.], -[RUBY_MAKE_OPTIONS=],[RUBY_MAKE_OPTIONS="sitedir="'$(DESTDIR)'"$prefix/lib/ruby"]) +[RUBY_MAKE_OPTIONS=],[RUBY_MAKE_OPTIONS="sitedir="'$(DESTDIR)'"$rpref/lib/ruby"]) AC_ARG_WITH(ruby-options, @@ -916,6 +714,8 @@ AC_CONFIG_FILES([examples/Makefile]) AC_CONFIG_FILES([doc/Makefile]) AC_CONFIG_FILES([po/Makefile.in]) AC_CONFIG_FILES([src/Makefile]) +AC_CONFIG_FILES([src/librrd.sym.in]) +AC_CONFIG_FILES([src/librrd.pc]) AC_CONFIG_FILES([bindings/Makefile]) AC_CONFIG_FILES([bindings/tcl/Makefile]) AC_CONFIG_FILES([bindings/tcl/ifOctets.tcl]) @@ -943,6 +743,7 @@ echo "----------------------------------------------------------------" echo "Config is DONE!" echo echo " With MMAP IO: $enable_mmap" +echo " Build rrd_getopt: $build_getopt" echo " Static programs: $staticprogs" echo " Perl Modules: $COMP_PERL" echo " Perl Binary: $PERL"