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 AM_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 if test "$OPENSSL" != "/usr"; then
424 CPPFLAGS="$CPPFLAGS -I$OPENSSL/include"
425 fi
426 AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h,
427 SSLINCLUDE="-I$OPENSSL/include"
428 FOUNDINCLUDE=yes,
429 FOUNDINCLUDE=no)
430 if test "$FOUNDINCLUDE" = "no"; then
431 AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h,
432 SSLINCLUDE="-I$OPENSSL/include"
433 FOUNDINCLUDE=yes,
434 FOUNDINCLUDE=no)
435 fi
436 AC_SUBST(SSLINCLUDE)
437 if test "$FOUNDINCLUDE" = "no"; then
438 CPPFLAGS="$_SAVEDCPPFLAGS"
439 fi
441 dnl Check for crypto lib
442 _SAVEDLIBS="$LIBS"
443 AC_CHECK_LIB(crypto,CRYPTO_lock,,,-L$OPENSSL/lib)
444 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
445 dnl Check for SSL lib
446 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)
447 fi
448 LIBS="$_SAVEDLIBS"
450 dnl test headers and libs to decide whether check_http should use SSL
451 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
452 if test "$ac_cv_lib_ssl_main" = "yes"; then
453 if test "$FOUNDINCLUDE" = "yes"; then
454 check_tcp_ssl="check_simap check_spop"
455 AC_SUBST(check_tcp_ssl)
456 AC_SUBST(SSLLIBS)
457 AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
458 fi
459 fi
460 fi
461 CPPFLAGS="$_SAVEDCPPFLAGS"
463 dnl
464 dnl Checks for header files.
465 dnl
467 AC_HEADER_STDC
468 AC_HEADER_TIME
469 AC_HEADER_SYS_WAIT
470 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)
471 AC_CHECK_HEADERS(features.h stdarg.h sys/unistd.h ctype.h stdlib.h)
472 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)
474 # glibc 2.3.2 stdlib.h does not define HUGE_VAL (see man strtod)
475 AC_MSG_CHECKING([for HUGE_VAL in <stdlib.h>])
476 AC_TRY_COMPILE([#include <stdlib.h>],
477 [double x = HUGE_VAL;],
478 [AC_MSG_RESULT(yes)],
479 [AC_MSG_RESULT(no)
480 AC_MSG_CHECKING([for HUGE_VAL in <math.h>])
481 AC_TRY_COMPILE([#include <math.h>],
482 [double x = HUGE_VAL;],
483 [AC_MSG_RESULT(yes)
484 AC_DEFINE_UNQUOTED(HUGE_VAL_NEEDS_MATH_H, 1,
485 [Define if <math.h> is required for HUGE_VAL])],
486 [AC_MSG_RESULT(no)])])
488 # Define HAVE_INTTYPES_H if <inttypes.h> exists,
489 # doesn't clash with <sys/types.h>, and declares uintmax_t.
491 AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
492 [AC_TRY_COMPILE(
493 [#include <sys/types.h>
494 #include <inttypes.h>],
495 [uintmax_t i = (uintmax_t) -1;],
496 jm_ac_cv_header_inttypes_h=yes,
497 jm_ac_cv_header_inttypes_h=no)])
499 if test $jm_ac_cv_header_inttypes_h = yes; then
500 AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
501 [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
502 and declares uintmax_t. ])
503 fi
505 # Check for SunOS statfs brokenness wrt partitions 2GB and larger.
506 # If <sys/vfs.h> exists and struct statfs has a member named f_spare,
507 # enable the work-around code in fsusage.c.
508 AC_MSG_CHECKING([for statfs that truncates block counts])
509 AC_CACHE_VAL(fu_cv_sys_truncating_statfs,
510 [AC_TRY_COMPILE([
511 #if !defined(sun) && !defined(__sun)
512 choke -- this is a workaround for a Sun-specific problem
513 #endif
514 #include <sys/types.h>
515 #include <sys/vfs.h>],
516 [struct statfs t; long c = *(t.f_spare);],
517 fu_cv_sys_truncating_statfs=yes
518 AC_MSG_RESULT(yes),
519 fu_cv_sys_truncating_statfs=no
520 AC_MSG_RESULT(no),
521 )])
522 if test $fu_cv_sys_truncating_statfs = yes; then
523 AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS, 1,
524 [ Define if the block counts reported by statfs may be truncated to 2GB
525 and the correct values may be stored in the f_spare array.
526 (SunOS 4.1.2, 4.1.3, and 4.1.3_U1 are reported to have this problem.
527 SunOS 4.1.1 seems not to be affected.)])
528 fi
530 dnl Checks for typedefs, structures, and compiler characteristics.
531 AC_C_CONST
532 AC_STRUCT_TM
533 AC_TYPE_PID_T
534 AC_TYPE_SIZE_T
535 AC_TYPE_SIGNAL
537 AC_CHECK_SIZEOF(int,cross)
538 AC_CHECK_SIZEOF(long,cross)
539 AC_CHECK_SIZEOF(short,cross)
541 AC_CACHE_CHECK([for long long],ac_cv_have_longlong,[
542 AC_TRY_RUN([#include <stdio.h>
543 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
544 ac_cv_have_longlong=yes,ac_cv_have_longlong=no,ac_cv_have_longlong=cross)])
545 if test x"$ac_cv_have_longlong" = x"yes"; then
546 AC_DEFINE(HAVE_LONGLONG,1,[Define if system has long long type])
547 fi
549 #
550 # Check if the compiler supports the LL prefix on long long integers.
551 # AIX needs this.
553 AC_CACHE_CHECK([for LL suffix on long long integers],ac_cv_compiler_supports_ll, [
554 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
555 ac_cv_compiler_supports_ll=yes,ac_cv_compiler_supports_ll=no)])
556 if test x"$ac_cv_compiler_supports_ll" = x"yes"; then
557 AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Define if compiler support long long])
558 fi
560 AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE_VA_COPY,[
561 AC_TRY_LINK([#include <stdarg.h>
562 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
563 ac_cv_HAVE_VA_COPY=yes,ac_cv_HAVE_VA_COPY=no)])
564 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
565 AC_DEFINE(HAVE_VA_COPY,1,[Define if system has va_copy])
566 fi
568 AC_CHECK_FUNCS(vsnprintf snprintf asprintf vasprintf)
569 AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
570 AC_TRY_RUN([
571 #include <sys/types.h>
572 #include <stdarg.h>
573 void foo(const char *format, ...) {
574 va_list ap;
575 int len;
576 char buf[5];
578 va_start(ap, format);
579 len = vsnprintf(buf, 0, format, ap);
580 va_end(ap);
581 if (len != 5) exit(1);
583 va_start(ap, format);
584 len = vsnprintf(0, 0, format, ap);
585 va_end(ap);
586 if (len != 5) exit(1);
588 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
590 exit(0);
591 }
592 main() { foo("hello"); }
593 ],
594 ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
595 if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
596 AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
597 fi
599 AC_TRY_COMPILE([#include <sys/time.h>],
600 [struct timeval *tv;
601 struct timezone *tz;],
602 AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
603 AC_TRY_COMPILE([#include <sys/time.h>],
604 [struct timeval *tv;
605 struct timezone *tz;
606 gettimeofday(tv, tz);],
607 AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
608 AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
610 dnl Checks for library functions.
611 AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul)
613 AC_MSG_CHECKING(return type of socket size)
614 AC_TRY_COMPILE([#include <stdlib.h>
615 #include <sys/types.h>
616 #include <sys/socket.h>],
617 [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
618 ac_cv_socket_size_type=["size_t"]
619 AC_MSG_RESULT(size_t),
620 ac_cv_socket_size_type=["int"]
621 AC_MSG_RESULT(int))
623 AC_DEFINE_UNQUOTED(SOCKET_SIZE_TYPE, $ac_cv_socket_size_type ,
624 [Define type of socket size])
626 if test -f "/proc/loadavg"
627 then
628 AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
629 AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg])
630 fi
632 dnl #### Process table test
634 AC_PATH_PROG(PATH_TO_PS,ps)
636 AC_MSG_CHECKING(for ps syntax)
637 dnl For OpenBSD 3.2 & 3.3. Must come before ps -weo
638 dnl STAT UCOMM VSZ RSS USER PPID COMMAND
639 if ps -axwo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
640 egrep -i ["^ *STAT +UCOMM +VSZ +RSS +USER +UID +PPID +COMMAND"] > /dev/null
641 then
642 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
643 ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid ppid vsz rss pcpu comm args'"
644 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
645 ac_cv_ps_cols=8
646 AC_MSG_RESULT([$ac_cv_ps_command])
648 dnl STAT UCOMM VSZ RSS USER UID PPID COMMAND
649 elif ps -weo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
650 egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
651 then
652 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
653 ac_cv_ps_command="$PATH_TO_PS -weo 'stat uid ppid vsz rss pcpu comm args'"
654 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
655 ac_cv_ps_cols=8
656 AC_MSG_RESULT([$ac_cv_ps_command])
658 dnl FreeBSD
659 elif ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | \
660 egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PPID"] >/dev/null
661 then
662 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
663 ac_cv_ps_command="$PATH_TO_PS waxco 'state uid ppid vsz rss pcpu command command'"
664 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
665 ac_cv_ps_cols=8
666 AC_MSG_RESULT([$ac_cv_ps_command])
668 dnl BSD-like mode in RH 6.1
669 elif ps waxno 'state comm vsz rss uid user ppid args' 2>/dev/null | \
670 egrep -i ["^S +COMMAND +VSZ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
671 then
672 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
673 ac_cv_ps_command="$PATH_TO_PS waxno 'state uid ppid vsz rss pcpu comm args'"
674 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
675 ac_cv_ps_cols=8
676 AC_MSG_RESULT([$ac_cv_ps_command])
678 dnl SunOS 4.1.3:
679 dnl F UID PID PPID CP PRI NI SZ RSS WCHAN STAT TT TIME COMMAND
680 dnl Need the head -1 otherwise test will work because arguments are found
681 elif ps -laxnwww 2>/dev/null | head -1 | \
682 egrep -i ["^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND"] >/dev/null
683 then
684 ac_cv_ps_varlist="[&procuid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
685 ac_cv_ps_command="$PATH_TO_PS -laxnwww"
686 ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %d %d %*s %s %*s %*s %n%s"
687 ac_cv_ps_cols=8
688 AC_MSG_RESULT([$ac_cv_ps_command])
690 dnl Debian Linux / procps v1.2.9:
691 dnl FLAGS UID PID PPID PRI NI SIZE RSS WCHAN STA TTY TIME COMMAND
692 dnl 100 0 1 0 0 0 776 76 c0131c8c S ffff 0:11 init [2]
693 dnl
694 elif ps laxnwww 2>/dev/null | \
695 egrep -i ["^ *F(LAGS)? +UID +PID +PPID +PRI +NI +(VSZ)|(SIZE) +RSS +WCHAN +STAT? TTY +TIME +COMMAND"] >/dev/null
696 then
697 ac_cv_ps_varlist="[&procuid,&procppid,procstat,&procvsz,&procrss,&pos,procprog]"
698 ac_cv_ps_command="$PATH_TO_PS laxnwww"
699 ac_cv_ps_format="%*s %d %*s %d %*s %*s %d %d %*s %s %*s %*s %n%s"
700 ac_cv_ps_cols=8
701 AC_MSG_RESULT([$ac_cv_ps_command])
703 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
704 elif ps -axo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
705 egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
706 then
707 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
708 ac_cv_ps_command="$PATH_TO_PS -axo 'stat uid ppid vsz rss pcpu comm args'"
709 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
710 ac_cv_ps_cols=8
711 AC_MSG_RESULT([$ac_cv_ps_command])
713 dnl Tru64 - needs %*[ +] in PS_FORMAT
714 elif ps -ao 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
715 egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
716 then
717 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
718 ac_cv_ps_command="$PATH_TO_PS -ao 'stat uid ppid vsz rss pcpu comm args'"
719 ac_cv_ps_format=["%s%*[ +] %d %d %d %d %f %s %n"]
720 ac_cv_ps_cols=8
721 AC_MSG_RESULT([$ac_cv_ps_command])
723 elif ps -eo 's comm vsz rss user uid ppid args' 2>/dev/null | \
724 egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
725 then
726 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
727 ac_cv_ps_command="$PATH_TO_PS -eo 's uid ppid vsz rss pcpu comm args'"
728 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
729 ac_cv_ps_cols=8
730 AC_MSG_RESULT([$ac_cv_ps_command])
732 dnl AIX 4.3.3 and 5.1 do not have an rss field
733 elif ps -eo 'stat uid ppid vsz pcpu comm args' 2>/dev/null | \
734 egrep -i ["^ *S[TAUES]* +UID +PPID +VSZ +%CPU +COMMAND +COMMAND"] >/dev/null
735 then
736 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procpcpu,procprog,&pos]"
737 ac_cv_ps_command="$PATH_TO_PS -eo 'stat uid ppid vsz pcpu comm args'"
738 ac_cv_ps_format="%s %d %d %d %f %s %n"
739 ac_cv_ps_cols=7
740 AC_MSG_RESULT([$ac_cv_ps_command - with no RSS])
742 dnl Solaris 2.6
743 elif ps -Ao 's comm vsz rss uid user ppid args' 2>/dev/null | \
744 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
745 then
746 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
747 ac_cv_ps_command="$PATH_TO_PS -Ao 's uid ppid vsz rss pcpu comm args'"
748 # There must be no space between the %s and %n due to a wierd problem in sscanf where
749 # it will return %n as longer than the line length
750 ac_cv_ps_format="%s %d %d %d %d %f %s%n"
751 ac_cv_ps_cols=8
752 AC_MSG_RESULT([$ac_cv_ps_command])
754 elif ps -Ao 'status comm vsz rss uid user ppid args' 2>/dev/null | \
755 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
756 then
757 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
758 ac_cv_ps_command="$PATH_TO_PS -Ao 'status uid ppid vsz rss pcpu comm args'"
759 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
760 ac_cv_ps_cols=8
761 AC_MSG_RESULT([$ac_cv_ps_command])
763 elif ps -Ao 'state comm vsz rss uid user ppid args' 2>/dev/null | \
764 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
765 then
766 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
767 ac_cv_ps_command="$PATH_TO_PS -Ao 'state uid ppid vsz rss pcpu comm args'"
768 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
769 ac_cv_ps_cols=8
770 AC_MSG_RESULT([$ac_cv_ps_command])
772 dnl wonder who takes state instead of stat
773 elif ps -ao 'state command vsz rss user ppid args' 2>/dev/null | \
774 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
775 then
776 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
777 ac_cv_ps_command="$PATH_TO_PS -ao 'state uid ppid vsz rss pcpu command args'"
778 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
779 ac_cv_ps_cols=7
780 AC_MSG_RESULT([$ac_cv_ps_command])
782 dnl IRIX 53
783 elif ps -el 2>/dev/null | \
784 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
785 then
786 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&pos,procprog]"
787 ac_cv_ps_command="$PATH_TO_PS -el (IRIX 53)"
788 ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %d %d %*s %*s %*s %n%s"
789 ac_cv_ps_cols=7
790 AC_MSG_RESULT([$ac_cv_ps_command])
792 dnl IRIX 63
793 elif ps -el 2>/dev/null | \
794 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +ADDR +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
795 then
796 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
797 ac_cv_ps_command="$PATH_TO_PS -el (IRIX 63)"
798 ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
799 ac_cv_ps_cols=5
800 AC_MSG_RESULT([$ac_cv_ps_command])
802 dnl AIX 4.1:
803 dnl F S UID PID PPID C PRI NI ADDR SZ RSS WCHAN TTY TIME CMD
804 dnl 303 A 0 0 0 120 16 -- 1c07 20 24 - 0:45 swapper
805 elif ps -el 2>/dev/null | \
806 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
807 then
808 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
809 ac_cv_ps_command="$PATH_TO_PS -el (AIX 4.1 and HP-UX)"
810 ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
811 ac_cv_ps_cols=5
812 AC_MSG_RESULT([$ac_cv_ps_command])
814 dnl AIX?
815 elif ps glaxen 2>/dev/null | \
816 egrep -i ["^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND"] >/dev/null
817 then
818 ac_cv_ps_varlist="[&procuid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
819 ac_cv_ps_command="$PATH_TO_PS glaxen"
820 ac_cv_ps_format="%*s %d %*s %d %*s %*s %d %d %*s %s %*s %*s %n%s"
821 ac_cv_ps_cols=7
822 AC_MSG_RESULT([$ac_cv_ps_command])
824 dnl MacOSX / Darwin
825 dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
826 dnl Some truncation will happen in UCOMM column
827 dnl STAT VSZ RSS UID PPID %CPU UCOMM COMMAND
828 dnl Ss 52756 22496 501 1 6.9 Window Manager /System/Library/CoreServices/WindowServer -daemon
829 elif ps wwaxo 'state vsz rss uid ppid pcpu ucomm command' 2>/dev/null | \
830 egrep -i ["^STAT +VSZ +RSS +UID +PPID +%CPU +UCOMM +COMMAND"] >/dev/null
831 then
832 ac_cv_ps_command="$PATH_TO_PS wwaxo 'state vsz rss uid ppid pcpu ucomm command'"
833 ac_cv_ps_varlist="[procstat,&procvsz,&procrss,&procuid,&procppid,&procpcpu,procprog,&pos]"
834 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
835 ac_cv_ps_cols=7
836 AC_MSG_RESULT([$ac_cv_ps_command])
838 dnl UnixWare
839 elif ps -Al 2>/dev/null | \
840 egrep -i ["^ *F +S +UID +PID +PPID +CLS +PRI +NI +C +ADDR +SZ +WCHAN +TTY +TIME +COMD"] >/dev/null
841 then
842 ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
843 ac_cv_ps_command="$PATH_TO_PS -Al"
844 ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
845 ac_cv_ps_cols=7
846 AC_MSG_RESULT([$ac_cv_ps_command])
848 else
849 AC_MSG_WARN([unable to find usable ps syntax - check_procs and check_nagios will not be compiled])
850 fi
852 if test -n "$ac_cv_ps_varlist" ; then
853 AC_DEFINE_UNQUOTED(PS_VARLIST,$ac_cv_ps_varlist,
854 [Variable list for sscanf of 'ps' output])
855 AC_DEFINE_UNQUOTED(PS_COMMAND,"$ac_cv_ps_command",
856 [Verbatim command to execute for ps in check_procs])
857 AC_DEFINE_UNQUOTED(PS_FORMAT,"$ac_cv_ps_format",
858 [Format string for scanning ps output in check_procs])
859 AC_DEFINE_UNQUOTED(PS_COLS,$ac_cv_ps_cols,
860 [Number of columns in ps command])
861 EXTRAS="$EXTRAS check_procs check_nagios"
862 fi
864 dnl jm_AFS
865 jm_LIST_MOUNTED_FILESYSTEMS([list_mounted_fs=yes], [list_mounted_fs=no])
866 jm_FSTYPENAME
867 jm_FILE_SYSTEM_USAGE([space=yes], [space=no])
869 AC_PATH_PROG(PATH_TO_PING,ping)
870 AC_PATH_PROG(PATH_TO_PING6,ping6)
872 AC_ARG_WITH(ping_command,
873 ACX_HELP_STRING([--with-ping-command=SYNTAX],
874 [sets syntax for ICMP ping]),
875 with_ping_command=$withval,)
877 AC_MSG_CHECKING(for ICMP ping syntax)
878 ac_cv_ping_packets_first=no
879 ac_cv_ping_has_timeout=no
880 if test -n "$with_ping_command"
881 then
882 AC_MSG_RESULT([(command-line) $with_ping_command])
883 if test -n "$ac_cv_ping_packets_first"
884 then
885 ac_cv_ping_packets_first=yes
886 fi
888 elif [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
889 $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
890 egrep -i "^round-trip|^rtt" >/dev/null
891 then
892 with_ping_command="$PATH_TO_PING -n -U -c %d %s"
893 ac_cv_ping_packets_first=yes
894 AC_MSG_RESULT([$with_ping_command])
896 elif $PATH_TO_PING -n -U -w 10 -c 1 127.0.0.1 2>/dev/null | \
897 egrep -i "^round-trip|^rtt" >/dev/null
898 then
899 with_ping_command="$PATH_TO_PING -n -U -w %d -c %d %s"
900 ac_cv_ping_packets_first=yes
901 ac_cv_ping_has_timeout=yes
902 AC_MSG_RESULT([$with_ping_command])
904 elif $PATH_TO_PING -n -U -c 1 127.0.0.1 2>/dev/null | \
905 egrep -i "^round-trip|^rtt" >/dev/null
906 then
907 with_ping_command="$PATH_TO_PING -n -U -c %d %s"
908 ac_cv_ping_packets_first=yes
909 AC_MSG_RESULT([$with_ping_command])
911 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
912 egrep -i "^round-trip|^rtt" >/dev/null
913 then
914 with_ping_command="$PATH_TO_PING -n -c %d %s"
915 ac_cv_ping_packets_first=yes
916 AC_MSG_RESULT([$with_ping_command])
918 elif $PATH_TO_PING -n 127.0.0.1 -c 1 2>/dev/null | \
919 egrep -i "^round-trip|^rtt" >/dev/null
920 then
921 with_ping_command="$PATH_TO_PING -n %s -c %d"
922 AC_MSG_RESULT([$with_ping_command])
924 elif $PATH_TO_PING 127.0.0.1 -n 1 2>/dev/null | \
925 egrep -i "^round-trip|^rtt" >/dev/null
926 then
927 with_ping_command="$PATH_TO_PING %s -n %d"
928 AC_MSG_RESULT([$with_ping_command])
930 elif $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
931 egrep -i "^round-trip|^rtt" >/dev/null
932 then
933 with_ping_command="$PATH_TO_PING -n -s %s 56 %d"
934 AC_MSG_RESULT([$with_ping_command])
936 elif $PATH_TO_PING -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | \
937 egrep -i "^round-trip|^rtt" >/dev/null
938 then
939 with_ping_command="$PATH_TO_PING -n -h %s -s 56 -c %d"
940 AC_MSG_RESULT([$with_ping_command])
942 elif $PATH_TO_PING -n -s 56 -c 1 127.0.0.1 2>/dev/null | \
943 egrep -i "^round-trip|^rtt" >/dev/null
944 then
945 with_ping_command="$PATH_TO_PING -n -s 56 -c %d %s"
946 ac_cv_ping_packets_first=yes
947 AC_MSG_RESULT([$with_ping_command])
949 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
950 egrep -i "^round-trip|^rtt" >/dev/null
951 then
952 with_ping_command="$PATH_TO_PING -n -c %d %s"
953 ac_cv_ping_packets_first=yes
954 AC_MSG_RESULT([$with_ping_command])
956 else
957 AC_MSG_WARN([unable to find usable ping syntax])
958 fi
960 AC_DEFINE_UNQUOTED(PING_COMMAND,"$with_ping_command",
961 [path and args for ICMP ping command])
963 if test "x$ac_cv_ping_packets_first" != "xno"
964 then
965 AC_DEFINE(PING_PACKETS_FIRST,1,
966 [Define if packet count must precede host])
967 fi
969 if test "x$ac_cv_ping_has_timeout" != "xno"
970 then
971 AC_DEFINE(PING_HAS_TIMEOUT,1,
972 [Define if ping has its own timeout option that should be set])
973 fi
975 AC_ARG_WITH(ping6_command,
976 ACX_HELP_STRING([--with-ping6-command=SYNTAX],
977 [sets syntax for ICMPv6 ping]),
978 with_ping6_command=$withval,)
980 if test x"$with_ipv6" != xno ; then
981 AC_MSG_CHECKING(for ICMPv6 ping syntax)
982 ac_cv_ping6_packets_first=no
983 if test -n "$with_ping6_command"
984 then
985 AC_MSG_RESULT([(command-line) $with_ping6_command])
986 if test -n "$ac_cv_ping6_packets_first"
987 then
988 ac_cv_ping6_packets_first=yes
989 fi
991 elif test "x$PATH_TO_PING6" != "x"; then
992 if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
993 $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
994 egrep -i "^round-trip|^rtt" >/dev/null
995 then
996 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
997 ac_cv_ping6_packets_first=yes
998 AC_MSG_RESULT([$with_ping6_command])
1000 elif $PATH_TO_PING6 -n -U -c 1 ::1 2>/dev/null | \
1001 egrep -i "^round-trip|^rtt" >/dev/null
1002 then
1003 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1004 ac_cv_ping6_packets_first=yes
1005 AC_MSG_RESULT([$with_ping6_command])
1007 elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1008 egrep -i "^round-trip|^rtt" >/dev/null
1009 then
1010 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1011 ac_cv_ping6_packets_first=yes
1012 AC_MSG_RESULT([$with_ping6_command])
1014 elif $PATH_TO_PING6 -n ::1 -c 1 2>/dev/null | \
1015 egrep -i "^round-trip|^rtt" >/dev/null
1016 then
1017 with_ping6_command="$PATH_TO_PING6 -n %s -c %d"
1018 AC_MSG_RESULT([$with_ping6_command])
1020 elif $PATH_TO_PING6 ::1 -n 1 2>/dev/null | \
1021 egrep -i "^round-trip|^rtt" >/dev/null
1022 then
1023 with_ping6_command="$PATH_TO_PING6 %s -n %d"
1024 AC_MSG_RESULT([$with_ping6_command])
1026 elif $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1027 egrep -i "^round-trip|^rtt" >/dev/null
1028 then
1029 with_ping6_command="$PATH_TO_PING6 -n -s %s 56 %d"
1030 AC_MSG_RESULT([$with_ping6_command])
1032 elif $PATH_TO_PING6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1033 egrep -i "^round-trip|^rtt" >/dev/null
1034 then
1035 with_ping6_command="$PATH_TO_PING6 -n -h %s -s 56 -c %d"
1036 AC_MSG_RESULT([$with_ping6_command])
1038 elif $PATH_TO_PING6 -n -s 56 -c 1 ::1 2>/dev/null | \
1039 egrep -i "^round-trip|^rtt" >/dev/null
1040 then
1041 with_ping6_command="$PATH_TO_PING6 -n -s 56 -c %d %s"
1042 ac_cv_ping6_packets_first=yes
1043 AC_MSG_RESULT([$with_ping_command])
1045 elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1046 egrep -i "^round-trip|^rtt" >/dev/null
1047 then
1048 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1049 ac_cv_ping6_packets_first=yes
1050 AC_MSG_RESULT([$with_ping6_command])
1052 fi
1054 elif test "x$PATH_TO_PING" != "x"; then
1055 if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1056 $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1057 egrep -i "^round-trip|^rtt" >/dev/null
1058 then
1059 with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1060 ac_cv_ping6_packets_first=yes
1061 AC_MSG_RESULT([$with_ping6_command])
1063 elif $PATH_TO_PING -A inet6 -n -U -c 1 ::1 2>/dev/null | \
1064 egrep -i "^round-trip|^rtt" >/dev/null
1065 then
1066 with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1067 ac_cv_ping6_packets_first=yes
1068 AC_MSG_RESULT([$with_ping6_command])
1070 elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1071 egrep -i "^round-trip|^rtt" >/dev/null
1072 then
1073 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1074 ac_cv_ping6_packets_first=yes
1075 AC_MSG_RESULT([$with_ping6_command])
1077 elif $PATH_TO_PING -A inet6 -n ::1 -c 1 2>/dev/null | \
1078 egrep -i "^round-trip|^rtt" >/dev/null
1079 then
1080 with_ping6_command="$PATH_TO_PING -A inet6 -n %s -c %d"
1081 AC_MSG_RESULT([$with_ping6_command])
1083 elif $PATH_TO_PING -A inet6 ::1 -n 1 2>/dev/null | \
1084 egrep -i "^round-trip|^rtt" >/dev/null
1085 then
1086 with_ping6_command="$PATH_TO_PING -A inet6 %s -n %d"
1087 AC_MSG_RESULT([$with_ping6_command])
1089 elif $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1090 egrep -i "^round-trip|^rtt" >/dev/null
1091 then
1092 with_ping6_command="$PATH_TO_PING -A inet6 -n -s %s 56 %d"
1093 AC_MSG_RESULT([$with_ping6_command])
1095 elif $PATH_TO_PING -A inet6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1096 egrep -i "^round-trip|^rtt" >/dev/null
1097 then
1098 with_ping6_command="$PATH_TO_PING -A inet6 -n -h %s -s 56 -c %d"
1099 AC_MSG_RESULT([$with_ping6_command])
1101 elif $PATH_TO_PING -A inet6 -n -s 56 -c 1 ::1 2>/dev/null | \
1102 egrep -i "^round-trip|^rtt" >/dev/null
1103 then
1104 with_ping6_command="$PATH_TO_PING -A inet6 -n -s 56 -c %d %s"
1105 ac_cv_ping6_packets_first=yes
1106 AC_MSG_RESULT([$with_ping_command])
1108 elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1109 egrep -i "^round-trip|^rtt" >/dev/null
1110 then
1111 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1112 ac_cv_ping6_packets_first=yes
1113 AC_MSG_RESULT([$with_ping6_command])
1115 fi
1117 fi
1119 if test "x$with_ping6_command" != "x"; then
1120 AC_DEFINE_UNQUOTED(PING6_COMMAND,"$with_ping6_command",
1121 [path and args for ICMPv6 ping command])
1122 else
1123 AC_MSG_RESULT([none])
1124 fi
1126 if test "x$ac_cv_ping6_packets_first" != "xno"; then
1127 AC_DEFINE(PING6_PACKETS_FIRST,1,
1128 [Define if packet count must precede host])
1129 fi
1130 fi
1132 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
1134 AC_MSG_CHECKING(for nslookup syntax)
1135 if test -n "$PATH_TO_NSLOOKUP"
1136 then
1137 if $PATH_TO_NSLOOKUP -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
1138 then
1139 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP"
1140 AC_MSG_RESULT([$ac_cv_nslookup_command])
1142 else
1143 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP -sil"
1144 AC_MSG_RESULT([$ac_cv_nslookup_command])
1146 fi
1147 EXTRAS="$EXTRAS check_dns"
1149 else
1150 AC_MSG_WARN([nslookup command not found])
1151 fi
1153 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$ac_cv_nslookup_command",
1154 [path and args for nslookup])
1156 AC_PATH_PROG(PATH_TO_HOST,host)
1157 if test -n "$ac_cv_path_PATH_TO_HOST"
1158 then
1159 EXTRAS="$EXTRAS check_dns"
1160 fi
1162 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
1163 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
1165 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
1166 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
1168 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
1169 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
1170 AC_PATH_PROGS(PATH_TO_NTPQ,ntpq)
1171 if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPQ")
1172 then
1173 AC_DEFINE_UNQUOTED(PATH_TO_NTPQ,"$PATH_TO_NTPQ",[path to ntpq binary])
1174 AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary])
1175 else
1176 AC_MSG_WARN([Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization])
1177 fi
1179 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
1180 if test -x "$PATH_TO_LMSTAT"
1181 then
1182 AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
1183 else
1184 AC_MSG_WARN([Get lmstat from Globetrotter Software to monitor flexlm licenses])
1185 fi
1187 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
1188 if test -x "$PATH_TO_SMBCLIENT"
1189 then
1190 AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
1191 else
1192 AC_MSG_WARN([Get smbclient from Samba.org to monitor SMB shares])
1193 fi
1196 AC_PATH_PROG(PATH_TO_WHO,who)
1198 if [$PATH_TO_WHO -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
1199 then
1200 ac_cv_path_to_who="$PATH_TO_WHO -q"
1201 else
1202 ac_cv_path_to_who="$PATH_TO_WHO"
1203 fi
1205 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$ac_cv_path_to_who",
1206 [path and arguments for invoking 'who'])
1208 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
1209 if test -x "$PATH_TO_SNMPGET"
1210 then
1211 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
1212 EXTRAS="$EXTRAS check_hpjd check_snmp"
1213 else
1214 AC_MSG_WARN([Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins])
1215 fi
1217 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
1218 if test -x "$PATH_TO_SNMPGETNEXT"
1219 then
1220 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
1221 fi
1223 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null )
1224 then
1225 AC_MSG_CHECKING(for Net::SNMP perl module)
1226 AC_MSG_RESULT([found])
1227 else
1228 AC_MSG_WARN([Tried $PERL - install Net::SNMP perl module if you want to use the perl snmp plugins])
1229 fi
1231 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
1232 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
1234 if test -x "$PATH_TO_QUAKESTAT"
1235 then
1236 ac_cv_path_to_qstat="$PATH_TO_QUAKESTAT"
1237 EXTRAS="$EXTRAS check_game"
1239 elif test -x "$PATH_TO_QSTAT"
1240 then
1241 ac_cv_path_to_qstat="$PATH_TO_QSTAT"
1242 EXTRAS="$EXTRAS check_game"
1243 else
1244 AC_MSG_WARN([Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin])
1245 fi
1247 if test $ac_cv_path_to_qstat
1248 then
1249 AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$ac_cv_path_to_qstat",
1250 [path to qstat/quakestat])
1251 fi
1253 AC_PATH_PROG(PATH_TO_FPING,fping)
1254 if test -x "$PATH_TO_FPING"
1255 then
1256 AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
1257 EXTRAS="$EXTRAS check_fping"
1258 else
1259 AC_MSG_WARN([Get fping from http://www.fping.com in order to make check_fping plugin])
1260 fi
1262 AC_PATH_PROG(PATH_TO_SSH,ssh)
1264 if test -x "$PATH_TO_SSH"
1265 then
1266 AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
1267 EXTRAS="$EXTRAS check_by_ssh"
1268 else
1269 AC_MSG_WARN([Get ssh in order to make check_by_ssh plugin])
1270 fi
1273 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
1274 if test -x "$PATH_TO_MAILQ"
1275 then
1276 AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
1277 else
1278 AC_MSG_WARN([Could not find mailq or eqivalent])
1279 fi
1281 AC_PATH_PROG(PATH_TO_QMAIL_QSTAT,qmail-qstat)
1282 if test -x "$PATH_TO_QMAIL_QSTAT"
1283 then
1284 AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_QMAIL_QSTAT",[path to qmail-qstat])
1285 else
1286 AC_MSG_WARN([Could not find qmail-qstat or eqivalent])
1287 fi
1289 dnl SWAP info required is amount allocated/available and amount free
1290 dnl The plugin works through all the swap devices and adds up the total swap
1291 dnl available.
1292 AC_PATH_PROG(PATH_TO_SWAP,swap)
1293 if (test -n "$PATH_TO_SWAP")
1294 then
1295 AC_MSG_CHECKING([for $PATH_TO_SWAP format])
1296 if [$PATH_TO_SWAP -l 2>&1 >/dev/null]
1297 then
1298 ac_cv_have_swap=yes
1299 ac_cv_swap_command="$PATH_TO_SWAP -l"
1300 if [$PATH_TO_SWAP -l 2>/dev/null | \
1301 egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" \
1302 >/dev/null]
1303 then
1304 ac_cv_swap_format=[" %*d %*s %*d,%*d %*d %*d %d %d"]
1305 ac_cv_swap_conv=2048
1306 AC_MSG_RESULT([using IRIX format swap])
1308 elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null]
1309 then
1310 ac_cv_swap_format=["%*s %*[0-9,-] %*d %d %d"]
1311 ac_cv_swap_conv=2048
1312 AC_MSG_RESULT([using Unixware format swap])
1313 else
1314 dnl if we don't know what format swap's output is
1315 dnl we might as well pretend we didn't see it
1316 ac_cv_have_swap=""
1317 ac_cv_swap_command=""
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 dnl
1366 dnl test for swapctl system call, both the 2-arg and 3-arg variants
1367 dnl fwict, the 2-arg is an SVR4 standard, whereas the 3-arg is shared
1368 dnl in the various BSD's
1369 dnl
1371 AC_CHECK_HEADERS([sys/swap.h sys/stat.h sys/param.h])
1372 AC_CHECK_DECLS([swapctl],,,[
1373 #include <unistd.h>
1374 #include <sys/types.h>
1375 #include <sys/stat.h>
1376 #include <sys/swap.h>
1377 ])
1378 AC_CHECK_TYPES([swaptbl_t, swapent_t],,,[
1379 #include <sys/types.h>
1380 #include <sys/stat.h>
1381 #include <sys/swap.h>
1382 ])
1383 AC_CHECK_MEMBERS([struct swapent.se_nblks],,,[
1384 #include <unistd.h>
1385 #include <sys/types.h>
1386 #include <sys/stat.h>
1387 #include <sys/swap.h>
1388 ])
1390 if test "$ac_cv_have_decl_swapctl" = "yes";
1391 then
1392 EXTRAS="$EXTRAS check_swap"
1393 AC_MSG_CHECKING([for 2-arg (SVR4) swapctl])
1394 if test "$ac_cv_type_swaptbl_t" = "yes" -a \
1395 "$ac_cv_type_swapent_t" = "yes";
1396 then
1397 AC_MSG_RESULT([yes])
1398 ac_cv_check_swap_swapctl_svr4="1";
1399 AC_DEFINE([CHECK_SWAP_SWAPCTL_SVR4],1,
1400 [Define if 2-argument SVR4 swapctl exists])
1401 else
1402 AC_MSG_RESULT([no])
1403 AC_MSG_CHECKING([for 3-arg (*BSD) swapctl])
1404 if test "$ac_cv_member_struct_swapent_se_nblks" = "yes";
1405 then
1406 AC_MSG_RESULT([yes])
1407 AC_DEFINE([CHECK_SWAP_SWAPCTL_BSD],1,
1408 [Define if 3-argument BSD swapctl exists])
1409 else
1410 AC_MSG_RESULT([no])
1411 fi
1412 fi
1413 AC_MSG_CHECKING([for whether swapctl uses blocks or pages])
1414 if test "$ac_cv_check_swap_swapctl_svr4" = "1";
1415 then
1416 dnl
1417 dnl the SVR4 spec returns values in pages
1418 dnl
1419 AC_MSG_RESULT([page])
1420 AC_CHECK_DECLS([sysconf])
1421 AC_MSG_CHECKING([for system page size])
1422 if test "$ac_cv_have_decl_sysconf" = "yes";
1423 then
1424 AC_MSG_RESULT([determined by sysconf(3)])
1425 ac_cv_swap_conv="(1048576/sysconf(_SC_PAGESIZE))"
1426 else
1427 AC_MSG_WARN([don't know. guessing 4096k])
1428 ac_cv_swap_conv=256
1429 fi
1430 else
1431 dnl
1432 dnl the BSD spec returns values in blocks
1433 dnl
1434 AC_MSG_RESULT([blocks (assuming 512b)])
1435 ac_cv_swap_conv=2048
1436 fi
1437 AC_DEFINE_UNQUOTED(SWAP_CONVERSION,$ac_cv_swap_conv,
1438 [Conversion factor to MB])
1439 fi
1440 dnl
1441 dnl end tests for the swapctl system calls
1442 dnl
1445 if test "x$ac_cv_have_swap" != "x"
1446 then
1447 AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
1448 EXTRAS="$EXTRAS check_swap"
1449 fi
1450 if test "x$ac_cv_swap_command" != "x"
1451 then
1452 AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$ac_cv_swap_command",
1453 [Path to swap/swapinfo binary, with any args])
1454 AC_DEFINE_UNQUOTED(SWAP_FORMAT,"$ac_cv_swap_format",
1455 [Format string for parsing swap output])
1456 AC_DEFINE_UNQUOTED(SWAP_CONVERSION,$ac_cv_swap_conv,
1457 [Conversion factor to MB])
1458 fi
1460 dnl dunno why this does not work below - use hack (kbd)
1461 dnl fine on linux, broken on solaris
1462 dnl if /bin/test -e "/proc/meminfo"
1463 AC_MSG_CHECKING([for /proc/meminfo])
1464 if [cat /proc/meminfo > /dev/null 2>&1]
1465 then
1466 AC_MSG_RESULT([found /proc/meminfo])
1467 AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
1468 AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes])
1469 EXTRAS="$EXTRAS check_swap"
1470 else
1471 AC_MSG_RESULT([no])
1472 fi
1474 AC_PATH_PROG(PATH_TO_DIG,dig)
1475 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
1476 if test -n "$PATH_TO_DIG"; then
1477 EXTRAS="$EXTRAS check_dig"
1478 fi
1480 if test -f plugins/check_nt.c ; then
1481 EXTRAS="$EXTRAS check_nt"
1482 elif test -f ../plugins/check_nt.c ; then
1483 EXTRAS="$EXTRAS check_nt"
1484 fi
1486 AC_MSG_CHECKING(for va_list)
1487 AC_TRY_COMPILE([#ifdef __STDC__
1488 #include <stdio.h>
1489 #include <stdlib.h>
1490 #include <stdarg.h>
1491 #else
1492 #include <sys/types.h>
1493 #include <stdio.h>
1494 #include <varargs.h>
1495 #endif],
1496 [va_list args;],
1497 [AC_MSG_RESULT(yes)],
1498 [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
1500 AC_SUBST(EXTRAS)
1501 AC_SUBST(EXTRA_NETOBJS)
1502 AC_SUBST(DEPLIBS)
1504 AM_GNU_GETTEXT_VERSION(0.11.5)
1505 AM_GNU_GETTEXT([no-libtool], [need-ngettext])
1507 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 )
1509 ACX_FEATURE([with],[cgiurl])
1510 ACX_FEATURE([with],[nagios-user])
1511 ACX_FEATURE([with],[nagios-group])
1512 ACX_FEATURE([with],[trusted-path])
1513 ACX_FEATURE([with],[ping-command])
1514 ACX_FEATURE([with],[ping6-command])
1515 ACX_FEATURE([with],[lwres])
1516 ACX_FEATURE([with],[ipv6])
1517 ACX_FEATURE([enable],[emulate-getaddrinfo])