e207d95bcde5d3f5cc8e00d2c82855f60af04b32
1 dnl Process this file with autoconf to produce a configure script.
2 AC_REVISION ($Revision$)
3 AC_PREREQ(2.50)
4 AC_INIT(nagios-plugins,1.4.0alpha2)
5 AC_CONFIG_SRCDIR(Helper.pm)
6 AM_INIT_AUTOMAKE
7 AC_CONFIG_HEADER(config.h)
8 AC_CANONICAL_HOST
10 RELEASE=1
11 AC_SUBST(RELEASE)
13 AC_PREFIX_DEFAULT(/usr/local/nagios)
15 dnl Figure out how to invoke "install" and what install options to use.
16 AC_PROG_INSTALL
17 AC_SUBST(INSTALL)
19 AC_GNU_SOURCE
20 AC_PROG_CC
21 AC_PROG_CPP
22 AC_PROG_GCC_TRADITIONAL
23 AC_PROG_RANLIB
24 AC_AIX
25 AC_MINIX
27 AC_PROG_MAKE_SET
28 AC_PROG_AWK
30 AC_FUNC_MALLOC
31 AC_FUNC_REALLOC
32 jm_PREREQ_ERROR
33 AC_FUNC_ERROR_AT_LINE
35 AC_CONFIG_LIBOBJ_DIR(lib)
36 AC_FUNC_GETLOADAVG($topdir/lib)
38 ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD])
39 dnl AM_WITH_REGEX
41 PLUGIN_TEST=`echo $srcdir/plugins/t/*.t|sed -e 's,\.*/plugins/,,g'`
42 AC_SUBST(PLUGIN_TEST)dnl
44 SCRIPT_TEST=`echo $srcdir/plugins-scripts/t/*.t|sed -e 's,\.*/plugins-scripts/,,g'`
45 AC_SUBST(SCRIPT_TEST)dnl
47 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"
48 AC_SUBST(WARRANTY)
50 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.\nPlease include version information with all correspondence (when possible,\nuse output from the --version option of the plugin itself).\n"
51 AC_SUBST(SUPPORT)
53 dnl CGIURL has changed for Nagios with 1.0 beta
54 AC_ARG_WITH(cgiurl,
55 ACX_HELP_STRING([--with-cgiurl=DIR],
56 [sets URL for cgi programs]),
57 with_cgiurl=$withval,
58 with_cgiurl=/nagios/cgi-bin)
59 CGIURL="$with_cgiurl"
60 AC_DEFINE_UNQUOTED(CGIURL,"$CGIURL",[URL of CGI programs])
62 AC_ARG_WITH(nagios_user,
63 ACX_HELP_STRING([--with-nagios-user=USER],
64 [set user name to run nagios]),
65 with_nagios_user=$withval,
66 with_nagios_user=nagios)
67 AC_ARG_WITH(nagios_group,
68 ACX_HELP_STRING([--with-nagios-group=GROUP],
69 [set group name to run nagios]),
70 with_nagios_group=$withval,
71 with_nagios_group=nagios)
72 AC_SUBST(with_nagios_user)
73 AC_SUBST(with_nagios_group)
74 INSTALL_OPTS="-o $with_nagios_user -g $with_nagios_group"
75 AC_SUBST(INSTALL_OPTS)
77 AC_ARG_WITH(trusted_path,
78 ACX_HELP_STRING([--with-trusted-path=PATH],
79 [sets trusted path for executables called by scripts (default=/bin:/sbin:/usr/bin:/usr/sbin)]),
80 with_trusted_path=$withval,
81 with_trusted_path=/bin:/sbin:/usr/bin:/usr/sbin)
82 AC_SUBST(with_trusted_path)
84 EXTRAS=
85 dnl PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/etc:/usr/local/bin:/usr/local/sbin:$PATH
87 LDFLAGS="$LDFLAGS -L."
89 ac_cv_uname_m=`uname -m`
90 ac_cv_uname_s=`uname -s`
91 ac_cv_uname_r=`uname -r`
92 ac_cv_uname_v=`uname -v`
94 PKG_ARCH=`uname -p`
95 REV_DATESTAMP=`date '+%Y.%m.%d.%H.%M'`
96 REV_TIMESTAMP=`date '+%Y%m%d%H%M%S'`
98 AC_SUBST(PKG_ARCH)
99 AC_SUBST(REV_DATESTAMP)
100 AC_SUBST(REV_TIMESTAMP)
102 dnl Checks for programs.
103 AC_PATH_PROG(PYTHON,python)
104 AC_PATH_PROG(PERL,perl)
105 AC_PATH_PROG(SH,sh)
107 AC_PATH_PROG(HOSTNAME,hostname)
108 AC_PATH_PROG(BASENAME,basename)
110 dnl
111 dnl Check for miscellaneous stuff
112 dnl
114 case $host_vender-$host_os in
115 sun*)
116 AC_DEFINE(__EXTENSIONS__,1,[Sun's netdb.h needs this for getaddrinfo])
117 ;;
118 osf*)
119 AC_DEFINE(_OSF_SOURCE,1,[OSF needs this for getaddrinfo])
120 ;;
121 esac
123 dnl
124 dnl Checks for libraries.
125 dnl
127 AC_CHECK_LIB(dce,main,SOCKETLIBS="$SOCKETLIBS -ldce")
128 AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
129 AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
130 AC_CHECK_LIB(resolv,main,SOCKETLIBS="$SOCKETLIBS -lresolv")
131 AC_SUBST(SOCKETLIBS)
133 dnl Check for PostgreSQL libraries
134 _SAVEDLIBS="$LIBS"
135 _SAVEDCPPFLAGS="$CPPFLAGS"
136 AC_ARG_WITH(pgsql,
137 ACX_HELP_STRING([--with-pgsql=DIR],
138 [sets path to pgsql installation]),
139 PGSQL=$withval,)
140 AC_CHECK_LIB(crypt,main)
141 if test "$ac_cv_lib_crypt_main" = "yes"; then
142 if test -n "$PGSQL"; then
143 LDFLAGS="$LDFLAGS -L$PGSQL/lib"
144 CPPFLAGS="$CPPFLAGS -I$PGSQL/include"
145 fi
146 AC_CHECK_LIB(pq,PQsetdbLogin,,,-lcrypt)
147 if test "$ac_cv_lib_pq_PQsetdbLogin" = "yes"; then
148 AC_CHECK_HEADERS(pgsql/libpq-fe.h)
149 AC_CHECK_HEADERS(postgresql/libpq-fe.h)
150 AC_CHECK_HEADERS(libpq-fe.h)
151 if [[ -n "$PGSQL" -a "$ac_cv_header_libpq_fe_h" = "yes" ]]; then
152 PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
153 PGINCLUDE="-I$PGSQL/include"
154 elif test "$ac_cv_header_pgsql_libpq_fe_h" = "yes"; then
155 PGLIBS="-lpq -lcrypt"
156 PGINCLUDE="-I/usr/include/pgsql"
157 elif test "$ac_cv_header_postgresql_libpq_fe_h" = "yes"; then
158 PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
159 PGINCLUDE="-I/usr/include/postgresql"
160 elif test "$ac_cv_header_libpq_fe_h" = "yes"; then
161 PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
162 PGINCLUDE="-I$PGSQL/include"
163 fi
164 if test -z "$PGINCLUDE"; then
165 AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
166 AC_MSG_WARN([install PostgreSQL headers to compile this plugin (see REQUIREMENTS).])
167 else
168 AC_SUBST(PGLIBS)
169 AC_SUBST(PGINCLUDE)
170 EXTRAS="$EXTRAS check_pgsql"
171 fi
172 else
173 AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
174 AC_MSG_WARN([LIBS="$LIBS" CPPFLAGS="$CPPFLAGS"])
175 AC_MSG_WARN([install PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
176 fi
177 else
178 AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
179 AC_MSG_WARN([install lib crypt and PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
180 fi
181 LIBS="$_SAVEDLIBS"
182 CPPFLAGS="$_SAVEDCPPFLAGS"
184 dnl Check for radius libraries
185 _SAVEDLIBS="$LIBS"
186 AC_CHECK_LIB(radiusclient,rc_read_config)
187 if test "$ac_cv_lib_radiusclient_rc_read_config" = "yes"; then
188 EXTRAS="$EXTRAS check_radius"
189 RADIUSLIBS="-lradiusclient"
190 AC_SUBST(RADIUSLIBS)
191 else
192 AC_MSG_WARN([Skipping radius plugin])
193 AC_MSG_WARN([install radius libs to compile this plugin (see REQUIREMENTS).])
194 fi
195 LIBS="$_SAVEDLIBS"
197 dnl Check for LDAP libraries
198 _SAVEDLIBS="$LIBS"
199 AC_CHECK_LIB(ldap,main,,,-llber)
200 if test "$ac_cv_lib_ldap_main" = "yes"; then
201 LDAPLIBS="-lldap -llber"\
202 LDAPINCLUDE="-I/usr/include/ldap"
203 AC_SUBST(LDAPLIBS)
204 AC_SUBST(LDAPINCLUDE)
205 AC_CHECK_FUNCS(ldap_set_option)
206 EXTRAS="$EXTRAS check_ldap"
207 else
208 AC_MSG_WARN([Skipping LDAP plugin])
209 AC_MSG_WARN([install LDAP libs to compile this plugin (see REQUIREMENTS).])
210 fi
211 LIBS="$_SAVEDLIBS"
214 dnl Check for mysql libraries
215 _SAVEDLIBS="$LIBS"
216 _SAVEDCPPFLAGS="$CPPFLAGS"
217 AC_ARG_WITH(mysql,
218 ACX_HELP_STRING([--with-mysql=DIR],
219 [sets path to mysql installation (assumes lib/mysql and include subdirs]),
220 MYSQL=$withval,)
221 if test -n "$MYSQL"; then
222 MYSQLLIBDIR=$MYSQL/lib/mysql
223 CPPFLAGS="-I$MYSQL/include"
224 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L$MYSQLLIBDIR ",,-L$MYSQLLIBDIR -lz)
225 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
226 elif test -f /usr/lib/libmysqlclient.so; then
227 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
228 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
229 elif test -f /usr/lib/libmysqlclient.a; then
230 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
231 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
232 elif test -f /usr/lib/mysql/libmysqlclient.so; then
233 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
234 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
235 elif test -f /usr/lib/mysql/libmysqlclient.a; then
236 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
237 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
238 fi
239 if test "$ac_cv_lib_mysqlclient_mysql_init" = "yes" -o "$ac_cv_lib_mysqlclient_mysql_close" = "yes"; then
240 AC_CHECK_HEADERS(mysql/mysql.h mysql/errmsg.h, MYSQLINCLUDE="-I$MYSQL/include" )
241 if test "$ac_cv_header_mysql_mysql_h" = "yes" -a "$ac_cv_header_mysql_errmsg_h" = "yes"; then
242 EXTRAS="$EXTRAS check_mysql"
243 AC_SUBST(MYSQLINCLUDE)
244 AC_SUBST(MYSQLLIBS)
245 AC_SUBST(check_mysql_LDFLAGS)
246 else
247 AC_MSG_WARN([Skipping mysql plugin])
248 AC_MSG_WARN([install mysql client headers to compile this plugin (see REQUIREMENTS).])
249 fi
250 else
251 AC_MSG_WARN([Skipping mysql plugin])
252 AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).])
253 fi
254 CPPFLAGS="$_SAVEDCPPFLAGS $MYSQLINCLUDE"
255 LIBS="$_SAVEDLIBS"
257 dnl Check for OpenSSL location
258 AC_PATH_PROG(OPENSSL,openssl)
259 if test "$OPENSSL" = "/usr/bin/openssl"; then
260 OPENSSL=/usr
261 elif test "$OPENSSL" = "/usr/sbin/openssl"; then
262 OPENSSL=/usr
263 elif test "$OPENSSL" = "/opt/bin/openssl"; then
264 OPENSSL=/opt
265 elif test "$OPENSSL" = "/opt/openssl/bin/openssl"; then
266 OPENSSL=/opt/openssl
267 elif test "$OPENSSL" = "/usr/slocal/bin/openssl"; then
268 OPENSSL=/usr/slocal
269 elif test "$OPENSSL" = "/usr/local/bin/openssl"; then
270 OPENSSL=/usr/local
271 elif test "$OPENSSL" = "/usr/local/ssl/bin/openssl"; then
272 OPENSSL=/usr/local/ssl
273 fi
274 AC_ARG_WITH(openssl,
275 ACX_HELP_STRING([--with-openssl=DIR],
276 [sets path to openssl installation]),
277 OPENSSL=$withval,)
279 AC_CHECK_HEADERS(unistd.h)
281 dnl Check for AF_INET6 support - unistd.h required for Darwin
282 AC_CACHE_CHECK([for IPv6 support], with_ipv6, [
283 AC_TRY_COMPILE([#ifdef HAVE_UNISTD_H
284 #include <unistd.h>
285 #endif
286 #include <netinet/in.h>
287 #include <sys/socket.h>],
288 [struct sockaddr_in6 sin6;
289 void *p;
291 sin6.sin6_family = AF_INET6;
292 sin6.sin6_port = 587;
293 p = &sin6.sin6_addr;],
294 [with_ipv6=yes],
295 [with_ipv6=no])
296 ])
298 if test x"$with_ipv6" != xno ; then
299 AC_DEFINE(USE_IPV6,1,[Enable IPv6 support])
300 fi
302 dnl #########################################################################
303 dnl Check if Posix getaddrinfo() is available. It is also possible to use
304 dnl the version from the lwres library distributed with BIND.
305 dnl #########################################################################
306 AC_ARG_ENABLE([emulate-getaddrinfo],
307 ACX_HELP_STRING([--enable-emulate-getaddrinfo],
308 [enable getaddrinfo emulation (default=no)]),
309 ,
310 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 dnl AC_MSG_ERROR([getaddrinfo not found: try --with-lwres or --enable-emulate-getaddrinfo])
370 enable_emulate_getaddrinfo=yes
371 AC_MSG_WARN([enabling getaddrinfo emulation])
372 fi
373 EXTRA_NETOBJS="$EXTRA_NETOBJS getaddrinfo.o"
374 fi
376 if test x"$enable_emulate_getaddrinfo" != xno ; then
377 have_resolver=no
379 dnl Try for getipnodebyname
380 AC_SEARCH_LIBS(getipnodebyname, resolv bind nsl c_r cr, have_resolver=yes)
381 if test x"$have_resolver" != xno ; then
382 AC_DEFINE(HAVE_GETIPNODEBYNAME, 1,
383 [Set when getipnodebyname is available])
384 fi
386 dnl Try for gethostbyname_r
387 if test x"$have_resolver" = xno ; then
388 AC_SEARCH_LIBS(gethostbyname_r, resolv bind nsl c_r cr,
389 [have_resolver=yes
390 ACX_WHICH_GETHOSTBYNAME_R])
391 fi
393 dnl Try for gethostbyname
394 if test x"$have_resolver" = xno ; then
395 if test x"$enable_pthreads" != xno ; then
396 AC_MSG_WARN([using threads but cannot find gethostbyname_r or getipnodebyname])
397 fi
398 AC_SEARCH_LIBS(gethostbyname, resolv bind nsl, ,
399 [AC_MSG_ERROR([cannot find gethostbyname])])
400 fi
401 EXTRA_NETOBJS="$EXTRA_NETOBJS gethostbyname.o"
403 fi
405 AC_CHECK_HEADERS(krb5.h,FOUNDINCLUDE=yes,FOUNDINCLUDE=no)
406 if test "$FOUNDINCLUDE" = "no"; then
407 _SAVEDCPPFLAGS="$CPPFLAGS"
408 CPPFLAGS="$_SAVEDCPPFLAGS -I/usr/kerberos/include"
409 unset ac_cv_header_krb5_h
410 AC_CHECK_HEADERS(krb5.h,
411 KRB5INCLUDE="-I/usr/kerberos/include"
412 FOUNDINCLUDE=yes,
413 FOUNDINCLUDE=no)
414 fi
415 AC_SUBST(KRBINCLUDE)
416 if test "$FOUNDINCLUDE" = "no"; then
417 CPPFLAGS="$_SAVEDCPPFLAGS"
418 fi
420 dnl Check for OpenSSL header files
421 unset FOUNDINCLUDE
422 _SAVEDCPPFLAGS="$CPPFLAGS"
423 CPPFLAGS="$CPPFLAGS -I$OPENSSL/include"
424 AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h,
425 SSLINCLUDE="-I$OPENSSL/include"
426 FOUNDINCLUDE=yes,
427 FOUNDINCLUDE=no)
428 if test "$FOUNDINCLUDE" = "no"; then
429 AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h,
430 SSLINCLUDE="-I$OPENSSL/include"
431 FOUNDINCLUDE=yes,
432 FOUNDINCLUDE=no)
433 fi
434 AC_SUBST(SSLINCLUDE)
435 if test "$FOUNDINCLUDE" = "no"; then
436 CPPFLAGS="$_SAVEDCPPFLAGS"
437 fi
439 dnl Check for crypto lib
440 _SAVEDLIBS="$LIBS"
441 AC_CHECK_LIB(crypto,CRYPTO_lock,,,-L$OPENSSL/lib)
442 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
443 dnl Check for SSL lib
444 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)
445 fi
446 LIBS="$_SAVEDLIBS"
448 dnl test headers and libs to decide whether check_http should use SSL
449 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
450 if test "$ac_cv_lib_ssl_main" = "yes"; then
451 if test "$FOUNDINCLUDE" = "yes"; then
452 check_tcp_ssl="check_simap check_spop"
453 AC_SUBST(check_tcp_ssl)
454 AC_SUBST(SSLLIBS)
455 AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
456 fi
457 fi
458 fi
459 CPPFLAGS="$_SAVEDCPPFLAGS"
461 dnl
462 dnl Checks for header files.
463 dnl
465 AC_HEADER_STDC
466 AC_HEADER_TIME
467 AC_HEADER_SYS_WAIT
468 AC_CHECK_HEADERS(signal.h strings.h string.h syslog.h uio.h errno.h regex.h sys/types.h sys/time.h sys/socket.h sys/loadavg.h)
469 AC_CHECK_HEADERS(features.h stdarg.h sys/unistd.h ctype.h stdlib.h)
470 AC_CHECK_HEADERS(limits.h sys/param.h sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h fcntl.h sys/statfs.h sys/dustat.h sys/statvfs.h)
472 # glibc 2.3.2 stdlib.h does not define HUGE_VAL (see man strtod)
473 AC_MSG_CHECKING([for HUGE_VAL in <stdlib.h>])
474 AC_TRY_COMPILE([#include <stdlib.h>],
475 [double x = HUGE_VAL;],
476 [AC_MSG_RESULT(yes)],
477 [AC_MSG_RESULT(no)
478 AC_MSG_CHECKING([for HUGE_VAL in <math.h>])
479 AC_TRY_COMPILE([#include <math.h>],
480 [double x = HUGE_VAL;],
481 [AC_MSG_RESULT(yes)
482 AC_DEFINE_UNQUOTED(HUGE_VAL_NEEDS_MATH_H, 1,
483 [Define if <math.h> is required for HUGE_VAL])],
484 [AC_MSG_RESULT(no)])])
486 # Define HAVE_INTTYPES_H if <inttypes.h> exists,
487 # doesn't clash with <sys/types.h>, and declares uintmax_t.
489 AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
490 [AC_TRY_COMPILE(
491 [#include <sys/types.h>
492 #include <inttypes.h>],
493 [uintmax_t i = (uintmax_t) -1;],
494 jm_ac_cv_header_inttypes_h=yes,
495 jm_ac_cv_header_inttypes_h=no)])
497 if test $jm_ac_cv_header_inttypes_h = yes; then
498 AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
499 [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
500 and declares uintmax_t. ])
501 fi
503 # Check for SunOS statfs brokenness wrt partitions 2GB and larger.
504 # If <sys/vfs.h> exists and struct statfs has a member named f_spare,
505 # enable the work-around code in fsusage.c.
506 AC_MSG_CHECKING([for statfs that truncates block counts])
507 AC_CACHE_VAL(fu_cv_sys_truncating_statfs,
508 [AC_TRY_COMPILE([
509 #if !defined(sun) && !defined(__sun)
510 choke -- this is a workaround for a Sun-specific problem
511 #endif
512 #include <sys/types.h>
513 #include <sys/vfs.h>],
514 [struct statfs t; long c = *(t.f_spare);],
515 fu_cv_sys_truncating_statfs=yes
516 AC_MSG_RESULT(yes),
517 fu_cv_sys_truncating_statfs=no
518 AC_MSG_RESULT(no),
519 )])
520 if test $fu_cv_sys_truncating_statfs = yes; then
521 AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS, 1,
522 [ Define if the block counts reported by statfs may be truncated to 2GB
523 and the correct values may be stored in the f_spare array.
524 (SunOS 4.1.2, 4.1.3, and 4.1.3_U1 are reported to have this problem.
525 SunOS 4.1.1 seems not to be affected.)])
526 fi
528 dnl Checks for typedefs, structures, and compiler characteristics.
529 AC_C_CONST
530 AC_STRUCT_TM
531 AC_TYPE_PID_T
532 AC_TYPE_SIZE_T
533 AC_TYPE_SIGNAL
535 AC_CHECK_SIZEOF(int,cross)
536 AC_CHECK_SIZEOF(long,cross)
537 AC_CHECK_SIZEOF(short,cross)
539 AC_CACHE_CHECK([for long long],ac_cv_have_longlong,[
540 AC_TRY_RUN([#include <stdio.h>
541 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
542 ac_cv_have_longlong=yes,ac_cv_have_longlong=no,ac_cv_have_longlong=cross)])
543 if test x"$ac_cv_have_longlong" = x"yes"; then
544 AC_DEFINE(HAVE_LONGLONG,1,[Define if system has long long type])
545 fi
547 #
548 # Check if the compiler supports the LL prefix on long long integers.
549 # AIX needs this.
551 AC_CACHE_CHECK([for LL suffix on long long integers],ac_cv_compiler_supports_ll, [
552 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
553 ac_cv_compiler_supports_ll=yes,ac_cv_compiler_supports_ll=no)])
554 if test x"$ac_cv_compiler_supports_ll" = x"yes"; then
555 AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Define if compiler support long long])
556 fi
558 AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE_VA_COPY,[
559 AC_TRY_LINK([#include <stdarg.h>
560 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
561 ac_cv_HAVE_VA_COPY=yes,ac_cv_HAVE_VA_COPY=no)])
562 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
563 AC_DEFINE(HAVE_VA_COPY,1,[Define if system has va_copy])
564 fi
566 AC_CHECK_FUNCS(vsnprintf snprintf asprintf vasprintf)
567 AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
568 AC_TRY_RUN([
569 #include <sys/types.h>
570 #include <stdarg.h>
571 void foo(const char *format, ...) {
572 va_list ap;
573 int len;
574 char buf[5];
576 va_start(ap, format);
577 len = vsnprintf(buf, 0, format, ap);
578 va_end(ap);
579 if (len != 5) exit(1);
581 va_start(ap, format);
582 len = vsnprintf(0, 0, format, ap);
583 va_end(ap);
584 if (len != 5) exit(1);
586 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
588 exit(0);
589 }
590 main() { foo("hello"); }
591 ],
592 ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
593 if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
594 AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
595 fi
597 AC_TRY_COMPILE([#include <sys/time.h>],
598 [struct timeval *tv;
599 struct timezone *tz;],
600 AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
601 AC_TRY_COMPILE([#include <sys/time.h>],
602 [struct timeval *tv;
603 struct timezone *tz;
604 gettimeofday(tv, tz);],
605 AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
606 AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
608 dnl Checks for library functions.
609 AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul)
611 AC_MSG_CHECKING(return type of socket size)
612 AC_TRY_COMPILE([#include <stdlib.h>
613 #include <sys/types.h>
614 #include <sys/socket.h>],
615 [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
616 ac_cv_socket_size_type=["size_t"]
617 AC_MSG_RESULT(size_t),
618 ac_cv_socket_size_type=["int"]
619 AC_MSG_RESULT(int))
621 AC_DEFINE_UNQUOTED(SOCKET_SIZE_TYPE, $ac_cv_socket_size_type ,
622 [Define type of socket size])
624 if test -f "/proc/loadavg"
625 then
626 AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
627 AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg])
628 fi
630 dnl #### Process table test
632 AC_PATH_PROG(PATH_TO_PS,ps)
634 AC_MSG_CHECKING(for ps syntax)
635 dnl For OpenBSD 3.2 & 3.3. Must come before ps -weo
636 dnl STAT UCOMM VSZ RSS USER PPID COMMAND
637 if ps -axwo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
638 egrep -i ["^ *STAT +UCOMM +VSZ +RSS +USER +UID +PPID +COMMAND"] > /dev/null
639 then
640 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
641 ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid ppid vsz rss pcpu comm args'"
642 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
643 ac_cv_ps_cols=8
644 AC_MSG_RESULT([$ac_cv_ps_command])
646 dnl STAT UCOMM VSZ RSS USER UID PPID COMMAND
647 elif ps -weo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
648 egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
649 then
650 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
651 ac_cv_ps_command="$PATH_TO_PS -weo 'stat uid ppid vsz rss pcpu comm args'"
652 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
653 ac_cv_ps_cols=8
654 AC_MSG_RESULT([$ac_cv_ps_command])
656 dnl FreeBSD
657 elif ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | \
658 egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PPID"] >/dev/null
659 then
660 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
661 ac_cv_ps_command="$PATH_TO_PS waxco 'state uid ppid vsz rss pcpu command command'"
662 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
663 ac_cv_ps_cols=8
664 AC_MSG_RESULT([$ac_cv_ps_command])
666 dnl BSD-like mode in RH 6.1
667 elif ps waxno 'state comm vsz rss uid user ppid args' 2>/dev/null | \
668 egrep -i ["^S +COMMAND +VSZ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
669 then
670 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
671 ac_cv_ps_command="$PATH_TO_PS waxno 'state uid ppid vsz rss pcpu comm args'"
672 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
673 ac_cv_ps_cols=8
674 AC_MSG_RESULT([$ac_cv_ps_command])
676 dnl SunOS 4.1.3:
677 dnl F UID PID PPID CP PRI NI SZ RSS WCHAN STAT TT TIME COMMAND
678 dnl Need the head -1 otherwise test will work because arguments are found
679 elif ps -laxnwww 2>/dev/null | head -1 | \
680 egrep -i ["^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND"] >/dev/null
681 then
682 ac_cv_ps_varlist="[&procuid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
683 ac_cv_ps_command="$PATH_TO_PS -laxnwww"
684 ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %d %d %*s %s %*s %*s %n%s"
685 ac_cv_ps_cols=8
686 AC_MSG_RESULT([$ac_cv_ps_command])
688 dnl Debian Linux / procps v1.2.9:
689 dnl FLAGS UID PID PPID PRI NI SIZE RSS WCHAN STA TTY TIME COMMAND
690 dnl 100 0 1 0 0 0 776 76 c0131c8c S ffff 0:11 init [2]
691 dnl
692 elif ps laxnwww 2>/dev/null | \
693 egrep -i ["^ *F(LAGS)? +UID +PID +PPID +PRI +NI +(VSZ)|(SIZE) +RSS +WCHAN +STAT? TTY +TIME +COMMAND"] >/dev/null
694 then
695 ac_cv_ps_varlist="[&procuid,&procppid,procstat,&procvsz,&procrss,&pos,procprog]"
696 ac_cv_ps_command="$PATH_TO_PS laxnwww"
697 ac_cv_ps_format="%*s %d %*s %d %*s %*s %d %d %*s %s %*s %*s %n%s"
698 ac_cv_ps_cols=8
699 AC_MSG_RESULT([$ac_cv_ps_command])
701 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
702 elif ps -axo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
703 egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
704 then
705 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
706 ac_cv_ps_command="$PATH_TO_PS -axo 'stat uid ppid vsz rss pcpu comm args'"
707 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
708 ac_cv_ps_cols=8
709 AC_MSG_RESULT([$ac_cv_ps_command])
711 dnl 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_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
716 ac_cv_ps_command="$PATH_TO_PS -ao 'stat uid ppid vsz rss pcpu comm args'"
717 ac_cv_ps_format=["%s%*[ +] %d %d %d %d %f %s %n"]
718 ac_cv_ps_cols=8
719 AC_MSG_RESULT([$ac_cv_ps_command])
721 elif ps -eo 's comm vsz rss user uid ppid args' 2>/dev/null | \
722 egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
723 then
724 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
725 ac_cv_ps_command="$PATH_TO_PS -eo 's uid ppid vsz rss pcpu comm args'"
726 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
727 ac_cv_ps_cols=8
728 AC_MSG_RESULT([$ac_cv_ps_command])
730 dnl AIX 4.3.3 and 5.1 do not have an rss field
731 elif ps -eo 'stat uid ppid vsz pcpu comm args' 2>/dev/null | \
732 egrep -i ["^ *S[TAUES]* +UID +PPID +VSZ +%CPU +COMMAND +COMMAND"] >/dev/null
733 then
734 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procpcpu,procprog,&pos]"
735 ac_cv_ps_command="$PATH_TO_PS -eo 'stat uid ppid vsz pcpu comm args'"
736 ac_cv_ps_format="%s %d %d %d %f %s %n"
737 ac_cv_ps_cols=7
738 AC_MSG_RESULT([$ac_cv_ps_command - with no RSS])
740 dnl Solaris 2.6
741 elif ps -Ao 's comm vsz rss uid user ppid args' 2>/dev/null | \
742 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
743 then
744 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
745 ac_cv_ps_command="$PATH_TO_PS -Ao 's uid ppid vsz rss pcpu comm args'"
746 # There must be no space between the %s and %n due to a wierd problem in sscanf where
747 # it will return %n as longer than the line length
748 ac_cv_ps_format="%s %d %d %d %d %f %s%n"
749 ac_cv_ps_cols=8
750 AC_MSG_RESULT([$ac_cv_ps_command])
752 elif ps -Ao 'status comm vsz rss uid user ppid args' 2>/dev/null | \
753 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
754 then
755 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
756 ac_cv_ps_command="$PATH_TO_PS -Ao 'status uid ppid vsz rss pcpu comm args'"
757 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
758 ac_cv_ps_cols=8
759 AC_MSG_RESULT([$ac_cv_ps_command])
761 elif ps -Ao 'state comm vsz rss uid user ppid args' 2>/dev/null | \
762 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
763 then
764 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
765 ac_cv_ps_command="$PATH_TO_PS -Ao 'state uid ppid vsz rss pcpu comm args'"
766 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
767 ac_cv_ps_cols=8
768 AC_MSG_RESULT([$ac_cv_ps_command])
770 dnl wonder who takes state instead of stat
771 elif ps -ao 'state command vsz rss user ppid args' 2>/dev/null | \
772 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
773 then
774 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
775 ac_cv_ps_command="$PATH_TO_PS -ao 'state uid ppid vsz rss pcpu command args'"
776 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
777 ac_cv_ps_cols=7
778 AC_MSG_RESULT([$ac_cv_ps_command])
780 dnl IRIX 53
781 elif ps -el 2>/dev/null | \
782 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
783 then
784 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&pos,procprog]"
785 ac_cv_ps_command="$PATH_TO_PS -el (IRIX 53)"
786 ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %d %d %*s %*s %*s %n%s"
787 ac_cv_ps_cols=7
788 AC_MSG_RESULT([$ac_cv_ps_command])
790 dnl IRIX 63
791 elif ps -el 2>/dev/null | \
792 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +ADDR +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
793 then
794 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
795 ac_cv_ps_command="$PATH_TO_PS -el (IRIX 63)"
796 ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
797 ac_cv_ps_cols=5
798 AC_MSG_RESULT([$ac_cv_ps_command])
800 dnl AIX 4.1:
801 dnl F S UID PID PPID C PRI NI ADDR SZ RSS WCHAN TTY TIME CMD
802 dnl 303 A 0 0 0 120 16 -- 1c07 20 24 - 0:45 swapper
803 elif ps -el 2>/dev/null | \
804 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
805 then
806 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
807 ac_cv_ps_command="$PATH_TO_PS -el (AIX 4.1 and HP-UX)"
808 ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
809 ac_cv_ps_cols=5
810 AC_MSG_RESULT([$ac_cv_ps_command])
812 dnl AIX?
813 elif ps glaxen 2>/dev/null | \
814 egrep -i ["^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND"] >/dev/null
815 then
816 ac_cv_ps_varlist="[&procuid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
817 ac_cv_ps_command="$PATH_TO_PS glaxen"
818 ac_cv_ps_format="%*s %d %*s %d %*s %*s %d %d %*s %s %*s %*s %n%s"
819 ac_cv_ps_cols=7
820 AC_MSG_RESULT([$ac_cv_ps_command])
822 dnl MacOSX / Darwin
823 dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
824 dnl Some truncation will happen in UCOMM column
825 dnl STAT VSZ RSS UID PPID %CPU UCOMM COMMAND
826 dnl Ss 52756 22496 501 1 6.9 Window Manager /System/Library/CoreServices/WindowServer -daemon
827 elif ps wwaxo 'state vsz rss uid ppid pcpu ucomm command' 2>/dev/null | \
828 egrep -i ["^STAT +VSZ +RSS +UID +PPID +%CPU +UCOMM +COMMAND"] >/dev/null
829 then
830 ac_cv_ps_command="$PATH_TO_PS wwaxo 'state vsz rss uid ppid pcpu ucomm command'"
831 ac_cv_ps_varlist="[procstat,&procvsz,&procrss,&procuid,&procppid,&procpcpu,procprog,&pos]"
832 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
833 ac_cv_ps_cols=7
834 AC_MSG_RESULT([$ac_cv_ps_command])
836 dnl UnixWare
837 elif ps -Al 2>/dev/null | \
838 egrep -i ["^ *F +S +UID +PID +PPID +CLS +PRI +NI +C +ADDR +SZ +WCHAN +TTY +TIME +COMD"] >/dev/null
839 then
840 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
841 ac_cv_ps_command="$PATH_TO_PS -Al"
842 ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
843 ac_cv_ps_cols=7
844 AC_MSG_RESULT([$ac_cv_ps_command])
846 else
847 AC_MSG_WARN([unable to find usable ps syntax - check_procs and check_nagios will not be compiled])
848 fi
850 if test -n "$ac_cv_ps_varlist" ; then
851 AC_DEFINE_UNQUOTED(PS_VARLIST,$ac_cv_ps_varlist,
852 [Variable list for sscanf of 'ps' output])
853 AC_DEFINE_UNQUOTED(PS_COMMAND,"$ac_cv_ps_command",
854 [Verbatim command to execute for ps in check_procs])
855 AC_DEFINE_UNQUOTED(PS_FORMAT,"$ac_cv_ps_format",
856 [Format string for scanning ps output in check_procs])
857 AC_DEFINE_UNQUOTED(PS_COLS,$ac_cv_ps_cols,
858 [Number of columns in ps command])
859 EXTRAS="$EXTRAS check_procs check_nagios"
860 fi
862 dnl jm_AFS
863 jm_LIST_MOUNTED_FILESYSTEMS([list_mounted_fs=yes], [list_mounted_fs=no])
864 jm_FSTYPENAME
865 jm_FILE_SYSTEM_USAGE([space=yes], [space=no])
867 AC_PATH_PROG(PATH_TO_PING,ping)
868 AC_PATH_PROG(PATH_TO_PING6,ping6)
870 AC_ARG_WITH(ping_command,
871 ACX_HELP_STRING([--with-ping-command=SYNTAX],
872 [sets syntax for ICMP ping]),
873 with_ping_command=$withval,)
875 AC_MSG_CHECKING(for ICMP ping syntax)
876 ac_cv_ping_packets_first=no
877 ac_cv_ping_has_timeout=no
878 if test -n "$with_ping_command"
879 then
880 AC_MSG_RESULT([(command-line) $with_ping_command])
881 if test -n "$ac_cv_ping_packets_first"
882 then
883 ac_cv_ping_packets_first=yes
884 fi
886 elif [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
887 $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
888 egrep -i "^round-trip|^rtt" >/dev/null
889 then
890 with_ping_command="$PATH_TO_PING -n -U -c %d %s"
891 ac_cv_ping_packets_first=yes
892 AC_MSG_RESULT([$with_ping_command])
894 elif $PATH_TO_PING -n -U -w 10 -c 1 127.0.0.1 2>/dev/null | \
895 egrep -i "^round-trip|^rtt" >/dev/null
896 then
897 with_ping_command="$PATH_TO_PING -n -U -w %d -c %d %s"
898 ac_cv_ping_packets_first=yes
899 ac_cv_ping_has_timeout=yes
900 AC_MSG_RESULT([$with_ping_command])
902 elif $PATH_TO_PING -n -U -c 1 127.0.0.1 2>/dev/null | \
903 egrep -i "^round-trip|^rtt" >/dev/null
904 then
905 with_ping_command="$PATH_TO_PING -n -U -c %d %s"
906 ac_cv_ping_packets_first=yes
907 AC_MSG_RESULT([$with_ping_command])
909 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
910 egrep -i "^round-trip|^rtt" >/dev/null
911 then
912 with_ping_command="$PATH_TO_PING -n -c %d %s"
913 ac_cv_ping_packets_first=yes
914 AC_MSG_RESULT([$with_ping_command])
916 elif $PATH_TO_PING -n 127.0.0.1 -c 1 2>/dev/null | \
917 egrep -i "^round-trip|^rtt" >/dev/null
918 then
919 with_ping_command="$PATH_TO_PING -n %s -c %d"
920 AC_MSG_RESULT([$with_ping_command])
922 elif $PATH_TO_PING 127.0.0.1 -n 1 2>/dev/null | \
923 egrep -i "^round-trip|^rtt" >/dev/null
924 then
925 with_ping_command="$PATH_TO_PING %s -n %d"
926 AC_MSG_RESULT([$with_ping_command])
928 elif $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
929 egrep -i "^round-trip|^rtt" >/dev/null
930 then
931 with_ping_command="$PATH_TO_PING -n -s %s 56 %d"
932 AC_MSG_RESULT([$with_ping_command])
934 elif $PATH_TO_PING -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | \
935 egrep -i "^round-trip|^rtt" >/dev/null
936 then
937 with_ping_command="$PATH_TO_PING -n -h %s -s 56 -c %d"
938 AC_MSG_RESULT([$with_ping_command])
940 elif $PATH_TO_PING -n -s 56 -c 1 127.0.0.1 2>/dev/null | \
941 egrep -i "^round-trip|^rtt" >/dev/null
942 then
943 with_ping_command="$PATH_TO_PING -n -s 56 -c %d %s"
944 ac_cv_ping_packets_first=yes
945 AC_MSG_RESULT([$with_ping_command])
947 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
948 egrep -i "^round-trip|^rtt" >/dev/null
949 then
950 with_ping_command="$PATH_TO_PING -n -c %d %s"
951 ac_cv_ping_packets_first=yes
952 AC_MSG_RESULT([$with_ping_command])
954 else
955 AC_MSG_WARN([unable to find usable ping syntax])
956 fi
958 AC_DEFINE_UNQUOTED(PING_COMMAND,"$with_ping_command",
959 [path and args for ICMP ping command])
961 if test "x$ac_cv_ping_packets_first" != "xno"
962 then
963 AC_DEFINE(PING_PACKETS_FIRST,1,
964 [Define if packet count must precede host])
965 fi
967 if test "x$ac_cv_ping_has_timeout" != "xno"
968 then
969 AC_DEFINE(PING_HAS_TIMEOUT,1,
970 [Define if ping has its own timeout option that should be set])
971 fi
973 AC_ARG_WITH(ping6_command,
974 ACX_HELP_STRING([--with-ping6-command=SYNTAX],
975 [sets syntax for ICMPv6 ping]),
976 with_ping6_command=$withval,)
978 if test x"$with_ipv6" != xno ; then
979 AC_MSG_CHECKING(for ICMPv6 ping syntax)
980 ac_cv_ping6_packets_first=no
981 if test -n "$with_ping6_command"
982 then
983 AC_MSG_RESULT([(command-line) $with_ping6_command])
984 if test -n "$ac_cv_ping6_packets_first"
985 then
986 ac_cv_ping6_packets_first=yes
987 fi
989 elif test "x$PATH_TO_PING6" != "x"; then
990 if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
991 $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
992 egrep -i "^round-trip|^rtt" >/dev/null
993 then
994 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
995 ac_cv_ping6_packets_first=yes
996 AC_MSG_RESULT([$with_ping6_command])
998 elif $PATH_TO_PING6 -n -U -c 1 ::1 2>/dev/null | \
999 egrep -i "^round-trip|^rtt" >/dev/null
1000 then
1001 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1002 ac_cv_ping6_packets_first=yes
1003 AC_MSG_RESULT([$with_ping6_command])
1005 elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1006 egrep -i "^round-trip|^rtt" >/dev/null
1007 then
1008 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1009 ac_cv_ping6_packets_first=yes
1010 AC_MSG_RESULT([$with_ping6_command])
1012 elif $PATH_TO_PING6 -n ::1 -c 1 2>/dev/null | \
1013 egrep -i "^round-trip|^rtt" >/dev/null
1014 then
1015 with_ping6_command="$PATH_TO_PING6 -n %s -c %d"
1016 AC_MSG_RESULT([$with_ping6_command])
1018 elif $PATH_TO_PING6 ::1 -n 1 2>/dev/null | \
1019 egrep -i "^round-trip|^rtt" >/dev/null
1020 then
1021 with_ping6_command="$PATH_TO_PING6 %s -n %d"
1022 AC_MSG_RESULT([$with_ping6_command])
1024 elif $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1025 egrep -i "^round-trip|^rtt" >/dev/null
1026 then
1027 with_ping6_command="$PATH_TO_PING6 -n -s %s 56 %d"
1028 AC_MSG_RESULT([$with_ping6_command])
1030 elif $PATH_TO_PING6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1031 egrep -i "^round-trip|^rtt" >/dev/null
1032 then
1033 with_ping6_command="$PATH_TO_PING6 -n -h %s -s 56 -c %d"
1034 AC_MSG_RESULT([$with_ping6_command])
1036 elif $PATH_TO_PING6 -n -s 56 -c 1 ::1 2>/dev/null | \
1037 egrep -i "^round-trip|^rtt" >/dev/null
1038 then
1039 with_ping6_command="$PATH_TO_PING6 -n -s 56 -c %d %s"
1040 ac_cv_ping6_packets_first=yes
1041 AC_MSG_RESULT([$with_ping_command])
1043 elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1044 egrep -i "^round-trip|^rtt" >/dev/null
1045 then
1046 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1047 ac_cv_ping6_packets_first=yes
1048 AC_MSG_RESULT([$with_ping6_command])
1050 fi
1052 elif test "x$PATH_TO_PING" != "x"; then
1053 if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1054 $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1055 egrep -i "^round-trip|^rtt" >/dev/null
1056 then
1057 with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1058 ac_cv_ping6_packets_first=yes
1059 AC_MSG_RESULT([$with_ping6_command])
1061 elif $PATH_TO_PING -A inet6 -n -U -c 1 ::1 2>/dev/null | \
1062 egrep -i "^round-trip|^rtt" >/dev/null
1063 then
1064 with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1065 ac_cv_ping6_packets_first=yes
1066 AC_MSG_RESULT([$with_ping6_command])
1068 elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1069 egrep -i "^round-trip|^rtt" >/dev/null
1070 then
1071 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1072 ac_cv_ping6_packets_first=yes
1073 AC_MSG_RESULT([$with_ping6_command])
1075 elif $PATH_TO_PING -A inet6 -n ::1 -c 1 2>/dev/null | \
1076 egrep -i "^round-trip|^rtt" >/dev/null
1077 then
1078 with_ping6_command="$PATH_TO_PING -A inet6 -n %s -c %d"
1079 AC_MSG_RESULT([$with_ping6_command])
1081 elif $PATH_TO_PING -A inet6 ::1 -n 1 2>/dev/null | \
1082 egrep -i "^round-trip|^rtt" >/dev/null
1083 then
1084 with_ping6_command="$PATH_TO_PING -A inet6 %s -n %d"
1085 AC_MSG_RESULT([$with_ping6_command])
1087 elif $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1088 egrep -i "^round-trip|^rtt" >/dev/null
1089 then
1090 with_ping6_command="$PATH_TO_PING -A inet6 -n -s %s 56 %d"
1091 AC_MSG_RESULT([$with_ping6_command])
1093 elif $PATH_TO_PING -A inet6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1094 egrep -i "^round-trip|^rtt" >/dev/null
1095 then
1096 with_ping6_command="$PATH_TO_PING -A inet6 -n -h %s -s 56 -c %d"
1097 AC_MSG_RESULT([$with_ping6_command])
1099 elif $PATH_TO_PING -A inet6 -n -s 56 -c 1 ::1 2>/dev/null | \
1100 egrep -i "^round-trip|^rtt" >/dev/null
1101 then
1102 with_ping6_command="$PATH_TO_PING -A inet6 -n -s 56 -c %d %s"
1103 ac_cv_ping6_packets_first=yes
1104 AC_MSG_RESULT([$with_ping_command])
1106 elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1107 egrep -i "^round-trip|^rtt" >/dev/null
1108 then
1109 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1110 ac_cv_ping6_packets_first=yes
1111 AC_MSG_RESULT([$with_ping6_command])
1113 fi
1115 fi
1117 if test "x$with_ping6_command" != "x"; then
1118 AC_DEFINE_UNQUOTED(PING6_COMMAND,"$with_ping6_command",
1119 [path and args for ICMPv6 ping command])
1120 else
1121 AC_MSG_RESULT([none])
1122 fi
1124 if test "x$ac_cv_ping6_packets_first" != "xno"; then
1125 AC_DEFINE(PING6_PACKETS_FIRST,1,
1126 [Define if packet count must precede host])
1127 fi
1128 fi
1130 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
1132 AC_MSG_CHECKING(for nslookup syntax)
1133 if test -n "$PATH_TO_NSLOOKUP"
1134 then
1135 if $PATH_TO_NSLOOKUP -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
1136 then
1137 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP"
1138 AC_MSG_RESULT([$ac_cv_nslookup_command])
1140 else
1141 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP -sil"
1142 AC_MSG_RESULT([$ac_cv_nslookup_command])
1144 fi
1145 EXTRAS="$EXTRAS check_dns"
1147 else
1148 AC_MSG_WARN([nslookup command not found])
1149 fi
1151 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$ac_cv_nslookup_command",
1152 [path and args for nslookup])
1154 AC_PATH_PROG(PATH_TO_HOST,host)
1155 if test -n "$ac_cv_path_PATH_TO_HOST"
1156 then
1157 EXTRAS="$EXTRAS check_dns"
1158 fi
1160 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
1161 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
1163 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
1164 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
1166 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
1167 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
1168 AC_PATH_PROGS(PATH_TO_NTPQ,ntpq)
1169 if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPQ")
1170 then
1171 AC_DEFINE_UNQUOTED(PATH_TO_NTPQ,"$PATH_TO_NTPQ",[path to ntpq binary])
1172 AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary])
1173 else
1174 AC_MSG_WARN([Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization])
1175 fi
1177 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
1178 if test -x "$PATH_TO_LMSTAT"
1179 then
1180 AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
1181 else
1182 AC_MSG_WARN([Get lmstat from Globetrotter Software to monitor flexlm licenses])
1183 fi
1185 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
1186 if test -x "$PATH_TO_SMBCLIENT"
1187 then
1188 AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
1189 else
1190 AC_MSG_WARN([Get smbclient from Samba.org to monitor SMB shares])
1191 fi
1194 AC_PATH_PROG(PATH_TO_WHO,who)
1196 if [$PATH_TO_WHO -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
1197 then
1198 ac_cv_path_to_who="$PATH_TO_WHO -q"
1199 else
1200 ac_cv_path_to_who="$PATH_TO_WHO"
1201 fi
1203 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$ac_cv_path_to_who",
1204 [path and arguments for invoking 'who'])
1206 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
1207 if test -x "$PATH_TO_SNMPGET"
1208 then
1209 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
1210 EXTRAS="$EXTRAS check_hpjd check_snmp"
1211 else
1212 AC_MSG_WARN([Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins])
1213 fi
1215 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
1216 if test -x "$PATH_TO_SNMPGETNEXT"
1217 then
1218 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
1219 fi
1221 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null )
1222 then
1223 AC_MSG_CHECKING(for Net::SNMP perl module)
1224 AC_MSG_RESULT([found])
1225 else
1226 AC_MSG_WARN([Tried $PERL - install Net::SNMP perl module if you want to use the perl snmp plugins])
1227 fi
1229 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
1230 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
1232 if test -x "$PATH_TO_QUAKESTAT"
1233 then
1234 ac_cv_path_to_qstat="$PATH_TO_QUAKESTAT"
1235 EXTRAS="$EXTRAS check_game"
1237 elif test -x "$PATH_TO_QSTAT"
1238 then
1239 ac_cv_path_to_qstat="$PATH_TO_QSTAT"
1240 EXTRAS="$EXTRAS check_game"
1241 else
1242 AC_MSG_WARN([Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin])
1243 fi
1245 if test $ac_cv_path_to_qstat
1246 then
1247 AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$ac_cv_path_to_qstat",
1248 [path to qstat/quakestat])
1249 fi
1251 AC_PATH_PROG(PATH_TO_FPING,fping)
1252 if test -x "$PATH_TO_FPING"
1253 then
1254 AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
1255 EXTRAS="$EXTRAS check_fping"
1256 else
1257 AC_MSG_WARN([Get fping from http://www.fping.com in order to make check_fping plugin])
1258 fi
1260 AC_PATH_PROG(PATH_TO_SSH,ssh)
1262 if test -x "$PATH_TO_SSH"
1263 then
1264 AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
1265 EXTRAS="$EXTRAS check_by_ssh"
1266 else
1267 AC_MSG_WARN([Get ssh in order to make check_by_ssh plugin])
1268 fi
1271 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
1272 if test -x "$PATH_TO_MAILQ"
1273 then
1274 AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
1275 else
1276 AC_MSG_WARN([Could not find mailq or eqivalent])
1277 fi
1279 AC_PATH_PROG(PATH_TO_QMAIL_QSTAT,qmail-qstat)
1280 if test -x "$PATH_TO_QMAIL_QSTAT"
1281 then
1282 AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_QMAIL_QSTAT",[path to qmail-qstat])
1283 else
1284 AC_MSG_WARN([Could not find qmail-qstat or eqivalent])
1285 fi
1287 dnl SWAP info required is amount allocated/available and amount free
1288 dnl The plugin works through all the swap devices and adds up the total swap
1289 dnl available.
1290 AC_PATH_PROG(PATH_TO_SWAP,swap)
1291 if (test -n "$PATH_TO_SWAP")
1292 then
1293 AC_MSG_CHECKING([for $PATH_TO_SWAP format])
1294 if [$PATH_TO_SWAP -l 2>&1 >/dev/null]
1295 then
1296 ac_cv_have_swap=yes
1297 ac_cv_swap_command="$PATH_TO_SWAP -l"
1298 if [$PATH_TO_SWAP -l 2>/dev/null | \
1299 egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" \
1300 >/dev/null]
1301 then
1302 ac_cv_swap_format=[" %*d %*s %*d,%*d %*d %*d %d %d"]
1303 ac_cv_swap_conv=2048
1304 AC_MSG_RESULT([using IRIX format swap])
1306 elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^swapfile +dev +swaplo +blocks +free" >/dev/null]
1307 then
1308 ac_cv_swap_format=["%*s %*[0-9,-] %*d %d %d"]
1309 ac_cv_swap_conv=2048
1310 AC_MSG_RESULT([using Solaris format swap])
1312 elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null]
1313 then
1314 ac_cv_swap_format=["%*s %*[0-9,-] %*d %d %d"]
1315 ac_cv_swap_conv=2048
1316 AC_MSG_RESULT([using Unixware format swap])
1318 fi
1319 fi
1320 dnl end if for PATH_TO_SWAP
1321 fi
1323 AC_PATH_PROG(PATH_TO_SWAPINFO,swapinfo)
1324 if (test -n "$PATH_TO_SWAPINFO")
1325 then
1326 AC_MSG_CHECKING([for $PATH_TO_SWAPINFO format])
1327 if [$PATH_TO_SWAPINFO -k 2>&1 | egrep -i "^Device" >/dev/null]
1328 then
1329 ac_cv_have_swap=yes
1330 ac_cv_swap_command="$PATH_TO_SWAPINFO -k"
1332 if [$PATH_TO_SWAPINFO -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
1333 then
1334 ac_cv_swap_format=["%*s %d %*d %d"]
1335 ac_cv_swap_conv=1024
1336 AC_MSG_RESULT([using FreeBSD format swapinfo])
1337 fi
1339 elif [$PATH_TO_SWAPINFO -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
1340 then
1341 ac_cv_have_swap=yes
1342 ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM",
1343 ac_cv_swap_format=["%*s %d %*d %d"]
1344 ac_cv_swap_conv=1024
1345 AC_MSG_RESULT([using HP-UX format swapinfo])
1346 fi
1347 dnl end if for PATH_TO_SWAPINFO
1348 fi
1350 AC_PATH_PROG(PATH_TO_LSPS,lsps)
1351 if (test -n "$PATH_TO_LSPS")
1352 then
1353 AC_MSG_CHECKING([for $PATH_TO_LSPS format])
1354 if [$PATH_TO_LSPS -a 2>/dev/null | egrep -i "^Page Space" > /dev/null]
1355 then
1356 ac_cv_have_swap=yes
1357 ac_cv_swap_command="$PATH_TO_LSPS -a"
1358 ac_cv_swap_format=["%*s %*s %*s %d%*s %d %*s"]
1359 ac_cv_swap_conv=1
1360 AC_MSG_RESULT([using AIX lsps])
1361 fi
1362 dnl end if for PATH_TO_SWAPINFO
1363 fi
1365 AC_PATH_PROG(PATH_TO_SWAPCTL,swapctl,,[$PATH:/sbin])
1366 if (test -n "$PATH_TO_SWAPCTL")
1367 then
1368 AC_MSG_CHECKING([for $PATH_TO_SWAPCTL format])
1369 if [$PATH_TO_SWAPCTL -l 2>&1 >/dev/null]
1370 then
1371 ac_cv_have_swap=yes
1372 ac_cv_swap_command="$PATH_TO_SWAPCTL -l"
1373 if [$PATH_TO_SWAPCTL -l 2>/dev/null | \
1374 egrep -i "^Device +1K-blocks +Used +Avail +Capacity +Priority" >/dev/null ]
1375 then
1376 ac_cv_swap_format=["%*s %llu %*d %llu %*d"]
1377 ac_cv_swap_conv=1024
1378 AC_MSG_RESULT([using 1K BSD format swapctl])
1380 elif [$PATH_TO_SWAPCTL -l 2>/dev/null | \
1381 egrep -i "^Device +512-blocks +Used +Avail +Capacity +Priority" >/dev/null ]
1382 then
1383 ac_cv_swap_format=["%*s %llu %*d %llu %*d"]
1384 ac_cv_swap_conv=2048
1385 AC_MSG_RESULT([using 512 byte BSD format swapctl])
1386 fi
1387 fi
1388 dnl end if for PATH_TO_SWAPCTL
1389 fi
1391 if test "x$ac_cv_have_swap" != "x"
1392 then
1393 AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
1394 EXTRAS="$EXTRAS check_swap"
1395 fi
1396 if test "x$ac_cv_swap_command" != "x"
1397 then
1398 AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$ac_cv_swap_command",
1399 [Path to swap/swapinfo binary, with any args])
1400 AC_DEFINE_UNQUOTED(SWAP_FORMAT,"$ac_cv_swap_format",
1401 [Format string for parsing swap output])
1402 AC_DEFINE_UNQUOTED(SWAP_CONVERSION,$ac_cv_swap_conv,
1403 [Conversion factor to MB])
1404 fi
1406 dnl dunno why this does not work below - use hack (kbd)
1407 dnl fine on linux, broken on solaris
1408 dnl if /bin/test -e "/proc/meminfo"
1409 AC_MSG_CHECKING([for /proc/meminfo])
1410 if [cat /proc/meminfo > /dev/null 2>&1]
1411 then
1412 AC_MSG_RESULT([found /proc/meminfo])
1413 AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
1414 AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes])
1415 EXTRAS="$EXTRAS check_swap"
1416 else
1417 AC_MSG_RESULT([no])
1418 fi
1420 AC_PATH_PROG(PATH_TO_DIG,dig)
1421 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
1422 if test -n "$PATH_TO_DIG"; then
1423 EXTRAS="$EXTRAS check_dig"
1424 fi
1426 if test -f plugins/check_nt.c ; then
1427 EXTRAS="$EXTRAS check_nt"
1428 elif test -f ../plugins/check_nt.c ; then
1429 EXTRAS="$EXTRAS check_nt"
1430 fi
1432 AC_MSG_CHECKING(for va_list)
1433 AC_TRY_COMPILE([#ifdef __STDC__
1434 #include <stdio.h>
1435 #include <stdlib.h>
1436 #include <stdarg.h>
1437 #else
1438 #include <sys/types.h>
1439 #include <stdio.h>
1440 #include <varargs.h>
1441 #endif],
1442 [va_list args;],
1443 [AC_MSG_RESULT(yes)],
1444 [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
1446 AC_SUBST(EXTRAS)
1447 AC_SUBST(EXTRA_NETOBJS)
1448 AC_SUBST(DEPLIBS)
1450 AM_GNU_GETTEXT_VERSION(0.11.5)
1451 AM_GNU_GETTEXT([no-libtool], [need-ngettext])
1453 AC_OUTPUT(Makefile lib/Makefile plugins/Makefile plugins-scripts/Makefile plugins-scripts/subst plugins-scripts/utils.pm plugins-scripts/utils.sh command.cfg test.pl pkg/solaris/pkginfo intl/Makefile po/Makefile.in )
1455 ACX_FEATURE([with],[cgiurl])
1456 ACX_FEATURE([with],[nagios-user])
1457 ACX_FEATURE([with],[nagios-group])
1458 ACX_FEATURE([with],[trusted-path])
1459 ACX_FEATURE([with],[ping-command])
1460 ACX_FEATURE([with],[ping6-command])
1461 ACX_FEATURE([with],[lwres])
1462 ACX_FEATURE([with],[ipv6])
1463 ACX_FEATURE([enable],[emulate-getaddrinfo])