X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=configure.in;h=9f2d628c12b569f77367bb4a19793c1175aa0ffe;hb=5dc0b02ccc2b549d5ee7c8c7249723af9bd1cb74;hp=09e8e3504227911c911f4832ef98633e04db630e;hpb=073e0fa95c6dd06a0a12634fb9e785d3aa2d2fc1;p=nagiosplug.git diff --git a/configure.in b/configure.in index 09e8e35..9f2d628 100644 --- a/configure.in +++ b/configure.in @@ -1,10 +1,10 @@ dnl Process this file with autoconf to produce a configure script. AC_REVISION ($Revision$) AC_PREREQ(2.50) -AC_INIT(nagios-plugins,1.3.99) +AC_INIT(nagios-plugins,1.4.0alpha2) AC_CONFIG_SRCDIR(Helper.pm) AM_INIT_AUTOMAKE -AM_CONFIG_HEADER(plugins/config.h) +AM_CONFIG_HEADER(config.h) AC_CANONICAL_HOST RELEASE=1 @@ -27,7 +27,13 @@ AC_MINIX AC_PROG_MAKE_SET AC_PROG_AWK -AC_FUNC_GETLOADAVG($topdir/lib) +AC_FUNC_MALLOC +AC_FUNC_REALLOC +jm_PREREQ_ERROR +AC_FUNC_ERROR_AT_LINE + +AC_CONFIG_LIBOBJ_DIR(lib) +AC_FUNC_GETLOADAVG([lib]) ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD]) dnl AM_WITH_REGEX @@ -245,7 +251,7 @@ else AC_MSG_WARN([Skipping mysql plugin]) AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).]) fi -CPPFLAGS="$_SAVEDCPPFLAGS" +CPPFLAGS="$_SAVEDCPPFLAGS $MYSQLINCLUDE" LIBS="$_SAVEDLIBS" dnl Check for OpenSSL location @@ -414,7 +420,9 @@ fi dnl Check for OpenSSL header files unset FOUNDINCLUDE _SAVEDCPPFLAGS="$CPPFLAGS" -CPPFLAGS="$CPPFLAGS -I$OPENSSL/include" +if test "$OPENSSL" != "/usr"; then + CPPFLAGS="$CPPFLAGS -I$OPENSSL/include" +fi AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h, SSLINCLUDE="-I$OPENSSL/include" FOUNDINCLUDE=yes, @@ -443,7 +451,7 @@ dnl test headers and libs to decide whether check_http should use SSL if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then if test "$ac_cv_lib_ssl_main" = "yes"; then if test "$FOUNDINCLUDE" = "yes"; then - check_tcp_ssl="check_simap check_spop" + check_tcp_ssl="check_simap check_spop check_jabber check_nntps" AC_SUBST(check_tcp_ssl) AC_SUBST(SSLLIBS) AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found]) @@ -461,7 +469,13 @@ AC_HEADER_TIME AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(signal.h strings.h string.h syslog.h uio.h errno.h regex.h sys/types.h sys/time.h sys/socket.h sys/loadavg.h) AC_CHECK_HEADERS(features.h stdarg.h sys/unistd.h ctype.h stdlib.h) -AC_CHECK_HEADERS(limits.h sys/param.h sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h fcntl.h sys/statfs.h sys/dustat.h sys/statvfs.h) +AC_CHECK_HEADERS(limits.h sys/param.h) +AC_CHECK_HEADERS([sys/mount.h],[],[],[ +#ifdef HAVE_SYS_PARAM_H +#include +#endif +]) +AC_CHECK_HEADERS(sys/vfs.h sys/fs/s5param.h sys/filsys.h fcntl.h sys/statfs.h sys/dustat.h sys/statvfs.h) # glibc 2.3.2 stdlib.h does not define HUGE_VAL (see man strtod) AC_MSG_CHECKING([for HUGE_VAL in ]) @@ -549,12 +563,22 @@ if test x"$ac_cv_compiler_supports_ll" = x"yes"; then AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Define if compiler support long long]) fi -AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE_VA_COPY,[ +AC_CACHE_CHECK([for va_copy],ac_cv_HAVE_VA_COPY,[ AC_TRY_LINK([#include -va_list ap1,ap2;], [__va_copy(ap1,ap2);], -ac_cv_HAVE_VA_COPY=yes,ac_cv_HAVE_VA_COPY=no)]) +va_list ap1,ap2;], [va_copy(ap1,ap2);], +ac_cv_HAVE_VA_COPY=yes, +ac_cv_HAVE_VA_COPY=no)]) if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then - AC_DEFINE(HAVE_VA_COPY,1,[Define if system has va_copy]) + AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available]) +else + AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE___VA_COPY,[ + AC_TRY_LINK([#include + va_list ap1,ap2;], [__va_copy(ap1,ap2);], + ac_cv_HAVE___VA_COPY=yes, + ac_cv_HAVE___VA_COPY=no)]) + if test x"$ac_cv_HAVE___VA_COPY" = x"yes"; then + AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available]) + fi fi AC_CHECK_FUNCS(vsnprintf snprintf asprintf vasprintf) @@ -669,7 +693,8 @@ then dnl SunOS 4.1.3: dnl F UID PID PPID CP PRI NI SZ RSS WCHAN STAT TT TIME COMMAND -elif ps -laxnwww 2>/dev/null | \ +dnl Need the head -1 otherwise test will work because arguments are found +elif ps -laxnwww 2>/dev/null | head -1 | \ egrep -i ["^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND"] >/dev/null then ac_cv_ps_varlist="[&procuid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]" @@ -730,12 +755,15 @@ then ac_cv_ps_cols=7 AC_MSG_RESULT([$ac_cv_ps_command - with no RSS]) +dnl Solaris 2.6 elif ps -Ao 's comm vsz rss uid user ppid args' 2>/dev/null | \ egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null then ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]" ac_cv_ps_command="$PATH_TO_PS -Ao 's uid ppid vsz rss pcpu comm args'" - ac_cv_ps_format="%s %d %d %d %d %f %s %n" + # There must be no space between the %s and %n due to a wierd problem in sscanf where + # it will return %n as longer than the line length + ac_cv_ps_format="%s %d %d %d %d %f %s%n" ac_cv_ps_cols=8 AC_MSG_RESULT([$ac_cv_ps_command]) @@ -772,7 +800,7 @@ elif ps -el 2>/dev/null | \ egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null then ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&pos,procprog]" - ac_cv_ps_command="$PATH_TO_PS -el" + ac_cv_ps_command="$PATH_TO_PS -el (IRIX 53)" ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %d %d %*s %*s %*s %n%s" ac_cv_ps_cols=7 AC_MSG_RESULT([$ac_cv_ps_command]) @@ -782,7 +810,7 @@ elif ps -el 2>/dev/null | \ egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +ADDR +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null then ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]" - ac_cv_ps_command="$PATH_TO_PS -el" + ac_cv_ps_command="$PATH_TO_PS -el (IRIX 63)" ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s" ac_cv_ps_cols=5 AC_MSG_RESULT([$ac_cv_ps_command]) @@ -794,9 +822,9 @@ elif ps -el 2>/dev/null | \ egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null then ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]" - ac_cv_ps_command="$PATH_TO_PS -el" + ac_cv_ps_command="$PATH_TO_PS -el (AIX 4.1 and HP-UX)" ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s" - ac_cv_ps_cols=7 + ac_cv_ps_cols=5 AC_MSG_RESULT([$ac_cv_ps_command]) dnl AIX? @@ -837,7 +865,7 @@ else AC_MSG_WARN([unable to find usable ps syntax - check_procs and check_nagios will not be compiled]) fi -if test -n $ac_cv_ps_varlist ; then +if test -n "$ac_cv_ps_varlist" ; then AC_DEFINE_UNQUOTED(PS_VARLIST,$ac_cv_ps_varlist, [Variable list for sscanf of 'ps' output]) AC_DEFINE_UNQUOTED(PS_COMMAND,"$ac_cv_ps_command", @@ -864,6 +892,7 @@ AC_ARG_WITH(ping_command, AC_MSG_CHECKING(for ICMP ping syntax) ac_cv_ping_packets_first=no +ac_cv_ping_has_timeout=no if test -n "$with_ping_command" then AC_MSG_RESULT([(command-line) $with_ping_command]) @@ -880,6 +909,14 @@ then ac_cv_ping_packets_first=yes AC_MSG_RESULT([$with_ping_command]) +elif $PATH_TO_PING -n -U -w 10 -c 1 127.0.0.1 2>/dev/null | \ + egrep -i "^round-trip|^rtt" >/dev/null +then + with_ping_command="$PATH_TO_PING -n -U -w %d -c %d %s" + ac_cv_ping_packets_first=yes + ac_cv_ping_has_timeout=yes + AC_MSG_RESULT([$with_ping_command]) + elif $PATH_TO_PING -n -U -c 1 127.0.0.1 2>/dev/null | \ egrep -i "^round-trip|^rtt" >/dev/null then @@ -945,6 +982,12 @@ then [Define if packet count must precede host]) fi +if test "x$ac_cv_ping_has_timeout" != "xno" +then + AC_DEFINE(PING_HAS_TIMEOUT,1, + [Define if ping has its own timeout option that should be set]) +fi + AC_ARG_WITH(ping6_command, ACX_HELP_STRING([--with-ping6-command=SYNTAX], [sets syntax for ICMPv6 ping]), @@ -1263,23 +1306,9 @@ dnl SWAP info required is amount allocated/available and amount free dnl The plugin works through all the swap devices and adds up the total swap dnl available. AC_PATH_PROG(PATH_TO_SWAP,swap) -AC_PATH_PROG(PATH_TO_SWAPINFO,swapinfo) - -dnl dunno why this does not work below - use hack (kbd) -dnl fine on linux, broken on solaris -dnl if /bin/test -e "/proc/meminfo" -AC_MSG_CHECKING(for how to check memory) -if [cat /proc/meminfo > /dev/null 2>&1] -then - AC_MSG_RESULT([found /proc/meminfo]) - AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo]) - AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes]) - EXTRAS="$EXTRAS check_swap" -fi - -if ( test -n "$PATH_TO_SWAP" || test -n "$PATH_TO_SWAPINFO" ) +if (test -n "$PATH_TO_SWAP") then - +AC_MSG_CHECKING([for $PATH_TO_SWAP format]) if [$PATH_TO_SWAP -l 2>&1 >/dev/null] then ac_cv_have_swap=yes @@ -1292,22 +1321,26 @@ then ac_cv_swap_conv=2048 AC_MSG_RESULT([using IRIX format swap]) - elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^swapfile +dev +swaplo +blocks +free" >/dev/null] - then - ac_cv_swap_format=["%*s %*[0-9,-] %*d %d %d"] - ac_cv_swap_conv=2048 - AC_MSG_RESULT([using Solaris format swap]) - elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null] then ac_cv_swap_format=["%*s %*[0-9,-] %*d %d %d"] ac_cv_swap_conv=2048 AC_MSG_RESULT([using Unixware format swap]) - + else + dnl if we don't know what format swap's output is + dnl we might as well pretend we didn't see it + ac_cv_have_swap="" + ac_cv_swap_command="" fi - EXTRAS="$EXTRAS check_swap" +fi +dnl end if for PATH_TO_SWAP +fi -elif [$PATH_TO_SWAPINFO -k 2>&1 | egrep -i "^Device" >/dev/null] +AC_PATH_PROG(PATH_TO_SWAPINFO,swapinfo) +if (test -n "$PATH_TO_SWAPINFO") +then +AC_MSG_CHECKING([for $PATH_TO_SWAPINFO format]) +if [$PATH_TO_SWAPINFO -k 2>&1 | egrep -i "^Device" >/dev/null] then ac_cv_have_swap=yes ac_cv_swap_command="$PATH_TO_SWAPINFO -k" @@ -1318,7 +1351,6 @@ then ac_cv_swap_conv=1024 AC_MSG_RESULT([using FreeBSD format swapinfo]) fi - EXTRAS="$EXTRAS check_swap" elif [$PATH_TO_SWAPINFO -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null] then @@ -1328,10 +1360,116 @@ then ac_cv_swap_conv=1024 AC_MSG_RESULT([using HP-UX format swapinfo]) fi +dnl end if for PATH_TO_SWAPINFO +fi + +AC_PATH_PROG(PATH_TO_LSPS,lsps) +if (test -n "$PATH_TO_LSPS") +then +AC_MSG_CHECKING([for $PATH_TO_LSPS format]) +if [$PATH_TO_LSPS -a 2>/dev/null | egrep -i "^Page Space" > /dev/null] +then + ac_cv_have_swap=yes + ac_cv_swap_command="$PATH_TO_LSPS -a" + ac_cv_swap_format=["%*s %*s %*s %d%*s %d %*s"] + ac_cv_swap_conv=1 + AC_MSG_RESULT([using AIX lsps]) +fi +dnl end if for PATH_TO_SWAPINFO +fi + +dnl +dnl test for swapctl system call, both the 2-arg and 3-arg variants +dnl fwict, the 2-arg is an SVR4 standard, whereas the 3-arg is shared +dnl in the various BSD's +dnl + +AC_CHECK_HEADERS([sys/swap.h], [], [], [ +#ifdef HAVE_SYS_PARAM_H +#include +#endif +]) +AC_CHECK_HEADERS([sys/stat.h sys/param.h]) +AC_CHECK_DECLS([swapctl],,,[ + #include + #include + #include + #include + #include + ]) +AC_CHECK_TYPES([swaptbl_t, swapent_t],,,[ + #include + #include + #include + #include + ]) +AC_CHECK_MEMBERS([struct swapent.se_nblks],,,[ + #include + #include + #include + #include + #include + ]) + +if test "$ac_cv_have_decl_swapctl" = "yes"; +then + EXTRAS="$EXTRAS check_swap" + AC_MSG_CHECKING([for 2-arg (SVR4) swapctl]) + if test "$ac_cv_type_swaptbl_t" = "yes" -a \ + "$ac_cv_type_swapent_t" = "yes"; + then + AC_MSG_RESULT([yes]) + ac_cv_check_swap_swapctl_svr4="1"; + AC_DEFINE([CHECK_SWAP_SWAPCTL_SVR4],1, + [Define if 2-argument SVR4 swapctl exists]) + else + AC_MSG_RESULT([no]) + AC_MSG_CHECKING([for 3-arg (*BSD) swapctl]) + if test "$ac_cv_member_struct_swapent_se_nblks" = "yes"; + then + AC_MSG_RESULT([yes]) + AC_DEFINE([CHECK_SWAP_SWAPCTL_BSD],1, + [Define if 3-argument BSD swapctl exists]) + else + AC_MSG_RESULT([no]) + fi + fi + AC_MSG_CHECKING([for whether swapctl uses blocks or pages]) + if test "$ac_cv_check_swap_swapctl_svr4" = "1"; + then + dnl + dnl the SVR4 spec returns values in pages + dnl + AC_MSG_RESULT([page]) + AC_CHECK_DECLS([sysconf]) + AC_MSG_CHECKING([for system page size]) + if test "$ac_cv_have_decl_sysconf" = "yes"; + then + AC_MSG_RESULT([determined by sysconf(3)]) + ac_cv_swap_conv="(1048576/sysconf(_SC_PAGESIZE))" + else + AC_MSG_WARN([don't know. guessing 4096k]) + ac_cv_swap_conv=256 + fi + else + dnl + dnl the BSD spec returns values in blocks + dnl + AC_MSG_RESULT([blocks (assuming 512b)]) + ac_cv_swap_conv=2048 + fi + AC_DEFINE_UNQUOTED(SWAP_CONVERSION,$ac_cv_swap_conv, + [Conversion factor to MB]) +fi +dnl +dnl end tests for the swapctl system calls +dnl + if test "x$ac_cv_have_swap" != "x" then AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found]) + EXTRAS="$EXTRAS check_swap" fi if test "x$ac_cv_swap_command" != "x" then @@ -1343,8 +1481,19 @@ then [Conversion factor to MB]) fi -dnl End of if SWAP -fi +dnl dunno why this does not work below - use hack (kbd) +dnl fine on linux, broken on solaris +dnl if /bin/test -e "/proc/meminfo" +AC_MSG_CHECKING([for /proc/meminfo]) +if [cat /proc/meminfo > /dev/null 2>&1] +then + AC_MSG_RESULT([found /proc/meminfo]) + AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo]) + AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes]) + EXTRAS="$EXTRAS check_swap" +else + AC_MSG_RESULT([no]) +fi AC_PATH_PROG(PATH_TO_DIG,dig) AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present]) @@ -1377,7 +1526,7 @@ AC_SUBST(EXTRA_NETOBJS) AC_SUBST(DEPLIBS) AM_GNU_GETTEXT_VERSION(0.11.5) -AM_GNU_GETTEXT +AM_GNU_GETTEXT([no-libtool], [need-ngettext]) AC_OUTPUT(Makefile lib/Makefile plugins/Makefile plugins-scripts/Makefile plugins-scripts/subst plugins-scripts/utils.pm plugins-scripts/utils.sh command.cfg test.pl pkg/solaris/pkginfo intl/Makefile po/Makefile.in ) @@ -1385,7 +1534,6 @@ ACX_FEATURE([with],[cgiurl]) ACX_FEATURE([with],[nagios-user]) ACX_FEATURE([with],[nagios-group]) ACX_FEATURE([with],[trusted-path]) -ACX_FEATURE([with],[df-command]) ACX_FEATURE([with],[ping-command]) ACX_FEATURE([with],[ping6-command]) ACX_FEATURE([with],[lwres])