X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=configure.ac;h=276125fedc2968c6432997b553d3f9843c2e228e;hp=791243646d9f0a64efda93a3f1ffa5b1cfa29185;hb=6f1b2fcff157650eb502fc5b9531bb9e8d069724;hpb=cd4059c82310f02adfc3ebfa15a25fedb830c90b diff --git a/configure.ac b/configure.ac index 7912436..276125f 100644 --- a/configure.ac +++ b/configure.ac @@ -6,18 +6,34 @@ dnl dnl Inspiration from http://autoconf-archive.cryp.to dnl tell automake the this script is for rrdtool + dnl the official version number is dnl a.b.c -AC_INIT([rrdtool],[1.2.99907080300]) +AC_INIT([rrdtool],[1.4.0]) + 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.299907080300 +NUMVERS=1.4000 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 +dnl see http://sourceware.org/autobook/autobook/autobook_91.html +dnl +LIBVERS=4:0:0 +AC_SUBST(LIBVERS) + AC_CANONICAL_TARGET AM_INIT_AUTOMAKE +AM_MAINTAINER_MODE + AC_CONFIG_HEADERS([rrd_config.h]) dnl all our local stuff like install scripts and include files @@ -49,7 +65,7 @@ AH_TOP([ /* realloc does not support NULL as argument */ #undef NO_NULL_REALLOC -/* lets enable madvise defines in netbsd */ +/* lets enable madvise defines in NetBSD */ #if defined(__NetBSD__) # if !defined(_NETBSD_SOURCE) # define _NETBSD_SOURCE @@ -60,11 +76,19 @@ AH_TOP([ AH_BOTTOM([ /* make sure that we pickup the correct stuff from all headers */ -#define _XOPEN_SOURCE 600 #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 @@ -88,9 +112,6 @@ AH_BOTTOM([ # include #endif -#ifdef HAVE_SYS_MMAN_H -# include -#endif #if !defined HAVE_MADVISE && defined HAVE_POSIX_MADVISE /* use posix_madvise family */ # define madvise posix_madvise @@ -134,7 +155,7 @@ AH_BOTTOM([ #ifdef HAVE_SYS_RESOURCE_H # include #if (defined(__svr4__) && defined(__sun__)) -/* Solaris headers (pre 2.6) don't have a getrusage prototype. +/* Solaris headers (pre 2.6) do not have a getrusage prototype. Use this instead. */ extern int getrusage(int, struct rusage *); #endif /* __svr4__ && __sun__ */ @@ -225,12 +246,15 @@ char *strchr (), *strrchr (); /* 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 +# undef isnan /* confuse autoconf to NOT remove this */ # define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN) #endif @@ -274,6 +298,14 @@ char *strchr (), *strrchr (); #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 */ ]) @@ -332,7 +364,7 @@ CFLAGS="$CFLAGS -D_GNU_SOURCE" dnl which flags does the compiler support? if test "x$GCC" = "xyes"; then - for flag in -fno-strict-aliasing -Wall -std=c99 -pedantic -Wundef -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wc++-compat -Wold-style-definition -W; do + for flag in -fno-strict-aliasing -Wall -std=c99 -pedantic -Wundef -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wold-style-definition -W; do oCFLAGS="$CFLAGS" CFLAGS="$CFLAGS $flag" cachename=rd_cv_gcc_flag_`echo $flag|sed 's/[[^A-Za-z]]/_/g'` @@ -360,14 +392,17 @@ AC_C_CONST AC_HEADER_TIME AC_STRUCT_TM +CONFIGURE_PART(Test Library Functions) + 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" -CONFIGURE_PART(Test Library Functions) dnl Checks for library functions. AC_FUNC_STRFTIME @@ -378,11 +413,20 @@ AC_C_BIGENDIAN dnl for each function found we get a definition in config.h dnl of the form HAVE_FUNCTION -AC_CHECK_FUNCS(tzset mbstowcs opendir readdir chdir chroot getuid setlocale strerror strerror_r snprintf vsnprintf fpclass class fp_class isnan memmove strchr mktime getrusage gettimeofday) +AC_CHECK_FUNCS(tzset fsync mbstowcs opendir readdir chdir chroot getuid setlocale strerror strerror_r snprintf vsnprintf fpclass class fp_class isnan memmove strchr mktime getrusage gettimeofday) + +CONFIGURE_PART(Map/Fadvis/Madvise checking) dnl Could use these to know if we need to provide a prototype dnl AC_CHECK_DECLS(fdatasync, [], [], [#include ]) +dnl check for fdatasync. Solaris has fdatasync in the librt + +AC_CHECK_FUNCS(fdatasync, [], AC_CHECK_LIB(rt, fdatasync, [LIBS="${LIBS} -lrt"; AC_DEFINE(HAVE_FDATASYNC)],[])) +dnl if there is no fdatasync we may get lucky with fsync +AC_CHECK_FUNCS(fsync) + + dnl XXX: dunno about windows.. add AC_CHECK_FUNCS(munmap) there too? if test "x$enable_mmap" = "xyes"; then case "$host" in @@ -423,7 +467,47 @@ AC_CHECK_DECLS(posix_fadvise, [], [], [#define _XOPEN_SOURCE 600 #include ]) AC_CHECK_FUNCS(posix_fadvise) +CONFIGURE_PART(Libintl Processing) + +dnl gettext +GETTEXT_PACKAGE=rrdtool +AC_SUBST(GETTEXT_PACKAGE) +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Gettext package]) + +AM_GLIB_GNU_GETTEXT() + +AC_ARG_ENABLE(libintl,[ --disable-libintl i18n support (libintl)], +[],[enable_libintl=yes]) + +if test x$enable_libintl = xyes; then + IT_PROG_INTLTOOL([0.35.0],[no-xml]) +fi + +if test x$enable_libintl = xyes -a x$MSGFMT = xno; then + AC_MSG_WARN(I could not find msgfmt. Diabeling libintl build.) + enable_libintl=no +fi + +if test x$enable_libintl = xyes; then + AC_CHECK_HEADERS(libintl.h,[],[AC_MSG_RESULT(disabeling libintl build); enable_libintl=no]) +fi + +if test x$enable_libintl = xyes ; then + dnl it seems bsd synstems need to link against libintl + dnl when compiling rrdupdate. lets check + AC_CHECK_LIB(intl, libintl_gettext,[LIB_LIBINTL="-lintl"]) +fi + +dnl use for linking rrdupdate +AC_SUBST(LIB_LIBINTL) + +dnl do not touch the po stuff if we are not going to build intl +AM_CONDITIONAL(BUILD_LIBINTL,[test x$enable_libintl = xyes]) + +if test x$enable_libintl = xyes; then + AC_DEFINE([BUILD_LIBINTL], [], [Use this in code sections to mark them for libintl build]) +fi CONFIGURE_PART(IEEE Math Checks) @@ -579,15 +663,20 @@ CONFIGURE_PART(Find 3rd-Party Libraries) AM_CONDITIONAL(BUILD_RRDCGI,[test $enable_rrdcgi != no]) + CORE_LIBS="$LIBS" dnl EX_CHECK_ALL(z, zlibVersion, zlib.h, zlib, 1.2.3, http://www.gzip.org/zlib/, "") dnl EX_CHECK_ALL(png, png_access_version_number, png.h, libpng, 1.2.10, http://prdownloads.sourceforge.net/libpng/, "") -dnl EX_CHECK_ALL(freetype, FT_Init_FreeType, ft2build.h, freetype2, 2.1.10, http://prdownloads.sourceforge.net/freetype/, /usr/include/freetype2) -dnl EX_CHECK_ALL(fontconfig, FcInit, fontconfig.h, fontconfig, 2.3.1, http://fontconfig.org/release/, /usr/include) +dnl EX_CHECK_ALL(freetype, FT_Init_FreeType, ft2build.h, freetype2, 2.1.10, http://prdownloads.sourceforge.net/freetype/, /usr/include/freetype2) +dnl EX_CHECK_ALL(fontconfig, FcInit, fontconfig.h, fontconfig, 2.3.1, http://fontconfig.org/release/, /usr/include) EX_CHECK_ALL(cairo, cairo_font_options_create, cairo.h, cairo-png, 1.4.6, http://cairographics.org/releases/, "") +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(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) if test "$EX_CHECK_ALL_ERR" = "YES"; then AC_MSG_ERROR([Please fix the library issues listed above and try again.]) @@ -601,8 +690,13 @@ AC_SUBST(ALL_LIBS) CONFIGURE_PART(Prep for Building Language Bindings) -dnl Check for Perl. +dnl Check for Perl and friends +PATH=$PATH:/usr/perl5/bin +export PATH AC_PATH_PROG(PERL, perl, no) +AC_PATH_PROG(POD2MAN, pod2man, no) +AC_PATH_PROG(POD2HTML, pod2html, no) + AC_ARG_ENABLE(perl,[ --disable-perl do not build the perl modules], [],[enable_perl=yes]) @@ -717,7 +811,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=$prefix/lib/ruby"]) +[RUBY_MAKE_OPTIONS=],[RUBY_MAKE_OPTIONS="sitedir="'$(DESTDIR)'"$prefix/lib/ruby"]) AC_ARG_WITH(ruby-options, @@ -755,10 +849,13 @@ if test "$enable_tcl" = "yes"; then done if test "$enable_tcl" = "no"; then - AC_MSG_WARN([tclConfig.sh not found - Tcl interface won't be built]) + AC_MSG_WARN([tclConfig.sh not found - Tcl interface will not be built]) else . $tcl_config TCL_PACKAGE_DIR="$TCL_PACKAGE_PATH/tclrrd$VERSION" + if test -n "$TCL_INC_DIR"; then + TCL_INCLUDE_SPEC="$TCL_INCLUDE_SPEC -I$TCL_INC_DIR" + fi fi AC_ARG_ENABLE(tcl,[ --enable-tcl-site install the tcl extension in the tcl tree], [],[enable_tcl_site=yes]) @@ -768,6 +865,7 @@ fi AM_CONDITIONAL(BUILD_TCL, test "$enable_tcl" = "yes" ) AM_CONDITIONAL(BUILD_TCL_SITE, test "$enable_tcl_site" = "yes" ) + AC_SUBST(TCL_PREFIX) AC_SUBST(TCL_SHLIB_CFLAGS) AC_SUBST(TCL_SHLIB_LD) @@ -777,7 +875,7 @@ AC_SUBST(TCL_LD_SEARCH_FLAGS) AC_SUBST(TCL_STUB_LIB_SPEC) AC_SUBST(TCL_VERSION) AC_SUBST(TCL_PACKAGE_DIR) -AC_SUBST(TCL_INC_DIR) +AC_SUBST(TCL_INCLUDE_SPEC) AC_ARG_ENABLE(python,[ --disable-python do not build the python modules], [],[enable_python=yes]) @@ -816,6 +914,7 @@ AC_CONFIG_FILES([examples/4charts.pl]) AC_CONFIG_FILES([examples/perftest.pl]) AC_CONFIG_FILES([examples/Makefile]) AC_CONFIG_FILES([doc/Makefile]) +AC_CONFIG_FILES([po/Makefile.in]) AC_CONFIG_FILES([src/Makefile]) AC_CONFIG_FILES([bindings/Makefile]) AC_CONFIG_FILES([bindings/tcl/Makefile]) @@ -856,7 +955,9 @@ echo " Build Tcl Bindings: $enable_tcl" echo " Build Python Bindings: $enable_python" echo " Build rrdcgi: $enable_rrdcgi" echo " Build librrd MT: $enable_pthread" +echo " Link with libintl: $enable_libintl" echo +echo " Libraries: $ALL_LIBS" echo echo "Type 'make' to compile the software and use 'make install' to " echo "install everything to: $prefix."