Code

adjustments to remove beta tagging
[nagiosplug.git] / configure.in
index d5b60c65bde3677a10bf403c4ce08688110b3baf..08996c9a46e475325f5d1580c5c83412782243f3 100644 (file)
@@ -1,13 +1,11 @@
 dnl Process this file with autoconf to produce a configure script.
-include(`aclocal.m4')
-include(`getloadavg.m4')
 AC_REVISION ($Revision$)
 AC_INIT(Helper.pm)
 VER=1.3.0
-REL=beta2
+REL=1
 AC_SUBST(VER)
 AC_SUBST(REL)
-PACKAGE_VERSION="${VER}-${REL}"
+PACKAGE_VERSION="${VER}"
 AC_SUBST(PACKAGE_VERSION)
 PACKAGE_RELEASE="${REL}"
 AC_SUBST(PACKAGE_RELEASE)
@@ -25,7 +23,13 @@ AC_PROG_CC
 AC_PROG_MAKE_SET
 AC_PROG_AWK
 
-AC_FUNC_GETLOADAVG(plugins)
+saved_srcdir=$srcdir
+srcdir=$srcdir/lib
+test -f $srcdir/getloadavg.c \
+  || AC_MSG_ERROR([getloadavg.c is not in $srcdir])
+AC_FUNC_GETLOADAVG
+srcdir=$saved_srcdir
+
 ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD])
 dnl AM_WITH_REGEX
 AC_PROG_RANLIB
@@ -67,6 +71,11 @@ dnl PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/etc:/usr/local/bin:/usr/local/sbin:$
 
 LDFLAGS="$LDFLAGS -L."
 
+ac_cv_uname_m=`uname -m`
+ac_cv_uname_s=`uname -s`
+ac_cv_uname_r=`uname -r`
+ac_cv_uname_v=`uname -v`
+
 dnl Checks for programs.
 AC_PATH_PROG(PYTHON,python)
 AC_PATH_PROG(PERL,perl)
