Code

changed Error: by CRITICAL -
[nagiosplug.git] / configure.in
index 912f43eded2350a4f1052f431d3d07c3219c4e78..17bc5abb869514039aef3d0a2c5ca3d5f531f461 100644 (file)
@@ -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.0-alpha3)
 AC_CONFIG_SRCDIR(Helper.pm)
 AM_INIT_AUTOMAKE
-AC_CONFIG_HEADER(config.h)
+AM_CONFIG_HEADER(config.h)
 AC_CANONICAL_HOST
 
 RELEASE=1
@@ -33,7 +33,7 @@ jm_PREREQ_ERROR
 AC_FUNC_ERROR_AT_LINE
 
 AC_CONFIG_LIBOBJ_DIR(lib)
-AC_FUNC_GETLOADAVG($topdir/lib)
+AC_FUNC_GETLOADAVG([lib])
 
 ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD])
 dnl AM_WITH_REGEX
@@ -251,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
@@ -420,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,
@@ -449,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])
@@ -467,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 <sys/param.h>
+#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 <stdlib.h>])
@@ -555,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 <stdarg.h>
-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 <stdarg.h>
+    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)
@@ -675,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]"
@@ -736,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])
 
@@ -778,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])
@@ -788,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])
@@ -800,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?
@@ -843,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",
@@ -870,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])
@@ -886,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
@@ -951,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]),
@@ -1284,20 +1321,17 @@ 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
@@ -1317,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
@@ -1345,9 +1378,98 @@ 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 <sys/param.h>
+#endif
+])
+AC_CHECK_HEADERS([sys/stat.h sys/param.h])
+AC_CHECK_DECLS([swapctl],,,[
+               #include <unistd.h>
+               #include <sys/types.h>
+              #include <sys/param.h>
+               #include <sys/stat.h>
+               #include <sys/swap.h>
+               ])
+AC_CHECK_TYPES([swaptbl_t, swapent_t],,,[
+               #include <sys/types.h>
+              #include <sys/param.h>
+               #include <sys/stat.h>
+               #include <sys/swap.h>
+               ])
+AC_CHECK_MEMBERS([struct swapent.se_nblks],,,[
+               #include <unistd.h>
+               #include <sys/types.h>
+              #include <sys/param.h>
+               #include <sys/stat.h>
+               #include <sys/swap.h>
+               ])
+
+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
@@ -1404,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 )
 
@@ -1412,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])