X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=configure.ac;h=6cc2767edc21c4eed095f2e3f4541eec6919abf6;hp=2370f2166cb42d428d99b3357c8df1ed22ce6629;hb=8106f1070a0affaa20c495fc9c38f192b199e8b7;hpb=24a1cb649dd3b5c5d93fa470ebfe4d88abb2af00 diff --git a/configure.ac b/configure.ac index 2370f21..6cc2767 100644 --- a/configure.ac +++ b/configure.ac @@ -93,7 +93,7 @@ AC_ARG_VAR(RRDGRAPH_YLEGEND_ANGLE, AC_DEFINE_UNQUOTED(RRDGRAPH_YLEGEND_ANGLE,${RRDGRAPH_YLEGEND_ANGLE:-90.0}, [Vertical label angle: -90.0 (default) or 90.0]) -AC_ARG_ENABLE(rrdcgi,[ --disable-rrdcgi disable building of rrdcgi], +AC_ARG_ENABLE(rrdcgi,AS_HELP_STRING([--disable-rrdcgi],[disable building of rrdcgi]), [],[enable_rrdcgi=yes]) dnl Check if we run on a system that has fonts @@ -109,15 +109,15 @@ AC_ARG_WITH(rrd-default-font, dnl Use mmap in rrd_update instead of seek+write AC_ARG_ENABLE([mmap], -[ --disable-mmap disable mmap in rrd_update, use seek+write instead], +AS_HELP_STRING([--disable-mmap],[disable mmap in rrd_update, use seek+write instead]), [], [enable_mmap=yes]) -AC_ARG_ENABLE(pthread,[ --disable-pthread disable multithread support], +AC_ARG_ENABLE(pthread,AS_HELP_STRING([--disable-pthread],[disable multithread support]), [],[enable_pthread=yes]) AC_ARG_ENABLE(static-programs, - [ --enable-static-programs Build static programs], + AS_HELP_STRING([--enable-static-programs],[Build static programs]), [case "${enableval}" in yes) staticprogs=yes ;; no) staticprogs=no ;; @@ -176,7 +176,7 @@ CONFIGURE_PART(Checking for Header Files) dnl Checks for header files. 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) +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) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST @@ -267,7 +267,7 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Gettext package]) AM_GLIB_GNU_GETTEXT() -AC_ARG_ENABLE(libintl,[ --disable-libintl i18n support (libintl)], +AC_ARG_ENABLE(libintl,AS_HELP_STRING([--disable-libintl],[i18n support (libintl)]), [],[enable_libintl=yes]) if test x$enable_libintl = xyes; then @@ -338,7 +338,8 @@ return 0; }],[ac_cv_have_broken_isfinite=no],[ac_cv_have_broken_isfinite=yes],[ case "${target}" in hppa*-*-hpux*) ac_cv_have_broken_isfinite=yes ;; - *-sun-solaris2.8) ac_cv_have_broken_isfinite=yes ;; + *-solaris2.8) ac_cv_have_broken_isfinite=yes ;; + *-solaris2.9) ac_cv_have_broken_isfinite=yes ;; *) ac_cv_have_broken_isfinite=no ;; esac]) ]) @@ -346,7 +347,8 @@ esac]) 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 ;; + *-solaris2.8) ac_cv_have_broken_isfinite=yes ;; + *-solaris2.9) ac_cv_have_broken_isfinite=yes ;; esac if test "x$ac_cv_have_broken_isfinite" = "xno"; then @@ -364,10 +366,12 @@ AC_FULL_IEEE CONFIGURE_PART(Resolve Portability Issues) +CHECK_FOR_WORKING_MS_ASYNC + dnl Do we need getopt_long build_getopt=no -RRD_GETOPT_LONG="#" +RRD_GETOPT_LONG="LIBC_HAS_GETOPT_LONG" AC_CHECK_FUNC(getopt_long,[],[ RRD_GETOPT_LONG="getopt_long" build_getopt=yes @@ -468,6 +472,24 @@ 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_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 + ] + ) +]) +AM_CONDITIONAL(BUILD_LIBDBI,[test $have_libdbi != no]) AM_CONDITIONAL(BUILD_RRDCGI,[test $enable_rrdcgi != no]) @@ -506,7 +528,7 @@ AC_PATH_PROG(POD2MAN, pod2man, no) AC_PATH_PROG(POD2HTML, pod2html, no) -AC_ARG_ENABLE(perl,[ --disable-perl do not build the perl modules], +AC_ARG_ENABLE(perl,AS_HELP_STRING([--disable-perl],[do not build the perl modules]), [],[enable_perl=yes]) @@ -555,12 +577,7 @@ 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, -[ --enable-perl-site-install by default the rrdtool perl modules are installed - together with rrdtool in $prefix/lib/perl. You have to - put a 'use lib qw($prefix/lib/perl)' into your scripts - when you want to use them. When you set this option - the perl modules will get installed wherever - your perl setup thinks it is best.], +AS_HELP_STRING([--enable-perl-site-install],[by default the rrdtool perl modules are installed together with rrdtool in $prefix/lib/perl. You have to put a 'use lib qw($prefix/lib/perl)' into your scripts when you want to use them. When you set this option the perl modules will get installed wherever your perl setup thinks it is best.]), [PERL_MAKE_OPTIONS=],[]) if test ! -z "$PERLCC"; then @@ -595,7 +612,7 @@ AC_SUBST(PERL_VERSION) dnl Check for Ruby. AC_PATH_PROG(RUBY, ruby, no) -AC_ARG_ENABLE(ruby,[ --disable-ruby do not build the ruby modules], +AC_ARG_ENABLE(ruby,AS_HELP_STRING([--disable-ruby],[do not build the ruby modules]), [],[enable_ruby=yes]) AC_MSG_CHECKING(if ruby modules can be built) @@ -615,10 +632,7 @@ 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 your $: variable - for ruby to find the RRD.so file.], +AS_HELP_STRING([--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 your $: variable for ruby to find the RRD.so file.]), [RUBY_MAKE_OPTIONS=],[RUBY_MAKE_OPTIONS="sitedir=$langpref/lib/ruby"]) @@ -636,50 +650,147 @@ 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], +AC_ARG_ENABLE(lua,AS_HELP_STRING([--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) +if test "$LUA" = "no" -o "$enable_lua" = "no"; then + enable_lua=no 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 + AC_MSG_CHECKING(for lua >= 5.0) + read LUA_MAJOR LUA_MINOR LUA_POINT <&1 | cut -f2 -d' ' | sed -e 's/\./ /g') +LUA_EOF + if test 0$LUA_MAJOR -lt 5; then + AC_MSG_RESULT([no, version found is $LUA_MAJOR.$LUA_MINOR]) + else + AC_MSG_RESULT([$LUA_MAJOR.$LUA_MINOR found]) + lua_vdot=$LUA_MAJOR.$LUA_MINOR + lua_vndot=$LUA_MAJOR$LUA_MINOR + lua_version=$LUA_MAJOR.$LUA_MINOR.$LUA_POINT + AC_CHECK_HEADERS(lua$lua_vndot/lua.h, + [AC_CHECK_HEADERS(lua$lua_vndot/lualib.h, + [AC_CHECK_HEADER(lua$lua_vndot/lauxlib.h, + [lua_headerdir=lua$lua_vndot], + [])], + [])], + [AC_CHECK_HEADERS(lua$lua_vdot/lua.h, + [AC_CHECK_HEADERS(lua$lua_vdot/lualib.h, + [AC_CHECK_HEADER(lua$lua_vdot/lauxlib.h, + [lua_headerdir=lua$lua_vdot], + [])], + [])], + [AC_CHECK_HEADERS(lua.h, + [AC_CHECK_HEADERS(lualib.h, + [AC_CHECK_HEADER(lauxlib.h, + [lua_headerdir=""], + [lua_headerdir="no"])], + [])], + [])])]) + + if test "$lua_headerdir" = "no"; then + enable_lua=no + else + COMP_LUA=lua 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 + if test "$COMP_LUA" != "lua"; then + enable_lua=no + AC_MSG_WARN([Lua $lua_vdot found but not lua.h, lualib.h and lauxlib.h! Please install the -dev packages for Lua $lua_vdot]) + else + # OK, headers found, let's check the libraries (LIBS is not used) + LIBS= + lua_havelib=no + LUA_HAVE_COMPAT51=DONT_HAVE_COMPAT51 + AC_SEARCH_LIBS(lua_call, lua$lua_vdot lua$lua_vndot lua, + [AC_SEARCH_LIBS(luaL_register, lua$lua_vdot lua$lua_vndot lua, + [lua_havelib=LUA$lua_vndot], + [AC_SEARCH_LIBS(luaL_module, lualib$lua_vndot lualib$lua_vdot lualib, + [lua_havelib=$lua_vndot; $LUA -l compat-5.1 2>/dev/null; + test "$?" = "0" && LUA_HAVE_COMPAT51=HAVE_COMPAT51], + [AC_SEARCH_LIBS(luaL_openlib, lualib$lua_vdot lualib$lua_vndot lualib, + [lua_havelib=$lua_vndot], + [COMP_LUA=], [-lm])], [-lm])], [-lm])], + [COMP_LUA=], [-lm]) + lua_libs=$LIBS + LIBS= + + # Options to pass when configuring Lua module + if test "$lua_havelib" != "no"; then + # OK, headers and libs found. Try to set lua flags + # and modules installation dirs with pkg-config + if test "$PKGCONFIG" != "no"; then + if test "$lua_vndot" = "50"; then + lua_pkg_prefix=lualib + else + lua_pkg_prefix=lua + fi + # try with dot, without dot and finally without version + for f in $lua_pkg_prefix$lua_vdot $lua_pkg_prefix$lua_vndot $lua_pkg_prefix; do + lua_exec_prefix=`$PKGCONFIG --variable=prefix $f 2>/dev/null` + # same binaries? + if test "$lua_exec_prefix/bin/lua" = "$LUA"; then + # OK, found CFLAGS. Get Lua LFLAGS and modules install dir + LUA_CFLAGS=`$PKGCONFIG --cflags $f 2>/dev/null` + LUA_LFLAGS=`$PKGCONFIG --libs $f 2>/dev/null` + LUA_INSTALL_CMOD=`$PKGCONFIG --variable=INSTALL_CMOD $f 2>/dev/null` + LUA_INSTALL_LMOD=`$PKGCONFIG --variable=INSTALL_LMOD $f 2>/dev/null` + break + fi + done + 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"]) + LUA_RRD_LIBDIR="$langpref/lib/lua/$lua_vdot" + # if lua 5.0 can't find compat-5.1, force installation of + # compat-5.1.lua together with RRDtool. + if test "$lua_vdot" = "5.0" -a "$LUA_HAVE_COMPAT51" != "HAVE_COMPAT51"; then + lua_need_compat51=1 + LUA_INSTALL_LMOD="$LUA_RRD_LIBDIR" + fi -AC_SUBST(LUA_MAKE_OPTIONS) -AC_SUBST(LUA) -AC_SUBST(COMP_LUA) + # if not set with pkg-config, use default values in src packages compat-5.1, lua 5.1 + if test "$LUA_CFLAGS" = ""; then + AC_MSG_WARN(Setting Lua include and lib flags to defaults in compat-5.1 and lua 5.1 sources) + LUA_CFLAGS="-I/usr/local/include -I/usr/local/include/lua -I/usr/local/include/lua/$lua_vdot" + LUA_LFLAGS="-L/usr/local/lib -L/usr/local/lib/lua -L/usr/local/lib/lua/$lua_vdot $lua_libs" + LUA_INSTALL_CMOD="/usr/local/lib/lua/$lua_vdot" + fi + dnl pass additional lua options + dnl if lua-site-install is not set, overwrite LUA_INSTALL_CMOD already + dnl found and install together with RRDtool, under $langpref. + AC_ARG_ENABLE(lua-site-install, + AS_HELP_STRING([--enable-lua-site-install],[by default the lua module is installed together with rrdtool in $prefix/lib/lua/$lua_version. You have to add $prefix/lib/lua/$lua_version/?.so to package.cpath for lua to find 'rrd.so'. For lua 5.0 you may also need to change LUA_PATH to the same dir, to require 'compat-5.1'. When you set this option the lua modules will get installed wherever your Lua setup thinks it is best. WARNING: if you set this option, system lua modules compat-5.1.lua and rrd.so, if any, may be overwritten.]), + [], + [LUA_INSTALL_CMOD="$LUA_RRD_LIBDIR"; LUA_INSTALL_LMOD="$LUA_RRD_LIBDIR"]) + + LUA_DEFINES="-DLUA$lua_vndot -D$LUA_HAVE_COMPAT51" + AC_SUBST(LUA) + AC_SUBST(COMP_LUA) + AC_SUBST(LUA_INSTALL_CMOD) + AC_SUBST(LUA_INSTALL_LMOD) + AC_SUBST(LUA_CFLAGS) + AC_SUBST(LUA_LFLAGS) + AC_SUBST(LUA_DEFINES) + else + enable_lua=no + AC_MSG_RESULT([Lua headers found but not the libraries! Please reinstall the dev packages for Lua $LUA_MAJOR.$LUA_MINOR]) + fi + fi + fi +fi +dnl If Lua 5.0, we need compat-5.1. Add ours unless already +dnl integrated as in Debian/Ubuntu 5.0 -dev packages. +AM_CONDITIONAL(LUA_NEED_OUR_COMPAT51, + [test "$lua_vdot" = "5.0" -a "$LUA_HAVE_COMPAT51" != "HAVE_COMPAT51"]) +AM_CONDITIONAL(LUA_SITE_CINSTALL, [test "$LUA_INSTALL_CMOD" != "$LUA_RRD_LIBDIR"]) +AM_CONDITIONAL(LUA_SITE_LINSTALL, [test "$LUA_INSTALL_LMOD" != "$LUA_RRD_LIBDIR"]) +AM_CONDITIONAL(LUA50, [test "$lua_vndot" = "50"]) +AM_CONDITIONAL(BUILD_LUA, [test "$enable_lua" = "yes"]) enable_tcl_site=no -AC_ARG_ENABLE(tcl,[ --disable-tcl do not build the tcl modules], +AC_ARG_ENABLE(tcl,AS_HELP_STRING([--disable-tcl],[do not build the tcl modules]), [],[enable_tcl=yes]) if test "$enable_tcl" = "yes"; then @@ -708,7 +819,7 @@ if test "$enable_tcl" = "yes"; 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], + AC_ARG_ENABLE(tcl,AS_HELP_STRING([--enable-tcl-site],[install the tcl extension in the tcl tree]), [],[enable_tcl_site=yes]) fi @@ -728,7 +839,7 @@ 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], +AC_ARG_ENABLE(python,AS_HELP_STRING([--disable-python],[do not build the python modules]), [],[enable_python=yes]) if test "$enable_python" = "yes"; then @@ -764,14 +875,17 @@ AC_CONFIG_FILES([examples/minmax.pl]) AC_CONFIG_FILES([examples/4charts.pl]) AC_CONFIG_FILES([examples/perftest.pl]) 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([src/Makefile]) -AC_CONFIG_FILES([src/librrd.sym]) +AC_CONFIG_FILES([src/librrd.sym.in]) +AC_CONFIG_FILES([src/librrd.pc]) AC_CONFIG_FILES([bindings/Makefile]) AC_CONFIG_FILES([bindings/tcl/Makefile]) AC_CONFIG_FILES([bindings/tcl/ifOctets.tcl]) AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([bindings/lua/Makefile]) AC_CONFIG_COMMANDS([default],[[ chmod +x examples/*.pl]],[[]]) AC_OUTPUT @@ -804,14 +918,21 @@ 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 " Build Lua Bindings: $enable_lua" +if test "$enable_lua" = "yes"; then echo " Lua Binary: $LUA" -echo " Lua Options: $LUA_MAKE_OPTIONS" +echo " Lua Version: $lua_version" +echo " Lua C-modules dir: $LUA_INSTALL_CMOD" +if test "$lua_need_compat51" = "1"; then +echo " Lua Lua-modules dir: $LUA_INSTALL_LMOD" +fi +fi 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 " With libDBI: $have_libdbi" echo echo " Libraries: $ALL_LIBS" echo