@@ -93,7 +102,7 @@ AC_ARG_WITH(pgsql,--with-pgsql=<dir> sets path to pgsql installation,[PGSQL=$wit
 AC_CHECK_LIB(crypt,main)
 if test "$ac_cv_lib_crypt_main" = "yes"; then
   if test -n "$PGSQL"; then
-    LIBS="$LIBS -L$PGSQL/lib"
+    LDFLAGS="$LDFLAGS -L$PGSQL/lib"
     CPPFLAGS="$CPPFLAGS -I$PGSQL/include"
   fi
   AC_CHECK_LIB(pq,PQsetdbLogin,,,-lcrypt)
@@ -101,7 +110,10 @@ if test "$ac_cv_lib_crypt_main" = "yes"; then
     AC_CHECK_HEADERS(pgsql/libpq-fe.h)
     AC_CHECK_HEADERS(postgresql/libpq-fe.h)
     AC_CHECK_HEADERS(libpq-fe.h)
-    if test  "$ac_cv_header_pgsql_libpq_fe_h" = "yes"; then
+    if [[ -n "$PGSQL" -a "$ac_cv_header_libpq_fe_h" = "yes" ]]; then
+      PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
+      PGINCLUDE="-I$PGSQL/include"
+    elif test  "$ac_cv_header_pgsql_libpq_fe_h" = "yes"; then
       PGLIBS="-lpq -lcrypt"
       PGINCLUDE="-I/usr/include/pgsql"
     elif test  "$ac_cv_header_postgresql_libpq_fe_h" = "yes"; then
@@ -113,7 +125,7 @@ if test "$ac_cv_lib_crypt_main" = "yes"; then
     fi
     if test -z "$PGINCLUDE"; then
       AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
-      AC_MSG_WARN([install PostgreSQL headers to compile this plugin (see Requirements).])
+      AC_MSG_WARN([install PostgreSQL headers to compile this plugin (see REQUIREMENTS).])
     else
       AC_SUBST(PGLIBS)
       AC_SUBST(PGINCLUDE)
@@ -122,11 +134,11 @@ if test "$ac_cv_lib_crypt_main" = "yes"; then
   else
     AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
     AC_MSG_WARN([LIBS="$LIBS" CPPFLAGS="$CPPFLAGS"])
-    AC_MSG_WARN([install PostgreSQL libs to compile this plugin (see Requirements).])
+    AC_MSG_WARN([install PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
   fi
 else
   AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
-  AC_MSG_WARN([install lib crypt and PostgreSQL libs to compile this plugin (see Requirements).])
+  AC_MSG_WARN([install lib crypt and PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
 fi
 LIBS="$_SAVEDLIBS"
 CPPFLAGS="$_SAVEDCPPFLAGS"
@@ -140,7 +152,7 @@ if test "$ac_cv_lib_radiusclient_rc_read_config" = "yes"; then
   AC_SUBST(RADIUSLIBS)
 else
   AC_MSG_WARN([Skipping radius plugin])
-  AC_MSG_WARN([install radius libs to compile this plugin (see Requirements).])
+  AC_MSG_WARN([install radius libs to compile this plugin (see REQUIREMENTS).])
 fi
 LIBS="$_SAVEDLIBS"
 
@@ -155,7 +167,7 @@ if test "$ac_cv_lib_ldap_main" = "yes"; then
   EXTRAS="$EXTRAS check_ldap"
 else
   AC_MSG_WARN([Skipping LDAP plugin])
-  AC_MSG_WARN([install LDAP libs to compile this plugin (see Requirements).])
+  AC_MSG_WARN([install LDAP libs to compile this plugin (see REQUIREMENTS).])
 fi
 LIBS="$_SAVEDLIBS"
 
@@ -191,11 +203,11 @@ if test "$ac_cv_lib_mysqlclient_mysql_init" = "yes" -o "$ac_cv_lib_mysqlclient_m
     AC_SUBST(check_mysql_LDFLAGS)
   else
     AC_MSG_WARN([Skipping mysql plugin])
-    AC_MSG_WARN([install mysql client headers to compile this plugin (see Requirements).])
+    AC_MSG_WARN([install mysql client headers to compile this plugin (see REQUIREMENTS).])
   fi
 else
   AC_MSG_WARN([Skipping mysql plugin])
-  AC_MSG_WARN([install mysql client libs to compile this plugin (see Requirements).])
+  AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).])
 fi
 CPPFLAGS="$_SAVEDCPPFLAGS"
 LIBS="$_SAVEDLIBS"
@@ -219,17 +231,39 @@ elif test "$OPENSSL" = "/usr/local/ssl/bin/openssl"; then
 fi
 AC_ARG_WITH(openssl,--with-openssl=<dir> sets path to openssl installation,[OPENSSL=$withval])
 
+AC_CHECK_HEADERS(krb5.h,FOUNDINCLUDE=yes,FOUNDINCLUDE=no)
+if test "$FOUNDINCLUDE" = "no"; then
+  _SAVEDCPPFLAGS="$CPPFLAGS"
+  CPPFLAGS="$_SAVEDCPPFLAGS -I/usr/kerberos/include"
+  unset ac_cv_header_krb5_h
+  AC_CHECK_HEADERS(krb5.h,
+                   KRB5INCLUDE="-I/usr/kerberos/include"
+                   FOUNDINCLUDE=yes,
+                   FOUNDINCLUDE=no)
+fi
+AC_SUBST(KRBINCLUDE)
+if test "$FOUNDINCLUDE" = "no"; then
+  CPPFLAGS="$_SAVEDCPPFLAGS"
+fi
+
 dnl Check for OpenSSL header files
+unset FOUNDINCLUDE
 _SAVEDCPPFLAGS="$CPPFLAGS"
-FOUNDINCLUDE=yes
-CPPFLAGS="-I$OPENSSL/include"
-AC_CHECK_HEADERS(openssl/x509.h openssl/ssl.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h,SSLINCLUDE="-I$OPENSSL/include",FOUNDINCLUDE=no)
+CPPFLAGS="$CPPFLAGS -I$OPENSSL/include"
+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)
 if test "$FOUNDINCLUDE" = "no"; then
-  FOUNDINCLUDE=yes
-  AC_CHECK_HEADERS(x509.h ssl.h rsa.h pem.h crypto.h err.h,SSLINCLUDE="-I$OPENSSL/include",FOUNDINCLUDE=no)
+  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)
-CPPFLAGS="$_SAVEDCPPFLAGS $SSLINCLUDE"
+if test "$FOUNDINCLUDE" = "no"; then
+  CPPFLAGS="$_SAVEDCPPFLAGS"
+fi
 
 dnl Check for crypto lib
 _SAVEDLIBS="$LIBS"
@@ -351,24 +385,6 @@ if test x"$ac_cv_HAVE_SNPRINTF" = x"no" -o x"$ac_cv_HAVE_VSNPRINTF" = x"no" -o x
   LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a"
 fi
 
-dnl We used to not do long options unless a compatible lib was found
-dnl Now we provide code and make libgetopt if native is not suitable
-AC_MSG_CHECKING(for getopt_long)
-AC_TRY_COMPILE([#include <getopt.h>
-                #include <stdlib.h>],
-               [int option_index=0;
-                static struct option *long_options;
-                getopt_long(0,NULL,"+h",long_options,&option_index);],
-               [AC_DEFINE(HAVE_GETOPT_H,1,[Define if getopt headers are found])
-                AC_DEFINE(HAVE_GETOPT_LONG,1,[Define if getopt_long is found])
-                AC_MSG_RESULT(yes)],
-               [AC_DEFINE(HAVE_GETOPT_H,1,[Define if getopt headers are found])
-                AC_DEFINE(HAVE_GETOPT_LONG,1,[Define if getopt_long is found])
-                AC_MSG_RESULT(no)
-                import_sources=getopt
-                LIBS="$LIBS -lgetopt"
-                DEPLIBS="$DEPLIBS libgetopt.a"])
-
 AC_TRY_COMPILE([#include <sys/time.h>],
                [struct timeval *tv;
                 struct timezone *tz;],
@@ -400,9 +416,83 @@ then
 fi
 
 AC_PATH_PROG(PATH_TO_PS,ps)
-dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
 dnl  STAT UCOMM              VSZ   RSS USER       UID  PPID COMMAND
-if [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]
+if ps -weo '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
+then
+       AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
+       AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
+       AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -weo 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
+       EXTRAS="$EXTRAS check_nagios"
+       AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -weo 'stat uid ppid comm args'",[Verbatim command to execute for ps in check_procs])
+       AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
+       AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -weo 'vsz comm'",[Verbatim command to execute for ps in check_vsz])
+       AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[Format string for scanning ps output in check_vsz])
+       AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -weo 'rss comm'",[Verbatim command to execute for ps in check_rss])
+       AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[Format string for scanning ps output in check_rss])
+  echo "      ps syntax... $PATH_TO_PS -weo 'stat comm vsz rss user ppid args'"
+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
+then
+       AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
+       AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
+       AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxo 'state uid ppid command'",[])
+       EXTRAS="$EXTRAS check_nagios"
+       AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxco 'state uid ppid command command'",[])
+       AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
+       AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxco 'vsz command'",[])
+       AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
+       AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxco 'rss command'",[])
+       AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
+       echo "      ps syntax... $PATH_TO_PS -Ao 'state command vsz rss'"
+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
+then
+       AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
+       AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
+       AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxno 'state user ppid comm'",[])
+       EXTRAS="$EXTRAS check_nagios"
+       AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxno 'state uid ppid comm args'",[])
+       AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
+       AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxno 'vsz comm'",[])
+       AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
+       AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxno 'rss comm'",[])
+       AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
+       echo "      ps syntax... $PATH_TO_PS -waxco 'state comm vsz rss'"
+dnl SunOS 4.1.3:
+dnl  F  UID  PID  PPID  CP  PRI  NI  SZ  RSS  WCHAN  STAT  TT  TIME  COMMAND
+dnl
+elif ps -laxnwww 2>/dev/null | egrep -i ["^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND"] >/dev/null
+then
+       AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
+       AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[])
+       EXTRAS="$EXTRAS check_nagios"
+       AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
+       AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -laxnwww",[])
+       AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %d %*s %d %*s %*s %*s %*s %*s %*s %s %*s %*s %n%s",[Format string for scanning ps output in check_procs])
+       AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[])
+       AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
+       AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[])
+       AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %d",[])
+       echo "      ps syntax... $PATH_TO_PS laxnwww"
+dnl Debian Linux / procps v1.2.9:
+dnl  FLAGS   UID   PID  PPID PRI  NI   SIZE   RSS WCHAN       STA TTY TIME COMMAND
+dnl    100     0     1     0   0   0    776    76  c0131c8c   S  ffff  0:11 init [2]
+dnl
+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_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
+       AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[])
+       EXTRAS="$EXTRAS check_nagios"
+       AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
+       AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS laxnwww",[])
+       AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s",[Format string for scanning ps output in check_procs])
+       AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[])
+       AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d",[])
+       AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[])
+       AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
+       echo "      ps syntax... $PATH_TO_PS laxnwww"
+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
 then
        AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
        AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
