Code

adjustments to remove beta tagging
[nagiosplug.git] / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 AC_REVISION ($Revision$)
3 AC_INIT(Helper.pm)
4 VER=1.3.0
5 REL=1
6 AC_SUBST(VER)
7 AC_SUBST(REL)
8 PACKAGE_VERSION="${VER}"
9 AC_SUBST(PACKAGE_VERSION)
10 PACKAGE_RELEASE="${REL}"
11 AC_SUBST(PACKAGE_RELEASE)
12 AM_INIT_AUTOMAKE(nagios-plugins,${PACKAGE_VERSION})
13 AM_CONFIG_HEADER(plugins/config.h plugins/common.h plugins/version.h plugins/netutils.h plugins/utils.h plugins/popen.h)
15 AC_PREFIX_DEFAULT(/usr/local/nagios)
17 dnl Figure out how to invoke "install" and what install options to use.
19 AC_PROG_INSTALL
20 AC_SUBST(INSTALL)
22 AC_PROG_CC
23 AC_PROG_MAKE_SET
24 AC_PROG_AWK
26 saved_srcdir=$srcdir
27 srcdir=$srcdir/lib
28 test -f $srcdir/getloadavg.c \
29   || AC_MSG_ERROR([getloadavg.c is not in $srcdir])
30 AC_FUNC_GETLOADAVG
31 srcdir=$saved_srcdir
33 ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD])
34 dnl AM_WITH_REGEX
35 AC_PROG_RANLIB
37 AC_PATH_PROG(ACLOCAL,aclocal)
38 AC_PATH_PROG(AUTOMAKE,automake)
39 AC_PATH_PROG(AUTOCONF,autoconf)
40 AC_PATH_PROG(AUTOHEADER,autoheader)
42 PLUGIN_TEST=`echo $srcdir/plugins/t/*.t|sed -e 's,\.*/plugins/,,g'`
43 AC_SUBST(PLUGIN_TEST)dnl
45 SCRIPT_TEST=`echo $srcdir/plugins-scripts/t/*.t|sed -e 's,\.*/plugins-scripts/,,g'`
46 AC_SUBST(SCRIPT_TEST)dnl
48 WARRANTY="The nagios plugins come with ABSOLUTELY NO WARRANTY. You may redistribute\ncopies of the plugins under the terms of the GNU General Public License.\nFor more information about these matters, see the file named COPYING.\n"
49 AC_SUBST(WARRANTY)
51 SUPPORT="Send email to nagios-users@lists.sourceforge.net if you have questions\nregarding use of this software. To submit patches or suggest improvements,\nsend email to nagiosplug-devel@lists.sourceforge.net\n"
52 AC_SUBST(SUPPORT)
54 dnl CGIURL has changed for Nagios with 1.0 beta
55 AC_ARG_WITH(cgiurl,--with-cgiurl=<dir> sets URL for cgi programs,cgiurl=$withval,cgiurl=/nagios/cgi-bin)
56 CGIURL="$cgiurl"
57 AC_DEFINE_UNQUOTED(CGIURL,"$CGIURL",[URL of CGI programs])
59 AC_ARG_WITH(nagios_user,--with-nagios-user=<user> sets user name to run nagios,nagios_usr=$withval,nagios_usr=nagios)
60 AC_ARG_WITH(nagios_group,--with-nagios-group=<group> sets group name to run nagios,nagios_grp=$withval,nagios_grp=nagios)
61 AC_SUBST(nagios_usr)
62 AC_SUBST(nagios_grp)
63 INSTALL_OPTS="-o $nagios_usr -g $nagios_grp"
64 AC_SUBST(INSTALL_OPTS)
66 AC_ARG_WITH(trusted_path,--with-trusted-path=/bin:/sbin:/usr/bin:/usr/sbin sets trusted path for executables called by scripts,trusted_path=$withval,trusted_path=/bin:/sbin:/usr/bin:/usr/sbin)
67 AC_SUBST(trusted_path)
69 EXTRAS=
70 dnl PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/etc:/usr/local/bin:/usr/local/sbin:$PATH
72 LDFLAGS="$LDFLAGS -L."
74 ac_cv_uname_m=`uname -m`
75 ac_cv_uname_s=`uname -s`
76 ac_cv_uname_r=`uname -r`
77 ac_cv_uname_v=`uname -v`
79 dnl Checks for programs.
80 AC_PATH_PROG(PYTHON,python)
81 AC_PATH_PROG(PERL,perl)
82 AC_PATH_PROG(SH,sh)
84 AC_PATH_PROG(HOSTNAME,hostname)
85 AC_PATH_PROG(BASENAME,basename)
88 dnl
89 dnl Checks for libraries.
90 dnl
92 AC_CHECK_LIB(dce,main,SOCKETLIBS="$SOCKETLIBS -ldce")
93 AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
94 AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
95 AC_CHECK_LIB(resolv,main,SOCKETLIBS="$SOCKETLIBS -lresolv")
96 AC_SUBST(SOCKETLIBS)
98 dnl Check for PostgreSQL libraries
99 _SAVEDLIBS="$LIBS"
100 _SAVEDCPPFLAGS="$CPPFLAGS"
101 AC_ARG_WITH(pgsql,--with-pgsql=<dir> sets path to pgsql installation,[PGSQL=$withval])
102 AC_CHECK_LIB(crypt,main)
103 if test "$ac_cv_lib_crypt_main" = "yes"; then
104   if test -n "$PGSQL"; then
105     LDFLAGS="$LDFLAGS -L$PGSQL/lib"
106     CPPFLAGS="$CPPFLAGS -I$PGSQL/include"
107   fi
108   AC_CHECK_LIB(pq,PQsetdbLogin,,,-lcrypt)
109   if test "$ac_cv_lib_pq_PQsetdbLogin" = "yes"; then
110     AC_CHECK_HEADERS(pgsql/libpq-fe.h)
111     AC_CHECK_HEADERS(postgresql/libpq-fe.h)
112     AC_CHECK_HEADERS(libpq-fe.h)
113     if [[ -n "$PGSQL" -a "$ac_cv_header_libpq_fe_h" = "yes" ]]; then
114       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
115       PGINCLUDE="-I$PGSQL/include"
116     elif test  "$ac_cv_header_pgsql_libpq_fe_h" = "yes"; then
117       PGLIBS="-lpq -lcrypt"
118       PGINCLUDE="-I/usr/include/pgsql"
119     elif test  "$ac_cv_header_postgresql_libpq_fe_h" = "yes"; then
120       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
121       PGINCLUDE="-I/usr/include/postgresql"
122     elif test  "$ac_cv_header_libpq_fe_h" = "yes"; then
123       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
124       PGINCLUDE="-I$PGSQL/include"
125     fi
126     if test -z "$PGINCLUDE"; then
127       AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
128       AC_MSG_WARN([install PostgreSQL headers to compile this plugin (see REQUIREMENTS).])
129     else
130       AC_SUBST(PGLIBS)
131       AC_SUBST(PGINCLUDE)
132       EXTRAS="$EXTRAS check_pgsql"
133     fi
134   else
135     AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
136     AC_MSG_WARN([LIBS="$LIBS" CPPFLAGS="$CPPFLAGS"])
137     AC_MSG_WARN([install PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
138   fi
139 else
140   AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
141   AC_MSG_WARN([install lib crypt and PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
142 fi
143 LIBS="$_SAVEDLIBS"
144 CPPFLAGS="$_SAVEDCPPFLAGS"
146 dnl Check for radius libraries
147 _SAVEDLIBS="$LIBS"
148 AC_CHECK_LIB(radiusclient,rc_read_config)
149 if test "$ac_cv_lib_radiusclient_rc_read_config" = "yes"; then
150   EXTRAS="$EXTRAS check_radius"
151         RADIUSLIBS="-lradiusclient"
152   AC_SUBST(RADIUSLIBS)
153 else
154   AC_MSG_WARN([Skipping radius plugin])
155   AC_MSG_WARN([install radius libs to compile this plugin (see REQUIREMENTS).])
156 fi
157 LIBS="$_SAVEDLIBS"
159 dnl Check for LDAP libraries
160 _SAVEDLIBS="$LIBS"
161 AC_CHECK_LIB(ldap,main,,,-llber)
162 if test "$ac_cv_lib_ldap_main" = "yes"; then
163   LDAPLIBS="-lldap -llber"\
164   LDAPINCLUDE="-I/usr/include/ldap"
165   AC_SUBST(LDAPLIBS)
166   AC_SUBST(LDAPINCLUDE)
167   EXTRAS="$EXTRAS check_ldap"
168 else
169   AC_MSG_WARN([Skipping LDAP plugin])
170   AC_MSG_WARN([install LDAP libs to compile this plugin (see REQUIREMENTS).])
171 fi
172 LIBS="$_SAVEDLIBS"
175 dnl Check for mysql libraries
176 _SAVEDLIBS="$LIBS"
177 _SAVEDCPPFLAGS="$CPPFLAGS"
178 AC_ARG_WITH(mysql,--with-mysql=<dir> sets path to mysql installation (assumes lib/mysql and include subdirs),[MYSQL=$withval])
179 if test -n "$MYSQL"; then
180   MYSQLLIBDIR=$MYSQL/lib/mysql
181   CPPFLAGS="-I$MYSQL/include"
182   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L$MYSQLLIBDIR ",,-L$MYSQLLIBDIR -lz)
183   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
184 elif test -f /usr/lib/libmysqlclient.so; then
185   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
186   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
187 elif test -f /usr/lib/libmysqlclient.a; then
188   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
189   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
190 elif test -f /usr/lib/mysql/libmysqlclient.so; then
191   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
192   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
193 elif test -f /usr/lib/mysql/libmysqlclient.a; then
194   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
195   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
196 fi
197 if test "$ac_cv_lib_mysqlclient_mysql_init" = "yes" -o "$ac_cv_lib_mysqlclient_mysql_close" = "yes"; then
198   AC_CHECK_HEADERS(mysql/mysql.h mysql/errmsg.h, MYSQLINCLUDE="-I$MYSQL/include" )
199   if test "$ac_cv_header_mysql_mysql_h" = "yes" -a "$ac_cv_header_mysql_errmsg_h" = "yes"; then
200     EXTRAS="$EXTRAS check_mysql"
201     AC_SUBST(MYSQLINCLUDE)
202     AC_SUBST(MYSQLLIBS)
203     AC_SUBST(check_mysql_LDFLAGS)
204   else
205     AC_MSG_WARN([Skipping mysql plugin])
206     AC_MSG_WARN([install mysql client headers to compile this plugin (see REQUIREMENTS).])
207   fi
208 else
209   AC_MSG_WARN([Skipping mysql plugin])
210   AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).])
211 fi
212 CPPFLAGS="$_SAVEDCPPFLAGS"
213 LIBS="$_SAVEDLIBS"
215 dnl Check for OpenSSL location
216 AC_PATH_PROG(OPENSSL,openssl)
217 if test "$OPENSSL" = "/usr/bin/openssl"; then
218   OPENSSL=/usr
219 elif test "$OPENSSL" = "/usr/sbin/openssl"; then
220   OPENSSL=/usr
221 elif test "$OPENSSL" = "/opt/bin/openssl"; then
222   OPENSSL=/opt
223 elif test "$OPENSSL" = "/opt/openssl/bin/openssl"; then
224   OPENSSL=/opt/openssl
225 elif test "$OPENSSL" = "/usr/slocal/bin/openssl"; then
226   OPENSSL=/usr/slocal
227 elif test "$OPENSSL" = "/usr/local/bin/openssl"; then
228   OPENSSL=/usr/local
229 elif test "$OPENSSL" = "/usr/local/ssl/bin/openssl"; then
230   OPENSSL=/usr/local/ssl
231 fi
232 AC_ARG_WITH(openssl,--with-openssl=<dir> sets path to openssl installation,[OPENSSL=$withval])
234 AC_CHECK_HEADERS(krb5.h,FOUNDINCLUDE=yes,FOUNDINCLUDE=no)
235 if test "$FOUNDINCLUDE" = "no"; then
236   _SAVEDCPPFLAGS="$CPPFLAGS"
237   CPPFLAGS="$_SAVEDCPPFLAGS -I/usr/kerberos/include"
238   unset ac_cv_header_krb5_h
239   AC_CHECK_HEADERS(krb5.h,
240                    KRB5INCLUDE="-I/usr/kerberos/include"
241                    FOUNDINCLUDE=yes,
242                    FOUNDINCLUDE=no)
243 fi
244 AC_SUBST(KRBINCLUDE)
245 if test "$FOUNDINCLUDE" = "no"; then
246   CPPFLAGS="$_SAVEDCPPFLAGS"
247 fi
249 dnl Check for OpenSSL header files
250 unset FOUNDINCLUDE
251 _SAVEDCPPFLAGS="$CPPFLAGS"
252 CPPFLAGS="$CPPFLAGS -I$OPENSSL/include"
253 AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h,
254                  SSLINCLUDE="-I$OPENSSL/include"
255                  FOUNDINCLUDE=yes,
256                  FOUNDINCLUDE=no)
257 if test "$FOUNDINCLUDE" = "no"; then
258   AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h,
259                    SSLINCLUDE="-I$OPENSSL/include"
260                    FOUNDINCLUDE=yes,
261                    FOUNDINCLUDE=no)
262 fi
263 AC_SUBST(SSLINCLUDE)
264 if test "$FOUNDINCLUDE" = "no"; then
265   CPPFLAGS="$_SAVEDCPPFLAGS"
266 fi
268 dnl Check for crypto lib
269 _SAVEDLIBS="$LIBS"
270 AC_CHECK_LIB(crypto,CRYPTO_lock,,,-L$OPENSSL/lib)
271 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
272   dnl Check for SSL lib
273   AC_CHECK_LIB(ssl,main,LDFLAGS="$LDFLAGS -L$OPENSSL/lib" SSLLIBS="-lssl -lcrypto",AC_CHECK_LIB(ssl,main,LDFLAGS="$LDFLAGS -L$OPENSSL/lib" SSLLIBS="-lssl -lcrypto"),-L$OPENSSL/lib -lcrypto)
274 fi
275 LIBS="$_SAVEDLIBS"
277 dnl test headers and libs to decide whether check_http should use SSL
278 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
279   if test "$ac_cv_lib_ssl_main" = "yes"; then
280     if test "$FOUNDINCLUDE" = "yes"; then
281       AC_SUBST(SSLLIBS)
282       AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
283     fi
284   fi
285 fi
286 CPPFLAGS="$_SAVEDCPPFLAGS"
288 dnl
289 dnl Checks for header files.
290 dnl
292 AC_HEADER_STDC
293 AC_HEADER_TIME
294 AC_HEADER_SYS_WAIT
295 AC_CHECK_HEADERS(signal.h strings.h string.h syslog.h unistd.h uio.h errno.h regex.h sys/types.h sys/time.h sys/socket.h sys/loadavg.h)
296 AC_CHECK_HEADERS(stdarg.h sys/unistd.h unistd.h ctype.h sys/wait.h stdlib.h)
298 dnl Checks for typedefs, structures, and compiler characteristics.
299 AC_C_CONST
300 AC_STRUCT_TM
301 AC_TYPE_PID_T
302 AC_TYPE_SIZE_T
303 AC_TYPE_SIGNAL
305 AC_CHECK_SIZEOF(int,cross)
306 AC_CHECK_SIZEOF(long,cross)
307 AC_CHECK_SIZEOF(short,cross)
309 AC_CACHE_CHECK([for long long],ac_cv_have_longlong,[
310 AC_TRY_RUN([#include <stdio.h>
311 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
312 ac_cv_have_longlong=yes,ac_cv_have_longlong=no,ac_cv_have_longlong=cross)])
313 if test x"$ac_cv_have_longlong" = x"yes"; then
314     AC_DEFINE(HAVE_LONGLONG,1,[Define if system has long long type])
315 fi
318 # Check if the compiler supports the LL prefix on long long integers.
319 # AIX needs this.
321 AC_CACHE_CHECK([for LL suffix on long long integers],ac_cv_compiler_supports_ll, [
322     AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
323         ac_cv_compiler_supports_ll=yes,ac_cv_compiler_supports_ll=no)])
324 if test x"$ac_cv_compiler_supports_ll" = x"yes"; then
325    AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Define if compiler support long long])
326 fi
328 AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE_VA_COPY,[
329 AC_TRY_LINK([#include <stdarg.h>
330 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
331 ac_cv_HAVE_VA_COPY=yes,ac_cv_HAVE_VA_COPY=no)])
332 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
333     AC_DEFINE(HAVE_VA_COPY,1,[Define if system has va_copy])
334 fi
336 AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
337 AC_TRY_RUN([
338 #include <sys/types.h>
339 #include <stdarg.h>
340 void foo(const char *format, ...) { 
341        va_list ap;
342        int len;
343        char buf[5];
345        va_start(ap, format);
346        len = vsnprintf(buf, 0, format, ap);
347        va_end(ap);
348        if (len != 5) exit(1);
350        va_start(ap, format);
351        len = vsnprintf(0, 0, format, ap);
352        va_end(ap);
353        if (len != 5) exit(1);
355        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
357        exit(0);
359 main() { foo("hello"); }
360 ],
361 ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
362 if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
363     AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
364 fi
366 #AC_HAVE_DECL(asprintf, [#include <stdio.h>])
367 #AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
368 #AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
369 #AC_HAVE_DECL(snprintf, [#include <stdio.h>])
371 AC_CHECK_FUNC(snprintf,
372               AC_DEFINE(HAVE_SNPRINTF,1,[Define if snprintf is present]),
373               LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
374 AC_CHECK_FUNC(vsnprintf,
375               AC_DEFINE(HAVE_VSNPRINTF,1,[Define if vsnprintf is present]),
376               LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
377 AC_CHECK_FUNC(vasprintf,
378               AC_DEFINE(HAVE_VASPRINTF,1,[Define if vasprintf is present]),
379               LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
380 AC_CHECK_FUNC(asprintf,
381               AC_DEFINE(HAVE_ASPRINTF,1,[Define if asprintf is present]),
382               LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
384 if test x"$ac_cv_HAVE_SNPRINTF" = x"no" -o x"$ac_cv_HAVE_VSNPRINTF" = x"no" -o x"$ac_cv_HAVE_VASPRINTF" = x"no" -o x"$ac_cv_HAVE_ASPRINTF" = x"no"; then
385   LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a"
386 fi
388 AC_TRY_COMPILE([#include <sys/time.h>],
389                [struct timeval *tv;
390                 struct timezone *tz;],
391                AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
392                AC_TRY_COMPILE([#include <sys/time.h>],
393                               [struct timeval *tv;
394                                struct timezone *tz;
395                                gettimeofday(tv, tz);],
396                               AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
397                               AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
399 dnl Checks for library functions.
400 AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul)
402 AC_MSG_CHECKING(for type of socket size)
403 AC_TRY_COMPILE([#include <stdlib.h>
404                 #include <sys/types.h>
405                 #include <sys/socket.h>],
406                [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
407                [AC_DEFINE(SOCKET_SIZE_TYPE, size_t, [Define type of socket size])
408                 AC_MSG_RESULT(size_t)],
409                [AC_DEFINE(SOCKET_SIZE_TYPE, int, [Define type of socket size])
410                 AC_MSG_RESULT(int)])
412 if test -f "/proc/loadavg"
413 then
414   AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
415   AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg])
416 fi
418 AC_PATH_PROG(PATH_TO_PS,ps)
419 dnl  STAT UCOMM              VSZ   RSS USER       UID  PPID COMMAND
420 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
421 then
422         AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
423         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
424         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -weo 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
425         EXTRAS="$EXTRAS check_nagios"
426         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -weo 'stat uid ppid comm args'",[Verbatim command to execute for ps in check_procs])
427         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
428         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -weo 'vsz comm'",[Verbatim command to execute for ps in check_vsz])
429         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[Format string for scanning ps output in check_vsz])
430         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -weo 'rss comm'",[Verbatim command to execute for ps in check_rss])
431         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[Format string for scanning ps output in check_rss])
432   echo "      ps syntax... $PATH_TO_PS -weo 'stat comm vsz rss user ppid args'"
433 dnl FreeBSD
434 elif ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PPID"] >/dev/null
435 then
436         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
437         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
438         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxo 'state uid ppid command'",[])
439         EXTRAS="$EXTRAS check_nagios"
440         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxco 'state uid ppid command command'",[])
441         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
442         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxco 'vsz command'",[])
443         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
444         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxco 'rss command'",[])
445         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
446         echo "      ps syntax... $PATH_TO_PS -Ao 'state command vsz rss'"
447 dnl BSD-like mode in RH 6.1
448 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
449 then
450         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
451         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
452         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxno 'state user ppid comm'",[])
453         EXTRAS="$EXTRAS check_nagios"
454         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxno 'state uid ppid comm args'",[])
455         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
456         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxno 'vsz comm'",[])
457         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
458         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxno 'rss comm'",[])
459         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
460         echo "      ps syntax... $PATH_TO_PS -waxco 'state comm vsz rss'"
461 dnl SunOS 4.1.3:
462 dnl  F  UID  PID  PPID  CP  PRI  NI  SZ  RSS  WCHAN  STAT  TT  TIME  COMMAND
463 dnl
464 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
465 then
466         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
467         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[])
468         EXTRAS="$EXTRAS check_nagios"
469         AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
470         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -laxnwww",[])
471         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])
472         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[])
473         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
474         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[])
475         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %d",[])
476         echo "      ps syntax... $PATH_TO_PS laxnwww"
477 dnl Debian Linux / procps v1.2.9:
478 dnl  FLAGS   UID   PID  PPID PRI  NI   SIZE   RSS WCHAN       STA TTY TIME COMMAND
479 dnl    100     0     1     0   0   0    776    76  c0131c8c   S  ffff  0:11 init [2]
480 dnl
481 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
482 then
483         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
484         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[])
485         EXTRAS="$EXTRAS check_nagios"
486         AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
487         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS laxnwww",[])
488         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])
489         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[])
490         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d",[])
491         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[])
492         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
493         echo "      ps syntax... $PATH_TO_PS laxnwww"
494 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
495 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
496 then
497         AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
498         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
499         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -axo 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
500         EXTRAS="$EXTRAS check_nagios"
501         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -axo 'stat uid ppid comm args'",[Verbatim command to execute for ps in check_procs])
502         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
503         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -axo 'vsz comm'",[Verbatim command to execute for ps in check_vsz])
504         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[Format string for scanning ps output in check_vsz])
505         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -axo 'rss comm'",[Verbatim command to execute for ps in check_rss])
506         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[Format string for scanning ps output in check_rss])
507   echo "      ps syntax... $PATH_TO_PS -axo 'stat comm vsz rss user ppid args'"
508 dnl AIX 4.3.3 - needs verification. This works for Tru64 - needs %*[ +] in PS_FORMAT
509 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
510 then
511         AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
512         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
513         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
514         EXTRAS="$EXTRAS check_nagios"
515         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'stat uid ppid comm args'")
516         AC_DEFINE_UNQUOTED(PS_FORMAT,[["%s%*[ +] %d %d %s %n"]],[Format string for scanning ps output in check_procs])
517         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz comm'",[])
518         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
519         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss comm'",[])
520         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
521   echo "      ps syntax... $PATH_TO_PS -ao 'stat comm vsz rss user ppid args'"
522 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
523 then
524         AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
525         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
526         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -eo 's user ppid args'",[Verbatim command to execute for ps in check_netsaint])
527         EXTRAS="$EXTRAS check_nagios"
528         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -eo 's uid ppid comm args'")
529         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
530         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -eo 'vsz comm'",[])
531         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
532         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -eo 'rss comm'",[])
533         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
534         echo "      ps syntax... $PATH_TO_PS -eo 's  comm vsz rss user ppid args'"
535 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
536 then
537         AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
538         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
539         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 's user ppid args'",[Verbatim command to execute for ps in check_netsaint])
540         EXTRAS="$EXTRAS check_nagios"
541         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 's uid ppid comm args'",[])
542         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
543         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
544         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
545         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
546         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
547         echo "      ps syntax... $PATH_TO_PS -Ao 's comm vsz rss'"
548 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
549 then
550         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
551         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
552         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'status user ppid args'",[Verbatim command to execute for ps in check_netsaint])
553         EXTRAS="$EXTRAS check_nagios"
554         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'status uid ppid comm args'",[])
555         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
556         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
557         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
558         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
559         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
560         echo "      ps syntax... $PATH_TO_PS -Ao 'status comm vsz rss'"
561 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
562 then
563         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
564         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
565         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'state user ppid args'",[Verbatim command to execute for ps in check_netsaint])
566         EXTRAS="$EXTRAS check_nagios"
567         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'state uid ppid comm args'",[])
568         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
569         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
570         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
571         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
572         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
573         echo "      ps syntax... $PATH_TO_PS -Ao 'state comm vsz rss'"
574 dnl wonder who takes state instead of stat
575 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
576 then
577         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
578         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
579         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'state user ppid args'",[])
580         EXTRAS="$EXTRAS check_nagios"
581         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'state uid ppid command args'",[])
582         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
583         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz command'",[])
584         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
585         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss command'",[])
586         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
587         echo "      ps syntax... $PATH_TO_PS -ao 'state command vsz rss'"
588 dnl IRIX 53
589 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
590 then
591         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
592         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
593         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
594         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])
595         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
596         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d",[])
597         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
598         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
599         echo "      ps syntax... $PATH_TO_PS -el"
600 dnl IRIX 63
601 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
602 then
603         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
604         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
605         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
606         AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s",[Format string for scanning ps output in check_procs])
607         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
608         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d",[])
609         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
610         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
611         echo "      ps syntax... $PATH_TO_PS -el"
612 dnl    
613 dnl AIX 4.1:
614 dnl     F S      UID   PID  PPID   C PRI NI ADDR  SZ  RSS   WCHAN    TTY  TIME CMD
615 dnl    303 A        0     0     0 120  16 -- 1c07  20   24              -  0:45 swapper
616 elif ps -el 2>/dev/null | egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
617 then
618         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
619         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
620         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
621         AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s",[Format string for scanning ps output in check_procs])
622         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
623         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
624         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
625         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
626         echo "      ps syntax... $PATH_TO_PS -el"
627 dnl AIX?
628 elif ps glaxen 2>/dev/null | egrep -i ["^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND"] >/dev/null
629 then
630         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
631         AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
632         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS glaxen",[])
633         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])
634         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS glaxen",[])
635         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d",[])
636         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS glaxen",[])
637         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
638         echo "      ps syntax... $PATH_TO_PS glaxen"
639 dnl MacOSX / Darwin
640 dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
641 dnl STAT      VSZ    RSS   UID USER     PPID UCOMM            COMMAND
642 dnl Ss       1308    272     0 root        0 init             /sbin/init
643 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
644 then
645         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
646         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
647         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxo 'state uid ppid command'",[])
648         EXTRAS="$EXTRAS check_nagios"
649         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxo 'state uid ppid ucomm command'",[])
650         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
651         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxco 'vsz command'",[])
652         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
653         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxco 'rss command'",[])
654         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
655         echo "      ps syntax... $PATH_TO_PS waxo 'state vsz rss command'"
656 dnl UnixWare 
657 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
658 then
659         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
660         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
661         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Al",[])
662         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])
663         if ps -Ao 'vsz comm' 2>/dev/null | egrep -i ["^ *VSZ +COMMAND"] >/dev/null
664         then
665                 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
666                 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %d",[])
667         fi
668         echo "      ps syntax... $PATH_TO_PS -Al"
669 else
670         echo "** Unable to find usable ps syntax"
671 fi
673 AC_ARG_WITH(df_command,--with-df-command=<syntax> sets syntax for df,DF_COMMAND=$withval)
674 if test -n "$DF_COMMAND"
675 then
676         AC_DEFINE_UNQUOTED(DF_COMMAND,"$DF_COMMAND",[path and args for df command])
677 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
678 then
679         AC_PATH_PROG(PATH_TO_DF,df)
680         AC_MSG_RESULT([      df syntax... $PATH_TO_DF -Pk])
681         AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -Pk",[path and args for df command])
682 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
683 then
684         AC_PATH_PROG(PATH_TO_DF,df)
685         AC_MSG_RESULT([      df syntax... $PATH_TO_DF -k])
686         AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -k",[path and args for df command])
687 elif df 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
688 then
689         AC_PATH_PROG(PATH_TO_DF,df)
690         AC_MSG_RESULT([      df syntax... $PATH_TO_DF])
691         AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF",[path and args for df command])
692 elif bdf 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
693 then
694         AC_PATH_PROG(PATH_TO_DF,bdf)
695         AC_MSG_RESULT([      df syntax... $PATH_TO_DF])
696         AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF",[path and args for df command])
697 else
698         AC_MSG_WARN("unable to find usable df syntax")
699 fi
701 AC_PATH_PROG(PATH_TO_PING,ping)
703 AC_ARG_WITH(ping_command,--with-ping-command=<syntax> sets syntax for ping,PING_COMMAND=$withval)
704 if test -n "$PING_COMMAND"
705 then
706         echo "      ping syntax... (command-line) $PING_COMMAND"
707         if test -n "$PING_PACKETS_FIRST"
708         then
709                 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
710         fi
711 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
712 then
713         PING_COMMAND="$PATH_TO_PING -n -U -c %d %s"
714         AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
715         echo "      ping syntax... $PATH_TO_PING -n -U -c <count> <host>"
716 elif ping -n -U -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
717 then
718         PING_COMMAND="$PATH_TO_PING -n -U -c %d %s"
719         AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
720         echo "      ping syntax... $PATH_TO_PING -n -U -c <count> <host>"
721 elif ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
722 then
723         PING_COMMAND="$PATH_TO_PING -n -c %d %s"
724         AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
725         echo "      ping syntax... $PATH_TO_PING -n -c <count> <host>"
726 elif ping -n 127.0.0.1 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
727 then
728         PING_COMMAND="$PATH_TO_PING -n %s -c %d"
729         echo "      ping syntax... $PATH_TO_PING -n <host> -c <count>"
730 elif ping 127.0.0.1 -n 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
731 then
732         PING_COMMAND="$PATH_TO_PING %s -n %d"
733         echo "      ping syntax... $PATH_TO_PING <host> -n <count>"
734 elif ping -n -s 127.0.0.1 56 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
735 then
736         PING_COMMAND="$PATH_TO_PING -n -s %s 56 %d"
737         echo "      ping syntax... $PATH_TO_PING -n -s <host> 56 <count>"
738 elif ping -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
739 then
740         PING_COMMAND="$PATH_TO_PING -n -h %s -s 56 -c %d"
741         echo "      ping syntax... $PATH_TO_PING -n -h <host> -s 56 -c <count>"
742 elif ping -n -s 56 -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
743 then
744         PING_COMMAND="$PATH_TO_PING -n -s 56 -c %d %s"
745         AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
746         echo "      ping syntax... $PATH_TO_PING -n -s 56 -c <count> <host>"
747 elif ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
748 then
749         PING_COMMAND="$PATH_TO_PING -n -c %d %s"
750         AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
751         echo "      ping syntax... $PATH_TO_PING -n -c <count> <host>"
752 else
753         AC_MSG_WARN("unable to find usable ping syntax")
754 fi
755 AC_DEFINE_UNQUOTED(PING_COMMAND,"$PING_COMMAND",[path and args for ping command])
757 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
758 if test -n "$ac_cv_path_PATH_TO_NSLOOKUP"
759 then
760         if nslookup -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
761         then
762                 AC_MSG_RESULT([      nslookup syntax... $PATH_TO_NSLOOKUP])
763                 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP",[path and args for nslookup])
764         else
765                 AC_MSG_RESULT([      nslookup syntax... $PATH_TO_NSLOOKUP -sil])
766                 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP -sil",[path and args for nslookup])
767         fi
768         EXTRAS="$EXTRAS check_dns"
769 else
770         AC_MSG_WARN([nslookup command not found])
771 fi
773 AC_PATH_PROG(PATH_TO_HOST,host)
774 if test -n "$ac_cv_path_PATH_TO_HOST"
775 then
776         EXTRAS="$EXTRAS check_dns"
777 fi
779 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
780 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
782 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
783 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
785 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
786 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
787 AC_PATH_PROGS(PATH_TO_NTPQ,ntpq)
788 if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPQ")
789 then
790         AC_DEFINE_UNQUOTED(PATH_TO_NTPQ,"$PATH_TO_NTPQ",[path to ntpq binary])
791         AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary])
792 else
793         echo "** Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization"
794 fi
796 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
797 if test -x "$PATH_TO_LMSTAT"
798 then
799         AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
800 else
801         echo "** Get lmstat from Globetrotter Software to monitor flexlm licenses"
802 fi
804 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
805 if test -x "$PATH_TO_SMBCLIENT"
806 then
807         AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
808 else
809         echo "** Get smbclient from Samba.org to monitor SMB shares"
810 fi
813 AC_PATH_PROG(PATH_TO_WHO,who)
814 if [who -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
815 then
816         AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO -q",[path and arguments for invoking 'who'])
817 else
818         AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO",[path and arguments for invoking 'who'])
819 fi
821 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
822 if test -x "$PATH_TO_SNMPGET"
823 then
824         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
825         EXTRAS="$EXTRAS check_hpjd check_snmp"
826 else
827         echo "** Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins"
828 fi
830 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
831 if test -x "$PATH_TO_SNMPGETNEXT"
832 then
833         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
834 fi
836 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null  )
837 then
838         echo "Found Net::SNMP perl module"
839 else
840         echo "** Tried $PERL - install Net::SNMP perl module if you want to"
841         echo "        use the perl snmp plugins"
842 fi
844 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
845 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
846 if test -x "$PATH_TO_QUAKESTAT"
847 then
848         AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QUAKESTAT",[path to qstat/quakestat])
849         EXTRAS="$EXTRAS check_game"
850 elif test -x "$PATH_TO_QSTAT"
851 then
852         AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QSTAT",[path to qstat/quakestat])
853         EXTRAS="$EXTRAS check_game"
854 else
855         echo "** Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin"
856 fi
858 AC_PATH_PROG(PATH_TO_FPING,fping)
859 if test -x "$PATH_TO_FPING"
860 then
861         AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
862         EXTRAS="$EXTRAS check_fping"
863 else
864         echo "** Get fping from http://www.fping.com in order to make check_fping plugin"
865 fi
867 AC_PATH_PROG(PATH_TO_SSH,ssh)
868 if test -x "$PATH_TO_SSH"
869 then
870         AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
871         EXTRAS="$EXTRAS check_by_ssh"
872 else
873         echo "** Get ssh in order to make check_by_ssh plugin"
874 fi
877 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
878 if test -x "$PATH_TO_MAILQ"
879 then
880         AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
881 else
882         echo "** Could not find mailq or eqivalent"
883 fi
885 dnl SWAP info required is amount allocated/available and amount free
886 dnl The plugin works through all the swap devices and adds up the total swap
887 dnl available.
889 dnl dunno why this does not work below - use hack (kbd)
890 dnl fine on linux, broken on solaris
891 dnl if /bin/test -e "/proc/meminfo"
893 if [cat /proc/meminfo > /dev/null 2>&1]
894 then
895         echo "found /proc/meminfo"
896         AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
897         AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes])
898         EXTRAS="$EXTRAS check_swap"
899 elif [swap -l 2>&1 >/dev/null]
900 then
901         echo "found swap command"
902         AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
903         AC_PATH_PROG(PATH_TO_SWAP,swap)
904         AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -l",[Path to swap/swapinfo binary, with any args])
905         if [swap -l 2>/dev/null | egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" >/dev/null]
906         then
907                 AC_DEFINE_UNQUOTED(SWAP_FORMAT,[" %*d %*s %*d,%*d %*d %*d %d %d"],[Format string for parsing swap output])
908                 echo "      using IRIX format"
909         elif [swap -l 2>/dev/null | egrep -i "^swapfile +dev +swaplo +blocks +free" >/dev/null]
910         then
911                 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %*[[0-9,-]] %*d %d %d"],[Format string for parsing swap output])
912                 echo "      using Solaris format"
913         elif [swap -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null]
914         then
915                 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %*[[0-9,-]] %*d %d %d"],[Format string for parsing swap output])
916                 echo "      using Unixware format"
917         fi
918         EXTRAS="$EXTRAS check_swap"
919 elif [swapinfo -k 2>&1 | egrep -i "^Device" >/dev/null]
920 then
921         echo "found swapinfo command"
922         AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
923         AC_PATH_PROG(PATH_TO_SWAP,swapinfo)
924         AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -k",[Path to swap/swapinfo binary, with any args])
925         if [swapinfo -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
926         then
927                 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %d %*d %d"],[Format string for parsing swap output])
928                 echo "      using FreeBSD format"
929         fi
930         EXTRAS="$EXTRAS check_swap"
931 elif [swapinfo -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
932 then
933         AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
934         AC_PATH_PROG(PATH_TO_SWAP,swapinfo)
935         AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -dfM",[Path to swap/swapinfo binary, with any args])
936         AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %d %*d %d"],[Format string for parsing swap output ])
937         echo "        using HP-UX format HP-UX"
938 fi
940 AC_PATH_PROG(PATH_TO_DIG,dig)
941 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
942 if test -n "$PATH_TO_DIG"; then
943         EXTRAS="$EXTRAS check_dig"
944 fi
946 if test -f plugins/check_nt.c ; then
947   EXTRAS="$EXTRAS check_nt"
948 elif test -f ../plugins/check_nt.c ; then
949   EXTRAS="$EXTRAS check_nt"
950 fi
952 AC_TRY_COMPILE([#ifdef __STDC__
953 #include <stdio.h>
954 #include <stdlib.h>
955 #include <stdarg.h>
956 #else
957 #include <sys/types.h>
958 #include <stdio.h>
959 #include <varargs.h>
960 #endif],
961 [va_list args;],
962 [AC_MSG_RESULT(yes)],
963 [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
965 AC_SUBST(EXTRAS)
966 AC_SUBST(DEPLIBS)
968 AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"${VERSION}",[package version])
970 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)