529b7bbc3e54bd9151b77743bec1c6d1c6d10b42
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 AC_ARG_WITH([ipv6],
304 ACX_HELP_STRING([--with-ipv6],
305 [enable IPv6 support (default=no)]),
306 ac_cv_sys_use_ipv6=$withval,
307 ac_cv_sys_use_ipv6=no)
309 dnl Check for AF_INET6 support
310 AC_CACHE_CHECK([for IPv6 support], ac_cv_sys_use_ipv6, [
311 AC_TRY_COMPILE([#include <netinet/in.h>],
312 [struct sockaddr_in6 sin6;
313 void *p;
315 sin6.sin6_family = AF_INET6;
316 sin6.sin6_port = 587;
317 p = &sin6.sin6_addr;],
318 [ac_cv_sys_use_ipv6=yes],
319 [ac_cv_sys_use_ipv6=no])
320 ])
322 if test x"$ac_cv_sys_use_ipv6" != xno ; then
323 AC_DEFINE(USE_IPV6,1,[Enable IPv6 support])
324 fi
326 dnl #########################################################################
327 dnl Check if Posix getaddrinfo() is available. It is also possible to use
328 dnl the version from the lwres library distributed with BIND.
329 dnl #########################################################################
330 AC_ARG_ENABLE([emulate-getaddrinfo],
331 ACX_HELP_STRING([--enable-emulate-getaddrinfo],
332 [enable getaddrinfo emulation (default=no)]),
333 ,
334 enable_emulate_getaddrinfo=no)
335 AC_ARG_WITH(lwres,
336 ACX_HELP_STRING([--with-lwres=DIR],
337 [use lwres library for getaddrinfo (default=no)]),
338 ,
339 with_lwres=no)
341 dnl ## enable force to test getaddrinfo.c
342 if test x$enable_emulate_getaddrinfo = xforce ; then
343 enable_emulate_getaddrinfo=yes
344 have_getaddrinfo=no
345 else
347 have_getaddrinfo=no
348 if test x$with_lwres != xno ; then
349 if test "$with_lwres" != yes ; then
350 CPPFLAGS="-I${with_lwres}/include $CPPFLAGS"
351 LDFLAGS="-L${with_lwres}/lib $LDFLAGS"
352 fi
353 AC_CHECK_HEADERS(lwres/netdb.h, ,
354 [AC_MSG_ERROR([cannot find <lwres/netdb.h>])])
355 AC_CHECK_LIB(lwres, lwres_getaddrinfo, ,
356 [AC_MSG_ERROR([cannot find the lwres library])],
357 -lnsl -lpthread)
358 have_getaddrinfo=yes
359 fi
361 if test x$have_getaddrinfo != xyes ; then
362 AC_SEARCH_LIBS(getaddrinfo, socket resolv bind nsl c_r cr, have_getaddrinfo=yes)
363 fi
365 dnl # Special nonsense for systems that actually have getaddrinfo but
366 dnl # redefine the name to something else, e.g. OSF
367 if test x$have_getaddrinfo != xyes ; then
368 AC_MSG_CHECKING(if getaddrinfo is redefined in netdb.h)
369 AC_TRY_LINK([
370 # include <netdb.h>
371 ], [
372 struct addrinfo hints, *res;
373 int err;
375 err = getaddrinfo ("host", "service", &hints, &res);
376 ], [
377 have_getaddrinfo=yes
378 AC_MSG_RESULT(yes)
379 ], [AC_MSG_RESULT(no)])
380 fi
382 fi
384 if test x$have_getaddrinfo != xno ; then
385 if test x$enable_emulate_getaddrinfo != xno ; then
386 AC_MSG_ERROR([getaddrinfo found but emulate-getaddrinfo was enabled])
387 fi
388 AC_DEFINE(HAVE_GETADDRINFO, 1,
389 [Does system provide RFC 2553/Posix getaddrinfo?])
390 else
391 if test x$enable_emulate_getaddrinfo != xyes ; then
392 AC_MSG_ERROR([getaddrinfo not found: try --with-lwres or --enable-emulate-getaddrinfo])
393 fi
394 LIBOBJS="$LIBOBJS getaddrinfo.o"
395 fi
397 if test x"$enable_emulate_getaddrinfo" != xno ; then
398 have_resolver=no
400 dnl Try for getipnodebyname
401 AC_SEARCH_LIBS(getipnodebyname, resolv bind nsl c_r cr, have_resolver=yes)
402 if test x"$have_resolver" != xno ; then
403 AC_DEFINE(HAVE_GETIPNODEBYNAME, 1,
404 [Set when getipnodebyname is available])
405 fi
407 dnl Try for gethostbyname_r
408 if test x"$have_resolver" = xno ; then
409 AC_SEARCH_LIBS(gethostbyname_r, resolv bind nsl c_r cr,
410 [have_resolver=yes
411 ACX_WHICH_GETHOSTBYNAME_R])
412 fi
414 dnl Try for gethostbyname
415 if test x"$have_resolver" = xno ; then
416 if test x"$enable_pthreads" != xno ; then
417 AC_MSG_WARN([using threads but cannot find gethostbyname_r or getipnodebyname])
418 fi
419 AC_SEARCH_LIBS(gethostbyname, resolv bind nsl, ,
420 [AC_MSG_ERROR([cannot find gethostbyname])])
421 fi
422 LIBOBJS="$LIBOBJS gethostbyname.o"
424 fi
426 AC_CHECK_HEADERS(krb5.h,FOUNDINCLUDE=yes,FOUNDINCLUDE=no)
427 if test "$FOUNDINCLUDE" = "no"; then
428 _SAVEDCPPFLAGS="$CPPFLAGS"
429 CPPFLAGS="$_SAVEDCPPFLAGS -I/usr/kerberos/include"
430 unset ac_cv_header_krb5_h
431 AC_CHECK_HEADERS(krb5.h,
432 KRB5INCLUDE="-I/usr/kerberos/include"
433 FOUNDINCLUDE=yes,
434 FOUNDINCLUDE=no)
435 fi
436 AC_SUBST(KRBINCLUDE)
437 if test "$FOUNDINCLUDE" = "no"; then
438 CPPFLAGS="$_SAVEDCPPFLAGS"
439 fi
441 dnl Check for OpenSSL header files
442 unset FOUNDINCLUDE
443 _SAVEDCPPFLAGS="$CPPFLAGS"
444 CPPFLAGS="$CPPFLAGS -I$OPENSSL/include"
445 AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h,
446 SSLINCLUDE="-I$OPENSSL/include"
447 FOUNDINCLUDE=yes,
448 FOUNDINCLUDE=no)
449 if test "$FOUNDINCLUDE" = "no"; then
450 AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h,
451 SSLINCLUDE="-I$OPENSSL/include"
452 FOUNDINCLUDE=yes,
453 FOUNDINCLUDE=no)
454 fi
455 AC_SUBST(SSLINCLUDE)
456 if test "$FOUNDINCLUDE" = "no"; then
457 CPPFLAGS="$_SAVEDCPPFLAGS"
458 fi
460 dnl Check for crypto lib
461 _SAVEDLIBS="$LIBS"
462 AC_CHECK_LIB(crypto,CRYPTO_lock,,,-L$OPENSSL/lib)
463 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
464 dnl Check for SSL lib
465 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)
466 fi
467 LIBS="$_SAVEDLIBS"
469 dnl test headers and libs to decide whether check_http should use SSL
470 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
471 if test "$ac_cv_lib_ssl_main" = "yes"; then
472 if test "$FOUNDINCLUDE" = "yes"; then
473 AC_SUBST(SSLLIBS)
474 AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
475 fi
476 fi
477 fi
478 CPPFLAGS="$_SAVEDCPPFLAGS"
480 dnl
481 dnl Checks for header files.
482 dnl
484 AC_HEADER_STDC
485 AC_HEADER_TIME
486 AC_HEADER_SYS_WAIT
487 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)
488 AC_CHECK_HEADERS(stdarg.h sys/unistd.h unistd.h ctype.h stdlib.h)
490 dnl Linux
491 AC_CHECK_HEADERS(sys/vfs.h,
492 [AC_TRY_COMPILE([#include <sys/vfs.h>],
493 [struct statfs buf; long foo; statfs ("/", &buf); foo = buf.f_namelen;],
494 [AC_DEFINE(HAVE_STRUCT_STATFS,1,[Define if statfs struct can be found])])])
496 dnl FreeBSD
497 AC_CHECK_HEADERS(sys/param.h sys/mount.h,
498 [AC_TRY_COMPILE([#include <sys/param.h>
499 #include <sys/mount.h>],
500 [struct statfs buf; int foo; statfs ("/", &buf); foo = buf.f_flags;],
501 [AC_DEFINE(HAVE_STRUCT_STATFS,1,[Define if statfs struct can be found])])])
503 dnl Checks for typedefs, structures, and compiler characteristics.
504 AC_C_CONST
505 AC_STRUCT_TM
506 AC_TYPE_PID_T
507 AC_TYPE_SIZE_T
508 AC_TYPE_SIGNAL
510 AC_CHECK_SIZEOF(int,cross)
511 AC_CHECK_SIZEOF(long,cross)
512 AC_CHECK_SIZEOF(short,cross)
514 AC_CACHE_CHECK([for long long],ac_cv_have_longlong,[
515 AC_TRY_RUN([#include <stdio.h>
516 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
517 ac_cv_have_longlong=yes,ac_cv_have_longlong=no,ac_cv_have_longlong=cross)])
518 if test x"$ac_cv_have_longlong" = x"yes"; then
519 AC_DEFINE(HAVE_LONGLONG,1,[Define if system has long long type])
520 fi
522 #
523 # Check if the compiler supports the LL prefix on long long integers.
524 # AIX needs this.
526 AC_CACHE_CHECK([for LL suffix on long long integers],ac_cv_compiler_supports_ll, [
527 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
528 ac_cv_compiler_supports_ll=yes,ac_cv_compiler_supports_ll=no)])
529 if test x"$ac_cv_compiler_supports_ll" = x"yes"; then
530 AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Define if compiler support long long])
531 fi
533 AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE_VA_COPY,[
534 AC_TRY_LINK([#include <stdarg.h>
535 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
536 ac_cv_HAVE_VA_COPY=yes,ac_cv_HAVE_VA_COPY=no)])
537 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
538 AC_DEFINE(HAVE_VA_COPY,1,[Define if system has va_copy])
539 fi
541 AC_CHECK_FUNCS(vsnprintf snprintf asprintf vasprintf)
542 AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
543 AC_TRY_RUN([
544 #include <sys/types.h>
545 #include <stdarg.h>
546 void foo(const char *format, ...) {
547 va_list ap;
548 int len;
549 char buf[5];
551 va_start(ap, format);
552 len = vsnprintf(buf, 0, format, ap);
553 va_end(ap);
554 if (len != 5) exit(1);
556 va_start(ap, format);
557 len = vsnprintf(0, 0, format, ap);
558 va_end(ap);
559 if (len != 5) exit(1);
561 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
563 exit(0);
564 }
565 main() { foo("hello"); }
566 ],
567 ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
568 if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
569 AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
570 fi
572 AC_TRY_COMPILE([#include <sys/time.h>],
573 [struct timeval *tv;
574 struct timezone *tz;],
575 AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
576 AC_TRY_COMPILE([#include <sys/time.h>],
577 [struct timeval *tv;
578 struct timezone *tz;
579 gettimeofday(tv, tz);],
580 AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
581 AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
583 dnl Checks for library functions.
584 AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul)
586 AC_MSG_CHECKING(return type of socket size)
587 AC_TRY_COMPILE([#include <stdlib.h>
588 #include <sys/types.h>
589 #include <sys/socket.h>],
590 [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
591 ac_cv_socket_size_type=["size_t"]
592 AC_MSG_RESULT(size_t),
593 ac_cv_socket_size_type=["int"]
594 AC_MSG_RESULT(int))
596 AC_DEFINE_UNQUOTED(SOCKET_SIZE_TYPE, $ac_cv_socket_size_type ,
597 [Define type of socket size])
599 if test -f "/proc/loadavg"
600 then
601 AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
602 AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg])
603 fi
605 dnl #### Process table test
607 AC_PATH_PROG(PATH_TO_PS,ps)
608 ac_cv_use_ps_vars=no
610 AC_MSG_CHECKING(for ps syntax)
611 dnl STAT UCOMM VSZ RSS USER UID PPID COMMAND
612 if ps -weo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
613 egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
614 then
615 ac_cv_use_ps_vars=yes
616 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
617 ac_cv_ps_raw_command="$PATH_TO_PS -weo 'stat user ppid args'"
618 ac_cv_ps_command="$PATH_TO_PS -weo 'stat uid ppid comm args'"
619 ac_cv_ps_format="%s %d %d %s %n"
620 ac_cv_vsz_command="$PATH_TO_PS -weo 'vsz comm'"
621 ac_cv_vsz_format="%d %s"
622 ac_cv_rss_command="$PATH_TO_PS -weo 'rss comm'"
623 ac_cv_rss_format="%d %s"
624 EXTRAS="$EXTRAS check_nagios"
625 AC_MSG_RESULT([$ac_cv_ps_command])
627 dnl FreeBSD
628 elif ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | \
629 egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PPID"] >/dev/null
630 then
631 ac_cv_use_ps_vars=yes
632 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
633 ac_cv_ps_raw_command="$PATH_TO_PS waxo 'state uid ppid command'"
634 ac_cv_ps_command="$PATH_TO_PS waxco 'state uid ppid command command'"
635 ac_cv_ps_format="%s %d %d %s %n"
636 ac_cv_vsz_command="$PATH_TO_PS waxco 'vsz command'"
637 ac_cv_vsz_format="%d %s"
638 ac_cv_rss_command="$PATH_TO_PS waxco 'rss command'"
639 ac_cv_rss_format="%d %s"
640 EXTRAS="$EXTRAS check_nagios"
641 AC_MSG_RESULT([$ac_cv_ps_command])
643 dnl BSD-like mode in RH 6.1
644 elif ps waxno 'state comm vsz rss uid user ppid args' 2>/dev/null | \
645 egrep -i ["^S +COMMAND +VSZ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
646 then
647 ac_cv_use_ps_vars=yes
648 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
649 ac_cv_ps_raw_command="$PATH_TO_PS waxno 'state user ppid comm'"
650 ac_cv_ps_command="$PATH_TO_PS waxno 'state uid ppid comm args'"
651 ac_cv_ps_format="%s %d %d %s %n"
652 ac_cv_vsz_command="$PATH_TO_PS waxno 'vsz comm'"
653 ac_cv_vsz_format="%d %s"
654 ac_cv_rss_command="$PATH_TO_PS waxno 'rss comm'"
655 ac_cv_rss_format="%d %s"
656 EXTRAS="$EXTRAS check_nagios"
657 AC_MSG_RESULT([$ac_cv_ps_command])
659 dnl SunOS 4.1.3:
660 dnl F UID PID PPID CP PRI NI SZ RSS WCHAN STAT TT TIME COMMAND
661 elif ps -laxnwww 2>/dev/null | \
662 egrep -i ["^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND"] >/dev/null
663 then
664 ac_cv_use_ps_vars=yes
665 ac_cv_ps_raw_command="$PATH_TO_PS laxnwww"
666 ac_cv_ps_varlist="[&procuid,&procppid,procstat,&pos,procprog]"
667 ac_cv_ps_command="$PATH_TO_PS -laxnwww"
668 ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %*s %*s %*s %s %*s %*s %n%s"
669 ac_cv_vsz_command="$PATH_TO_PS laxnwww"
670 ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %*s %d"
671 ac_cv_rss_command="$PATH_TO_PS laxnwww"
672 ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %d"
673 EXTRAS="$EXTRAS check_nagios"
674 AC_MSG_RESULT([$ac_cv_ps_command])
676 dnl Debian Linux / procps v1.2.9:
677 dnl FLAGS UID PID PPID PRI NI SIZE RSS WCHAN STA TTY TIME COMMAND
678 dnl 100 0 1 0 0 0 776 76 c0131c8c S ffff 0:11 init [2]
679 dnl
680 elif ps laxnwww 2>/dev/null | \
681 egrep -i ["^ *F(LAGS)? +UID +PID +PPID +PRI +NI +(VSZ)|(SIZE) +RSS +WCHAN +STAT? TTY +TIME +COMMAND"] >/dev/null
682 then
683 ac_cv_use_ps_vars=yes
684 ac_cv_ps_raw_command="$PATH_TO_PS laxnwww"
685 ac_cv_ps_varlist="[&procuid,&procppid,procstat,&pos,procprog]"
686 ac_cv_ps_command="$PATH_TO_PS laxnwww"
687 ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s"
688 ac_cv_vsz_command="$PATH_TO_PS laxnwww"
689 ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %d"
690 ac_cv_rss_command="$PATH_TO_PS laxnwww"
691 ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %d"
692 EXTRAS="$EXTRAS check_nagios"
693 AC_MSG_RESULT([$ac_cv_ps_command])
695 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
696 elif ps -axo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
697 egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
698 then
699 ac_cv_use_ps_vars=yes
700 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
701 ac_cv_ps_raw_command="$PATH_TO_PS -axo 'stat user ppid args'"
702 ac_cv_ps_command="$PATH_TO_PS -axo 'stat uid ppid comm args'"
703 ac_cv_ps_format="%s %d %d %s %n"
704 ac_cv_vsz_command="$PATH_TO_PS -axo 'vsz comm'"
705 ac_cv_vsz_format="%d %s"
706 ac_cv_rss_command="$PATH_TO_PS -axo 'rss comm'"
707 ac_cv_rss_format="%d %s"
708 EXTRAS="$EXTRAS check_nagios"
709 AC_MSG_RESULT([$ac_cv_ps_command])
711 dnl AIX 4.3.3 - needs verification. This works for Tru64 - needs %*[ +] in PS_FORMAT
712 elif ps -ao 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
713 egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
714 then
715 ac_cv_use_ps_vars=yes
716 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
717 ac_cv_ps_raw_command="$PATH_TO_PS -ao 'stat user ppid args'"
718 ac_cv_ps_command="$PATH_TO_PS -ao 'stat uid ppid comm args'"
719 ac_cv_ps_format="[["%s%*[ +] %d %d %s %n"]]"
720 ac_cv_vsz_command="$PATH_TO_PS -ao 'vsz comm'"
721 ac_cv_vsz_format="%d %s"
722 ac_cv_rss_command="$PATH_TO_PS -ao 'rss comm'"
723 ac_cv_rss_format="%d %s"
724 EXTRAS="$EXTRAS check_nagios"
725 AC_MSG_RESULT([$ac_cv_ps_command])
727 elif ps -eo 's comm vsz rss user uid ppid args' 2>/dev/null | \
728 egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
729 then
730 ac_cv_use_ps_vars=yes
731 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
732 ac_cv_ps_raw_command="$PATH_TO_PS -eo 's user ppid args'"
733 ac_cv_ps_command="$PATH_TO_PS -eo 's uid ppid comm args'"
734 ac_cv_ps_format="%s %d %d %s %n"
735 ac_cv_vsz_command="$PATH_TO_PS -eo 'vsz comm'"
736 ac_cv_vsz_format="%d %s"
737 ac_cv_rss_command="$PATH_TO_PS -eo 'rss comm'"
738 ac_cv_rss_format="%d %s"
739 EXTRAS="$EXTRAS check_nagios"
740 AC_MSG_RESULT([$ac_cv_ps_command])
742 elif ps -Ao 's comm vsz rss uid user ppid args' 2>/dev/null | \
743 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
744 then
745 ac_cv_use_ps_vars=yes
746 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
747 ac_cv_ps_raw_command="$PATH_TO_PS -Ao 's user ppid args'"
748 ac_cv_ps_command="$PATH_TO_PS -Ao 's uid ppid comm args'"
749 ac_cv_ps_format="%s %d %d %s %n"
750 ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
751 ac_cv_vsz_format="%d %s"
752 ac_cv_rss_command="$PATH_TO_PS -Ao 'rss comm'"
753 ac_cv_rss_format="%d %s"
754 EXTRAS="$EXTRAS check_nagios"
755 AC_MSG_RESULT([$ac_cv_ps_command])
757 elif ps -Ao 'status comm vsz rss uid user ppid args' 2>/dev/null | \
758 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
759 then
760 ac_cv_use_ps_vars=yes
761 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
762 ac_cv_ps_raw_command="$PATH_TO_PS -Ao 'status user ppid args'"
763 ac_cv_ps_command="$PATH_TO_PS -Ao 'status uid ppid comm args'"
764 ac_cv_ps_format="%s %d %d %s %n"
765 ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
766 ac_cv_vsz_format="%d %s"
767 ac_cv_rss_command="$PATH_TO_PS -Ao 'rss comm'"
768 ac_cv_rss_format="%d %s"
769 EXTRAS="$EXTRAS check_nagios"
770 AC_MSG_RESULT([$ac_cv_ps_command])
772 elif ps -Ao 'state comm vsz rss uid user ppid args' 2>/dev/null | \
773 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
774 then
775 ac_cv_use_ps_vars=yes
776 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
777 ac_cv_ps_raw_command="$PATH_TO_PS -Ao 'state user ppid args'"
778 ac_cv_ps_command="$PATH_TO_PS -Ao 'state uid ppid comm args'"
779 ac_cv_ps_format="%s %d %d %s %n"
780 ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
781 ac_cv_vsz_format="%d %s"
782 ac_cv_rss_command="$PATH_TO_PS -Ao 'rss comm'"
783 ac_cv_rss_format="%d %s"
784 EXTRAS="$EXTRAS check_nagios"
785 AC_MSG_RESULT([$ac_cv_ps_command])
787 dnl wonder who takes state instead of stat
788 elif ps -ao 'state command vsz rss user ppid args' 2>/dev/null | \
789 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
790 then
791 ac_cv_use_ps_vars=yes
792 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
793 ac_cv_ps_raw_command="$PATH_TO_PS -ao 'state user ppid args'"
794 ac_cv_ps_command="$PATH_TO_PS -ao 'state uid ppid command args'"
795 ac_cv_ps_format="%s %d %d %s %n"
796 ac_cv_vsz_command="$PATH_TO_PS -ao 'vsz command'"
797 ac_cv_vsz_format="%d %s"
798 ac_cv_rss_command="$PATH_TO_PS -ao 'rss command'"
799 ac_cv_rss_format="%d %s"
800 EXTRAS="$EXTRAS check_nagios"
801 AC_MSG_RESULT([$ac_cv_ps_command])
803 dnl IRIX 53
804 elif ps -el 2>/dev/null | \
805 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
806 then
807 ac_cv_use_ps_vars=yes
808 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
809 ac_cv_ps_command="$PATH_TO_PS -el"
810 ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
811 ac_cv_vsz_command="$PATH_TO_PS -el"
812 ac_cv_vsz_format="%*s %*s %*s %*s %d"
813 ac_cv_rss_command="$PATH_TO_PS -el"
814 ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
815 AC_MSG_RESULT([$ac_cv_ps_command])
817 dnl IRIX 63
818 elif ps -el 2>/dev/null | \
819 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +ADDR +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
820 then
821 ac_cv_use_ps_vars=yes
822 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
823 ac_cv_ps_command="$PATH_TO_PS -el"
824 ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
825 ac_cv_vsz_command="$PATH_TO_PS -el"
826 ac_cv_vsz_format="%*s %*s %*s %*s %d"
827 ac_cv_rss_command="$PATH_TO_PS -el"
828 ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
829 AC_MSG_RESULT([$ac_cv_ps_command])
831 dnl AIX 4.1:
832 dnl F S UID PID PPID C PRI NI ADDR SZ RSS WCHAN TTY TIME CMD
833 dnl 303 A 0 0 0 120 16 -- 1c07 20 24 - 0:45 swapper
834 elif ps -el 2>/dev/null | \
835 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
836 then
837 ac_cv_use_ps_vars=yes
838 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
839 ac_cv_ps_command="$PATH_TO_PS -el"
840 ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
841 ac_cv_vsz_command="$PATH_TO_PS -el"
842 ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
843 ac_cv_rss_command="$PATH_TO_PS -el"
844 ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
845 AC_MSG_RESULT([$ac_cv_ps_command])
847 dnl AIX?
848 elif ps glaxen 2>/dev/null | \
849 egrep -i ["^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND"] >/dev/null
850 then
851 ac_cv_use_ps_vars=yes
852 ac_cv_ps_varlist="[&procuid,&procppid,procstat,&pos,procprog]"
853 ac_cv_ps_command="$PATH_TO_PS glaxen"
854 ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s"
855 ac_cv_vsz_command="$PATH_TO_PS glaxen"
856 ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %d"
857 ac_cv_rss_command="$PATH_TO_PS glaxen"
858 ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %d"
859 AC_MSG_RESULT([$ac_cv_ps_command])
861 dnl MacOSX / Darwin
862 dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
863 dnl STAT VSZ RSS UID USER PPID UCOMM COMMAND
864 dnl Ss 1308 272 0 root 0 init /sbin/init
865 elif ps waxo 'state vsz rss uid user ppid ucomm command' 2>/dev/null | \
866 egrep -i ["^STAT +VSZ +RSS +UID +USER +PPID +UCOMM +COMMAND"] >/dev/null
867 then
868 ac_cv_use_ps_vars=yes
869 ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
870 ac_cv_ps_raw_command="$PATH_TO_PS waxo 'state uid ppid command'"
871 ac_cv_ps_command="$PATH_TO_PS waxo 'state uid ppid ucomm command'"
872 ac_cv_ps_format="%s %d %d %s %n"
873 ac_cv_vsz_command="$PATH_TO_PS waxco 'vsz command'"
874 ac_cv_vsz_format="%d %s"
875 ac_cv_rss_command="$PATH_TO_PS waxco 'rss command'"
876 ac_cv_rss_format="%d %s"
877 EXTRAS="$EXTRAS check_nagios"
878 AC_MSG_RESULT([$ac_cv_ps_command])
880 dnl UnixWare
881 elif ps -Al 2>/dev/null | \
882 egrep -i ["^ *F +S +UID +PID +PPID +CLS +PRI +NI +C +ADDR +SZ +WCHAN +TTY +TIME +COMD"] >/dev/null
883 then
884 ac_cv_use_ps_vars=yes
885 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
886 ac_cv_ps_command="$PATH_TO_PS -Al"
887 ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
888 if ps -Ao 'vsz comm' 2>/dev/null | \
889 egrep -i ["^ *VSZ +COMMAND"] >/dev/null
890 then
891 ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
892 ac_cv_vsz_format="%*s %d"
893 fi
894 AC_MSG_RESULT([$ac_cv_ps_command])
896 else
897 AC_MSG_WARN([unable to find usable ps syntax])
898 fi
900 if test "x$ac_cv_use_ps_vars" != "xno"
901 then
902 AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
903 fi
904 AC_DEFINE_UNQUOTED(PS_VARLIST,$ac_cv_ps_varlist,
905 [Variable list for sscanf of 'ps' output])
906 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$ac_cv_ps_raw_command",
907 [Verbatim command to execute for ps in check_netsaint])
908 AC_DEFINE_UNQUOTED(PS_COMMAND,"$ac_cv_ps_command",
909 [Verbatim command to execute for ps in check_procs])
910 AC_DEFINE_UNQUOTED(PS_FORMAT,"$ac_cv_ps_format",
911 [Format string for scanning ps output in check_procs])
912 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$ac_cv_vsz_command",
913 [Verbatim command to execute for ps in check_vsz])
914 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"$ac_cv_vsz_format",
915 [Format string for scanning ps output in check_vsz])
916 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$ac_cv_rss_command",
917 [Verbatim command to execute for ps in check_rss])
918 AC_DEFINE_UNQUOTED(RSS_FORMAT,"$ac_cv_rss_format",
919 [Format string for scanning ps output in check_rss])
921 AC_PATH_PROG(PATH_TO_DF,df)
922 AC_PATH_PROG(PATH_TO_BDF,bdf)
924 AC_ARG_WITH(df_command,
925 ACX_HELP_STRING([--with-df-command=SYNTAX],
926 [sets syntax for df]),
927 ac_cv_df_command=$withval,)
929 AC_MSG_CHECKING(for df syntax)
930 if test -n "$ac_cv_df_command"
931 then
932 AC_MSG_RESULT([$ac_cv_df_command])
934 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
935 then
936 ac_cv_df_command="$PATH_TO_DF -Pk"
937 AC_MSG_RESULT([$ac_cv_df_command])
939 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
940 then
941 ac_cv_df_command="$PATH_TO_DF -k"
942 AC_MSG_RESULT([$ac_cv_df_command])
944 elif df 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
945 then
946 ac_cv_df_command="$PATH_TO_DF"
947 AC_MSG_RESULT([$ac_cv_df_command])
949 elif bdf 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
950 then
951 ac_cv_df_command="$PATH_TO_BDF"
952 AC_MSG_RESULT([$ac_cv_df_command])
954 else
955 AC_MSG_WARN([unable to find usable df syntax])
956 fi
958 AC_DEFINE_UNQUOTED(DF_COMMAND,"$ac_cv_df_command",[path and args for df command])
960 AC_PATH_PROG(PATH_TO_PING,ping)
961 AC_PATH_PROG(PATH_TO_PING6,ping6)
963 AC_ARG_WITH(ping_command,
964 ACX_HELP_STRING([--with-ping-command=SYNTAX],
965 [sets syntax for ICMP ping]),
966 ac_cv_ping_command=$withval,)
968 AC_MSG_CHECKING(for ICMP ping syntax)
969 ac_cv_ping_packets_first=no
970 if test -n "$ac_cv_ping_command"
971 then
972 AC_MSG_RESULT([(command-line) $ac_cv_ping_command])
973 if test -n "$ac_cv_ping_packets_first"
974 then
975 ac_cv_ping_packets_first=yes
976 dnl AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$ac_cv_ping_command",
977 dnl [Define if packet count must precede host])
978 fi
980 elif [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
981 $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
982 egrep -i "^round-trip|^rtt" >/dev/null
983 then
984 ac_cv_ping_command="$PATH_TO_PING -n -U -c %d %s"
985 ac_cv_ping_packets_first=yes
986 AC_MSG_RESULT([$ac_cv_ping_command])
988 elif $PATH_TO_PING -n -U -c 1 127.0.0.1 2>/dev/null | \
989 egrep -i "^round-trip|^rtt" >/dev/null
990 then
991 ac_cv_ping_command="$PATH_TO_PING -n -U -c %d %s"
992 ac_cv_ping_packets_first=yes
993 AC_MSG_RESULT([$ac_cv_ping_command])
995 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
996 egrep -i "^round-trip|^rtt" >/dev/null
997 then
998 ac_cv_ping_command="$PATH_TO_PING -n -c %d %s"
999 ac_cv_ping_packets_first=yes
1000 AC_MSG_RESULT([$ac_cv_ping_command])
1002 elif $PATH_TO_PING -n 127.0.0.1 -c 1 2>/dev/null | \
1003 egrep -i "^round-trip|^rtt" >/dev/null
1004 then
1005 ac_cv_ping_command="$PATH_TO_PING -n %s -c %d"
1006 AC_MSG_RESULT([$ac_cv_ping_command])
1008 elif $PATH_TO_PING 127.0.0.1 -n 1 2>/dev/null | \
1009 egrep -i "^round-trip|^rtt" >/dev/null
1010 then
1011 ac_cv_ping_command="$PATH_TO_PING %s -n %d"
1012 AC_MSG_RESULT([$ac_cv_ping_command])
1014 elif $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
1015 egrep -i "^round-trip|^rtt" >/dev/null
1016 then
1017 ac_cv_ping_command="$PATH_TO_PING -n -s %s 56 %d"
1018 AC_MSG_RESULT([$ac_cv_ping_command])
1020 elif $PATH_TO_PING -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | \
1021 egrep -i "^round-trip|^rtt" >/dev/null
1022 then
1023 ac_cv_ping_command="$PATH_TO_PING -n -h %s -s 56 -c %d"
1024 AC_MSG_RESULT([$ac_cv_ping_command])
1026 elif $PATH_TO_PING -n -s 56 -c 1 127.0.0.1 2>/dev/null | \
1027 egrep -i "^round-trip|^rtt" >/dev/null
1028 then
1029 ac_cv_ping_command="$PATH_TO_PING -n -s 56 -c %d %s"
1030 ac_cv_ping_packets_first=yes
1031 AC_MSG_RESULT([$ac_cv_ping_command])
1033 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
1034 egrep -i "^round-trip|^rtt" >/dev/null
1035 then
1036 ac_cv_ping_command="$PATH_TO_PING -n -c %d %s"
1037 ac_cv_ping_packets_first=yes
1038 AC_MSG_RESULT([$ac_cv_ping_command])
1040 else
1041 AC_MSG_WARN([unable to find usable ping syntax])
1042 fi
1044 AC_DEFINE_UNQUOTED(PING_COMMAND,"$ac_cv_ping_command",
1045 [path and args for ICMP ping command])
1047 if test "x$ac_cv_ping_packets_first" != "xno"
1048 then
1049 AC_DEFINE(PING_PACKETS_FIRST,1,
1050 [Define if packet count must precede host])
1051 fi
1053 AC_ARG_WITH(ping6_command,
1054 ACX_HELP_STRING([--with-ping6-command=SYNTAX],
1055 [sets syntax for ICMPv6 ping]),
1056 ac_cv_ping6_command=$withval,)
1058 if test x"$ac_cv_sys_use_ipv6" != xno ; then
1059 AC_MSG_CHECKING(for ICMPv6 ping syntax)
1060 ac_cv_ping6_packets_first=no
1061 if test -n "$ac_cv_ping6_command"
1062 then
1063 AC_MSG_RESULT([(command-line) $ac_cv_ping6_command])
1064 if test -n "$ac_cv_ping6_packets_first"
1065 then
1066 ac_cv_ping6_packets_first=yes
1067 fi
1069 elif test "x$PATH_TO_PING6" != "x"; then
1070 if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1071 $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1072 egrep -i "^round-trip|^rtt" >/dev/null
1073 then
1074 ac_cv_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1075 ac_cv_ping6_packets_first=yes
1076 AC_MSG_RESULT([$ac_cv_ping6_command])
1078 elif $PATH_TO_PING6 -n -U -c 1 ::1 2>/dev/null | \
1079 egrep -i "^round-trip|^rtt" >/dev/null
1080 then
1081 ac_cv_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1082 ac_cv_ping6_packets_first=yes
1083 AC_MSG_RESULT([$ac_cv_ping6_command])
1085 elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1086 egrep -i "^round-trip|^rtt" >/dev/null
1087 then
1088 ac_cv_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1089 ac_cv_ping6_packets_first=yes
1090 AC_MSG_RESULT([$ac_cv_ping6_command])
1092 elif $PATH_TO_PING6 -n ::1 -c 1 2>/dev/null | \
1093 egrep -i "^round-trip|^rtt" >/dev/null
1094 then
1095 ac_cv_ping6_command="$PATH_TO_PING6 -n %s -c %d"
1096 AC_MSG_RESULT([$ac_cv_ping6_command])
1098 elif $PATH_TO_PING6 ::1 -n 1 2>/dev/null | \
1099 egrep -i "^round-trip|^rtt" >/dev/null
1100 then
1101 ac_cv_ping6_command="$PATH_TO_PING6 %s -n %d"
1102 AC_MSG_RESULT([$ac_cv_ping6_command])
1104 elif $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1105 egrep -i "^round-trip|^rtt" >/dev/null
1106 then
1107 ac_cv_ping6_command="$PATH_TO_PING6 -n -s %s 56 %d"
1108 AC_MSG_RESULT([$ac_cv_ping6_command])
1110 elif $PATH_TO_PING6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1111 egrep -i "^round-trip|^rtt" >/dev/null
1112 then
1113 ac_cv_ping6_command="$PATH_TO_PING6 -n -h %s -s 56 -c %d"
1114 AC_MSG_RESULT([$ac_cv_ping6_command])
1116 elif $PATH_TO_PING6 -n -s 56 -c 1 ::1 2>/dev/null | \
1117 egrep -i "^round-trip|^rtt" >/dev/null
1118 then
1119 ac_cv_ping6_command="$PATH_TO_PING6 -n -s 56 -c %d %s"
1120 ac_cv_ping6_packets_first=yes
1121 AC_MSG_RESULT([$ac_cv_ping_command])
1123 elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1124 egrep -i "^round-trip|^rtt" >/dev/null
1125 then
1126 ac_cv_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1127 ac_cv_ping6_packets_first=yes
1128 AC_MSG_RESULT([$ac_cv_ping6_command])
1130 fi
1132 elif test "x$PATH_TO_PING" != "x"; then
1133 if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1134 $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1135 egrep -i "^round-trip|^rtt" >/dev/null
1136 then
1137 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1138 ac_cv_ping6_packets_first=yes
1139 AC_MSG_RESULT([$ac_cv_ping6_command])
1141 elif $PATH_TO_PING -A inet6 -n -U -c 1 ::1 2>/dev/null | \
1142 egrep -i "^round-trip|^rtt" >/dev/null
1143 then
1144 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1145 ac_cv_ping6_packets_first=yes
1146 AC_MSG_RESULT([$ac_cv_ping6_command])
1148 elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1149 egrep -i "^round-trip|^rtt" >/dev/null
1150 then
1151 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1152 ac_cv_ping6_packets_first=yes
1153 AC_MSG_RESULT([$ac_cv_ping6_command])
1155 elif $PATH_TO_PING -A inet6 -n ::1 -c 1 2>/dev/null | \
1156 egrep -i "^round-trip|^rtt" >/dev/null
1157 then
1158 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n %s -c %d"
1159 AC_MSG_RESULT([$ac_cv_ping6_command])
1161 elif $PATH_TO_PING -A inet6 ::1 -n 1 2>/dev/null | \
1162 egrep -i "^round-trip|^rtt" >/dev/null
1163 then
1164 ac_cv_ping6_command="$PATH_TO_PING -A inet6 %s -n %d"
1165 AC_MSG_RESULT([$ac_cv_ping6_command])
1167 elif $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1168 egrep -i "^round-trip|^rtt" >/dev/null
1169 then
1170 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -s %s 56 %d"
1171 AC_MSG_RESULT([$ac_cv_ping6_command])
1173 elif $PATH_TO_PING -A inet6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1174 egrep -i "^round-trip|^rtt" >/dev/null
1175 then
1176 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -h %s -s 56 -c %d"
1177 AC_MSG_RESULT([$ac_cv_ping6_command])
1179 elif $PATH_TO_PING -A inet6 -n -s 56 -c 1 ::1 2>/dev/null | \
1180 egrep -i "^round-trip|^rtt" >/dev/null
1181 then
1182 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -s 56 -c %d %s"
1183 ac_cv_ping6_packets_first=yes
1184 AC_MSG_RESULT([$ac_cv_ping_command])
1186 elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1187 egrep -i "^round-trip|^rtt" >/dev/null
1188 then
1189 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1190 ac_cv_ping6_packets_first=yes
1191 AC_MSG_RESULT([$ac_cv_ping6_command])
1193 fi
1195 fi
1197 if test "x$ac_cv_ping6_command" != "x"; then
1198 AC_DEFINE_UNQUOTED(PING6_COMMAND,"$ac_cv_ping6_command",
1199 [path and args for ICMPv6 ping command])
1200 else
1201 AC_MSG_RESULT([none])
1202 fi
1204 if test "x$ac_cv_ping6_packets_first" != "xno"; then
1205 AC_DEFINE(PING6_PACKETS_FIRST,1,
1206 [Define if packet count must precede host])
1207 fi
1208 fi
1210 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
1212 AC_MSG_CHECKING(for nslookup syntax)
1213 if test -n "$PATH_TO_NSLOOKUP"
1214 then
1215 if $PATH_TO_NSLOOKUP -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
1216 then
1217 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP"
1218 AC_MSG_RESULT([$ac_cv_nslookup_command])
1220 else
1221 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP -sil"
1222 AC_MSG_RESULT([$ac_cv_nslookup_command])
1224 fi
1225 EXTRAS="$EXTRAS check_dns"
1227 else
1228 AC_MSG_WARN([nslookup command not found])
1229 fi
1231 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$ac_cv_nslookup_command",
1232 [path and args for nslookup])
1234 AC_PATH_PROG(PATH_TO_HOST,host)
1235 if test -n "$ac_cv_path_PATH_TO_HOST"
1236 then
1237 EXTRAS="$EXTRAS check_dns"
1238 fi
1240 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
1241 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
1243 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
1244 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
1246 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
1247 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
1248 AC_PATH_PROGS(PATH_TO_NTPQ,ntpq)
1249 if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPQ")
1250 then
1251 AC_DEFINE_UNQUOTED(PATH_TO_NTPQ,"$PATH_TO_NTPQ",[path to ntpq binary])
1252 AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary])
1253 else
1254 AC_MSG_WARN([Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization])
1255 fi
1257 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
1258 if test -x "$PATH_TO_LMSTAT"
1259 then
1260 AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
1261 else
1262 AC_MSG_WARN([Get lmstat from Globetrotter Software to monitor flexlm licenses])
1263 fi
1265 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
1266 if test -x "$PATH_TO_SMBCLIENT"
1267 then
1268 AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
1269 else
1270 AC_MSG_WARN([Get smbclient from Samba.org to monitor SMB shares])
1271 fi
1274 AC_PATH_PROG(PATH_TO_WHO,who)
1276 if [$PATH_TO_WHO -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
1277 then
1278 ac_cv_path_to_who="$PATH_TO_WHO -q"
1279 else
1280 ac_cv_path_to_who="$PATH_TO_WHO"
1281 fi
1283 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$ac_cv_path_to_who",
1284 [path and arguments for invoking 'who'])
1286 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
1287 if test -x "$PATH_TO_SNMPGET"
1288 then
1289 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
1290 EXTRAS="$EXTRAS check_hpjd check_snmp"
1291 else
1292 AC_MSG_WARN([Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins])
1293 fi
1295 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
1296 if test -x "$PATH_TO_SNMPGETNEXT"
1297 then
1298 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
1299 fi
1301 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null )
1302 then
1303 AC_MSG_CHECKING(for Net::SNMP perl module)
1304 AC_MSG_RESULT([found])
1305 else
1306 AC_MSG_WARN([Tried $PERL - install Net::SNMP perl module if you want to use the perl snmp plugins])
1307 fi
1309 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
1310 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
1312 if test -x "$PATH_TO_QUAKESTAT"
1313 then
1314 ac_cv_path_to_qstat="$PATH_TO_QUAKESTAT"
1315 EXTRAS="$EXTRAS check_game"
1317 elif test -x "$PATH_TO_QSTAT"
1318 then
1319 ac_cv_path_to_qstat="$PATH_TO_QSTAT"
1320 EXTRAS="$EXTRAS check_game"
1321 else
1322 AC_MSG_WARN([Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin])
1323 fi
1325 if test $ac_cv_path_to_qstat
1326 then
1327 AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$ac_cv_path_to_qstat",
1328 [path to qstat/quakestat])
1329 fi
1331 AC_PATH_PROG(PATH_TO_FPING,fping)
1332 if test -x "$PATH_TO_FPING"
1333 then
1334 AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
1335 EXTRAS="$EXTRAS check_fping"
1336 else
1337 AC_MSG_WARN([Get fping from http://www.fping.com in order to make check_fping plugin])
1338 fi
1340 AC_PATH_PROG(PATH_TO_SSH,ssh)
1342 if test -x "$PATH_TO_SSH"
1343 then
1344 AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
1345 EXTRAS="$EXTRAS check_by_ssh"
1346 else
1347 AC_MSG_WARN([Get ssh in order to make check_by_ssh plugin])
1348 fi
1351 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
1352 if test -x "$PATH_TO_MAILQ"
1353 then
1354 AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
1355 else
1356 AC_MSG_WARN([Could not find mailq or eqivalent])
1357 fi
1359 dnl SWAP info required is amount allocated/available and amount free
1360 dnl The plugin works through all the swap devices and adds up the total swap
1361 dnl available.
1363 dnl dunno why this does not work below - use hack (kbd)
1364 dnl fine on linux, broken on solaris
1365 dnl if /bin/test -e "/proc/meminfo"
1367 AC_PATH_PROG(PATH_TO_SWAP,swap)
1368 AC_PATH_PROG(PATH_TO_SWAPINFO,swapinfo)
1370 AC_MSG_CHECKING(for how to check memory)
1371 if [cat /proc/meminfo > /dev/null 2>&1]
1372 then
1373 AC_MSG_RESULT([found /proc/meminfo])
1374 AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
1375 AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes])
1376 EXTRAS="$EXTRAS check_swap"
1378 elif [$PATH_TO_SWAP -l 2>&1 >/dev/null]
1379 then
1380 ac_cv_have_swap=yes
1381 ac_cv_swap_command="$PATH_TO_SWAP -l"
1382 if [$PATH_TO_SWAP -l 2>/dev/null | \
1383 egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" \
1384 >/dev/null]
1385 then
1386 ac_cv_swap_format=[" %*d %*s %*d,%*d %*d %*d %d %d"]
1387 AC_MSG_RESULT([using IRIX format swap])
1389 elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^swapfile +dev +swaplo +blocks +free" >/dev/null]
1390 then
1391 ac_cv_swap_format=["%*s %*[[0-9,-]] %*d %d %d"]
1392 AC_MSG_RESULT([using Solaris format swap])
1394 elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null]
1395 then
1396 ac_cv_swap_format=["%*s %*[[0-9,-]] %*d %d %d"]
1397 AC_MSG_RESULT([using Unixware format swap])
1399 fi
1400 EXTRAS="$EXTRAS check_swap"
1402 elif [$PATH_TO_SWAPINFO -k 2>&1 | egrep -i "^Device" >/dev/null]
1403 then
1404 ac_cv_have_swap=yes
1405 ac_cv_swap_command="$PATH_TO_SWAPINFO -k"
1407 if [$PATH_TO_SWAPINFO -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
1408 then
1409 ac_cv_swap_format=["%*s %d %*d %d"]
1410 AC_MSG_RESULT([using FreeBSD format swapinfo])
1411 fi
1412 EXTRAS="$EXTRAS check_swap"
1414 elif [$PATH_TO_SWAPINFO -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
1415 then
1416 ac_cv_have_swap=yes
1417 ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM",
1418 ac_cv_swap_format=["%*s %d %*d %d"]
1419 AC_MSG_RESULT([using HP-UX format swapinfo])
1420 fi
1422 if test x$ac_cv_have_swap != x
1423 then
1424 AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
1425 fi
1426 AC_DEFINE_UNQUOTED(SWAP_FORMAT,"$ac_cv_swap_format",
1427 [Format string for parsing swap output])
1428 if test "x$ac_cv_swap_command" != "x"
1429 then
1430 AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$ac_cv_swap_command",
1431 [Path to swap/swapinfo binary, with any args])
1432 fi
1434 AC_PATH_PROG(PATH_TO_DIG,dig)
1435 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
1436 if test -n "$PATH_TO_DIG"; then
1437 EXTRAS="$EXTRAS check_dig"
1438 fi
1440 if test -f plugins/check_nt.c ; then
1441 EXTRAS="$EXTRAS check_nt"
1442 elif test -f ../plugins/check_nt.c ; then
1443 EXTRAS="$EXTRAS check_nt"
1444 fi
1446 AC_MSG_CHECKING(for va_list)
1447 AC_TRY_COMPILE([#ifdef __STDC__
1448 #include <stdio.h>
1449 #include <stdlib.h>
1450 #include <stdarg.h>
1451 #else
1452 #include <sys/types.h>
1453 #include <stdio.h>
1454 #include <varargs.h>
1455 #endif],
1456 [va_list args;],
1457 [AC_MSG_RESULT(yes)],
1458 [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
1460 AC_SUBST(EXTRAS)
1461 AC_SUBST(DEPLIBS)
1463 AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"${VERSION}",[package version])
1465 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)
1467 ACX_FEATURE([with],[cgiurl],[$cgiurl])
1468 ACX_FEATURE([with],[nagios-user],[$nagios_usr])
1469 ACX_FEATURE([with],[nagios-group],[$nagios_grp])
1470 ACX_FEATURE([with],[trusted-path],[$trusted_path])
1471 ACX_FEATURE([with],[df-command],[$ac_cv_df_command])
1472 ACX_FEATURE([with],[ping-command],[$ac_cv_ping_command])
1473 ACX_FEATURE([with],[ping6-command],[$ac_cv_ping6_command])
1474 ACX_FEATURE([with],[lwres])
1475 ACX_FEATURE([with],[ipv6],[$ac_cv_sys_use_ipv6])
1476 ACX_FEATURE([enable],[emulate-getaddrinfo])