@@ -415,21 +505,21 @@ then
        AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -axo 'rss comm'",[Verbatim command to execute for ps in check_rss])
        AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[Format string for scanning ps output in check_rss])
   echo "      ps syntax... $PATH_TO_PS -axo 'stat comm vsz rss user ppid args'"
-dnl AIX 4.3.3 - needs verification.
-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 AIX 4.3.3 - needs verification. This works for 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
 then
        AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
        AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
        AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
        EXTRAS="$EXTRAS check_nagios"
        AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'stat uid ppid comm args'")
-       AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
+       AC_DEFINE_UNQUOTED(PS_FORMAT,[["%s%*[ +] %d %d %s %n"]],[Format string for scanning ps output in check_procs])
        AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz comm'",[])
        AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
        AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss comm'",[])
        AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
   echo "      ps syntax... $PATH_TO_PS -ao 'stat comm vsz rss user ppid args'"
-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 ppid args' 2>/dev/null | egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
 then
        AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
        AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
@@ -442,7 +532,7 @@ then
        AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -eo 'rss comm'",[])
        AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
         echo "      ps syntax... $PATH_TO_PS -eo 's  comm vsz rss user ppid args'"
-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 ppid args' 2>/dev/null | egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
 then
        AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
        AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
@@ -455,7 +545,7 @@ then
        AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
        AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
        echo "      ps syntax... $PATH_TO_PS -Ao 's comm vsz rss'"
