diff --git a/configure.in b/configure.in
index 8c196352ecd08026c618fc8995b606043a2ec4e7..6a0418523817c344d978211798854d4633dc0113 100644 (file)
--- a/configure.in
+++ b/configure.in
dnl Process this file with autoconf to produce a configure script.
AC_REVISION ($Revision$)
AC_PREREQ(2.58)
-AC_INIT(nagios-plugins,1.4-beta1)
-AC_CONFIG_SRCDIR(Helper.pm)
+AC_INIT(nagios-plugins,1.4.2)
+AC_CONFIG_SRCDIR(NPTest.pm)
AM_INIT_AUTOMAKE
AM_CONFIG_HEADER(config.h)
AC_CANONICAL_HOST
INSTALL_OPTS="-o $with_nagios_user -g $with_nagios_group"
AC_SUBST(INSTALL_OPTS)
+AC_ARG_WITH(libtap-srcdir,
+ ACX_HELP_STRING([--with-libtap-srcdir=path],
+ [full path to a compiled libtap srcdir]),
+ EXTRA_TEST=test_utils
+ EXTRA_TAPOBJ=$withval/tap.o
+ AC_SUBST(EXTRA_TEST)
+ AC_SUBST(EXTRA_TAPOBJ)
+ LDFLAGS="$LDFLAGS -L$withval"
+ CPPFLAGS="$CPPFLAGS -I$withval"
+ )
+
AC_ARG_WITH(trusted_path,
ACX_HELP_STRING([--with-trusted-path=PATH],
[sets trusted path for executables called by scripts (default=/bin:/sbin:/usr/bin:/usr/sbin)]),
dnl Checks for programs.
AC_PATH_PROG(PYTHON,python)
-AC_PATH_PROG(PERL,perl)
AC_PATH_PROG(SH,sh)
-
+AC_PATH_PROG(PERL,perl)
+AC_PATH_PROG(LIBGNUTLS_CONFIG,libgnutls-config)
AC_PATH_PROG(HOSTNAME,hostname)
AC_PATH_PROG(BASENAME,basename)
+dnl allow them to override the path of perl
+AC_ARG_WITH(perl,
+ ACX_HELP_STRING([--with-perl=PATH],
+ [sets path to perl executable]),
+ with_perl=$withval,with_perl=$PERL)
+AC_SUBST(PERL, $with_perl)
+
+dnl openssl/gnutls
+AC_ARG_WITH(openssl,
+ AC_HELP_STRING([--with-openssl=DIR],
+ [path to openssl installation]),)
+
+AC_ARG_WITH(gnutls,
+ ACX_HELP_STRING([--with-gnutls=PATH],
+ [path to gnutls installation root]),)
+
+dnl you can only have one or the other
+if test ! "$with_openssl" = "" && test ! "$with_openssl" = "no"; then
+ with_gnutls="no"
+fi
+if test ! "$with_gnutls" = "" && test ! "$with_gnutls" = "no"; then
+ with_openssl="no"
+fi
+
+dnl list of possible dirs to try to autodetect openssl
+dnl if $dir/include exists, we consider it found
+dnl the order should allow locally installed versions to override distros' ones
+OPENSSL_DIRS="/usr /usr/local /usr/slocal /usr/local/openssl /usr/local/ssl \
+ /opt /opt/openssl"
+
dnl
dnl Check for miscellaneous stuff
dnl
AC_CHECK_LIB(resolv,main,SOCKETLIBS="$SOCKETLIBS -lresolv")
AC_SUBST(SOCKETLIBS)
+dnl
+dnl check for math-related functions needing -lm
+AC_CHECK_HEADERS(math.h)
+AC_CHECK_LIB(m,floor,MATHLIBS="-lm")
+AC_SUBST(MATHLIBS)
+
dnl Check for PostgreSQL libraries
_SAVEDLIBS="$LIBS"
_SAVEDCPPFLAGS="$CPPFLAGS"
if test "$ac_cv_lib_mysqlclient_mysql_init" = "yes" -o "$ac_cv_lib_mysqlclient_mysql_close" = "yes"; then
AC_CHECK_HEADERS(mysql/mysql.h mysql/errmsg.h, MYSQLINCLUDE="-I$MYSQL/include" )
if test "$ac_cv_header_mysql_mysql_h" = "yes" -a "$ac_cv_header_mysql_errmsg_h" = "yes"; then
- EXTRAS="$EXTRAS check_mysql"
+ EXTRAS="$EXTRAS check_mysql check_mysql_query"
AC_SUBST(MYSQLINCLUDE)
AC_SUBST(MYSQLLIBS)
AC_SUBST(check_mysql_LDFLAGS)
CPPFLAGS="$_SAVEDCPPFLAGS $MYSQLINCLUDE"
LIBS="$_SAVEDLIBS"
-dnl Check for OpenSSL location
-dnl This whole check is inspired by curl 7.12.2's configure.ac
-OPT_OPENSSL=off
-AC_ARG_WITH(openssl,
-AC_HELP_STRING([--with-openssl=DIR], [sets path to openssl installation])
-AC_HELP_STRING([--without-openssl], [disable openssl]),
-OPT_OPENSSL=$withval)
-
-if test X"$OPT_OPENSSL" = "Xno"; then
- AC_MSG_WARN([openssl disabled, you will not be able to use ssl options in some plugins])
- with_openssl=no
-else
- dnl backup the pre-ssl variables
- CLEANLDFLAGS="$LDFLAGS"
- CLEANCPPFLAGS="$CPPFLAGS"
- CLEANLIBS="$LIBS"
-
- case "$OPT_OPENSSL" in
- yes)
- dnl --with-openssl (without path) used
- PKGTEST="yes"
- ;;
- off)
- dnl no --with-openssl given, check default places
- PKGTEST="yes"
- ;;
- *)
- dnl use the given area
- PKGTEST="no"
- OPENSSL=$OPT_OPENSSL
- LDFLAGS="$LDFLAGS -L$OPENSSL/lib"
- CPPFLAGS="$CPPFLAGS -I$OPENSSL/include/openssl -I$OPENSSL/include"
- ;;
- esac
-
- dnl Check usual areas for openssl
- if test "$PKGTEST" = "yes"; then
- AC_PATH_PROG(OPENSSL,openssl)
- dnl The /usr checks need to be done so that the right area is include'd
- if test "$OPENSSL" = "/usr/bin/openssl"; then
- OPENSSL=/usr
- elif test "$OPENSSL" = "/usr/sbin/openssl"; then
- OPENSSL=/usr
- elif test "$OPENSSL" = "/opt/bin/openssl"; then
- OPENSSL=/opt
- elif test "$OPENSSL" = "/opt/openssl/bin/openssl"; then
- OPENSSL=/opt/openssl
- elif test "$OPENSSL" = "/usr/slocal/bin/openssl"; then
- OPENSSL=/usr/slocal
- elif test "$OPENSSL" = "/usr/local/bin/openssl"; then
- OPENSSL=/usr/local
- elif test "$OPENSSL" = "/usr/local/ssl/bin/openssl"; then
- OPENSSL=/usr/local/ssl
- fi
- fi
-
- AC_CHECK_LIB(crypto, CRYPTO_lock,[
- HAVECRYPTO="yes"
- ],[
- LDFLAGS="$CLEANLDFLAGS -L$OPENSSL/lib"
- CPPFLAGS="$CLEANCPPFLAGS -I$OPENSSL/include/openssl -I$OPENSSL/include"
- AC_CHECK_LIB(crypto, CRYPTO_add_lock,[
- HAVECRYPTO="yes" ], [
- LDFLAGS="$CLEANLDFLAGS"
- CPPFLAGS="$CLEANCPPFLAGS"
- LIBS="$CLEANLIBS"
- ])
- ])
-
- if test "$HAVECRYPTO" = "yes"; then
- dnl This is only reasonable to do if crypto actually is there: check for
- dnl SSL libs NOTE: it is important to do this AFTER the crypto lib
-
- dnl This is for Msys/Mingw
- AC_MSG_CHECKING([for gdi32])
- my_ac_save_LIBS=$LIBS
- LIBS="-lgdi32 $LIBS"
- AC_TRY_LINK([#include <windef.h>
- #include <wingdi.h>],
- [GdiFlush();],
- [ dnl worked!
- AC_MSG_RESULT([yes])],
- [ dnl failed, restore LIBS
- LIBS=$my_ac_save_LIBS
- AC_MSG_RESULT(no)]
- )
-
- AC_CHECK_LIB(crypto, CRYPTO_add_lock)
- AC_CHECK_LIB(ssl, SSL_connect)
-
- if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
- dnl we didn't find the SSL lib, try the RSAglue/rsaref stuff
- AC_MSG_CHECKING(for ssl with RSAglue/rsaref libs in use);
- OLIBS=$LIBS
- LIBS="$LIBS -lRSAglue -lrsaref"
- AC_CHECK_LIB(ssl, SSL_connect)
- if test "$ac_cv_lib_ssl_SSL_connect" != yes; then
- dnl still no SSL_connect
- AC_MSG_RESULT(no)
- LIBS=$OLIBS
- else
- AC_MSG_RESULT(yes)
- fi
- fi
-
-
- dnl Check for SSLeay headers
- AC_CHECK_HEADERS(openssl/x509.h openssl/rsa.h openssl/crypto.h \
- openssl/pem.h openssl/ssl.h openssl/err.h,
- OPENSSL_ENABLED=1)
-
- if test $ac_cv_header_openssl_x509_h = no; then
- AC_CHECK_HEADERS(x509.h rsa.h crypto.h pem.h ssl.h err.h,
- OPENSSL_ENABLED=1)
- fi
-
- dnl If the ENGINE library seems to be around, check for the OpenSSL engine
- dnl header, it is kind of "separated" from the main SSL check
- AC_CHECK_FUNC(ENGINE_init, [ AC_CHECK_HEADERS(openssl/engine.h) ])
-
- dnl AC_SUBST(OPENSSL_ENABLED)
-
- dnl these can only exist if openssl exists
- AC_CHECK_FUNCS( RAND_status \
- RAND_screen \
- RAND_egd \
- CRYPTO_cleanup_all_ex_data )
-
- fi
-
- if test "$OPENSSL_ENABLED" != "1"; then
- if test "$PKGTEST" ="yes"; then
- AC_MSG_WARN([OpenSSL libs could not be found])
- else
- AC_MSG_WARN([OpenSSL libs and/or directories were not found where specified!])
- fi
- with_openssl="no"
- else
- check_tcp_ssl="check_simap check_spop check_jabber check_nntps"
- AC_SUBST(check_tcp_ssl)
- AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
- with_openssl="yes"
-
- # Needed for subsequent compiled programs
- LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$OPENSSL/lib$libsuff"
- export LD_LIBRARY_PATH
- fi
-fi
-
AC_CHECK_HEADERS(unistd.h)
dnl Check for AF_INET6 support - unistd.h required for Darwin
fi
+dnl Checks for Kerberos. Must come before openssl checks for Redhat EL 3
AC_CHECK_HEADERS(krb5.h,FOUNDINCLUDE=yes,FOUNDINCLUDE=no)
if test "$FOUNDINCLUDE" = "no"; then
_SAVEDCPPFLAGS="$CPPFLAGS"
CPPFLAGS="$_SAVEDCPPFLAGS"
fi
+
+dnl openssl detection/configuration
+if ! test "$with_openssl" = "no"; then
+ dnl Check for OpenSSL location if it wasn't already specified
+ if ! test -d "$with_openssl"; then
+ for d in $OPENSSL_DIRS; do
+ if test -x ${d}/bin/openssl || test -x ${d}/sbin/openssl ; then
+ with_openssl=$d
+ fi
+ done
+ fi
+
+ _SAVEDCPPFLAGS="$CPPFLAGS"
+ _SAVEDLDFLAGS="$LDFLAGS"
+ dnl Check for OpenSSL header files
+ unset FOUNDINCLUDE
+ CPPFLAGS="$CPPFLAGS -I$OPENSSL/include"
+ LDFLAGS="$LDFLAGS -R$OPENSSL/lib"
+
+ dnl check for openssl in $dir/include/openssl
+ 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,
+ FOUNDINCLUDE=no)
+ dnl else check to see if $dir/include has it
+ if test "$FOUNDINCLUDE" = "no"; then
+ AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h,
+ SSLINCLUDE="-I$OPENSSL/include"
+ FOUNDINCLUDE=yes,
+ FOUNDINCLUDE=no)
+ fi
+ AC_SUBST(SSLINCLUDE)
+ dnl if we didn't find it, reset CPPFLAGS
+ if test "$FOUNDINCLUDE" = "no"; then
+ CPPFLAGS="$_SAVEDCPPFLAGS"
+ LDFLAGS="$_SAVEDLDFLAGS"
+ fi
+
+ dnl Check for crypto lib
+ _SAVEDLIBS="$LIBS"
+ LIBS="-L${with_openssl}/lib"
+ AC_CHECK_LIB(crypto,CRYPTO_lock)
+ if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
+ dnl Check for SSL lib
+ AC_CHECK_LIB(ssl,main, SSLLIBS="-lssl -lcrypto",,-lcrypto)
+ fi
+ LIBS="$_SAVEDLIBS"
+
+ 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
+ FOUNDOPENSSL="yes"
+ fi
+ fi
+ fi
+fi
+
+
+dnl check for gnutls if openssl isn't found (or is disabled)
+if test ! "$FOUNDOPENSSL" = "yes" && test ! "$with_gnutls" = "no"; then
+ if test ! "$with_gnutls" = ""; then
+ CPPFLAGS="$CPPFLAGS -I${with_gnutls}/include"
+ elif test ! "$LIBGNUTLS_CONFIG" = ""; then
+ CPPFLAGS="$CPPFLAGS -I`$LIBGNUTLS_CONFIG --prefix`"
+ fi
+ AC_CHECK_HEADERS([gnutls/openssl.h],FOUNDGNUTLS="yes",)
+ if test "$FOUNDGNUTLS" = "yes"; then
+ AC_CHECK_LIB(gnutls-openssl,main,SSLLIBS="-lgnutls-openssl")
+ fi
+fi
+dnl end check for gnutls
+
+if test "$FOUNDOPENSSL" = "yes" || test "$FOUNDGNUTLS" = "yes"; then
+ check_tcp_ssl="check_simap check_spop check_jabber check_nntps check_ssmtp"
+ AC_SUBST(check_tcp_ssl)
+ AC_SUBST(SSLLIBS)
+ AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
+ if test "$FOUNDOPENSSL" = "yes"; then
+ AC_DEFINE(USE_OPENSSL,1,[Define if using OpenSSL libraries])
+ with_openssl="yes"
+ with_gnutls="no"
+ else
+ AC_DEFINE(USE_GNUTLS,1,[Define if using gnutls libraries])
+ with_gnutls="yes"
+ with_openssl="no"
+ fi
+else
+ dnl else deliberately disabled or no ssl support available
+ AC_MSG_WARN([OpenSSL or GnuTLS libs could not be found or were disabled])
+ with_openssl="no"
+ with_gnutls="no"
+fi
+
dnl
dnl Checks for header files.
dnl
AC_HEADER_STDC
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(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 sys/un.h)
AC_CHECK_HEADERS(features.h stdarg.h sys/unistd.h ctype.h stdlib.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
dnl Checks for library functions.
-AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul)
+AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul floor)
AC_MSG_CHECKING(return type of socket size)
AC_TRY_COMPILE([#include <stdlib.h>
AC_DEFINE_UNQUOTED(SOCKET_SIZE_TYPE, $ac_cv_socket_size_type ,
[Define type of socket size])
-if test -f "/proc/loadavg"
-then
+AC_ARG_WITH(proc-loadavg,
+ ACX_HELP_STRING([--with-proc-loadavg=PATH],
+ [path to /proc/loadavg or equivalent]),
+ ac_cv_proc_loadavg=$withval)
+AC_MSG_CHECKING([for /proc/loadavg])
+if test -n "$ac_cv_proc_loadavg"; then
+ AC_MSG_RESULT([(command line) $ac_cv_proc_loadavg])
+elif test -f "/proc/loadavg"; then
+ AC_MSG_RESULT([found /proc/loadavg])
+ ac_cv_proc_loadavg="/proc/loadavg"
+else
+ AC_MSG_RESULT([no])
+fi
+
+if test -n "$ac_cv_proc_loadavg"; then
AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg])
fi
AC_PATH_PROG(PATH_TO_PS,ps)
AC_MSG_CHECKING(for ps syntax)
+AC_ARG_WITH(ps_command,
+ ACX_HELP_STRING([--with-ps-command=PATH],
+ [Verbatim command to execute for ps]),
+ PS_COMMAND=$withval)
+AC_ARG_WITH(ps_format,
+ ACX_HELP_STRING([--with-ps-format=FORMAT],
+ [Format string for scanning ps output]),
+ PS_FORMAT=$withval)
+AC_ARG_WITH(ps_cols,
+ ACX_HELP_STRING([--with-ps-cols=NUM],
+ [Number of columns in ps command]),
+ PS_COLS=$withval)
+AC_ARG_WITH(ps_varlist,
+ ACX_HELP_STRING([--with-ps-varlist=LIST],
+ [Variable list for sscanf of 'ps' output]),
+ PS_VARLIST=$withval)
+
+AM_CONDITIONAL(WANT_PST3, false)
+
+if test -n "$PS_COMMAND" && test -n "$PS_FORMAT" && test -n "$PS_COLS" && test -n "$PS_VARLIST"; then
+ ac_cv_ps_command="$PS_COMMAND"
+ ac_cv_ps_format="$PS_FORMAT"
+ ac_cv_ps_varlist="$PS_VARLIST"
+ ac_cv_ps_cols="$PS_COLS"
+ AC_MSG_RESULT([(command-line) $ac_cv_ps_command])
+
+dnl Now using the pst3/kmem hack for solaris systems to avoid truncation
+elif test "$ac_cv_uname_s" = "SunOS"; then
+ #
+ # this is a very, very ugly hack, to hardcode the location for plugins
+ #
+ if test "$libexecdir" = '${exec_prefix}/libexec'; then
+ if test "$exec_prefix" = "NONE"; then
+ if test "$prefix" = "NONE"; then
+ pst3="$ac_default_prefix/libexec/pst3"
+ else
+ pst3="$prefix/libexec/pst3"
+ fi
+ else
+ pst3="$exec_prefix/libexec/pst3"
+ fi
+ else
+ pst3="$libexecdir/pst3"
+ fi
+ ac_cv_ps_command="$pst3"
+ ac_cv_ps_format="%s %d %d %d %d %f %s %n"
+ ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
+ ac_cv_ps_cols=8
+ AC_MSG_RESULT([using nagios-plugins internal ps for solaris])
+ AM_CONDITIONAL(WANT_PST3, true)
+
+dnl Some gnu/linux systems (debian for one) don't like -axwo and need axwo.
+dnl so test for this first...
+elif ps axwo 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \
+ egrep -i ["^ *STAT +[UCOMAND]+ +VSZ +RSS +USER +UID +PID +PPID +COMMAND"] > /dev/null
+then
+ ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
+ ac_cv_ps_command="$PATH_TO_PS axwo 'stat uid pid ppid vsz rss pcpu comm args'"
+ ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
+ ac_cv_ps_cols=9
+ AC_MSG_RESULT([$ac_cv_ps_command])
+
dnl For OpenBSD 3.2 & 3.3. Must come before ps -weo
dnl Should also work for FreeBSD 5.2.1 and 5.3
dnl STAT UCOMM VSZ RSS USER PPID COMMAND
-if ps -axwo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
- egrep -i ["^ *STAT +[UCOMAND]+ +VSZ +RSS +USER +UID +PPID +COMMAND"] > /dev/null
+elif ps -axwo 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \
+ egrep -i ["^ *STAT +[UCOMAND]+ +VSZ +RSS +USER +UID +PID +PPID +COMMAND"] > /dev/null
then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid ppid vsz rss pcpu comm args'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=8
+ ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
+ ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid pid ppid vsz rss pcpu comm args'"
+ ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
+ ac_cv_ps_cols=9
AC_MSG_RESULT([$ac_cv_ps_command])
-dnl STAT UCOMM VSZ RSS USER UID PPID COMMAND
-elif ps -weo 'stat comm vsz rss user uid ppid etime args' 2>/dev/null | \
- egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[ELAPSD]+ +[RGSCOMDNA]+"] >/dev/null
+dnl Some *BSDs have different format for ps. This is mainly to catch FreeBSD 4.
+dnl Limitation: Only first 16 chars returned for ucomm field
+dnl Must come before ps -weo
+elif ps -axwo 'stat uid pid ppid vsz rss pcpu ucomm command' 2>/dev/null | \
+ egrep -i ["^ *STAT +UID +PID +PPID +VSZ +RSS +%CPU +UCOMM +COMMAND"] > /dev/null
then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procetime,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS -weo 'stat uid ppid vsz rss pcpu etime comm args'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %s %n"
+ ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
+ ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid pid ppid vsz rss pcpu ucomm command'"
+ ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
ac_cv_ps_cols=9
AC_MSG_RESULT([$ac_cv_ps_command])
+dnl STAT UCOMM VSZ RSS USER UID PPID COMMAND
+elif ps -weo 'stat comm vsz rss user uid pid ppid etime args' 2>/dev/null | \
+ egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[ID]+ +P[PID]+ +[ELAPSD]+ +[RGSCOMDNA]+"] >/dev/null
+then
+ ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procetime,procprog,&pos]"
+ ac_cv_ps_command="$PATH_TO_PS -weo 'stat uid pid ppid vsz rss pcpu etime comm args'"
+ ac_cv_ps_format="%s %d %d %d %d %d %f %s %s %n"
+ ac_cv_ps_cols=10
+ AC_MSG_RESULT([$ac_cv_ps_command])
+
dnl FreeBSD
-elif ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | \
- egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PPID"] >/dev/null
+elif ps waxco 'state command vsz rss uid user pid ppid' 2>/dev/null | \
+ egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PID +PPID"] >/dev/null
then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS waxco 'state uid ppid vsz rss pcpu command command'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=8
+ ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
+ ac_cv_ps_command="$PATH_TO_PS waxco 'state uid pid ppid vsz rss pcpu command command'"
+ ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
+ ac_cv_ps_cols=9
AC_MSG_RESULT([$ac_cv_ps_command])
dnl BSD-like mode in RH 6.1
-elif ps waxno 'state comm vsz rss uid user ppid args' 2>/dev/null | \
- egrep -i ["^S +COMMAND +VSZ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
+elif ps waxno 'state comm vsz rss uid user pid ppid args' 2>/dev/null | \
+ egrep -i ["^S +COMMAND +VSZ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS waxno 'state uid ppid vsz rss pcpu comm args'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=8
+ ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
+ ac_cv_ps_command="$PATH_TO_PS waxno 'state uid pid ppid vsz rss pcpu comm args'"
+ ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
+ ac_cv_ps_cols=9
AC_MSG_RESULT([$ac_cv_ps_command])
dnl SunOS 4.1.3:
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]"
+ ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
ac_cv_ps_command="$PATH_TO_PS -laxnwww"
- ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %d %d %*s %s %*s %*s %n%s"
- ac_cv_ps_cols=8
+ ac_cv_ps_format="%*s %d %d %d %*s %*s %*s %d %d %*s %s %*s %*s %n%s"
+ ac_cv_ps_cols=9
AC_MSG_RESULT([$ac_cv_ps_command])
dnl Debian Linux / procps v1.2.9:
elif ps laxnwww 2>/dev/null | \
egrep -i ["^ *F(LAGS)? +UID +PID +PPID +PRI +NI +(VSZ)|(SIZE) +RSS +WCHAN +STAT? TTY +TIME +COMMAND"] >/dev/null
then
- ac_cv_ps_varlist="[&procuid,&procppid,procstat,&procvsz,&procrss,&pos,procprog]"
+ ac_cv_ps_varlist="[&procuid,&procpid,&procppid,procstat,&procvsz,&procrss,&pos,procprog]"
ac_cv_ps_command="$PATH_TO_PS laxnwww"
- ac_cv_ps_format="%*s %d %*s %d %*s %*s %d %d %*s %s %*s %*s %n%s"
- ac_cv_ps_cols=8
+ ac_cv_ps_format="%*s %d %d %d %*s %*s %d %d %*s %s %*s %*s %n%s"
+ ac_cv_ps_cols=9
AC_MSG_RESULT([$ac_cv_ps_command])
dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
-elif ps -axo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
- egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
+elif ps -axo 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \
+ egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS -axo 'stat uid ppid vsz rss pcpu comm args'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=8
+ ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
+ ac_cv_ps_command="$PATH_TO_PS -axo 'stat uid pid ppid vsz rss pcpu comm args'"
+ ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
+ ac_cv_ps_cols=9
AC_MSG_RESULT([$ac_cv_ps_command])
-dnl Tru64 - needs %*[ +] in PS_FORMAT
-elif ps -ao 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
- egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
+dnl Tru64 - needs %*[ +<>] in PS_FORMAT.
+dnl Has /usr/bin/ps and /sbin/ps - force sbin version
+dnl Can't use vsize and rssize because comes back with text (eg, 1.5M instead
+dnl of 1500). Will need big changes to check_procs to support
+elif /sbin/ps -eo 'stat uid pid ppid pcpu etime comm args' 2>/dev/null | \
+ egrep -i ["^ *S +[UID]+ +[PID]+ +[PID]+ +[%CPU]+ +[ELAPSD]+ +[COMMAND]+ +[COMMAND]+"] > /dev/null
then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS -ao 'stat uid ppid vsz rss pcpu comm args'"
- ac_cv_ps_format=["%s%*[ +] %d %d %d %d %f %s %n"]
+ ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procpcpu,procetime,procprog,&pos]"
+ ac_cv_ps_command="/sbin/ps -eo 'stat uid pid ppid pcpu etime comm args'"
+ ac_cv_ps_format=["%s%*[ +<>] %d %d %d %f %s %s %n"]
ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
-elif ps -eo 's comm vsz rss user uid ppid args' 2>/dev/null | \
- egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
+elif ps -eo 's comm vsz rss user uid pid ppid args' 2>/dev/null | \
+ egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS -eo 's uid ppid vsz rss pcpu comm args'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=8
+ ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
+ ac_cv_ps_command="$PATH_TO_PS -eo 's uid pid ppid vsz rss pcpu comm args'"
+ ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
+ ac_cv_ps_cols=9
AC_MSG_RESULT([$ac_cv_ps_command])
dnl AIX 4.3.3 and 5.1 do not have an rss field
-elif ps -eo 'stat uid ppid vsz pcpu comm args' 2>/dev/null | \
- egrep -i ["^ *S[TAUES]* +UID +PPID +VSZ +%CPU +COMMAND +COMMAND"] >/dev/null
+elif ps -eo 'stat uid pid ppid vsz pcpu comm args' 2>/dev/null | \
+ egrep -i ["^ *S[TAUES]* +UID +PID +PPID +VSZ +%CPU +COMMAND +COMMAND"] >/dev/null
then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS -eo 'stat uid ppid vsz pcpu comm args'"
- ac_cv_ps_format="%s %d %d %d %f %s %n"
- ac_cv_ps_cols=7
+ ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procpcpu,procprog,&pos]"
+ ac_cv_ps_command="$PATH_TO_PS -eo 'stat uid pid ppid vsz pcpu comm args'"
+ ac_cv_ps_format="%s %d %d %d %d %f %s %n"
+ ac_cv_ps_cols=8
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
+elif ps -Ao 's comm vsz rss uid user pid ppid args' 2>/dev/null | \
+ egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +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_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
+ ac_cv_ps_command="$PATH_TO_PS -Ao 's uid pid ppid vsz rss pcpu comm args'"
# 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_cv_ps_format="%s %d %d %d %d %d %f %s%n"
+ ac_cv_ps_cols=9
AC_MSG_RESULT([$ac_cv_ps_command])
-elif ps -Ao 'status 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
+elif ps -Ao 'status comm vsz rss uid user pid ppid args' 2>/dev/null | \
+ egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +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 'status uid ppid vsz rss pcpu comm args'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=8
+ ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
+ ac_cv_ps_command="$PATH_TO_PS -Ao 'status uid pid ppid vsz rss pcpu comm args'"
+ ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
+ ac_cv_ps_cols=9
AC_MSG_RESULT([$ac_cv_ps_command])
-elif ps -Ao 'state 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
+elif ps -Ao 'state comm vsz rss uid user pid ppid args' 2>/dev/null | \
+ egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +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 'state uid ppid vsz rss pcpu comm args'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=8
+ ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
+ ac_cv_ps_command="$PATH_TO_PS -Ao 'state uid pid ppid vsz rss pcpu comm args'"
+ ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
+ ac_cv_ps_cols=9
AC_MSG_RESULT([$ac_cv_ps_command])
dnl wonder who takes state instead of stat
-elif ps -ao 'state command vsz rss user ppid args' 2>/dev/null | \
- egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
+elif ps -ao 'state command vsz rss user pid ppid args' 2>/dev/null | \
+ egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +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 'state uid ppid vsz rss pcpu command args'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=7
+ ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
+ ac_cv_ps_command="$PATH_TO_PS -ao 'state uid pid ppid vsz rss pcpu command args'"
+ ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
+ ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
dnl IRIX 53
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_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&pos,procprog]"
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_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %d %d %*s %*s %*s %n%s"
+ ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
dnl IRIX 63
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_varlist="[procstat,&procuid,&procpid,&procppid,&pos,procprog]"
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_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
+ ac_cv_ps_cols=6
AC_MSG_RESULT([$ac_cv_ps_command])
dnl AIX 4.1:
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_varlist="[procstat,&procuid,&procpid,&procppid,&pos,procprog]"
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=5
+ ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
+ ac_cv_ps_cols=6
AC_MSG_RESULT([$ac_cv_ps_command])
dnl AIX?
elif ps glaxen 2>/dev/null | \
egrep -i ["^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND"] >/dev/null
then
- ac_cv_ps_varlist="[&procuid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
+ ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
ac_cv_ps_command="$PATH_TO_PS glaxen"
- ac_cv_ps_format="%*s %d %*s %d %*s %*s %d %d %*s %s %*s %*s %n%s"
- ac_cv_ps_cols=7
+ ac_cv_ps_format="%*s %d %d %d %*s %*s %d %d %*s %s %*s %*s %n%s"
+ ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
dnl MacOSX / Darwin
@@ -842,23 +925,23 @@ dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
dnl Some truncation will happen in UCOMM column
dnl STAT VSZ RSS UID PPID %CPU UCOMM COMMAND
dnl Ss 52756 22496 501 1 6.9 Window Manager /System/Library/CoreServices/WindowServer -daemon
-elif ps wwaxo 'state vsz rss uid ppid pcpu ucomm command' 2>/dev/null | \
+elif ps wwaxo 'state vsz rss uid pid ppid pcpu ucomm command' 2>/dev/null | \
egrep -i ["^STAT +VSZ +RSS +UID +PPID +%CPU +UCOMM +COMMAND"] >/dev/null
then
- ac_cv_ps_command="$PATH_TO_PS wwaxo 'state vsz rss uid ppid pcpu ucomm command'"
- ac_cv_ps_varlist="[procstat,&procvsz,&procrss,&procuid,&procppid,&procpcpu,procprog,&pos]"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=7
+ ac_cv_ps_command="$PATH_TO_PS wwaxo 'state vsz rss uid pid ppid pcpu ucomm command'"
+ ac_cv_ps_varlist="[procstat,&procvsz,&procrss,&procuid,&procpid,&procppid,&procpcpu,procprog,&pos]"
+ ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
+ ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
dnl UnixWare
elif ps -Al 2>/dev/null | \
egrep -i ["^ *F +S +UID +PID +PPID +CLS +PRI +NI +C +ADDR +SZ +WCHAN +TTY +TIME +COMD"] >/dev/null
then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
+ ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&pos,procprog]"
ac_cv_ps_command="$PATH_TO_PS -Al"
- ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
- ac_cv_ps_cols=7
+ ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
+ ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
else
AC_DEFINE_UNQUOTED(PS_COLS,$ac_cv_ps_cols,
[Number of columns in ps command])
EXTRAS="$EXTRAS check_procs check_nagios"
+ if echo "$ac_cv_ps_varlist" | grep -q "procetime"; then
+ AC_DEFINE(PS_USES_PROCETIME,"yes",
+ [Whether the ps utility uses the "procetime" field])
+ fi
fi
AC_PATH_PROG(PATH_TO_PING,ping)
if test -n "$ac_cv_ping_packets_first"
then
ac_cv_ping_packets_first=yes
+ ac_cv_ping_has_timeout=yes
fi
elif [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
ac_cv_ping6_packets_first=yes
AC_MSG_RESULT([$with_ping6_command])
+ elif $PATH_TO_PING6 -n -U -w 10 -c 1 ::1 2>/dev/null | \
+ egrep -i "^round-trip|^rtt" >/dev/null
+ then
+ with_ping6_command="$PATH_TO_PING6 -n -U -w %d -c %d %s"
+ ac_cv_ping6_packets_first=yes
+ ac_cv_ping_has_timeout=yes
+ AC_MSG_RESULT([$with_ping6_command])
+
elif $PATH_TO_PING6 -n -U -c 1 ::1 2>/dev/null | \
egrep -i "^round-trip|^rtt" >/dev/null
then
fi
fi
-AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
AC_MSG_CHECKING(for nslookup syntax)
-if test -n "$PATH_TO_NSLOOKUP"
-then
- if $PATH_TO_NSLOOKUP -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
+AC_ARG_WITH(nslookup_command,
+ ACX_HELP_STRING([--with-nslookup-command=PATH],
+ [sets path to nslookup executable]),
+ ac_cv_nslookup_command=$withval)
+if test -n "$ac_cv_nslookup_command"; then
+ AC_MSG_RESULT([(command line) $ac_cv_nslookup_command])
+else
+ AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
+ if test -n "$PATH_TO_NSLOOKUP"
then
- ac_cv_nslookup_command="$PATH_TO_NSLOOKUP"
- AC_MSG_RESULT([$ac_cv_nslookup_command])
+ if $PATH_TO_NSLOOKUP -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
+ then
+ ac_cv_nslookup_command="$PATH_TO_NSLOOKUP"
+ AC_MSG_RESULT([$ac_cv_nslookup_command])
- else
- ac_cv_nslookup_command="$PATH_TO_NSLOOKUP -sil"
- AC_MSG_RESULT([$ac_cv_nslookup_command])
+ else
+ ac_cv_nslookup_command="$PATH_TO_NSLOOKUP -sil"
+ AC_MSG_RESULT([$ac_cv_nslookup_command])
+ fi
+ else
+ AC_MSG_WARN([nslookup command not found])
fi
- EXTRAS="$EXTRAS check_dns"
-
-else
- AC_MSG_WARN([nslookup command not found])
fi
-AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$ac_cv_nslookup_command",
- [path and args for nslookup])
+if test -n "$ac_cv_nslookup_command"; then
+ EXTRAS="$EXTRAS check_dns"
+ AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$ac_cv_nslookup_command", [path and args for nslookup])
+fi
AC_PATH_PROG(PATH_TO_HOST,host)
if test -n "$ac_cv_path_PATH_TO_HOST"
fi
AC_PATH_PROG(PATH_TO_UPTIME,uptime)
+AC_ARG_WITH(uptime_command,
+ ACX_HELP_STRING([--with-uptime-command=PATH],
+ [sets path to uptime]), PATH_TO_UPTIME=$withval)
AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
+AC_ARG_WITH(rpcinfo_command,
+ ACX_HELP_STRING([--with-rpcinfo-command=PATH],
+ [sets path to rpcinfo]), PATH_TO_RPCINFO=$withval)
AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
+AC_ARG_WITH(ntpdate_command,
+ ACX_HELP_STRING([--with-ntpdate-command=PATH],
+ [sets path to ntpdate]), PATH_TO_NTPDATE=$withval)
AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
AC_PATH_PROGS(PATH_TO_NTPQ,ntpq)
-if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPQ")
+if (test -n "$PATH_TO_NTPDATE" || test -n "$PATH_TO_NTPQ")
then
AC_DEFINE_UNQUOTED(PATH_TO_NTPQ,"$PATH_TO_NTPQ",[path to ntpq binary])
AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary])
fi
AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
-if test -x "$PATH_TO_SMBCLIENT"
+AC_ARG_WITH(smbclient_command,
+ ACX_HELP_STRING([--with-smbclient-command=PATH],
+ [sets path to smbclient]),
+ PATH_TO_SMBCLIENT=$withval)
+if test -n "$PATH_TO_SMBCLIENT"
then
AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
else
[path and arguments for invoking 'who'])
AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
-if test -x "$PATH_TO_SNMPGET"
+AC_ARG_WITH(snmpget_command,
+ ACX_HELP_STRING([--with-snmpget-command=PATH],
+ [Path to snmpget command]),
+ PATH_TO_SNMPGET=$withval)
+if test -n "$PATH_TO_SNMPGET"
then
AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
EXTRAS="$EXTRAS check_hpjd check_snmp"
fi
AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
-if test -x "$PATH_TO_SNMPGETNEXT"
+AC_ARG_WITH(snmpgetnext_command,
+ ACX_HELP_STRING([--with-snmpgetnext-command=PATH],
+ [Path to snmpgetnext command]),
+ PATH_TO_SNMPGETNEXT=$withval)
+if test -n "$PATH_TO_SNMPGETNEXT"
then
AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
fi
AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
AC_PATH_PROG(PATH_TO_QSTAT,qstat)
+AC_ARG_WITH(qstat_command,
+ ACX_HELP_STRING([--with-qstat-command=PATH],
+ [Path to qstat command]), PATH_TO_QSTAT=$withval)
if test -x "$PATH_TO_QUAKESTAT"
then
ac_cv_path_to_qstat="$PATH_TO_QUAKESTAT"
EXTRAS="$EXTRAS check_game"
-elif test -x "$PATH_TO_QSTAT"
+elif test -n "$PATH_TO_QSTAT"
then
ac_cv_path_to_qstat="$PATH_TO_QSTAT"
EXTRAS="$EXTRAS check_game"
fi
AC_PATH_PROG(PATH_TO_FPING,fping)
-if test -x "$PATH_TO_FPING"
+AC_ARG_WITH(fping_command,
+ ACX_HELP_STRING([--with-fping-command=PATH],
+ [Path to fping command]), PATH_TO_FPING=$withval)
+if test -n "$PATH_TO_FPING"
then
AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
EXTRAS="$EXTRAS check_fping"
fi
AC_PATH_PROG(PATH_TO_SSH,ssh)
-
-if test -x "$PATH_TO_SSH"
+AC_ARG_WITH(ssh_command,
+ ACX_HELP_STRING([--with-ssh-command=PATH],
+ [sets path for ssh]), PATH_TO_SSH=$withval)
+if test -n "$PATH_TO_SSH"
then
AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
EXTRAS="$EXTRAS check_by_ssh"
AC_PATH_PROG(PATH_TO_MAILQ,mailq)
-if test -x "$PATH_TO_MAILQ"
+AC_ARG_WITH(mailq_command,
+ ACX_HELP_STRING([--with-mailq-command=PATH],
+ [sets path to mailq]), PATH_TO_MAILQ=$withval)
+if test -n "$PATH_TO_MAILQ"
then
AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
else
egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" \
>/dev/null]
then
- ac_cv_swap_format=[" %*d %*s %*d,%*d %*d %*d %d %d"]
+ ac_cv_swap_format=[" %*d %*s %*d,%*d %*d %*d %f %f"]
ac_cv_swap_conv=2048
AC_MSG_RESULT([using IRIX 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_format=["%*s %*[0-9,-] %*d %f %f"]
ac_cv_swap_conv=2048
AC_MSG_RESULT([using Unixware format swap])
else
if [$PATH_TO_SWAPINFO -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
then
- ac_cv_swap_format=["%*s %d %*d %d"]
+ ac_cv_swap_format=["%*s %f %*d %f"]
ac_cv_swap_conv=1024
AC_MSG_RESULT([using FreeBSD format swapinfo])
fi
@@ -1351,7 +1487,7 @@ elif [$PATH_TO_SWAPINFO -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >
then
ac_cv_have_swap=yes
ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM",
- ac_cv_swap_format=["%*s %d %*d %d"]
+ ac_cv_swap_format=["%*s %f %*d %f"]
ac_cv_swap_conv=1024
AC_MSG_RESULT([using HP-UX format swapinfo])
fi
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_format=["%*s %*s %*s %f%*s %f %*s"]
ac_cv_swap_conv=1
AC_MSG_RESULT([using AIX lsps])
fi
dnl in the various BSD's
dnl
+AC_CHECK_HEADERS([sys/stat.h sys/param.h])
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>
[Conversion factor to MB])
fi
+AC_ARG_WITH(proc-meminfo,
+ ACX_HELP_STRING([--with-proc-meminfo=PATH],
+ [path to /proc/meminfo or equivalent]),
+ ac_cv_proc_meminfo=$withval)
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
+if test -n "$ac_cv_proc_meminfo"; then
+ AC_MSG_RESULT([(command line) $ac_cv_proc_meminfo])
+elif [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"
+ ac_cv_proc_meminfo="/proc/meminfo"
else
AC_MSG_RESULT([no])
fi
+if test -n "$ac_cv_proc_meminfo"; then
+ AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
+ AC_DEFINE_UNQUOTED(PROC_MEMINFO,"$ac_cv_proc_meminfo",[path to /proc/meminfo if name changes])
+ EXTRAS="$EXTRAS check_swap"
+fi
+
AC_PATH_PROG(PATH_TO_DIG,dig)
-AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
+AC_ARG_WITH(dig_command,
+ ACX_HELP_STRING([--with-dig-command=PATH],
+ [Path to dig command]), PATH_TO_DIG=$withval)
if test -n "$PATH_TO_DIG"; then
EXTRAS="$EXTRAS check_dig"
+ AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
fi
if test -f plugins/check_nt.c ; then
[AC_MSG_RESULT(yes)],
[NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
+case $host in
+ *bsd*)
+ AC_DEFINE(__bsd__,1,[bsd specific code in check_dhcp.c])
+ ;;
+ *linux*)
+ AC_DEFINE(__linux__,1,[sun specific code in check_dhcp.c])
+ ;;
+ *sun* | solaris*)
+ AC_DEFINE(__sun__,1,[sun specific code in check_dhcp.c])
+ ;;
+ *hpux*)
+ AC_DEFINE(__hpux__,1,[hpux specific code in check_dhcp.c])
+ ;;
+esac
+
AC_SUBST(EXTRAS)
AC_SUBST(EXTRA_NETOBJS)
AC_SUBST(DEPLIBS)
AM_GNU_GETTEXT([no-libtool], [need-ngettext])
AM_GNU_GETTEXT_VERSION(0.11.5)
-dnl External libraries
+dnl Check for Redhat spopen problem
+dnl Wierd problem where ECHILD is returned from a wait call in error
+dnl Only appears to affect nslookup and dig calls. Only affects redhat around
+dnl 2.6.9-11 (okay in 2.6.9-5). Redhat investigating root cause
+dnl We patch plugins/popen.c
+dnl Need to add smp because uname different on those
+dnl Can force patch to be applied with --enable-redhat-pthread-workaround
+AC_ARG_ENABLE(redhat-pthread-workaround,
+ AC_HELP_STRING([--enable-redhat-pthread-workaround],
+ [force Redhat patch to be applied (default: test system)]),
+ [ac_cv_enable_redhat_pthread_workaround=$enableval],
+ [ac_cv_enable_redhat_pthread_workaround=test])
+if test "$ac_cv_enable_redhat_pthread_workaround" = "test" ; then
+ if echo $ac_cv_uname_r | egrep "\.EL(smp)?$" >/dev/null 2>&1 ; then
+ AC_MSG_CHECKING(for redhat spopen problem)
+ ( cd config_test && make && make test ) > /dev/null 2>&1
+ if test $? -eq 0 ; then
+ AC_MSG_RESULT(okay)
+ else
+ AC_MSG_RESULT(error)
+ AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, [Workaround on redhat in spopen])
+ fi
+ fi
+elif test "$ac_cv_enable_redhat_pthread_workaround" = "yes" ; then
+ AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, [Forced workaround on redhat in spopen])
+fi
+
+dnl External libraries - see ACKNOWLEDGEMENTS
np_COREUTILS
+np_CURL
AC_OUTPUT(
Makefile
lib/Makefile
m4/Makefile
plugins/Makefile
+ plugins/tests/Makefile
+ plugins-root/Makefile
plugins-scripts/Makefile
plugins-scripts/subst
plugins-scripts/utils.pm
po/Makefile.in
)
-ACX_FEATURE([with],[cgiurl])
-ACX_FEATURE([with],[nagios-user])
-ACX_FEATURE([with],[nagios-group])
-ACX_FEATURE([with],[trusted-path])
-ACX_FEATURE([with],[ping-command])
+
+dnl the ones below that are commented out need to be cleaned up
+dnl in the configure code above to use with_foo instead of ac_cv_foo
+dnl if we want them to show up here. it'd also make the code cleaner.
+dnl i'll get to that on another rainy day :) -sf
+dnl ACX_FEATURE([with],[dig-command])
+dnl ACX_FEATURE([with],[fping-command])
+dnl ACX_FEATURE([with],[mailq-command])
+dnl ACX_FEATURE([with],[nslookup-command])
+dnl ACX_FEATURE([with],[ntpdate-command])
ACX_FEATURE([with],[ping6-command])
+ACX_FEATURE([with],[ping-command])
+dnl ACX_FEATURE([with],[qstat-command])
+dnl ACX_FEATURE([with],[rpcinfo-command])
+dnl ACX_FEATURE([with],[smbclient-command])
+dnl ACX_FEATURE([with],[snmpget-command])
+dnl ACX_FEATURE([with],[snmpgetnext-command])
+dnl ACX_FEATURE([with],[ssh-command])
+dnl ACX_FEATURE([with],[uptime-command])
+
+dnl ACX_FEATURE([with],[proc-loadavg])
+dnl ACX_FEATURE([with],[proc-meminfo])
+dnl ACX_FEATURE([with],[ps-command])
+dnl ACX_FEATURE([with],[ps-format])
+dnl ACX_FEATURE([with],[ps-cols])
+dnl ACX_FEATURE([with],[ps-varlist])
+
ACX_FEATURE([with],[lwres])
ACX_FEATURE([with],[ipv6])
ACX_FEATURE([with],[openssl])
+ACX_FEATURE([with],[gnutls])
ACX_FEATURE([enable],[emulate-getaddrinfo])
+ACX_FEATURE([with],[perl])
+ACX_FEATURE([with],[cgiurl])
+ACX_FEATURE([with],[nagios-user])
+ACX_FEATURE([with],[nagios-group])
+ACX_FEATURE([with],[trusted-path])
+
+