diff --git a/configure.ac b/configure.ac
index 3cb8238125346e92b2547a6254590a346fede44a..8928d628f2074b5a2ce7370503c3cea0fa51736a 100644 (file)
--- a/configure.ac
+++ b/configure.ac
dnl RRDtool AutoConf script ...
dnl ---------------------------
+dnl $Id$
dnl
dnl Created by Jeff Allen, Tobi Oetiker, Blair Zajac
dnl
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
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])
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
# include <malloc/malloc.h>
#endif
-#include <rrd_config_bottom.h>
+#include "src/rrd_config_bottom.h"
#endif
])
AC_ARG_ENABLE(rrdcgi,AS_HELP_STRING([--disable-rrdcgi],[disable building of rrdcgi]),
[],[enable_rrdcgi=yes])
+have_libwrap=no
+
+AC_ARG_ENABLE(libwrap,
+ AS_HELP_STRING([--disable-libwrap],
+ [do not build in support for libwrap (tcp wrapper)]
+ ),
+ [],
+ [
+ AC_CHECK_FUNCS(hosts_access, [],
+ AC_CHECK_LIB(wrap, hosts_access, [
+ LIBS="${LIBS} -lwrap"
+ AC_DEFINE(HAVE_LIBWRAP,[1],[have got libwrap installed])
+ have_libwrap=yes
+ ],[])
+ )
+ ]
+)
+
+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.],
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'`
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(tcpd.h dbi/dbi.h 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
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
-eval `./libtool --config | grep pic_flag`
+eval `./libtool --config | grep pic_flag=`
CFLAGS="$CFLAGS $pic_flag"
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
@@ -220,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
CONFIGURE_PART(Libintl Processing)
-AM_GNU_GETTEXT_VERSION([0.17])
-AM_GNU_GETTEXT()
+AM_GNU_GETTEXT_VERSION(0.17)
+AM_GNU_GETTEXT(external)
CONFIGURE_PART(IEEE Math Checks)
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 <langinfo.h>]], [[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
)
]
)
+
+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)
-AC_ARG_ENABLE(libdbi,AS_HELP_STRING([--disable-libdbi],[do not build in support for libdbi]),[have_libdbi=no],[
- XXX=$LIBS
- LIBS="$LIBS -ldbi -ldl"
- AC_MSG_CHECKING(for libdbi)
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([[#include <dbi/dbi.h>]],
- [[dbi_initialize(NULL)]]
- )
- ],[AC_DEFINE(HAVE_LIBDBI,[1],[have got libdbi installed])
- AC_MSG_RESULT([yes])
- have_libdbi=yes
- ],[LIBS=$XXX
- AC_MSG_RESULT([no])
- have_libdbi=no
- ]
- )
+have_libdbi=no
+
+AC_ARG_ENABLE(libdbi,AS_HELP_STRING([--disable-libdbi],[do not build in support for libdbi]),[],[
+ AC_CHECK_LIB(dbi, dbi_initialize, [
+ LIBS="${LIBS} -ldbi -ldl"
+ AC_DEFINE(HAVE_LIBDBI,[1],[have got libdbi installed])
+ have_libdbi=yes
+ ],[],[-ldl])
])
+
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.])
@@ -512,10 +571,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=
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
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
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])
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)
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"
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