-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 ppid args' 2>/dev/null | egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
 then
        AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
        AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
@@ -468,7 +558,7 @@ then
        AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
        AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
        echo "      ps syntax... $PATH_TO_PS -Ao 'status comm vsz rss'"
-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 ppid args' 2>/dev/null | egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
 then
        AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
        AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
@@ -482,7 +572,7 @@ then
        AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
        echo "      ps syntax... $PATH_TO_PS -Ao 'state comm vsz rss'"
 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 ppid args' 2>/dev/null | egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
 then
        AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
        AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
@@ -495,36 +585,8 @@ then
        AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss command'",[])
        AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
        echo "      ps syntax... $PATH_TO_PS -ao 'state command vsz rss'"
-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]
-then
-       AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
-       AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
-       AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxo 'state uid ppid command'",[])
-       EXTRAS="$EXTRAS check_nagios"
-       AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxco 'state uid ppid command command'",[])
-       AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
-       AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxco 'vsz command'",[])
-       AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
-       AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxco 'rss command'",[])
-       AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
-       echo "      ps syntax... $PATH_TO_PS -Ao 'state command vsz rss'"
-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]
-then
-       AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
-       AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
-       AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxno 'state user ppid comm'",[])
-       EXTRAS="$EXTRAS check_nagios"
-       AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxno 'state uid ppid comm args'",[])
-       AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
-       AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxno 'vsz comm'",[])
-       AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
-       AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxno 'rss comm'",[])
-       AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
-       echo "      ps syntax... $PATH_TO_PS -waxco 'state comm vsz rss'"
 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]
+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_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
        AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
@@ -536,7 +598,7 @@ then
        AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
        echo "      ps syntax... $PATH_TO_PS -el"
 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]
+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_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
        AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
@@ -547,44 +609,11 @@ then
        AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
        AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
        echo "      ps syntax... $PATH_TO_PS -el"
