X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=configure.ac;h=e0be4bd47ff6e93b703dc826d3638e670f216bfc;hp=dc8164673313b76545628f324efc19f23262ab68;hb=89d7243a99966e0d1757ef9adf13a8b206703355;hpb=1ec27148ca1418395b02e424374a0a264051b5b9 diff --git a/configure.ac b/configure.ac index dc81646..e0be4bd 100644 --- a/configure.ac +++ b/configure.ac @@ -8,16 +8,19 @@ dnl Inspiration from http://autoconf-archive.cryp.to dnl tell automake the this script is for rrdtool +dnl Minimum Autoconf version required. +AC_PREREQ(2.59) + dnl the official version number is dnl a.b.c -AC_INIT([rrdtool],[1.3.999]) +AC_INIT([rrdtool],[1.4.999]) 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.3999 +NUMVERS=1.4999 AC_SUBST(NUMVERS) dnl for the linker to understand which versions the library are compatible with @@ -28,14 +31,17 @@ 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=5:0:1 +LIBVERS=5:3:1 AC_SUBST(LIBVERS) AC_CANONICAL_TARGET -AC_USE_SYSTEM_EXTENSIONS -AM_INIT_AUTOMAKE([silent-rules]) +m4_version_prereq(2.60, [AC_USE_SYSTEM_EXTENSIONS], [#]) +AM_INIT_AUTOMAKE AM_MAINTAINER_MODE -AM_SILENT_RULES([yes]) +# Enable silent build rules by default, requires at least +# Automake-1.11. Disable by either passing --disable-silent-rules to +# configure or passing V=1 to make +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_CONFIG_HEADERS([rrd_config.h]) AC_CONFIG_MACRO_DIR([m4]) @@ -47,10 +53,7 @@ dnl determine the type of system we are running on AC_SUBST(VERSION) -AC_PREFIX_DEFAULT( /usr/local/rrdtool-$PACKAGE_VERSION ) - -dnl Minimum Autoconf version required. -AC_PREREQ(2.59) +AC_PREFIX_DEFAULT( /opt/rrdtool-$PACKAGE_VERSION ) dnl At the TOP of the HEADER @@ -82,7 +85,7 @@ AH_BOTTOM([ # include #endif -#include +#include "src/rrd_config_bottom.h" #endif ]) @@ -99,6 +102,35 @@ AC_DEFINE_UNQUOTED(RRDGRAPH_YLEGEND_ANGLE,${RRDGRAPH_YLEGEND_ANGLE:-90.0}, AC_ARG_ENABLE(rrdcgi,AS_HELP_STRING([--disable-rrdcgi],[disable building of rrdcgi]), [],[enable_rrdcgi=yes]) +AC_ARG_ENABLE(libwrap, + AS_HELP_STRING([--disable-libwrap], + [do not build in support for libwrap (tcp wrapper)]), + [have_libwrap=no],[ + XXX=$LIBS + LIBS="$LIBS -lwrap" + AC_MSG_CHECKING(for libwrap) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], [[hosts_access(NULL)]]) + ],[AC_DEFINE(HAVE_LIBWRAP,[1],[have got libwrap installed]) + AC_MSG_RESULT([yes]) + have_libwrap=yes + ],[LIBS=$XXX + AC_MSG_RESULT([no]) + have_libwrap=no + ] + ) +]) +AM_CONDITIONAL(BUILD_LIBWRAP,[test $have_libwrap != no]) + +AM_CONDITIONAL(BUILD_RRDCGI,[test $enable_rrdcgi != no]) + +AC_ARG_ENABLE(rrd_graph,AS_HELP_STRING([--disable-rrd_graph],[disable all rrd_graph functions]), +[enable_rrdcgi=no],[enable_rrd_graph=yes]) + +if test $enable_rrd_graph != no; then + AC_DEFINE([HAVE_RRD_GRAPH], [], [is rrd_graph supported by this install]) +fi + dnl Check if we run on a system that has fonts AC_ARG_WITH(rrd-default-font, [ --with-rrd-default-font=[OPTIONS] set the full path to your default font.], @@ -158,7 +190,7 @@ AC_SUBST(WERROR) 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 -Wold-style-definition -W; do + for flag in -fno-strict-aliasing -Wall -std=gnu99 -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'` @@ -179,7 +211,7 @@ CONFIGURE_PART(Checking for Header Files) dnl Checks for header files. AC_HEADER_STDC AC_HEADER_DIRENT -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) +AC_CHECK_HEADERS(langinfo.h stdint.h inttypes.h libgen.h features.h sys/stat.h sys/types.h fcntl.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 @@ -189,7 +221,8 @@ AC_STRUCT_TM CONFIGURE_PART(Test Library Functions) dnl Checks for libraries. -AC_CHECK_FUNC(acos, , AC_CHECK_LIB(m, acos)) +AC_CHECK_FUNC(acos, , AC_CHECK_LIB(m, acos)) +AC_CHECK_FUNC(round, , AC_CHECK_LIB(m, round)) dnl add pic flag in any case this makes sure all our code is relocatable @@ -206,7 +239,7 @@ 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 fsync mbstowcs opendir readdir chdir chroot getuid setlocale strerror snprintf vsnprintf vasprintf fpclass class fp_class isnan memmove strchr mktime getrusage gettimeofday) +AC_CHECK_FUNCS(nl_langinfo tzset fsync mbstowcs opendir readdir chdir chroot getuid strerror snprintf vsnprintf vasprintf fpclass class fp_class isnan memmove strchr mktime getrusage gettimeofday) AC_FUNC_STRERROR_R @@ -221,6 +254,12 @@ AC_CHECK_FUNCS(fdatasync, [], AC_CHECK_LIB(rt, fdatasync, [LIBS="${LIBS} -lrt"; dnl if there is no fdatasync we may get lucky with fsync AC_CHECK_FUNCS(fsync) +dnl check for socket and nsl solaris again ... we need this for the new rrd_daemon stuff + +AC_CHECK_FUNCS(socket, [], AC_CHECK_LIB(socket, socket, [LIBS="${LIBS} -lsocket"; AC_DEFINE(HAVE_SOCKET)],[])) +AC_CHECK_FUNCS(getaddrinfo, [], AC_CHECK_LIB(nsl, getaddrinfo, [LIBS="${LIBS} -lnsl"; AC_DEFINE(HAVE_GETADDRINFO)],[])) + + dnl XXX: dunno about windows.. add AC_CHECK_FUNCS(munmap) there too? if test "x$enable_mmap" = "xyes"; then @@ -264,8 +303,8 @@ AC_CHECK_FUNCS(posix_fadvise) CONFIGURE_PART(Libintl Processing) -AM_GNU_GETTEXT_VERSION(0.14.4) -AM_GNU_GETTEXT() +AM_GNU_GETTEXT_VERSION(0.17) +AM_GNU_GETTEXT(external) CONFIGURE_PART(IEEE Math Checks) @@ -336,6 +375,12 @@ CONFIGURE_PART(Resolve Portability Issues) CHECK_FOR_WORKING_MS_ASYNC +dnl do we have nl_langinfo(_NL_TIME_WEEK_1STDAY) +AC_CHECK_FUNCS(_NL_TIME_WEEK_1STDAY, , + [AC_MSG_CHECKING([for nl_langinfo(_NL_TIME_WEEK_1STDAY) with langinfo.h]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[nl_langinfo(_NL_TIME_WEEK_1STDAY)]])],[AC_MSG_RESULT(yes) + AC_DEFINE(HAVE__NL_TIME_WEEK_1STDAY)],[AC_MSG_RESULT(no)])]) + dnl Do we need getopt_long dnl even when including our own getopt implementation @@ -449,6 +494,22 @@ AC_LINK_IFELSE( ) ] ) + +dnl is time_t 32 of 64 bit ? +AC_DEFINE([TIME_T_IS_32BIT], [], [time_t is 32bit]) +AC_DEFINE([TIME_T_IS_64BIT], [], [time_t is 64bit]) +AC_MSG_CHECKING([the type of time_t]) +AC_CHECK_SIZEOF([time_t]) +if test "x$ac_cv_sizeof_time_t" = "x4"; then + AC_MSG_RESULT([time_t is 32 bit]) + AC_DEFINE([TIME_T_IS_32BIT]) +elif test "x$ac_cv_sizeof_time_t" = "x8"; then + AC_MSG_RESULT([time_t is 64 bit]) + AC_DEFINE([TIME_T_IS_64BIT]) +else + AC_MSG_ERROR([can not figure type of time_t]) +fi + AC_LANG_POP(C) CONFIGURE_PART(Find 3rd-Party Libraries) @@ -472,22 +533,26 @@ AC_ARG_ENABLE(libdbi,AS_HELP_STRING([--disable-libdbi],[do not build in support ]) AM_CONDITIONAL(BUILD_LIBDBI,[test $have_libdbi != no]) -AM_CONDITIONAL(BUILD_RRDCGI,[test $enable_rrdcgi != no]) + +AM_CONDITIONAL(BUILD_RRDGRAPH,[test $enable_rrd_graph != 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) -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/, "") -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 $enable_rrd_graph != no; then +dnl EX_CHECK_ALL(z, zlibVersion, zlib.h, zlib, 1.2.5, http://zlib.net/, "") +dnl EX_CHECK_ALL(png, png_access_version_number, png.h, libpng, 1.4.8, ftp://ftp.simplesystems.org/pub/libpng/png/src/, "") +dnl EX_CHECK_ALL(freetype, FT_Init_FreeType, ft2build.h, freetype2, 2.4.6, http://download.savannah.gnu.org/releases/freetype/, /usr/include/freetype2) +dnl EX_CHECK_ALL(fontconfig, FcInit, fontconfig.h, fontconfig, 2.8.0, http://www.freedesktop.org/software/fontconfig/release/, /usr/include) +EX_CHECK_ALL(cairo, cairo_font_options_create, cairo.h, cairo-png, 1.10.2, http://cairographics.org/releases/, "") +EX_CHECK_ALL(cairo, cairo_svg_surface_create, cairo-svg.h, cairo-svg, 1.10.2, http://cairographics.org/releases/, "") +EX_CHECK_ALL(cairo, cairo_pdf_surface_create, cairo-pdf.h, cairo-pdf, 1.10.2, http://cairographics.org/releases/, "") +EX_CHECK_ALL(cairo, cairo_ps_surface_create, cairo-ps.h, cairo-ps, 1.10.2, http://cairographics.org/releases/, "") +EX_CHECK_ALL(pangocairo-1.0, pango_cairo_context_set_font_options, pango/pango.h, pangocairo, 1.28.4, http://ftp.gnome.org/pub/GNOME/sources/pango/1.28, "") + +fi +EX_CHECK_ALL(glib-2.0, glib_check_version, glib.h, glib-2.0, 2.28.7, ftp://ftp.gtk.org/pub/glib/2.28/, "") +EX_CHECK_ALL(xml2, xmlParseFile, libxml/parser.h, libxml-2.0, 2.7.8, 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.]) @@ -513,10 +578,10 @@ AC_ARG_ENABLE(perl,AS_HELP_STRING([--disable-perl],[do not build the perl module [],[enable_perl=yes]) -AC_ARG_VAR(PERLCC, [[] C compiler for Perl modules]) -AC_ARG_VAR(PERLCCFLAGS, [[] CC flags for Perl modules]) -AC_ARG_VAR(PERLLD, [[same as PERLCC] Linker for Perl modules]) -AC_ARG_VAR(PERLLDFLAGS, [[] LD flags for Perl modules]) +AC_ARG_VAR(PERLCC, [C compiler for Perl modules]) +AC_ARG_VAR(PERLCCFLAGS, [CC flags for Perl modules]) +AC_ARG_VAR(PERLLD, [Linker for Perl modules]) +AC_ARG_VAR(PERLLDFLAGS, [LD flags for Perl modules]) if test "x$PERL" = "xno" -o x$enable_perl = xno; then COMP_PERL= @@ -800,7 +865,7 @@ if test "$enable_tcl" = "yes"; then TCL_INCLUDE_SPEC="$TCL_INCLUDE_SPEC -I$TCL_INC_DIR" fi fi - AC_ARG_ENABLE(tcl,AS_HELP_STRING([--enable-tcl-site],[install the tcl extension in the tcl tree]), + AC_ARG_ENABLE(tcl-site,AS_HELP_STRING([--enable-tcl-site],[install the tcl extension in the tcl tree]), [],[enable_tcl_site=yes]) fi @@ -838,8 +903,16 @@ fi AC_SUBST(COMP_PYTHON) dnl Check for nroff -AC_PATH_PROGS(NROFF, gnroff nroff) -AC_PATH_PROGS(TROFF, groff troff) +AC_ARG_VAR(NROFF, [path to the local nroff version]) +AC_PATH_PROGS(NROFF, [gnroff nroff]) +if test x$NROFF = x; then + AC_MSG_ERROR([I need a copy of *nroff to format the documentation]) +fi +AC_ARG_VAR(TROFF, [path to the local troff version]) +AC_PATH_PROGS(TROFF, [groff troff]) +if test x$TROFF = x; then + AC_MSG_ERROR([I need a copy of *troff to format the documentation]) +fi AC_ARG_VAR(RRDDOCDIR, [[DATADIR/doc/PACKAGE-VERSION] Documentation directory]) if test -z "$RRDDOCDIR"; then @@ -859,7 +932,6 @@ AC_CONFIG_FILES([examples/Makefile]) AC_CONFIG_FILES([examples/rrdcached/Makefile]) AC_CONFIG_FILES([doc/Makefile]) AC_CONFIG_FILES([po/Makefile.in]) -AC_CONFIG_FILES([intl/Makefile]) AC_CONFIG_FILES([src/Makefile]) AC_CONFIG_FILES([src/librrd.sym.in]) AC_CONFIG_FILES([src/librrd.pc]) @@ -870,6 +942,10 @@ AC_CONFIG_FILES([Makefile]) AC_CONFIG_FILES([bindings/lua/Makefile]) AC_CONFIG_COMMANDS([default],[[ chmod +x examples/*.pl]],[[]]) + +dnl intl requires our config to be called config.h. indulge it. +AC_CONFIG_COMMANDS_POST([ test -f config.h || ln -s rrd_config.h config.h ]) + AC_OUTPUT AC_MSG_CHECKING(in) @@ -892,6 +968,7 @@ echo "Config is DONE!" echo echo " With MMAP IO: $enable_mmap" echo " Build rrd_getopt: $build_getopt" +echo " Build rrd_graph: $enable_rrd_graph" echo " Static programs: $staticprogs" echo " Perl Modules: $COMP_PERL" echo " Perl Binary: $PERL" @@ -915,6 +992,7 @@ echo " Build rrdcgi: $enable_rrdcgi" echo " Build librrd MT: $enable_pthread" echo " Use gettext: $USE_NLS" echo " With libDBI: $have_libdbi" +echo " With libwrap: $have_libwrap" echo echo " Libraries: $ALL_LIBS" echo