48e450676afb4ba91d412e23dffaa544130ac730
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.99
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)
14 AC_CANONICAL_HOST
16 AC_PREFIX_DEFAULT(/usr/local/nagios)
18 dnl Figure out how to invoke "install" and what install options to use.
20 AC_PROG_INSTALL
21 AC_SUBST(INSTALL)
23 AC_PROG_CC
24 AC_PROG_CPP
25 AC_PROG_GCC_TRADITIONAL
26 AC_PROG_RANLIB
27 AC_AIX
28 AC_MINIX
30 AC_PROG_MAKE_SET
31 AC_PROG_AWK
33 # Check for SunOS statfs brokenness wrt partitions 2GB and larger.
34 # If <sys/vfs.h> exists and struct statfs has a member named f_spare,
35 # enable the work-around code in fsusage.c.
36 AC_MSG_CHECKING([for statfs that truncates block counts])
37 AC_CACHE_VAL(fu_cv_sys_truncating_statfs,
38 [AC_TRY_COMPILE([
39 #if !defined(sun) && !defined(__sun)
40 choke -- this is a workaround for a Sun-specific problem
41 #endif
42 #include <sys/types.h>
43 #include <sys/vfs.h>],
44 [struct statfs t; long c = *(t.f_spare);],
45 fu_cv_sys_truncating_statfs=yes
46 AC_MSG_RESULT(yes),
47 fu_cv_sys_truncating_statfs=no
48 AC_MSG_RESULT(no),
49 )])
50 if test $fu_cv_sys_truncating_statfs = yes; then
51 AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS, 1,
52 [ Define if the block counts reported by statfs may be truncated to 2GB
53 and the correct values may be stored in the f_spare array.
54 (SunOS 4.1.2, 4.1.3, and 4.1.3_U1 are reported to have this problem.
55 SunOS 4.1.1 seems not to be affected.)])
56 fi
58 saved_srcdir=$srcdir
59 srcdir=$srcdir/lib
60 test -f $srcdir/getloadavg.c \
61 || AC_MSG_ERROR([getloadavg.c is not in $srcdir])
62 AC_FUNC_GETLOADAVG
63 srcdir=$saved_srcdir
65 ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD])
66 dnl AM_WITH_REGEX
67 AC_PROG_RANLIB
69 AC_PATH_PROG(ACLOCAL,aclocal)
70 AC_PATH_PROG(AUTOMAKE,automake)
71 AC_PATH_PROG(AUTOCONF,autoconf)
72 AC_PATH_PROG(AUTOHEADER,autoheader)
74 PLUGIN_TEST=`echo $srcdir/plugins/t/*.t|sed -e 's,\.*/plugins/,,g'`
75 AC_SUBST(PLUGIN_TEST)dnl
77 SCRIPT_TEST=`echo $srcdir/plugins-scripts/t/*.t|sed -e 's,\.*/plugins-scripts/,,g'`
78 AC_SUBST(SCRIPT_TEST)dnl
80 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"
81 AC_SUBST(WARRANTY)
83 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"
84 AC_SUBST(SUPPORT)
86 dnl CGIURL has changed for Nagios with 1.0 beta
87 AC_ARG_WITH(cgiurl,
88 ACX_HELP_STRING([--with-cgiurl=DIR],
89 [sets URL for cgi programs]),
90 cgiurl=$withval,
91 cgiurl=/nagios/cgi-bin)
92 CGIURL="$cgiurl"
93 AC_DEFINE_UNQUOTED(CGIURL,"$CGIURL",[URL of CGI programs])
95 AC_ARG_WITH(nagios_user,
96 ACX_HELP_STRING([--with-nagios-user=USER],
97 [set user name to run nagios]),
98 nagios_usr=$withval,
99 nagios_usr=nagios)
100 AC_ARG_WITH(nagios_group,
101 ACX_HELP_STRING([--with-nagios-group=GROUP],
102 [set group name to run nagios]),
103 nagios_grp=$withval,
104 nagios_grp=nagios)
105 AC_SUBST(nagios_usr)
106 AC_SUBST(nagios_grp)
107 INSTALL_OPTS="-o $nagios_usr -g $nagios_grp"
108 AC_SUBST(INSTALL_OPTS)
110 AC_ARG_WITH(trusted_path,
111 ACX_HELP_STRING([--with-trusted-path=PATH],
112 [sets trusted path for executables called by scripts (default=/bin:/sbin:/usr/bin:/usr/sbin)]),
113 trusted_path=$withval,
114 trusted_path=/bin:/sbin:/usr/bin:/usr/sbin)
115 AC_SUBST(trusted_path)
117 EXTRAS=
118 dnl PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/etc:/usr/local/bin:/usr/local/sbin:$PATH
120 LDFLAGS="$LDFLAGS -L."
122 ac_cv_uname_m=`uname -m`
123 ac_cv_uname_s=`uname -s`
124 ac_cv_uname_r=`uname -r`
125 ac_cv_uname_v=`uname -v`
127 dnl Checks for programs.
128 AC_PATH_PROG(PYTHON,python)
129 AC_PATH_PROG(PERL,perl)
130 AC_PATH_PROG(SH,sh)
132 AC_PATH_PROG(HOSTNAME,hostname)
133 AC_PATH_PROG(BASENAME,basename)
135 dnl
136 dnl Check for miscellaneous stuff
137 dnl
139 case $host_vender-$host_os in
140 sun*)
141 AC_DEFINE(__EXTENSIONS__,1,[Sun's netdb.h needs this for getaddrinfo])
142 ;;
143 osf*)
144 AC_DEFINE(_OSF_SOURCE,1,[OSF needs this for getaddrinfo])
145 ;;
146 esac
148 dnl
149 dnl Checks for libraries.
150 dnl
152 AC_CHECK_LIB(dce,main,SOCKETLIBS="$SOCKETLIBS -ldce")
153 AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
154 AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
155 AC_CHECK_LIB(resolv,main,SOCKETLIBS="$SOCKETLIBS -lresolv")
156 AC_SUBST(SOCKETLIBS)
158 dnl Check for PostgreSQL libraries
159 _SAVEDLIBS="$LIBS"
160 _SAVEDCPPFLAGS="$CPPFLAGS"
161 AC_ARG_WITH(pgsql,
162 ACX_HELP_STRING([--with-pgsql=DIR],
163 [sets path to pgsql installation]),
164 PGSQL=$withval,)
165 AC_CHECK_LIB(crypt,main)
166 if test "$ac_cv_lib_crypt_main" = "yes"; then
167 if test -n "$PGSQL"; then
168 LDFLAGS="$LDFLAGS -L$PGSQL/lib"
169 CPPFLAGS="$CPPFLAGS -I$PGSQL/include"
170 fi
171 AC_CHECK_LIB(pq,PQsetdbLogin,,,-lcrypt)
172 if test "$ac_cv_lib_pq_PQsetdbLogin" = "yes"; then
173 AC_CHECK_HEADERS(pgsql/libpq-fe.h)
174 AC_CHECK_HEADERS(postgresql/libpq-fe.h)
175 AC_CHECK_HEADERS(libpq-fe.h)
176 if [[ -n "$PGSQL" -a "$ac_cv_header_libpq_fe_h" = "yes" ]]; then
177 PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
178 PGINCLUDE="-I$PGSQL/include"
179 elif test "$ac_cv_header_pgsql_libpq_fe_h" = "yes"; then
180 PGLIBS="-lpq -lcrypt"
181 PGINCLUDE="-I/usr/include/pgsql"
182 elif test "$ac_cv_header_postgresql_libpq_fe_h" = "yes"; then
183 PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
184 PGINCLUDE="-I/usr/include/postgresql"
185 elif test "$ac_cv_header_libpq_fe_h" = "yes"; then
186 PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
187 PGINCLUDE="-I$PGSQL/include"
188 fi
189 if test -z "$PGINCLUDE"; then
190 AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
191 AC_MSG_WARN([install PostgreSQL headers to compile this plugin (see REQUIREMENTS).])
192 else
193 AC_SUBST(PGLIBS)
194 AC_SUBST(PGINCLUDE)
195 EXTRAS="$EXTRAS check_pgsql"
196 fi
197 else
198 AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
199 AC_MSG_WARN([LIBS="$LIBS" CPPFLAGS="$CPPFLAGS"])
200 AC_MSG_WARN([install PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
201 fi
202 else
203 AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
204 AC_MSG_WARN([install lib crypt and PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
205 fi
206 LIBS="$_SAVEDLIBS"
207 CPPFLAGS="$_SAVEDCPPFLAGS"
209 dnl Check for radius libraries
210 _SAVEDLIBS="$LIBS"
211 AC_CHECK_LIB(radiusclient,rc_read_config)
212 if test "$ac_cv_lib_radiusclient_rc_read_config" = "yes"; then
213 EXTRAS="$EXTRAS check_radius"
214 RADIUSLIBS="-lradiusclient"
215 AC_SUBST(RADIUSLIBS)
216 else
217 AC_MSG_WARN([Skipping radius plugin])
218 AC_MSG_WARN([install radius libs to compile this plugin (see REQUIREMENTS).])
219 fi
220 LIBS="$_SAVEDLIBS"
222 dnl Check for LDAP libraries
223 _SAVEDLIBS="$LIBS"
224 AC_CHECK_LIB(ldap,main,,,-llber)
225 if test "$ac_cv_lib_ldap_main" = "yes"; then
226 LDAPLIBS="-lldap -llber"\
227 LDAPINCLUDE="-I/usr/include/ldap"
228 AC_SUBST(LDAPLIBS)
229 AC_SUBST(LDAPINCLUDE)
230 EXTRAS="$EXTRAS check_ldap"
231 else
232 AC_MSG_WARN([Skipping LDAP plugin])
233 AC_MSG_WARN([install LDAP libs to compile this plugin (see REQUIREMENTS).])
234 fi
235 LIBS="$_SAVEDLIBS"
238 dnl Check for mysql libraries
239 _SAVEDLIBS="$LIBS"
240 _SAVEDCPPFLAGS="$CPPFLAGS"
241 AC_ARG_WITH(mysql,
242 ACX_HELP_STRING([--with-mysql=DIR],
243 [sets path to mysql installation (assumes lib/mysql and include subdirs]),
244 MYSQL=$withval,)
245 if test -n "$MYSQL"; then
246 MYSQLLIBDIR=$MYSQL/lib/mysql
247 CPPFLAGS="-I$MYSQL/include"
248 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L$MYSQLLIBDIR ",,-L$MYSQLLIBDIR -lz)
249 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
250 elif test -f /usr/lib/libmysqlclient.so; then
251 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
252 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
253 elif test -f /usr/lib/libmysqlclient.a; then
254 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
255 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
256 elif test -f /usr/lib/mysql/libmysqlclient.so; then
257 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
258 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
259 elif test -f /usr/lib/mysql/libmysqlclient.a; then
260 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
261 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
262 fi
263 if test "$ac_cv_lib_mysqlclient_mysql_init" = "yes" -o "$ac_cv_lib_mysqlclient_mysql_close" = "yes"; then
264 AC_CHECK_HEADERS(mysql/mysql.h mysql/errmsg.h, MYSQLINCLUDE="-I$MYSQL/include" )
265 if test "$ac_cv_header_mysql_mysql_h" = "yes" -a "$ac_cv_header_mysql_errmsg_h" = "yes"; then
266 EXTRAS="$EXTRAS check_mysql"
267 AC_SUBST(MYSQLINCLUDE)
268 AC_SUBST(MYSQLLIBS)
269 AC_SUBST(check_mysql_LDFLAGS)
270 else
271 AC_MSG_WARN([Skipping mysql plugin])
272 AC_MSG_WARN([install mysql client headers to compile this plugin (see REQUIREMENTS).])
273 fi
274 else
275 AC_MSG_WARN([Skipping mysql plugin])
276 AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).])
277 fi
278 CPPFLAGS="$_SAVEDCPPFLAGS"
279 LIBS="$_SAVEDLIBS"
281 dnl Check for OpenSSL location
282 AC_PATH_PROG(OPENSSL,openssl)
283 if test "$OPENSSL" = "/usr/bin/openssl"; then
284 OPENSSL=/usr
285 elif test "$OPENSSL" = "/usr/sbin/openssl"; then
286 OPENSSL=/usr
287 elif test "$OPENSSL" = "/opt/bin/openssl"; then
288 OPENSSL=/opt
289 elif test "$OPENSSL" = "/opt/openssl/bin/openssl"; then
290 OPENSSL=/opt/openssl
291 elif test "$OPENSSL" = "/usr/slocal/bin/openssl"; then
292 OPENSSL=/usr/slocal
293 elif test "$OPENSSL" = "/usr/local/bin/openssl"; then
294 OPENSSL=/usr/local
295 elif test "$OPENSSL" = "/usr/local/ssl/bin/openssl"; then
296 OPENSSL=/usr/local/ssl
297 fi
298 AC_ARG_WITH(openssl,
299 ACX_HELP_STRING([--with-openssl=DIR],
300 [sets path to openssl installation]),
301 OPENSSL=$withval,)
303 dnl #########################################################################
304 dnl Check if Posix getaddrinfo() is available. It is also possible to use
305 dnl the version from the lwres library distributed with BIND.
306 dnl #########################################################################
307 AC_ARG_ENABLE([emulate-getaddrinfo],
308 ACX_HELP_STRING([--enable-emulate-getaddrinfo],
309 [enable getaddrinfo emulation (default=no)]),
310 ,
311 enable_emulate_getaddrinfo=no)
312 AC_ARG_WITH(lwres,
313 ACX_HELP_STRING([--with-lwres=DIR],
314 [use lwres library for getaddrinfo (default=no)]),
315 ,
316 with_lwres=no)
318 dnl ## enable force to test getaddrinfo.c
319 if test x$enable_emulate_getaddrinfo = xforce ; then
320 enable_emulate_getaddrinfo=yes
321 have_getaddrinfo=no
322 else
324 have_getaddrinfo=no
325 if test x$with_lwres != xno ; then
326 if test "$with_lwres" != yes ; then
327 CPPFLAGS="-I${with_lwres}/include $CPPFLAGS"
328 LDFLAGS="-L${with_lwres}/lib $LDFLAGS"
329 fi
330 AC_CHECK_HEADERS(lwres/netdb.h, ,
331 [AC_MSG_ERROR([cannot find <lwres/netdb.h>])])
332 AC_CHECK_LIB(lwres, lwres_getaddrinfo, ,
333 [AC_MSG_ERROR([cannot find the lwres library])],
334 -lnsl -lpthread)
335 have_getaddrinfo=yes
336 fi
338 if test x$have_getaddrinfo != xyes ; then
339 AC_SEARCH_LIBS(getaddrinfo, socket resolv bind nsl c_r cr, have_getaddrinfo=yes)
340 fi
342 dnl # Special nonsense for systems that actually have getaddrinfo but
343 dnl # redefine the name to something else, e.g. OSF
344 if test x$have_getaddrinfo != xyes ; then
345 AC_MSG_CHECKING(if getaddrinfo is redefined in netdb.h)
346 AC_TRY_LINK([
347 # include <netdb.h>
348 ], [
349 struct addrinfo hints, *res;
350 int err;
352 err = getaddrinfo ("host", "service", &hints, &res);
353 ], [
354 have_getaddrinfo=yes
355 AC_MSG_RESULT(yes)
356 ], [AC_MSG_RESULT(no)])
357 fi
359 fi
361 if test x$have_getaddrinfo != xno ; then
362 if test x$enable_emulate_getaddrinfo != xno ; then
363 AC_MSG_ERROR([getaddrinfo found but emulate-getaddrinfo was enabled])
364 fi
365 AC_DEFINE(HAVE_GETADDRINFO, 1,
366 [Does system provide RFC 2553/Posix getaddrinfo?])
367 else
368 if test x$enable_emulate_getaddrinfo != xyes ; then
369 AC_MSG_ERROR([getaddrinfo not found: try --with-lwres or --enable-emulate-getaddrinfo])
370 fi
371 LIBOBJS="$LIBOBJS getaddrinfo.o"
372 fi
374 if test x"$enable_emulate_getaddrinfo" != xno ; then
375 have_resolver=no
377 dnl Try for getipnodebyname
378 AC_SEARCH_LIBS(getipnodebyname, resolv bind nsl c_r cr, have_resolver=yes)
379 if test x"$have_resolver" != xno ; then
380 AC_DEFINE(HAVE_GETIPNODEBYNAME, 1,
381 [Set when getipnodebyname is available])
382 fi
384 dnl Try for gethostbyname_r
385 if test x"$have_resolver" = xno ; then
386 AC_SEARCH_LIBS(gethostbyname_r, resolv bind nsl c_r cr,
387 [have_resolver=yes
388 ACX_WHICH_GETHOSTBYNAME_R])
389 fi
391 dnl Try for gethostbyname
392 if test x"$have_resolver" = xno ; then
393 if test x"$enable_pthreads" != xno ; then
394 AC_MSG_WARN([using threads but cannot find gethostbyname_r or getipnodebyname])
395 fi
396 AC_SEARCH_LIBS(gethostbyname, resolv bind nsl, ,
397 [AC_MSG_ERROR([cannot find gethostbyname])])
398 fi
399 LIBOBJS="$LIBOBJS gethostbyname.o"
401 AC_CACHE_CHECK([for IPv6 support], acx_cv_sys_use_ipv6, [
402 AC_TRY_COMPILE([
403 # include <netinet/in.h>
404 ], [
405 struct sockaddr_in6 sin6;
406 void *p;
408 sin6.sin6_family = AF_INET6;
409 sin6.sin6_port = 587;
410 p = &sin6.sin6_addr;
411 ], [acx_cv_sys_use_ipv6=yes], [acx_cv_sys_use_ipv6=no])
412 ])
413 if test x"$acx_cv_sys_use_ipv6" != xno ; then
414 AC_DEFINE(USE_IPV6,1,[Enable IPv6 support])
415 fi
416 fi
418 AC_CHECK_HEADERS(krb5.h,FOUNDINCLUDE=yes,FOUNDINCLUDE=no)
419 if test "$FOUNDINCLUDE" = "no"; then
420 _SAVEDCPPFLAGS="$CPPFLAGS"
421 CPPFLAGS="$_SAVEDCPPFLAGS -I/usr/kerberos/include"
422 unset ac_cv_header_krb5_h
423 AC_CHECK_HEADERS(krb5.h,
424 KRB5INCLUDE="-I/usr/kerberos/include"
425 FOUNDINCLUDE=yes,
426 FOUNDINCLUDE=no)
427 fi
428 AC_SUBST(KRBINCLUDE)
429 if test "$FOUNDINCLUDE" = "no"; then
430 CPPFLAGS="$_SAVEDCPPFLAGS"
431 fi
433 dnl Check for OpenSSL header files
434 unset FOUNDINCLUDE
435 _SAVEDCPPFLAGS="$CPPFLAGS"
436 CPPFLAGS="$CPPFLAGS -I$OPENSSL/include"
437 AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h,
438 SSLINCLUDE="-I$OPENSSL/include"
439 FOUNDINCLUDE=yes,
440 FOUNDINCLUDE=no)
441 if test "$FOUNDINCLUDE" = "no"; then
442 AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h,
443 SSLINCLUDE="-I$OPENSSL/include"
444 FOUNDINCLUDE=yes,
445 FOUNDINCLUDE=no)
446 fi
447 AC_SUBST(SSLINCLUDE)
448 if test "$FOUNDINCLUDE" = "no"; then
449 CPPFLAGS="$_SAVEDCPPFLAGS"
450 fi
452 dnl Check for crypto lib
453 _SAVEDLIBS="$LIBS"
454 AC_CHECK_LIB(crypto,CRYPTO_lock,,,-L$OPENSSL/lib)
455 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
456 dnl Check for SSL lib
457 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)
458 fi
459 LIBS="$_SAVEDLIBS"
461 dnl test headers and libs to decide whether check_http should use SSL
462 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
463 if test "$ac_cv_lib_ssl_main" = "yes"; then
464 if test "$FOUNDINCLUDE" = "yes"; then
465 AC_SUBST(SSLLIBS)
466 AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
467 fi
468 fi
469 fi
470 CPPFLAGS="$_SAVEDCPPFLAGS"
472 dnl
473 dnl Checks for header files.
474 dnl
476 AC_HEADER_STDC
477 AC_HEADER_TIME
478 AC_HEADER_SYS_WAIT
479 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)
480 AC_CHECK_HEADERS(stdarg.h sys/unistd.h unistd.h ctype.h stdlib.h)
482 dnl Linux
483 AC_CHECK_HEADERS(sys/vfs.h,
484 [AC_TRY_COMPILE([#include <sys/vfs.h>],
485 [struct statfs buf; long foo; statfs ("/", &buf); foo = buf.f_namelen;],
486 [AC_DEFINE(HAVE_STRUCT_STATFS,1,[Define if statfs struct can be found])])])
488 dnl FreeBSD
489 AC_CHECK_HEADERS(sys/param.h sys/mount.h,
490 [AC_TRY_COMPILE([#include <sys/param.h>
491 #include <sys/mount.h>],
492 [struct statfs buf; int foo; statfs ("/", &buf); foo = buf.f_flags;],
493 [AC_DEFINE(HAVE_STRUCT_STATFS,1,[Define if statfs struct can be found])])])
495 dnl Checks for typedefs, structures, and compiler characteristics.
496 AC_C_CONST
497 AC_STRUCT_TM
498 AC_TYPE_PID_T
499 AC_TYPE_SIZE_T
500 AC_TYPE_SIGNAL
502 AC_CHECK_SIZEOF(int,cross)
503 AC_CHECK_SIZEOF(long,cross)
504 AC_CHECK_SIZEOF(short,cross)
506 AC_CACHE_CHECK([for long long],ac_cv_have_longlong,[
507 AC_TRY_RUN([#include <stdio.h>
508 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
509 ac_cv_have_longlong=yes,ac_cv_have_longlong=no,ac_cv_have_longlong=cross)])
510 if test x"$ac_cv_have_longlong" = x"yes"; then
511 AC_DEFINE(HAVE_LONGLONG,1,[Define if system has long long type])
512 fi
514 #
515 # Check if the compiler supports the LL prefix on long long integers.
516 # AIX needs this.
518 AC_CACHE_CHECK([for LL suffix on long long integers],ac_cv_compiler_supports_ll, [
519 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
520 ac_cv_compiler_supports_ll=yes,ac_cv_compiler_supports_ll=no)])
521 if test x"$ac_cv_compiler_supports_ll" = x"yes"; then
522 AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Define if compiler support long long])
523 fi
525 AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE_VA_COPY,[
526 AC_TRY_LINK([#include <stdarg.h>
527 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
528 ac_cv_HAVE_VA_COPY=yes,ac_cv_HAVE_VA_COPY=no)])
529 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
530 AC_DEFINE(HAVE_VA_COPY,1,[Define if system has va_copy])
531 fi
533 AC_CHECK_FUNCS(vsnprintf snprintf asprintf vasprintf)
534 AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
535 AC_TRY_RUN([
536 #include <sys/types.h>
537 #include <stdarg.h>
538 void foo(const char *format, ...) {
539 va_list ap;
540 int len;
541 char buf[5];
543 va_start(ap, format);
544 len = vsnprintf(buf, 0, format, ap);
545 va_end(ap);
546 if (len != 5) exit(1);
548 va_start(ap, format);
549 len = vsnprintf(0, 0, format, ap);
550 va_end(ap);
551 if (len != 5) exit(1);
553 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
555 exit(0);
556 }
557 main() { foo("hello"); }
558 ],
559 ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
560 if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
561 AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
562 fi
564 AC_TRY_COMPILE([#include <sys/time.h>],
565 [struct timeval *tv;
566 struct timezone *tz;],
567 AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
568 AC_TRY_COMPILE([#include <sys/time.h>],
569 [struct timeval *tv;
570 struct timezone *tz;
571 gettimeofday(tv, tz);],
572 AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
573 AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
575 dnl Checks for library functions.
576 AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul)
578 AC_MSG_CHECKING(return type of socket size)
579 AC_TRY_COMPILE([#include <stdlib.h>
580 #include <sys/types.h>
581 #include <sys/socket.h>],
582 [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
583 ac_cv_socket_size_type=["size_t"]
584 AC_MSG_RESULT(size_t),
585 ac_cv_socket_size_type=["int"]
586 AC_MSG_RESULT(int))
588 AC_DEFINE_UNQUOTED(SOCKET_SIZE_TYPE, $ac_cv_socket_size_type ,
589 [Define type of socket size])
591 if test -f "/proc/loadavg"
592 then
593 AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
594 AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg])
595 fi
597 dnl #### Process table test
599 AC_PATH_PROG(PATH_TO_PS,ps)
600 ac_cv_use_ps_vars=no
602 AC_MSG_CHECKING(for ps syntax)
603 dnl STAT UCOMM VSZ RSS USER UID PPID COMMAND
604 if ps -weo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
605 egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
606 then
607 ac_cv_use_ps_vars=yes
608 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
609 ac_cv_ps_raw_command="$PATH_TO_PS -weo 'stat user ppid args'"
610 ac_cv_ps_command="$PATH_TO_PS -weo 'stat uid ppid comm args'"
611 ac_cv_ps_format="%s %d %d %s %n"
612 ac_cv_vsz_command="$PATH_TO_PS -weo 'vsz comm'"
613 ac_cv_vsz_format="%d %s"
614 ac_cv_rss_command="$PATH_TO_PS -weo 'rss comm'"
615 ac_cv_rss_format="%d %s"
616 EXTRAS="$EXTRAS check_nagios"
617 AC_MSG_RESULT([$ac_cv_ps_command])
619 dnl FreeBSD
620 elif ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | \
621 egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PPID"] >/dev/null
622 then
623 ac_cv_use_ps_vars=yes
624 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
625 ac_cv_ps_raw_command="$PATH_TO_PS waxo 'state uid ppid command'"
626 ac_cv_ps_command="$PATH_TO_PS waxco 'state uid ppid command command'"
627 ac_cv_ps_format="%s %d %d %s %n"
628 ac_cv_vsz_command="$PATH_TO_PS waxco 'vsz command'"
629 ac_cv_vsz_format="%d %s"
630 ac_cv_rss_command="$PATH_TO_PS waxco 'rss command'"
631 ac_cv_rss_format="%d %s"
632 EXTRAS="$EXTRAS check_nagios"
633 AC_MSG_RESULT([$ac_cv_ps_command])
635 dnl BSD-like mode in RH 6.1
636 elif ps waxno 'state comm vsz rss uid user ppid args' 2>/dev/null | \
637 egrep -i ["^S +COMMAND +VSZ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
638 then
639 ac_cv_use_ps_vars=yes
640 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
641 ac_cv_ps_raw_command="$PATH_TO_PS waxno 'state user ppid comm'"
642 ac_cv_ps_command="$PATH_TO_PS waxno 'state uid ppid comm args'"
643 ac_cv_ps_format="%s %d %d %s %n"
644 ac_cv_vsz_command="$PATH_TO_PS waxno 'vsz comm'"
645 ac_cv_vsz_format="%d %s"
646 ac_cv_rss_command="$PATH_TO_PS waxno 'rss comm'"
647 ac_cv_rss_format="%d %s"
648 EXTRAS="$EXTRAS check_nagios"
649 AC_MSG_RESULT([$ac_cv_ps_command])
651 dnl SunOS 4.1.3:
652 dnl F UID PID PPID CP PRI NI SZ RSS WCHAN STAT TT TIME COMMAND
653 elif ps -laxnwww 2>/dev/null | \
654 egrep -i ["^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND"] >/dev/null
655 then
656 ac_cv_use_ps_vars=yes
657 ac_cv_ps_raw_command="$PATH_TO_PS laxnwww"
658 ac_cv_ps_varlist="[&procuid,&procppid,procstat,&pos,procprog]"
659 ac_cv_ps_command="$PATH_TO_PS -laxnwww"
660 ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %*s %*s %*s %s %*s %*s %n%s"
661 ac_cv_vsz_command="$PATH_TO_PS laxnwww"
662 ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %*s %d"
663 ac_cv_rss_command="$PATH_TO_PS laxnwww"
664 ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %d"
665 EXTRAS="$EXTRAS check_nagios"
666 AC_MSG_RESULT([$ac_cv_ps_command])
668 dnl Debian Linux / procps v1.2.9:
669 dnl FLAGS UID PID PPID PRI NI SIZE RSS WCHAN STA TTY TIME COMMAND
670 dnl 100 0 1 0 0 0 776 76 c0131c8c S ffff 0:11 init [2]
671 dnl
672 elif ps laxnwww 2>/dev/null | \
673 egrep -i ["^ *F(LAGS)? +UID +PID +PPID +PRI +NI +(VSZ)|(SIZE) +RSS +WCHAN +STAT? TTY +TIME +COMMAND"] >/dev/null
674 then
675 ac_cv_use_ps_vars=yes
676 ac_cv_ps_raw_command="$PATH_TO_PS laxnwww"
677 ac_cv_ps_varlist="[&procuid,&procppid,procstat,&pos,procprog]"
678 ac_cv_ps_command="$PATH_TO_PS laxnwww"
679 ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s"
680 ac_cv_vsz_command="$PATH_TO_PS laxnwww"
681 ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %d"
682 ac_cv_rss_command="$PATH_TO_PS laxnwww"
683 ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %d"
684 EXTRAS="$EXTRAS check_nagios"
685 AC_MSG_RESULT([$ac_cv_ps_command])
687 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
688 elif ps -axo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
689 egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
690 then
691 ac_cv_use_ps_vars=yes
692 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
693 ac_cv_ps_raw_command="$PATH_TO_PS -axo 'stat user ppid args'"
694 ac_cv_ps_command="$PATH_TO_PS -axo 'stat uid ppid comm args'"
695 ac_cv_ps_format="%s %d %d %s %n"
696 ac_cv_vsz_command="$PATH_TO_PS -axo 'vsz comm'"
697 ac_cv_vsz_format="%d %s"
698 ac_cv_rss_command="$PATH_TO_PS -axo 'rss comm'"
699 ac_cv_rss_format="%d %s"
700 EXTRAS="$EXTRAS check_nagios"
701 AC_MSG_RESULT([$ac_cv_ps_command])
703 dnl AIX 4.3.3 - needs verification. This works for Tru64 - needs %*[ +] in PS_FORMAT
704 elif ps -ao 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
705 egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
706 then
707 ac_cv_use_ps_vars=yes
708 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
709 ac_cv_ps_raw_command="$PATH_TO_PS -ao 'stat user ppid args'"
710 ac_cv_ps_command="$PATH_TO_PS -ao 'stat uid ppid comm args'"
711 ac_cv_ps_format="[["%s%*[ +] %d %d %s %n"]]"
712 ac_cv_vsz_command="$PATH_TO_PS -ao 'vsz comm'"
713 ac_cv_vsz_format="%d %s"
714 ac_cv_rss_command="$PATH_TO_PS -ao 'rss comm'"
715 ac_cv_rss_format="%d %s"
716 EXTRAS="$EXTRAS check_nagios"
717 AC_MSG_RESULT([$ac_cv_ps_command])
719 elif ps -eo 's comm vsz rss user uid ppid args' 2>/dev/null | \
720 egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
721 then
722 ac_cv_use_ps_vars=yes
723 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
724 ac_cv_ps_raw_command="$PATH_TO_PS -eo 's user ppid args'"
725 ac_cv_ps_command="$PATH_TO_PS -eo 's uid ppid comm args'"
726 ac_cv_ps_format="%s %d %d %s %n"
727 ac_cv_vsz_command="$PATH_TO_PS -eo 'vsz comm'"
728 ac_cv_vsz_format="%d %s"
729 ac_cv_rss_command="$PATH_TO_PS -eo 'rss comm'"
730 ac_cv_rss_format="%d %s"
731 EXTRAS="$EXTRAS check_nagios"
732 AC_MSG_RESULT([$ac_cv_ps_command])
734 elif ps -Ao 's comm vsz rss uid user ppid args' 2>/dev/null | \
735 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
736 then
737 ac_cv_use_ps_vars=yes
738 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
739 ac_cv_ps_raw_command="$PATH_TO_PS -Ao 's user ppid args'"
740 ac_cv_ps_command="$PATH_TO_PS -Ao 's uid ppid comm args'"
741 ac_cv_ps_format="%s %d %d %s %n"
742 ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
743 ac_cv_vsz_format="%d %s"
744 ac_cv_rss_command="$PATH_TO_PS -Ao 'rss comm'"
745 ac_cv_rss_format="%d %s"
746 EXTRAS="$EXTRAS check_nagios"
747 AC_MSG_RESULT([$ac_cv_ps_command])
749 elif ps -Ao 'status comm vsz rss uid user ppid args' 2>/dev/null | \
750 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
751 then
752 ac_cv_use_ps_vars=yes
753 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
754 ac_cv_ps_raw_command="$PATH_TO_PS -Ao 'status user ppid args'"
755 ac_cv_ps_command="$PATH_TO_PS -Ao 'status uid ppid comm args'"
756 ac_cv_ps_format="%s %d %d %s %n"
757 ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
758 ac_cv_vsz_format="%d %s"
759 ac_cv_rss_command="$PATH_TO_PS -Ao 'rss comm'"
760 ac_cv_rss_format="%d %s"
761 EXTRAS="$EXTRAS check_nagios"
762 AC_MSG_RESULT([$ac_cv_ps_command])
764 elif ps -Ao 'state comm vsz rss uid user ppid args' 2>/dev/null | \
765 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
766 then
767 ac_cv_use_ps_vars=yes
768 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
769 ac_cv_ps_raw_command="$PATH_TO_PS -Ao 'state user ppid args'"
770 ac_cv_ps_command="$PATH_TO_PS -Ao 'state uid ppid comm args'"
771 ac_cv_ps_format="%s %d %d %s %n"
772 ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
773 ac_cv_vsz_format="%d %s"
774 ac_cv_rss_command="$PATH_TO_PS -Ao 'rss comm'"
775 ac_cv_rss_format="%d %s"
776 EXTRAS="$EXTRAS check_nagios"
777 AC_MSG_RESULT([$ac_cv_ps_command])
779 dnl wonder who takes state instead of stat
780 elif ps -ao 'state command vsz rss user ppid args' 2>/dev/null | \
781 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
782 then
783 ac_cv_use_ps_vars=yes
784 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
785 ac_cv_ps_raw_command="$PATH_TO_PS -ao 'state user ppid args'"
786 ac_cv_ps_command="$PATH_TO_PS -ao 'state uid ppid command args'"
787 ac_cv_ps_format="%s %d %d %s %n"
788 ac_cv_vsz_command="$PATH_TO_PS -ao 'vsz command'"
789 ac_cv_vsz_format="%d %s"
790 ac_cv_rss_command="$PATH_TO_PS -ao 'rss command'"
791 ac_cv_rss_format="%d %s"
792 EXTRAS="$EXTRAS check_nagios"
793 AC_MSG_RESULT([$ac_cv_ps_command])
795 dnl IRIX 53
796 elif ps -el 2>/dev/null | \
797 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
798 then
799 ac_cv_use_ps_vars=yes
800 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
801 ac_cv_ps_command="$PATH_TO_PS -el"
802 ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
803 ac_cv_vsz_command="$PATH_TO_PS -el"
804 ac_cv_vsz_format="%*s %*s %*s %*s %d"
805 ac_cv_rss_command="$PATH_TO_PS -el"
806 ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
807 AC_MSG_RESULT([$ac_cv_ps_command])
809 dnl IRIX 63
810 elif ps -el 2>/dev/null | \
811 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +ADDR +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
812 then
813 ac_cv_use_ps_vars=yes
814 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
815 ac_cv_ps_command="$PATH_TO_PS -el"
816 ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
817 ac_cv_vsz_command="$PATH_TO_PS -el"
818 ac_cv_vsz_format="%*s %*s %*s %*s %d"
819 ac_cv_rss_command="$PATH_TO_PS -el"
820 ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
821 AC_MSG_RESULT([$ac_cv_ps_command])
823 dnl AIX 4.1:
824 dnl F S UID PID PPID C PRI NI ADDR SZ RSS WCHAN TTY TIME CMD
825 dnl 303 A 0 0 0 120 16 -- 1c07 20 24 - 0:45 swapper
826 elif ps -el 2>/dev/null | \
827 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
828 then
829 ac_cv_use_ps_vars=yes
830 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
831 ac_cv_ps_command="$PATH_TO_PS -el"
832 ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
833 ac_cv_vsz_command="$PATH_TO_PS -el"
834 ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
835 ac_cv_rss_command="$PATH_TO_PS -el"
836 ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
837 AC_MSG_RESULT([$ac_cv_ps_command])
839 dnl AIX?
840 elif ps glaxen 2>/dev/null | \
841 egrep -i ["^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND"] >/dev/null
842 then
843 ac_cv_use_ps_vars=yes
844 ac_cv_ps_varlist="[&procuid,&procppid,procstat,&pos,procprog]"
845 ac_cv_ps_command="$PATH_TO_PS glaxen"
846 ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s"
847 ac_cv_vsz_command="$PATH_TO_PS glaxen"
848 ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %d"
849 ac_cv_rss_command="$PATH_TO_PS glaxen"
850 ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %d"
851 AC_MSG_RESULT([$ac_cv_ps_command])
853 dnl MacOSX / Darwin
854 dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
855 dnl STAT VSZ RSS UID USER PPID UCOMM COMMAND
856 dnl Ss 1308 272 0 root 0 init /sbin/init
857 elif ps waxo 'state vsz rss uid user ppid ucomm command' 2>/dev/null | \
858 egrep -i ["^STAT +VSZ +RSS +UID +USER +PPID +UCOMM +COMMAND"] >/dev/null
859 then
860 ac_cv_use_ps_vars=yes
861 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
862 ac_cv_ps_raw_command="$PATH_TO_PS waxo 'state uid ppid command'"
863 ac_cv_ps_command="$PATH_TO_PS waxo 'state uid ppid ucomm command'"
864 ac_cv_ps_format="%s %d %d %s %n"
865 ac_cv_vsz_command="$PATH_TO_PS waxco 'vsz command'"
866 ac_cv_vsz_format="%d %s"
867 ac_cv_rss_command="$PATH_TO_PS waxco 'rss command'"
868 ac_cv_rss_format="%d %s"
869 EXTRAS="$EXTRAS check_nagios"
870 AC_MSG_RESULT([$ac_cv_ps_command])
872 dnl UnixWare
873 elif ps -Al 2>/dev/null | \
874 egrep -i ["^ *F +S +UID +PID +PPID +CLS +PRI +NI +C +ADDR +SZ +WCHAN +TTY +TIME +COMD"] >/dev/null
875 then
876 ac_cv_use_ps_vars=yes
877 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
878 ac_cv_ps_command="$PATH_TO_PS -Al"
879 ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
880 if ps -Ao 'vsz comm' 2>/dev/null | \
881 egrep -i ["^ *VSZ +COMMAND"] >/dev/null
882 then
883 ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
884 ac_cv_vsz_format="%*s %d"
885 fi
886 AC_MSG_RESULT([$ac_cv_ps_command])
888 else
889 AC_MSG_WARN([unable to find usable ps syntax])
890 fi
892 if test "x$ac_cv_use_ps_vars" != "xno"
893 then
894 AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
895 fi
896 AC_DEFINE_UNQUOTED(PS_VARLIST,$ac_cv_ps_varlist,
897 [Variable list for sscanf of 'ps' output])
898 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$ac_cv_ps_raw_command",
899 [Verbatim command to execute for ps in check_netsaint])
900 AC_DEFINE_UNQUOTED(PS_COMMAND,"$ac_cv_ps_command",
901 [Verbatim command to execute for ps in check_procs])
902 AC_DEFINE_UNQUOTED(PS_FORMAT,"$ac_cv_ps_format",
903 [Format string for scanning ps output in check_procs])
904 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$ac_cv_vsz_command",
905 [Verbatim command to execute for ps in check_vsz])
906 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"$ac_cv_vsz_format",
907 [Format string for scanning ps output in check_vsz])
908 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$ac_cv_rss_command",
909 [Verbatim command to execute for ps in check_rss])
910 AC_DEFINE_UNQUOTED(RSS_FORMAT,"$ac_cv_rss_format",
911 [Format string for scanning ps output in check_rss])
913 AC_PATH_PROG(PATH_TO_DF,df)
914 AC_PATH_PROG(PATH_TO_BDF,bdf)
916 AC_ARG_WITH(df_command,
917 ACX_HELP_STRING([--with-df-command=SYNTAX],
918 [sets syntax for df]),
919 ac_cv_df_command=$withval,)
921 AC_MSG_CHECKING(for df syntax)
922 if test -n "$ac_cv_df_command"
923 then
924 AC_MSG_RESULT([$ac_cv_df_command])
926 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
927 then
928 ac_cv_df_command="$PATH_TO_DF -Pk"
929 AC_MSG_RESULT([$ac_cv_df_command])
931 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
932 then
933 ac_cv_df_command="$PATH_TO_DF -k"
934 AC_MSG_RESULT([$ac_cv_df_command])
936 elif df 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
937 then
938 ac_cv_df_command="$PATH_TO_DF"
939 AC_MSG_RESULT([$ac_cv_df_command])
941 elif bdf 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
942 then
943 ac_cv_df_command="$PATH_TO_BDF"
944 AC_MSG_RESULT([$ac_cv_df_command])
946 else
947 AC_MSG_WARN([unable to find usable df syntax])
948 fi
950 AC_DEFINE_UNQUOTED(DF_COMMAND,"$ac_cv_df_command",[path and args for df command])
952 AC_PATH_PROG(PATH_TO_PING,ping)
953 AC_PATH_PROG(PATH_TO_PING6,ping6)
955 AC_ARG_WITH(ping_command,
956 ACX_HELP_STRING([--with-ping-command=SYNTAX],
957 [sets syntax for ICMP ping]),
958 ac_cv_ping_command=$withval,)
960 AC_MSG_CHECKING(for ICMP ping syntax)
961 ac_cv_ping_packets_first=no
962 if test -n "$ac_cv_ping_command"
963 then
964 AC_MSG_RESULT([(command-line) $ac_cv_ping_command])
965 if test -n "$ac_cv_ping_packets_first"
966 then
967 ac_cv_ping_packets_first=yes
968 dnl AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$ac_cv_ping_command",
969 dnl [Define if packet count must precede host])
970 fi
972 elif [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
973 $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
974 egrep -i "^round-trip|^rtt" >/dev/null
975 then
976 ac_cv_ping_command="$PATH_TO_PING -n -U -c %d %s"
977 ac_cv_ping_packets_first=yes
978 AC_MSG_RESULT([$ac_cv_ping_command])
980 elif $PATH_TO_PING -n -U -c 1 127.0.0.1 2>/dev/null | \
981 egrep -i "^round-trip|^rtt" >/dev/null
982 then
983 ac_cv_ping_command="$PATH_TO_PING -n -U -c %d %s"
984 ac_cv_ping_packets_first=yes
985 AC_MSG_RESULT([$ac_cv_ping_command])
987 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
988 egrep -i "^round-trip|^rtt" >/dev/null
989 then
990 ac_cv_ping_command="$PATH_TO_PING -n -c %d %s"
991 ac_cv_ping_packets_first=yes
992 AC_MSG_RESULT([$ac_cv_ping_command])
994 elif $PATH_TO_PING -n 127.0.0.1 -c 1 2>/dev/null | \
995 egrep -i "^round-trip|^rtt" >/dev/null
996 then
997 ac_cv_ping_command="$PATH_TO_PING -n %s -c %d"
998 AC_MSG_RESULT([$ac_cv_ping_command])
1000 elif $PATH_TO_PING 127.0.0.1 -n 1 2>/dev/null | \
1001 egrep -i "^round-trip|^rtt" >/dev/null
1002 then
1003 ac_cv_ping_command="$PATH_TO_PING %s -n %d"
1004 AC_MSG_RESULT([$ac_cv_ping_command])
1006 elif $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
1007 egrep -i "^round-trip|^rtt" >/dev/null
1008 then
1009 ac_cv_ping_command="$PATH_TO_PING -n -s %s 56 %d"
1010 AC_MSG_RESULT([$ac_cv_ping_command])
1012 elif $PATH_TO_PING -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | \
1013 egrep -i "^round-trip|^rtt" >/dev/null
1014 then
1015 ac_cv_ping_command="$PATH_TO_PING -n -h %s -s 56 -c %d"
1016 AC_MSG_RESULT([$ac_cv_ping_command])
1018 elif $PATH_TO_PING -n -s 56 -c 1 127.0.0.1 2>/dev/null | \
1019 egrep -i "^round-trip|^rtt" >/dev/null
1020 then
1021 ac_cv_ping_command="$PATH_TO_PING -n -s 56 -c %d %s"
1022 ac_cv_ping_packets_first=yes
1023 AC_MSG_RESULT([$ac_cv_ping_command])
1025 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
1026 egrep -i "^round-trip|^rtt" >/dev/null
1027 then
1028 ac_cv_ping_command="$PATH_TO_PING -n -c %d %s"
1029 ac_cv_ping_packets_first=yes
1030 AC_MSG_RESULT([$ac_cv_ping_command])
1032 else
1033 AC_MSG_WARN([unable to find usable ping syntax])
1034 fi
1036 AC_DEFINE_UNQUOTED(PING_COMMAND,"$ac_cv_ping_command",
1037 [path and args for ICMP ping command])
1039 if test "x$ac_cv_ping_packets_first" != "xno"
1040 then
1041 AC_DEFINE(PING_PACKETS_FIRST,1,
1042 [Define if packet count must precede host])
1043 fi
1045 AC_ARG_WITH(ping6_command,
1046 ACX_HELP_STRING([--with-ping6-command=SYNTAX],
1047 [sets syntax for ICMPv6 ping]),
1048 ac_cv_ping6_command=$withval,)
1050 AC_MSG_CHECKING(for ICMPv6 ping syntax)
1051 ac_cv_ping6_packets_first=no
1052 if test -n "$ac_cv_ping6_command"
1053 then
1054 AC_MSG_RESULT([(command-line) $ac_cv_ping6_command])
1055 if test -n "$ac_cv_ping6_packets_first"
1056 then
1057 ac_cv_ping6_packets_first=yes
1058 fi
1060 elif test "x$PATH_TO_PING6" != "x"; then
1061 if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1062 $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1063 egrep -i "^round-trip|^rtt" >/dev/null
1064 then
1065 ac_cv_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1066 ac_cv_ping6_packets_first=yes
1067 AC_MSG_RESULT([$ac_cv_ping6_command])
1069 elif $PATH_TO_PING6 -n -U -c 1 ::1 2>/dev/null | \
1070 egrep -i "^round-trip|^rtt" >/dev/null
1071 then
1072 ac_cv_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1073 ac_cv_ping6_packets_first=yes
1074 AC_MSG_RESULT([$ac_cv_ping6_command])
1076 elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1077 egrep -i "^round-trip|^rtt" >/dev/null
1078 then
1079 ac_cv_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1080 ac_cv_ping6_packets_first=yes
1081 AC_MSG_RESULT([$ac_cv_ping6_command])
1083 elif $PATH_TO_PING6 -n ::1 -c 1 2>/dev/null | \
1084 egrep -i "^round-trip|^rtt" >/dev/null
1085 then
1086 ac_cv_ping6_command="$PATH_TO_PING6 -n %s -c %d"
1087 AC_MSG_RESULT([$ac_cv_ping6_command])
1089 elif $PATH_TO_PING6 ::1 -n 1 2>/dev/null | \
1090 egrep -i "^round-trip|^rtt" >/dev/null
1091 then
1092 ac_cv_ping6_command="$PATH_TO_PING6 %s -n %d"
1093 AC_MSG_RESULT([$ac_cv_ping6_command])
1095 elif $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1096 egrep -i "^round-trip|^rtt" >/dev/null
1097 then
1098 ac_cv_ping6_command="$PATH_TO_PING6 -n -s %s 56 %d"
1099 AC_MSG_RESULT([$ac_cv_ping6_command])
1101 elif $PATH_TO_PING6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1102 egrep -i "^round-trip|^rtt" >/dev/null
1103 then
1104 ac_cv_ping6_command="$PATH_TO_PING6 -n -h %s -s 56 -c %d"
1105 AC_MSG_RESULT([$ac_cv_ping6_command])
1107 elif $PATH_TO_PING6 -n -s 56 -c 1 ::1 2>/dev/null | \
1108 egrep -i "^round-trip|^rtt" >/dev/null
1109 then
1110 ac_cv_ping6_command="$PATH_TO_PING6 -n -s 56 -c %d %s"
1111 ac_cv_ping6_packets_first=yes
1112 AC_MSG_RESULT([$ac_cv_ping_command])
1114 elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1115 egrep -i "^round-trip|^rtt" >/dev/null
1116 then
1117 ac_cv_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1118 ac_cv_ping6_packets_first=yes
1119 AC_MSG_RESULT([$ac_cv_ping6_command])
1121 fi
1123 elif test "x$PATH_TO_PING" != "x"; then
1124 if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1125 $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1126 egrep -i "^round-trip|^rtt" >/dev/null
1127 then
1128 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1129 ac_cv_ping6_packets_first=yes
1130 AC_MSG_RESULT([$ac_cv_ping6_command])
1132 elif $PATH_TO_PING -A inet6 -n -U -c 1 ::1 2>/dev/null | \
1133 egrep -i "^round-trip|^rtt" >/dev/null
1134 then
1135 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1136 ac_cv_ping6_packets_first=yes
1137 AC_MSG_RESULT([$ac_cv_ping6_command])
1139 elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1140 egrep -i "^round-trip|^rtt" >/dev/null
1141 then
1142 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1143 ac_cv_ping6_packets_first=yes
1144 AC_MSG_RESULT([$ac_cv_ping6_command])
1146 elif $PATH_TO_PING -A inet6 -n ::1 -c 1 2>/dev/null | \
1147 egrep -i "^round-trip|^rtt" >/dev/null
1148 then
1149 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n %s -c %d"
1150 AC_MSG_RESULT([$ac_cv_ping6_command])
1152 elif $PATH_TO_PING -A inet6 ::1 -n 1 2>/dev/null | \
1153 egrep -i "^round-trip|^rtt" >/dev/null
1154 then
1155 ac_cv_ping6_command="$PATH_TO_PING -A inet6 %s -n %d"
1156 AC_MSG_RESULT([$ac_cv_ping6_command])
1158 elif $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1159 egrep -i "^round-trip|^rtt" >/dev/null
1160 then
1161 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -s %s 56 %d"
1162 AC_MSG_RESULT([$ac_cv_ping6_command])
1164 elif $PATH_TO_PING -A inet6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1165 egrep -i "^round-trip|^rtt" >/dev/null
1166 then
1167 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -h %s -s 56 -c %d"
1168 AC_MSG_RESULT([$ac_cv_ping6_command])
1170 elif $PATH_TO_PING -A inet6 -n -s 56 -c 1 ::1 2>/dev/null | \
1171 egrep -i "^round-trip|^rtt" >/dev/null
1172 then
1173 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -s 56 -c %d %s"
1174 ac_cv_ping6_packets_first=yes
1175 AC_MSG_RESULT([$ac_cv_ping_command])
1177 elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1178 egrep -i "^round-trip|^rtt" >/dev/null
1179 then
1180 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1181 ac_cv_ping6_packets_first=yes
1182 AC_MSG_RESULT([$ac_cv_ping6_command])
1184 fi
1186 fi
1188 if test "x$ac_cv_ping6_command" != "x"; then
1189 AC_DEFINE_UNQUOTED(PING6_COMMAND,"$ac_cv_ping6_command",
1190 [path and args for ICMPv6 ping command])
1191 else
1192 AC_MSG_RESULT([none])
1193 fi
1195 if test "x$ac_cv_ping6_packets_first" != "xno"; then
1196 AC_DEFINE(PING6_PACKETS_FIRST,1,
1197 [Define if packet count must precede host])
1198 fi
1200 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
1202 AC_MSG_CHECKING(for nslookup syntax)
1203 if test -n "$PATH_TO_NSLOOKUP"
1204 then
1205 if $PATH_TO_NSLOOKUP -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
1206 then
1207 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP"
1208 AC_MSG_RESULT([$ac_cv_nslookup_command])
1210 else
1211 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP -sil"
1212 AC_MSG_RESULT([$ac_cv_nslookup_command])
1214 fi
1215 EXTRAS="$EXTRAS check_dns"
1217 else
1218 AC_MSG_WARN([nslookup command not found])
1219 fi
1221 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$ac_cv_nslookup_command",
1222 [path and args for nslookup])
1224 AC_PATH_PROG(PATH_TO_HOST,host)
1225 if test -n "$ac_cv_path_PATH_TO_HOST"
1226 then
1227 EXTRAS="$EXTRAS check_dns"
1228 fi
1230 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
1231 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
1233 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
1234 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
1236 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
1237 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
1238 AC_PATH_PROGS(PATH_TO_NTPQ,ntpq)
1239 if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPQ")
1240 then
1241 AC_DEFINE_UNQUOTED(PATH_TO_NTPQ,"$PATH_TO_NTPQ",[path to ntpq binary])
1242 AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary])
1243 else
1244 AC_MSG_WARN([Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization])
1245 fi
1247 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
1248 if test -x "$PATH_TO_LMSTAT"
1249 then
1250 AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
1251 else
1252 AC_MSG_WARN([Get lmstat from Globetrotter Software to monitor flexlm licenses])
1253 fi
1255 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
1256 if test -x "$PATH_TO_SMBCLIENT"
1257 then
1258 AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
1259 else
1260 AC_MSG_WARN([Get smbclient from Samba.org to monitor SMB shares])
1261 fi
1264 AC_PATH_PROG(PATH_TO_WHO,who)
1266 if [$PATH_TO_WHO -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
1267 then
1268 ac_cv_path_to_who="$PATH_TO_WHO -q"
1269 else
1270 ac_cv_path_to_who="$PATH_TO_WHO"
1271 fi
1273 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$ac_cv_path_to_who",
1274 [path and arguments for invoking 'who'])
1276 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
1277 if test -x "$PATH_TO_SNMPGET"
1278 then
1279 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
1280 EXTRAS="$EXTRAS check_hpjd check_snmp"
1281 else
1282 AC_MSG_WARN([Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins])
1283 fi
1285 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
1286 if test -x "$PATH_TO_SNMPGETNEXT"
1287 then
1288 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
1289 fi
1291 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null )
1292 then
1293 AC_MSG_CHECKING(for Net::SNMP perl module)
1294 AC_MSG_RESULT([found])
1295 else
1296 AC_MSG_WARN([Tried $PERL - install Net::SNMP perl module if you want to use the perl snmp plugins])
1297 fi
1299 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
1300 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
1302 if test -x "$PATH_TO_QUAKESTAT"
1303 then
1304 ac_cv_path_to_qstat="$PATH_TO_QUAKESTAT"
1305 EXTRAS="$EXTRAS check_game"
1307 elif test -x "$PATH_TO_QSTAT"
1308 then
1309 ac_cv_path_to_qstat="$PATH_TO_QSTAT"
1310 EXTRAS="$EXTRAS check_game"
1311 else
1312 AC_MSG_WARN([Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin])
1313 fi
1315 if test $ac_cv_path_to_qstat
1316 then
1317 AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$ac_cv_path_to_qstat",
1318 [path to qstat/quakestat])
1319 fi
1321 AC_PATH_PROG(PATH_TO_FPING,fping)
1322 if test -x "$PATH_TO_FPING"
1323 then
1324 AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
1325 EXTRAS="$EXTRAS check_fping"
1326 else
1327 AC_MSG_WARN([Get fping from http://www.fping.com in order to make check_fping plugin])
1328 fi
1330 AC_PATH_PROG(PATH_TO_SSH,ssh)
1332 if test -x "$PATH_TO_SSH"
1333 then
1334 AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
1335 EXTRAS="$EXTRAS check_by_ssh"
1336 else
1337 AC_MSG_WARN([Get ssh in order to make check_by_ssh plugin])
1338 fi
1341 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
1342 if test -x "$PATH_TO_MAILQ"
1343 then
1344 AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
1345 else
1346 AC_MSG_WARN([Could not find mailq or eqivalent])
1347 fi
1349 dnl SWAP info required is amount allocated/available and amount free
1350 dnl The plugin works through all the swap devices and adds up the total swap
1351 dnl available.
1353 dnl dunno why this does not work below - use hack (kbd)
1354 dnl fine on linux, broken on solaris
1355 dnl if /bin/test -e "/proc/meminfo"
1357 AC_PATH_PROG(PATH_TO_SWAP,swap)
1358 AC_PATH_PROG(PATH_TO_SWAPINFO,swapinfo)
1360 AC_MSG_CHECKING(for how to check memory)
1361 if [cat /proc/meminfo > /dev/null 2>&1]
1362 then
1363 AC_MSG_RESULT([found /proc/meminfo])
1364 AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
1365 AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes])
1366 EXTRAS="$EXTRAS check_swap"
1368 elif [$PATH_TO_SWAP -l 2>&1 >/dev/null]
1369 then
1370 ac_cv_have_swap=yes
1371 ac_cv_swap_command="$PATH_TO_SWAP -l"
1372 if [$PATH_TO_SWAP -l 2>/dev/null | \
1373 egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" \
1374 >/dev/null]
1375 then
1376 ac_cv_swap_format=[" %*d %*s %*d,%*d %*d %*d %d %d"]
1377 AC_MSG_RESULT([using IRIX format swap])
1379 elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^swapfile +dev +swaplo +blocks +free" >/dev/null]
1380 then
1381 ac_cv_swap_format=["%*s %*[[0-9,-]] %*d %d %d"]
1382 AC_MSG_RESULT([using Solaris format swap])
1384 elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null]
1385 then
1386 ac_cv_swap_format=["%*s %*[[0-9,-]] %*d %d %d"]
1387 AC_MSG_RESULT([using Unixware format swap])
1389 fi
1390 EXTRAS="$EXTRAS check_swap"
1392 elif [$PATH_TO_SWAPINFO -k 2>&1 | egrep -i "^Device" >/dev/null]
1393 then
1394 ac_cv_have_swap=yes
1395 ac_cv_swap_command="$PATH_TO_SWAPINFO -k"
1397 if [$PATH_TO_SWAPINFO -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
1398 then
1399 ac_cv_swap_format=["%*s %d %*d %d"]
1400 AC_MSG_RESULT([using FreeBSD format swapinfo])
1401 fi
1402 EXTRAS="$EXTRAS check_swap"
1404 elif [$PATH_TO_SWAPINFO -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
1405 then
1406 ac_cv_have_swap=yes
1407 ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM",
1408 ac_cv_swap_format=["%*s %d %*d %d"]
1409 AC_MSG_RESULT([using HP-UX format swapinfo])
1410 fi
1412 if test x$ac_cv_have_swap != x
1413 then
1414 AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
1415 fi
1416 AC_DEFINE_UNQUOTED(SWAP_FORMAT,"$ac_cv_swap_format",
1417 [Format string for parsing swap output])
1418 if test "x$ac_cv_swap_command" != "x"
1419 then
1420 AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$ac_cv_swap_command",
1421 [Path to swap/swapinfo binary, with any args])
1422 fi
1424 AC_PATH_PROG(PATH_TO_DIG,dig)
1425 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
1426 if test -n "$PATH_TO_DIG"; then
1427 EXTRAS="$EXTRAS check_dig"
1428 fi
1430 if test -f plugins/check_nt.c ; then
1431 EXTRAS="$EXTRAS check_nt"
1432 elif test -f ../plugins/check_nt.c ; then
1433 EXTRAS="$EXTRAS check_nt"
1434 fi
1436 AC_MSG_CHECKING(for va_list)
1437 AC_TRY_COMPILE([#ifdef __STDC__
1438 #include <stdio.h>
1439 #include <stdlib.h>
1440 #include <stdarg.h>
1441 #else
1442 #include <sys/types.h>
1443 #include <stdio.h>
1444 #include <varargs.h>
1445 #endif],
1446 [va_list args;],
1447 [AC_MSG_RESULT(yes)],
1448 [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
1450 AC_SUBST(EXTRAS)
1451 AC_SUBST(DEPLIBS)
1453 AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"${VERSION}",[package version])
1455 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)