-dnl SunOS 4.1.3:
-dnl  F  UID  PID  PPID  CP  PRI  NI  SZ  RSS  WCHAN  STAT  TT  TIME  COMMAND
-dnl
-elif [ps -laxnwww 2>/dev/null | egrep -i "^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND" >/dev/null]
-then
-       AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
-       AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[])
-       EXTRAS="$EXTRAS check_nagios"
-       AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
-       AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -laxnwww",[])
-       AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %d %*s %d %*s %*s %*s %*s %*s %*s %s %*s %*s %n%s",[Format string for scanning ps output in check_procs])
-       AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[])
-       AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
-       AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[])
-       AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %d",[])
-       echo "      ps syntax... $PATH_TO_PS laxnwww"
-dnl Debian Linux / procps v1.2.9:
-dnl  FLAGS   UID   PID  PPID PRI  NI   SIZE   RSS WCHAN       STA TTY TIME COMMAND
-dnl    100     0     1     0   0   0    776    76  c0131c8c   S  ffff  0:11 init [2]
-dnl
-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_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
-       AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[])
-       EXTRAS="$EXTRAS check_nagios"
-       AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
-       AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS laxnwww",[])
-       AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s",[Format string for scanning ps output in check_procs])
-       AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[])
-       AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d",[])
-       AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[])
-       AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
-       echo "      ps syntax... $PATH_TO_PS laxnwww"
 dnl    
 dnl AIX 4.1:
 dnl     F S      UID   PID  PPID   C PRI NI ADDR  SZ  RSS   WCHAN    TTY  TIME CMD
 dnl    303 A        0     0     0 120  16 -- 1c07  20   24              -  0:45 swapper
-elif [ps -el 2>/dev/null | egrep -i "^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+" >/dev/null]
+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_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
        AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
@@ -596,7 +625,7 @@ then
        AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
        echo "      ps syntax... $PATH_TO_PS -el"
 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]
+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_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
        AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
@@ -607,6 +636,36 @@ then
        AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS glaxen",[])
        AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
        echo "      ps syntax... $PATH_TO_PS glaxen"
+dnl MacOSX / Darwin
+dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
+dnl STAT      VSZ    RSS   UID USER     PPID UCOMM            COMMAND
+dnl Ss       1308    272     0 root        0 init             /sbin/init
+elif ps waxo 'state vsz rss uid user ppid ucomm command' 2>/dev/null | egrep -i ["^STAT +VSZ +RSS +UID +USER +PPID +UCOMM +COMMAND"] >/dev/null
+then
+       AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
+       AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
+       AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxo 'state uid ppid command'",[])
+       EXTRAS="$EXTRAS check_nagios"
+       AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxo 'state uid ppid ucomm command'",[])
+       AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
+       AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxco 'vsz command'",[])
+       AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
+       AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxco 'rss command'",[])
+       AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
+       echo "      ps syntax... $PATH_TO_PS waxo 'state vsz rss 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_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
+       AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
+       AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Al",[])
+       AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s",[Format string for scanning ps output in check_procs])
+       if ps -Ao 'vsz comm' 2>/dev/null | egrep -i ["^ *VSZ +COMMAND"] >/dev/null
+       then
+               AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
+               AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %d",[])
+       fi
+       echo "      ps syntax... $PATH_TO_PS -Al"
 else
        echo "** Unable to find usable ps syntax"
 fi
