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