X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=configure.ac;h=a2ece2b988a6e48b22cc4190434eba347248397d;hp=451502cd2939e59a61d8f192aa88e812ea67fac2;hb=22129bb15a8ad204cf8a5e88e8834ec0b51908c0;hpb=ac630adec930653637199258efd99024d49325c7 diff --git a/configure.ac b/configure.ac index 451502c..a2ece2b 100644 --- a/configure.ac +++ b/configure.ac @@ -138,6 +138,21 @@ AC_PROG_LIBTOOL dnl Try to detect/use GNU features CFLAGS="$CFLAGS -D_GNU_SOURCE" +dnl check for -Werror separatly +dnl (quite a few autotool checks don't work with -Werror; also, the +dnl check for -Werror fails after checking and adding the other flags) +AC_CACHE_CHECK([if gcc likes the -Werror flag], rd_cv_gcc_flag__Werror, + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[]], [[return 0 ]])], + [rd_cv_gcc_flag__Werror="yes"], + [rd_cv_gcc_flag__Werror="no"])]) +if test "x$rd_cv_gcc_flag__Werror" = "xyes"; then + WERROR="-Werror" +else + WERROR="" +fi +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 @@ -532,10 +547,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, @@ -597,14 +613,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="'$(DESTDIR)'"$prefix/lib/ruby"]) +[RUBY_MAKE_OPTIONS=],[RUBY_MAKE_OPTIONS="sitedir=$langpref/lib/ruby"]) AC_ARG_WITH(ruby-options, @@ -618,6 +633,150 @@ 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]) + +COMP_LUA= +if test "$LUA" = "no" -o "$enable_lua" = "no"; then + enable_lua=no +else + 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]) + vdot=$LUA_MAJOR.$LUA_MINOR + vndot=$LUA_MAJOR$LUA_MINOR + lua_version=$LUA_MAJOR.$LUA_MINOR.$LUA_POINT + AC_CHECK_HEADERS(lua$vndot/lua.h, + [AC_CHECK_HEADERS(lua$vndot/lualib.h, + [AC_CHECK_HEADER(lua$vndot/lauxlib.h, + [lua_headerdir=lua$vndot], + [])], + [])], + [AC_CHECK_HEADERS(lua$vdot/lua.h, + [AC_CHECK_HEADERS(lua$vdot/lualib.h, + [AC_CHECK_HEADER(lua$vdot/lauxlib.h, + [lua_headerdir=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 + + if test "$COMP_LUA" != "lua"; then + enable_lua=no + AC_MSG_WARN([Lua $vdot found but not lua.h, lualib.h and lauxlib.h! Please install the -dev packages for 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$vdot lua$vndot lua, + [AC_SEARCH_LIBS(luaL_register, lua$vdot lua$vndot lua, + [lua_havelib=LUA$vndot], + [AC_SEARCH_LIBS(luaL_module, lualib$vndot lualib$vdot lualib, + [lua_havelib=$vndot ; + AC_CHECK_HEADERS(lua$vndot/compat-5.1.h, + [LUA_HAVE_COMPAT51=HAVE_COMPAT51], [], + [[#include + #include ]])], + [AC_SEARCH_LIBS(luaL_openlib, lualib$vdot lualib$vndot lualib, + [lua_havelib=$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 include, lib and C installation dirs with pkg-config + if test "$PKGCONFIG" != "no"; then + if test "$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$vdot $lua_pkg_prefix$vndot $lua_pkg_prefix; do + lua_cflags=$($PKGCONFIG --cflags $f 2>/dev/null) + if test "$lua_cflags" != ""; then + # OK, found CFLAGS. Get Lua LFLAGS and lib install dir + LUA_CFLAGS=$lua_cflags + LUA_LFLAGS=$($PKGCONFIG --libs $f) + LUA_INSTALL_CMOD=$($PKGCONFIG --variable=INSTALL_CMOD $f) + break + fi + done + fi + + # if not set with pkg-config, use default values in src package + if test "$LUA_CFLAGS" = ""; then + AC_MSG_WARN(Setting Lua include and lib dirs to defaults in src package) + LUA_CFLAGS="-I/usr/local/include -I/usr/local/include/lua -I/usr/local/include/lua/$vdot" + LUA_LFLAGS="-L/usr/local/lib -L/usr/local/lib/lua -L/usr/local/lib/lua/$vdot $lua_libs" + LUA_INSTALL_CMOD="/usr/local/lib/lua/$vdot" + fi + LUA_SRCS=rrdlua.c + LUA_OBJS=rrdlua.o + # If Lua 5.0, we need compat-5.1. Add ours unless already + # integrated as in Debian/Ubuntu 5.0 -dev packages. + if test "$vdot" = "5.0" -a "$LUA_HAVE_COMPAT51" != "HAVE_COMPAT51"; then + LUA_SRCS="rrdlua.c compat-5.1r5/compat-5.1.c" + LUA_OBJS="rrdlua.o compat-5.1r5/compat-5.1.o" + fi + + dnl pass additional lua options + # if lua-site-install is not set, overwrite LUA_INSTALL_CMOD already + # found and install together with RRDtool, under $langpref. + LUA_RRD_LANGPREF="$langpref/lib/lua" + 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_INSTALL_CMOD="$LUA_RRD_LANGPREF/$vdot"]) + + AC_SUBST(LUA) + AC_SUBST(COMP_LUA) + AC_SUBST(LUA_MAJOR) + AC_SUBST(LUA_MINOR) + AC_SUBST(LUA_POINT) + AC_SUBST(LUA_RRD_LANGPREF) + AC_SUBST(LUA_INSTALL_CMOD) + AC_SUBST(LUA_HAVE_COMPAT51) + AC_SUBST(LUA_CFLAGS) + AC_SUBST(LUA_LFLAGS) + AC_SUBST(LUA_SRCS) + AC_SUBST(LUA_OBJS) + 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 + enable_tcl_site=no @@ -710,10 +869,12 @@ 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.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.lua]) AC_CONFIG_COMMANDS([default],[[ chmod +x examples/*.pl]],[[]]) AC_OUTPUT @@ -746,6 +907,10 @@ echo " Perl Options: $PERL_MAKE_OPTIONS" echo " Ruby Modules: $COMP_RUBY" echo " Ruby Binary: $RUBY" echo " Ruby Options: $RUBY_MAKE_OPTIONS" +echo " Build Lua Bindings: $enable_lua" +echo " Lua Binary: $LUA" +echo " Lua Version: $lua_version" +echo " Lua module dir: $LUA_INSTALL_CMOD" echo " Build Tcl Bindings: $enable_tcl" echo " Build Python Bindings: $enable_python" echo " Build rrdcgi: $enable_rrdcgi"