X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=configure.ac;h=1e3da864fc80b9a508801e9bdb745090aea8f84d;hp=b27a3e77652fea99f6e4514f65ad3c97c47a92a1;hb=e1597899f28b7fed13a029c84d9b36bbe5f16505;hpb=c10fefe3a9cdbf1d9daac1bc6bf687362d59115d diff --git a/configure.ac b/configure.ac index b27a3e7..1e3da86 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.99907052400]) +AC_INIT([rrdtool],[1.3.2]) + 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.299907061100 +NUMVERS=1.3002 AC_SUBST(NUMVERS) + +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:1: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 @@ -36,238 +52,36 @@ 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 */ #undef NO_NULL_REALLOC - ]) - -AH_BOTTOM([ -/* make sure that we pickup the correct stuff from all headers */ -#define _XOPEN_SOURCE 600 -#ifdef HAVE_FEATURES_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 - -#ifdef HAVE_SYS_MMAN_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 +/* lets enable madvise defines in NetBSD */ +#if defined(__NetBSD__) +# if !defined(_NETBSD_SOURCE) +# define _NETBSD_SOURCE # 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) don't 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 +AH_BOTTOM([ -#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 - -#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 -# 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 -# 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 +#include -#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 - -#endif /* RRD_CONFIG_H */ ]) dnl Process Special Options @@ -289,7 +103,7 @@ AC_ARG_WITH(rrd-default-font, if test -d ${WINDIR:-nodir}/cour.ttf ; then RRD_DEFAULT_FONT=`cd $WINDIR;pwd`/cour.ttf else - RRD_DEFAULT_FONT='"DejaVu Sans Mono,Bitstream Vera Sans Mono,Mono"' + RRD_DEFAULT_FONT='"DejaVu Sans Mono,Bitstream Vera Sans Mono,monospace,Courier"' fi ]) @@ -299,12 +113,6 @@ AC_ARG_ENABLE([mmap], [], [enable_mmap=yes]) -dnl will most likely not work on compressed filesystems, i think.. *shrug* -AC_ARG_ENABLE([direct-io], -[ --enable-direct-io enable O_DIRECT if available], -[enable_direct_io=yes], -[]) - AC_ARG_ENABLE(pthread,[ --disable-pthread disable multithread support], [],[enable_pthread=yes]) @@ -322,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 @@ -331,7 +140,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 -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'` @@ -354,39 +163,21 @@ 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) -if test "x$enable_direct_io" = "xyes"; then -AC_CACHE_CHECK([for O_DIRECT flag to open(2)],rrd_cv_HAVE_OPEN_O_DIRECT,[ -AC_TRY_COMPILE([ -#ifdef HAVE_UNISTD_H -#include -#endif -#ifdef HAVE_FCNTL_H -#include -#endif], -[int fd = open("/dev/null", O_DIRECT);], -rrd_cv_HAVE_OPEN_O_DIRECT=yes,rrd_cv_HAVE_OPEN_O_DIRECT=no)]) - if test "x$rrd_cv_HAVE_OPEN_O_DIRECT" = "xyes"; then - AC_DEFINE(USE_DIRECT_IO,1,[Whether the open(2) accepts O_DIRECT]) - else - enable_direct_io="no" - fi -else - enable_direct_io="no" -fi - dnl Checks for typedefs, structures, and compiler characteristics. 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 @@ -397,11 +188,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 @@ -415,7 +215,7 @@ if test "x$enable_mmap" = "xyes"; then *) AC_CHECK_HEADERS(sys/mman.h) AC_FUNC_MMAP - AC_CHECK_FUNCS(mmap munmap) + AC_CHECK_FUNCS(mmap munmap msync) AC_CHECK_DECLS(madvise, [], [], [#ifdef HAVE_SYS_MMAN_H # include #endif]) @@ -437,13 +237,52 @@ dnl enable_mmap="no" fi fi -dnl use FD based I/O ? -if test "x$enable_mmap" = "xno";then - AC_CHECK_DECLS(posix_fadvise, [], [], [#define _XOPEN_SOURCE 600 +dnl can we use posix_fadvise +AC_CHECK_DECLS(posix_fadvise, [], [], [#define _XOPEN_SOURCE 600 #include ]) - AC_CHECK_FUNCS(posix_fadvise) +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) @@ -462,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 @@ -481,28 +320,46 @@ 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 ;; + *-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 CONFIGURE_PART(Resolve Portability Issues) +dnl Do we need getopt_long + +build_getopt=no +RRD_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, @@ -585,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])] ) @@ -599,15 +456,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) -EX_CHECK_ALL(cairo, cairo_version, cairo.h, cairo-png, 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_version_check, pango/pango.h, pangocairo, 1.17, http://ftp.gnome.org/pub/GNOME/sources/pango/1.17, "") +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 "$EX_CHECK_ALL_ERR" = "YES"; then AC_MSG_ERROR([Please fix the library issues listed above and try again.]) @@ -621,8 +483,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]) @@ -665,10 +532,11 @@ AC_MSG_CHECKING(Perl Modules to build) 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 +langpref=$prefix +test "$langpref" = "$(DESTDIR)NONE" && langpref='$(DESTDIR)'$ac_default_prefix +test "$langpref" = "NONE" && langpref=$ac_default_prefix -PERL_MAKE_OPTIONS="PREFIX=$ppref LIB=$ppref/lib/perl/$PERL_VERSION" +PERL_MAKE_OPTIONS="PREFIX=$langpref LIB=$langpref/lib/perl/$PERL_VERSION" dnl pass additional perl options when generating Makefile from Makefile.PL AC_ARG_ENABLE(perl-site-install, @@ -730,14 +598,13 @@ else fi fi - dnl pass additional ruby options when generating Makefile from Makefile.PL AC_ARG_ENABLE(ruby-site-install, [ --enable-ruby-site-install by default the rrdtool ruby modules are installed together with rrdtool in $prefix/lib/ruby. You have to - add $prefix/lib/ruby/$ruby_version/$sitearch to you $: variable + add $prefix/lib/ruby/$ruby_version/$sitearch to your $: 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=$langpref/lib/ruby"]) AC_ARG_WITH(ruby-options, @@ -751,6 +618,49 @@ AC_SUBST(RUBY_MAKE_OPTIONS) AC_SUBST(RUBY) AC_SUBST(COMP_RUBY) +dnl Check for Lua. +AC_PATH_PROG(LUA, lua, no) + +AC_ARG_ENABLE(lua,[ --disable-lua do not build the lua modules], +[],[enable_lua=yes]) + +AC_MSG_CHECKING(if lua modules can be built) + +COMP_LUA= +if test "x$LUA" = "xno" -o x$enable_lua = xno; then + AC_MSG_RESULT(No .. Lua not found or disabled) +else + for dir in /usr/include/lua /usr/include/lua5.1 /usr/local/include/lua5.1 /usr/include/lua5.2 /usr/local/include/lua5.2 ; do + if test -f "$dir/lualib.h" ; then + enable_lua=yes + COMP_LUA="lua" + break + fi + done + + if test "$COMP_LUA" = "lua" ; then + AC_MSG_RESULT(YES) + else + AC_MSG_RESULT(Lua found but lualib.h is missing! Install the -dev package) + fi +fi + +dnl pass additional lua options +# if lua-site-install is set, don't set 'LIB' and let Lua setup decide +# the best place. +AC_ARG_ENABLE(lua-site-install, +[ --enable-lua-site-install by default the rrdtool lua modules are installed + together with rrdtool in $prefix/lib/lua. You have to + add $prefix/lib/lua/$lua_version/?.so to package.cpath + for lua to find the rrd.so file.]. When you set this + option the Lua module will get installed wherever + your Lua setup thinks it is best.], +[LUA_MAKE_OPTIONS=],[LUA_MAKE_OPTIONS="LIB=$langpref/lib/lua"]) + +AC_SUBST(LUA_MAKE_OPTIONS) +AC_SUBST(LUA) +AC_SUBST(COMP_LUA) + enable_tcl_site=no @@ -762,7 +672,7 @@ if test "$enable_tcl" = "yes"; then withval="" AC_ARG_WITH(tcllib,[ --with-tcllib=DIR location of the tclConfig.sh]) enable_tcl=no - for dir in $withval /usr/lib /usr/local/lib; do + for dir in $withval /usr/lib /usr/local/lib /usr/lib/tcl8.4 /usr/lib/tcl8.3 ; do AC_MSG_CHECKING(for tclConfig.sh in $dir) if test -f "$dir/tclConfig.sh" ; then tcl_config=$dir/tclConfig.sh @@ -775,10 +685,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]) @@ -788,6 +701,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) @@ -797,6 +711,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_INCLUDE_SPEC) AC_ARG_ENABLE(python,[ --disable-python do not build the python modules], [],[enable_python=yes]) @@ -835,7 +750,9 @@ 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([src/librrd.sym]) AC_CONFIG_FILES([bindings/Makefile]) AC_CONFIG_FILES([bindings/tcl/Makefile]) AC_CONFIG_FILES([bindings/tcl/ifOctets.tcl]) @@ -863,7 +780,7 @@ echo "----------------------------------------------------------------" echo "Config is DONE!" echo echo " With MMAP IO: $enable_mmap" -echo " Use O_DIRECT: $enable_direct_io" +echo " Build rrd_getopt: $build_getopt" echo " Static programs: $staticprogs" echo " Perl Modules: $COMP_PERL" echo " Perl Binary: $PERL" @@ -872,11 +789,16 @@ echo " Perl Options: $PERL_MAKE_OPTIONS" echo " Ruby Modules: $COMP_RUBY" echo " Ruby Binary: $RUBY" echo " Ruby Options: $RUBY_MAKE_OPTIONS" +echo " Lua Modules: $COMP_LUA" +echo " Lua Binary: $LUA" +echo " Lua Options: $LUA_MAKE_OPTIONS" 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."