@@ -615,25 +674,25 @@ AC_ARG_WITH(df_command,--with-df-command=<syntax> sets syntax for df,DF_COMMAND=
 if test -n "$DF_COMMAND"
 then
        AC_DEFINE_UNQUOTED(DF_COMMAND,"$DF_COMMAND",[path and args for df command])
-elif [df -Pk 2>/dev/null | egrep -i "^(/dev/|[a-zA-Z]:)[a-z0-9/\\]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/\\]*" >/dev/null]
+elif df -Pk 2>/dev/null | egrep -i ["^(/dev/|[a-zA-Z]:)[a-z0-9/\\]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/\\]*"] >/dev/null
 then
        AC_PATH_PROG(PATH_TO_DF,df)
-       AC_MSG_RESULT("      df syntax... $PATH_TO_DF -Pk")
+       AC_MSG_RESULT([      df syntax... $PATH_TO_DF -Pk])
        AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -Pk",[path and args for df command])
-elif [df -k 2>/dev/null | egrep -i "^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*" >/dev/null]
+elif df -k 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
 then
        AC_PATH_PROG(PATH_TO_DF,df)
-       AC_MSG_RESULT("      df syntax... $PATH_TO_DF -k")
+       AC_MSG_RESULT([      df syntax... $PATH_TO_DF -k])
        AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -k",[path and args for df command])
-elif [df 2>/dev/null | egrep -i "^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*" >/dev/null]
+elif df 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
 then
        AC_PATH_PROG(PATH_TO_DF,df)
-       AC_MSG_RESULT("      df syntax... $PATH_TO_DF")
+       AC_MSG_RESULT([      df syntax... $PATH_TO_DF])
        AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF",[path and args for df command])
-elif [bdf 2>/dev/null | egrep -i "^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*" >/dev/null]
+elif bdf 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
 then
        AC_PATH_PROG(PATH_TO_DF,bdf)
-       AC_MSG_RESULT("      df syntax... $PATH_TO_DF")
+       AC_MSG_RESULT([      df syntax... $PATH_TO_DF])
        AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF",[path and args for df command])
 else
        AC_MSG_WARN("unable to find usable df syntax")
@@ -649,38 +708,43 @@ then
        then
                AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
        fi
-elif [ping -n -U -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
+elif [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && ping -n -s 127.0.0.1 56 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
+then
+        PING_COMMAND="$PATH_TO_PING -n -U -c %d %s"
+        AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
+        echo "      ping syntax... $PATH_TO_PING -n -U -c <count> <host>"
+elif ping -n -U -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
 then
         PING_COMMAND="$PATH_TO_PING -n -U -c %d %s"
         AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
         echo "      ping syntax... $PATH_TO_PING -n -U -c <count> <host>"
-elif [ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
+elif ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
 then
        PING_COMMAND="$PATH_TO_PING -n -c %d %s"
        AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
        echo "      ping syntax... $PATH_TO_PING -n -c <count> <host>"
-elif [ping -n 127.0.0.1 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
+elif ping -n 127.0.0.1 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
 then
        PING_COMMAND="$PATH_TO_PING -n %s -c %d"
        echo "      ping syntax... $PATH_TO_PING -n <host> -c <count>"
-elif [ping 127.0.0.1 -n 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
+elif ping 127.0.0.1 -n 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
 then
        PING_COMMAND="$PATH_TO_PING %s -n %d"
        echo "      ping syntax... $PATH_TO_PING <host> -n <count>"
-elif [ping -n -s 127.0.0.1 56 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
+elif ping -n -s 127.0.0.1 56 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
 then
        PING_COMMAND="$PATH_TO_PING -n -s %s 56 %d"
        echo "      ping syntax... $PATH_TO_PING -n -s <host> 56 <count>"
-elif [ping -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
+elif ping -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
 then
        PING_COMMAND="$PATH_TO_PING -n -h %s -s 56 -c %d"
        echo "      ping syntax... $PATH_TO_PING -n -h <host> -s 56 -c <count>"
-elif [ping -n -s 56 -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
+elif ping -n -s 56 -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
 then
        PING_COMMAND="$PATH_TO_PING -n -s 56 -c %d %s"
        AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
        echo "      ping syntax... $PATH_TO_PING -n -s 56 -c <count> <host>"
-elif [ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
+elif ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
 then
        PING_COMMAND="$PATH_TO_PING -n -c %d %s"
        AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
@@ -693,32 +757,23 @@ AC_DEFINE_UNQUOTED(PING_COMMAND,"$PING_COMMAND",[path and args for ping command]
 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
 if test -n "$ac_cv_path_PATH_TO_NSLOOKUP"
 then
-       AC_MSG_CHECKING("nslookup syntax")
-       if [nslookup -sil 127.0.0.1 2>&1 | grep "*** Invalid option: sil" >/dev/null]
+       if nslookup -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
        then
-               AC_MSG_RESULT("$PATH_TO_NSLOOKUP")
+               AC_MSG_RESULT([      nslookup syntax... $PATH_TO_NSLOOKUP])
                AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP",[path and args for nslookup])
        else
-               AC_MSG_RESULT("$PATH_TO_NSLOOKUP -sil")
+               AC_MSG_RESULT([      nslookup syntax... $PATH_TO_NSLOOKUP -sil])
                AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP -sil",[path and args for nslookup])
        fi
        EXTRAS="$EXTRAS check_dns"
 else
-       AC_MSG_WARN("nslookup command not found")
+       AC_MSG_WARN([nslookup command not found])
 fi
 
 AC_PATH_PROG(PATH_TO_HOST,host)
 if test -n "$ac_cv_path_PATH_TO_HOST"
 then
-       AC_MSG_CHECKING("host syntax")
-       if [host 127.0.0.1 2>&1 | grep -v "ommand not found" > /dev/null]
-       then
-               AC_MSG_RESULT("$PATH_TO_HOST")
-               AC_DEFINE_UNQUOTED(HOST_COMMAND,"$PATH_TO_HOST",[path to host binary])
-       fi
        EXTRAS="$EXTRAS check_dns"
-else   
-       AC_MSG_WARN("host command not found")
 fi
 
 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
@@ -729,9 +784,10 @@ AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
 
 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
-if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPDC")
+AC_PATH_PROGS(PATH_TO_NTPQ,ntpq)
+if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPQ")
 then
-       AC_DEFINE_UNQUOTED(PATH_TO_NTPDC,"$PATH_TO_NTPDC",[path to ntpdc binary])
+       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])
 else
        echo "** Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization"
@@ -826,6 +882,10 @@ else
        echo "** Could not find mailq or eqivalent"
 fi
 
+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.
+
 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"
@@ -836,7 +896,7 @@ then
        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"
-elif [swap -l 2>&1 | egrep -i "swapfile" >/dev/null]
+elif [swap -l 2>&1 >/dev/null]
 then
        echo "found swap command"
        AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
@@ -850,9 +910,13 @@ then
        then
                AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %*[[0-9,-]] %*d %d %d"],[Format string for parsing swap output])
                echo "      using Solaris format"
+       elif [swap -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null]
+       then
+               AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %*[[0-9,-]] %*d %d %d"],[Format string for parsing swap output])
+               echo "      using Unixware format"
        fi
        EXTRAS="$EXTRAS check_swap"
-elif [swapinfo -k 2>&1 | egrep -i "Device" >/dev/null]
+elif [swapinfo -k 2>&1 | egrep -i "^Device" >/dev/null]
 then
        echo "found swapinfo command"
        AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
@@ -864,11 +928,11 @@ then
                echo "      using FreeBSD format"
        fi
        EXTRAS="$EXTRAS check_swap"
-elif [swapinfo -d 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
+elif [swapinfo -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
 then
        AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
        AC_PATH_PROG(PATH_TO_SWAP,swapinfo)
-       AC_DEFINE_UNQUOTED(SWAP_COMMAND,"/bin/sh '$PATH_TO_SWAP -d | /bin/tail -l +2'",[Path to swap/swapinfo binary, with any args])
+       AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -dfM",[Path to swap/swapinfo binary, with any args])
        AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %d %*d %d"],[Format string for parsing swap output ])
        echo "        using HP-UX format HP-UX"
 fi
@@ -903,4 +967,4 @@ AC_SUBST(DEPLIBS)
 
 AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"${VERSION}",[package version])
 
-AC_OUTPUT(Makefile subst plugins/Makefile plugins-scripts/Makefile plugins-scripts/subst plugins-scripts/utils.pm plugins-scripts/utils.sh command.cfg test.pl,echo timestamp > plugins/stamp-h1;echo timestamp > plugins/stamp-h2;echo timestamp > plugins/stamp-h3;echo timestamp > plugins/stamp-h4;echo timestamp > plugins/stamp-h5;echo timestamp > plugins/stamp-h6;PATH=.:..:$PATH subst.sh command.cfg)
+AC_OUTPUT(Makefile subst lib/Makefile plugins/Makefile plugins-scripts/Makefile plugins-scripts/subst plugins-scripts/utils.pm plugins-scripts/utils.sh command.cfg test.pl,echo timestamp > plugins/stamp-h1;echo timestamp > plugins/stamp-h2;echo timestamp > plugins/stamp-h3;echo timestamp > plugins/stamp-h4;echo timestamp > plugins/stamp-h5;echo timestamp > plugins/stamp-h6;PATH=.:..:$PATH subst.sh command.cfg)