dnl Inspiration from http://autoconf-archive.cryp.to
dnl tell automake the this script is for rrdtool
-AC_INIT([rrdtool],[1.2.7])
+dnl the official version number is
+dnl a.b.c
+AC_INIT([rrdtool],[1.2.11])
+dnl for testing a numberical version number comes handy
+dnl the released version are
+dnl a.bccc
+dnl the devl versions will be something like
+dnl a.b999yymmddhh
+NUMVERS=1.2011
+AC_SUBST(NUMVERS)
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE
AC_CONFIG_HEADERS([config.h])
dnl Checks for libraries.
AC_CHECK_FUNC(acos, , AC_CHECK_LIB(m, acos))
-dnl Use libiconv if we have one but fall back to libc otherwhise
-AC_CHECK_LIB(iconv, iconv_open, , [
- AC_CHECK_FUNC(iconv_open,,)
- ])
dnl add pic flag in any case this makes sure all our code is relocatable
eval `./libtool --config | grep pic_flag`
dnl for each function found we get a definition in config.h
dnl of the form HAVE_FUNCTION
-AC_CHECK_FUNCS(tzset 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 mbstowcs opendir readdir chdir chroot getuid setlocale strerror strerror_r snprintf vsnprintf fpclass class fp_class isnan memmove strchr mktime getrusage gettimeofday)
dnl Use mmap in rrd_update instead of seek+write
AC_ARG_ENABLE([mmap],
dnl actual code to check if this works
AC_CHECK_FUNCS(fpclassify, ,
[AC_MSG_CHECKING(for fpclassify with <math.h>)
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]], [[float f = 0.0; fpclassify(f)]])],[AC_MSG_RESULT(yes)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <math.h>
+volatile int x;volatile float f; ]], [[x = fpclassify(f)]])],[AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_FPCLASSIFY)],[AC_MSG_RESULT(no)])])
AC_CHECK_FUNCS(finite, ,
[AC_CHECK_FUNCS(isfinite, ,
[AC_MSG_CHECKING(for isfinite with <math.h>)
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]], [[float f = 0.0; isfinite(f)]])],[AC_MSG_RESULT(yes)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <math.h>
+volatile int x;volatile float f; ]], [[x = isfinite(f)]])],[AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_ISFINITE)],[AC_MSG_RESULT(no)])])])
AC_CHECK_FUNCS(isinf, ,
[AC_MSG_CHECKING(for isinf with <math.h>)
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]], [[float f = 0.0; isinf(f)]])],[AC_MSG_RESULT(yes)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <math.h>
+volatile int x;volatile float f; ]], [[x = isinf(f)]])],[AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_ISINF)],[AC_MSG_RESULT(no)])])
AC_FULL_IEEE
[],[enable_rrdcgi=yes])
AM_CONDITIONAL(BUILD_RRDCGI,[test $enable_rrdcgi != no])
-if test $enable_rrdcgi != no; then
-EX_CHECK_ALL(cgi, cgiInit, cgi.h, cgilib, 0.5, http://www.infodrom.org/projects/cgilib, "")
-fi
EX_CHECK_ALL(art_lgpl_2, art_vpath_add_point, libart_lgpl/libart.h, libart-2.0, 2.3.17, ftp://ftp.gnome.org/pub/GNOME/sources/libart_lgpl/2.3/, /usr/include/libart-2.0)
EX_CHECK_ALL(z, zlibVersion, zlib.h, zlib, 1.2.2, http://www.gzip.org/zlib/, "")
EX_CHECK_ALL(png, png_access_version_number, png.h, libpng, 1.2.8, http://prdownloads.sourceforge.net/libpng/, "")
EX_CHECK_ALL(freetype, FT_Init_FreeType, ft2build.h, freetype2, 2.1.9, http://prdownloads.sourceforge.net/freetype/, /usr/include/freetype2)
+save_LIBS=${LIBS}
+save_CPPFLAGS=${CPPFLAGS}
+save_LDFLAGS=${LDFLAGS}
+
+if test $enable_rrdcgi != no; then
+EX_CHECK_ALL(cgi, cgiInit, cgi.h, cgilib, 0.5, http://www.infodrom.org/projects/cgilib, "")
+fi
+
+CGI_LIBS=${LIBS}
+CGI_CPPFLAGS=${CPPFLAGS}
+CGI_LDFLAGS=${LDFLAGS}
+
+AC_SUBST(CGI_LIBS)
+AC_SUBST(CGI_CPPFLAGS)
+AC_SUBST(CGI_LDFLAGS)
+
+LIBS=${save_LIBS}
+CPPFLAGS=${save_CPPFLAGS}
+LDFLAGS=${save_LDFLAGS}
+
if test "$EX_CHECK_ALL_ERR" = "YES"; then
AC_MSG_ERROR([Please fix the library issues listed above and try again.])
fi
[[#include <time.h>]],
[[ctime_r(NULL,NULL)]]
),
- [AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT(no)],
[AC_MSG_ERROR([Can't figure how to compile ctime_r])]
)
]
dnl Check for Perl.
AC_PATH_PROG(PERL, perl, no)
-AC_ARG_ENABLE(perl,[ --disable-perl do not build the perl modules],
+AC_ARG_ENABLE(perl,[ --disable-perl do not build the perl modules],
[],[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])
+
if test "x$PERL" = "xno" -o x$enable_perl = xno; then
COMP_PERL=
else
AC_MSG_CHECKING(for the perl version you are running)
PERL_VERSION=`$PERL -MConfig -e 'print $Config{version}'`
AC_MSG_RESULT($PERL_VERSION)
- AC_MSG_CHECKING(for the C compiler perl wants to use to build its modules)
- perlcc=`$PERL -MConfig -e 'print $Config{cc}'`
- AC_MSG_RESULT($perlcc)
- if test ! -x "$perlcc"; then
- AC_PATH_PROG(PERLCC, ${perlcc}, no)
- if test "x$PERLCC" = "xno"; then
- AC_MSG_WARN([
-I would not find the Compiler ($perlcc) that was originally used to compile your
-perl binary. You should either make sure that this compiler is available on your
-system, or use a different perl setup that was compiled with $CC.
-
-I will disable the compilation of the RRDs perl module.
+ if test -z "$PERLCC"; then
+ AC_MSG_CHECKING(for the C compiler perl wants to use to build its modules)
+ perlcc=`$PERL -MConfig -e 'print $Config{cc}'`
+ AC_MSG_RESULT($perlcc)
+ if test ! -x "$perlcc"; then
+ AC_PATH_PROG(PERL_CC, "${perlcc}", no)
+ if test "$PERL_CC" = "no"; then
+ AC_MSG_WARN([
+I would not find the Compiler ($perlcc) that was originally used to compile
+your perl binary. You should either make sure that this compiler is
+available on your system, pick an other compiler and set PERLCC
+appropriately, or use a different perl setup that was compiled locally.
+
+I will disable the compilation of the RRDs perl module for now.
])
- COMP_PERL="perl_piped"
- fi
+ COMP_PERL="perl_piped"
+ fi
+ fi
fi
fi
AC_MSG_CHECKING(Perl Modules to build)
# Options to pass when configuring perl module
ppref=$prefix
-test "x$ppref" = xNONE && ppref=$ac_default_prefix
+test "$ppref" = "NONE" && ppref=$ac_default_prefix
PERL_MAKE_OPTIONS="PREFIX=$ppref LIB=$ppref/lib/perl/$PERL_VERSION"
your perl setup thinks it is best.],
[PERL_MAKE_OPTIONS=],[])
+if test ! -z "$PERLCC"; then
+ PERL_MAKE_OPTIONS="$PERL_MAKE_OPTIONS CC=$PERLCC"
+
+ if test ! -z "$PERLCCFLAGS"; then
+ PERL_MAKE_OPTIONS="$PERL_MAKE_OPTIONS CCFLAGS=$PERLCCFLAGS"
+ fi
+
+ if test -z "$PERLLD"; then
+ PERLLD=$PERLCC
+ fi
+ PERL_MAKE_OPTIONS="$PERL_MAKE_OPTIONS LD=$PERLLD"
+
+ if test ! -z "$PERLLDFLAGS"; then
+ PERL_MAKE_OPTIONS="$PERL_MAKE_OPTIONS LDFLAGS=$PERLLDFLAGS"
+ fi
+fi
+
AC_ARG_WITH(perl-options,
[ --with-perl-options=[OPTIONS] options to pass on command-line when
generating Makefile from Makefile.PL. If you set this
AC_SUBST(COMP_PERL)
AC_SUBST(PERL_VERSION)
-
-dnl Check for Tcl.
-withval=""
-AC_ARG_WITH(tcllib,[ --with-tcllib=DIR location of the tclConfig.sh])
-found=0
-AC_MSG_CHECKING(for tclConfig.sh in $withval)
-if test -f "$withval/tclConfig.sh" ; then
- tcl_config=$withval/tclConfig.sh
- found=1
+AC_ARG_ENABLE(tcl,[ --disable-tcl do not build the tcl modules],
+[],[enable_tcl=yes])
+
+if test "$enable_tcl" = "yes"; then
+ dnl Check for Tcl.
+ 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
+ AC_MSG_CHECKING(for tclConfig.sh in $dir)
+ if test -f "$dir/tclConfig.sh" ; then
+ tcl_config=$dir/tclConfig.sh
+ enable_tcl=yes
AC_MSG_RESULT(yes)
break
-else
+ else
AC_MSG_RESULT(no)
-fi
+ fi
+ done
-if test $found -eq 0 ; then
+ if test "$enable_tcl" = "no"; then
AC_MSG_WARN([tclConfig.sh not found - Tcl interface won't be built])
-else
+ else
. $tcl_config
+ TCL_PACKAGE_DIR="$TCL_PACKAGE_PATH/tclrrd$VERSION"
+ fi
fi
-
-AM_CONDITIONAL(COMP_TCL, test x$found = x1 )
+AM_CONDITIONAL(BUILD_TCL, test "$enable_tcl" = "yes" )
AC_SUBST(TCL_PREFIX)
AC_SUBST(TCL_SHLIB_CFLAGS)
AC_SUBST(TCL_SHLIB_SUFFIX)
AC_SUBST(TCL_PACKAGE_PATH)
AC_SUBST(TCL_LD_SEARCH_FLAGS)
+AC_SUBST(TCL_STUB_LIB_SPEC)
+AC_SUBST(TCL_VERSION)
+AC_SUBST(TCL_PACKAGE_DIR)
+AC_ARG_ENABLE(python,[ --disable-python do not build the python modules],
+[],[enable_python=yes])
+
+if test "$enable_python" = "yes"; then
dnl Check for python
-AM_PATH_PYTHON(2.3,[PYTHON_DIR=python],[PYTHON_DIR=''])
-AM_CHECK_PYTHON_HEADERS(,[PYTHON_DIR='';AC_MSG_WARN(could not find Python headers)])
-AC_SUBST(PYTHON_DIR)
+AM_PATH_PYTHON(2.3,[],[enable_python=no])
+AM_CHECK_PYTHON_HEADERS(,[enable_python=no;AC_MSG_WARN(could not find Python headers)])
+fi
+AM_CONDITIONAL(BUILD_PYTHON,[test "$enable_python" = "yes"])
dnl Check for nroff
AC_PATH_PROGS(NROFF, gnroff nroff)
AC_PATH_PROGS(TROFF, groff troff)
+AC_ARG_VAR(RRDDOCDIR, [[DATADIR/doc/PACKAGE-VERSION] Documentation directory])
+if test -z "$RRDDOCDIR"; then
+ RRDDOCDIR='${datadir}/doc/${PACKAGE}-${VERSION}'; fi
+
dnl Does the compiler like -Wall and -pedantic?
-if test "x$GCC" = "xyes"; then
+if test "$GCC" = "yes"; then
oCFLAGS=$CFLAGS
- CFLAGS="$CFLAGS -Wall -pedantic -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -W"
+ CFLAGS="$CFLAGS -fno-strict-aliasing -Wall -pedantic -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -W"
AC_CACHE_CHECK(if we can use GCC-specific compiler options, rd_cv_gcc_opt,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[return 0 ]])],[rd_cv_gcc_opt=yes],[rd_cv_gcc_opt=no ])
]
src/Makefile \
bindings/Makefile \
bindings/tcl/Makefile \
+ bindings/tcl/ifOctets.tcl \
bindings/python/Makefile \
Makefile])
AC_CONFIG_COMMANDS([default],[[\
echo "----------------------------------------------------------------"
echo "Config is DONE!"
echo
-echo " With MMAP IO: $ac_cv_func_mmap_fixed_mapped"
-echo " Perl Modules: $COMP_PERL"
-echo " Perl Binary: $PERL"
-echo " Perl Version: $PERL_VERSION"
-echo " Perl Options: $PERL_MAKE_OPTIONS"
-echo " Tcl Config: $tcl_config"
-echo " Python Version: $PYTHON_VERSION"
-echo " Build rrdcgi: $enable_rrdcgi"
-echo " Build librrd MT: $enable_pthread"
+echo " With MMAP IO: $ac_cv_func_mmap_fixed_mapped"
+echo " Perl Modules: $COMP_PERL"
+echo " Perl Binary: $PERL"
+echo " Perl Version: $PERL_VERSION"
+echo " Perl Options: $PERL_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
echo
echo "Type 'make' to compile the software and use 'make install' to "