1 dnl Process this file with autoconf to produce a configure script.
3 AC_INIT(monitoring-plugins,2.1.2)
4 AC_CONFIG_SRCDIR(NPTest.pm)
5 AC_CONFIG_FILES([gl/Makefile])
6 AC_CONFIG_AUX_DIR(build-aux)
7 AM_INIT_AUTOMAKE([1.8.3])
8 AM_MAINTAINER_MODE([enable])
9 AC_CONFIG_HEADERS([config.h])
12 DEFAULT_PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
16 dnl Deprecated configure options
19 dnl Append user (-o), group (-g), mode (-m) to install command
20 dnl There is an assumption that this is possible with ./configure's chosen install command
22 AC_ARG_WITH(nagios_user,
23 ACX_HELP_STRING([--with-nagios-user=USER],
24 [Installs executables with this user. Defaults to install user]),
25 extra_install_args="-o $withval")
26 AC_ARG_WITH(nagios_group,
27 ACX_HELP_STRING([--with-nagios-group=GROUP],
28 [Installs executables with this group. Defaults to install user]),
29 extra_install_args="$extra_install_args -g $withval")
30 AC_ARG_WITH(world_permissions,
31 ACX_HELP_STRING([--without-world-permissions],
32 [Installs executables without world permissions]))
34 if test "x$with_world_permissions" = xno ; then
35 extra_install_args="$extra_install_args -m 0550"
38 INSTALL="$INSTALL $extra_install_args"
39 INSTALL_STRIP_PROGRAM="$INSTALL_STRIP_PROGRAM $extra_install_args"
44 AC_PROG_GCC_TRADITIONAL
52 ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD])
54 PLUGIN_TEST=`echo $srcdir/plugins/t/*.t|sed -e 's,\.*/plugins/,,g'`
55 AC_SUBST(PLUGIN_TEST)dnl
57 SCRIPT_TEST=`echo $srcdir/plugins-scripts/t/*.t|sed -e 's,\.*/plugins-scripts/,,g'`
58 AC_SUBST(SCRIPT_TEST)dnl
60 WARRANTY="The Monitoring 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"
63 SUPPORT="Send email to help@monitoring-plugins.org if you have questions regarding use\nof this software. To submit patches or suggest improvements, send email to\ndevel@monitoring-plugins.org. Please include version information with all\ncorrespondence (when possible, use output from the --version option of the\nplugin itself).\n"
66 dnl CGIURL has changed for Nagios with 1.0 beta
68 ACX_HELP_STRING([--with-cgiurl=DIR],
69 [sets URL for cgi programs]),
71 with_cgiurl=/nagios/cgi-bin)
73 AC_DEFINE_UNQUOTED(CGIURL,"$CGIURL",[URL of CGI programs])
75 AC_ARG_WITH(trusted_path,
76 ACX_HELP_STRING([--with-trusted-path=PATH],
77 [sets trusted path for executables called by scripts]),
78 with_trusted_path=$withval,
79 with_trusted_path=$DEFAULT_PATH)
80 AC_SUBST(with_trusted_path)
84 dnl PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/etc:/usr/local/bin:/usr/local/sbin:$PATH
86 LDFLAGS="$LDFLAGS -L."
88 ac_cv_uname_m=`uname -m`
89 ac_cv_uname_s=`uname -s`
90 ac_cv_uname_r=`uname -r`
91 ac_cv_uname_v=`uname -v`
92 ac_cv_uname_o=`uname -o`
95 REV_DATESTAMP=`date '+%Y.%m.%d.%H.%M'`
96 REV_TIMESTAMP=`date '+%Y%m%d%H%M%S'`
99 AC_SUBST(REV_DATESTAMP)
100 AC_SUBST(REV_TIMESTAMP)
102 dnl Check if version file is present
103 AM_CONDITIONAL([RELEASE_PRESENT], [test -f $srcdir/release])
105 # Also read in the version from it
106 if test -f $srcdir/release; then
107 NP_RELEASE="$(<release)"
109 NP_RELEASE="$PACKAGE_VERSION"
113 dnl Checks for programs.
114 AC_PATH_PROG(PERL,perl)
115 AC_PATH_PROG(HOSTNAME,hostname)
116 AC_PATH_PROG(BASENAME,basename)
118 dnl allow them to override the path of perl
120 ACX_HELP_STRING([--with-perl=PATH],
121 [sets path to perl executable]),
122 with_perl=$withval,with_perl=$PERL)
123 AC_SUBST(PERL, $with_perl)
127 AC_HELP_STRING([--with-openssl=DIR],
128 [path to openssl installation]),)
131 ACX_HELP_STRING([--with-gnutls=PATH],
132 [path to gnutls installation root]),)
134 dnl you can only have one or the other
135 if test ! "$with_openssl" = "" && test ! "$with_openssl" = "no"; then
138 if test ! "$with_gnutls" = "" && test ! "$with_gnutls" = "no"; then
142 dnl list of possible dirs to try to autodetect openssl
143 dnl if $dir/include exists, we consider it found
144 dnl the order should allow locally installed versions to override distros' ones
145 OPENSSL_DIRS="/usr /usr/local /usr/slocal /usr/local/openssl /usr/local/ssl \
150 dnl Checks for libraries.
153 AC_CHECK_LIB(dce,main,SOCKETLIBS="$SOCKETLIBS -ldce")
154 AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
155 AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
156 AC_CHECK_LIB(resolv,main,SOCKETLIBS="$SOCKETLIBS -lresolv")
160 dnl check for math-related functions needing -lm
161 AC_CHECK_HEADERS(math.h)
162 AC_CHECK_LIB(m,floor,MATHLIBS="-lm")
163 AC_CHECK_HEADERS(mp.h)
164 AC_CHECK_LIB(bsd,pow,MATHLIBS="$MATHLIBS -lbsd")
167 dnl Check if we buils local libtap
168 AC_ARG_ENABLE(libtap,
169 AC_HELP_STRING([--enable-libtap],
170 [Enable built-in libtap for unit-testing (default: autodetect system library).]),
171 [enable_libtap=$enableval],
173 AM_CONDITIONAL([USE_LIBTAP_LOCAL],[test "$enable_libtap" = "yes"])
175 # If not local, check if we can use the system one
176 if test "$enable_libtap" != "yes" ; then
177 dnl Check for libtap, to run perl-like tests
178 AC_CHECK_LIB(tap, plan_tests,
183 # Finally, define tests if we use libtap
184 if test "$enable_libtap" = "yes" ; then
185 EXTRA_TEST="test_utils test_disk test_tcp test_cmd test_base64"
190 AC_ARG_ENABLE(extra-opts,
191 AC_HELP_STRING([--enable-extra-opts],
192 [Enables parsing of plugins ini config files for extra options (default: no)]),
193 [enable_extra_opts=$enableval],
194 [enable_extra_opts=yes])
195 AM_CONDITIONAL([USE_PARSE_INI],[test "$enable_extra_opts" = "yes"])
196 if test "$enable_extra_opts" = "yes" ; then
197 AC_DEFINE(NP_EXTRA_OPTS,[1],[Enable INI file parsing.])
198 if test "$enable_libtap" = "yes"; then
199 EXTRA_TEST="$EXTRA_TEST test_ini1 test_ini3 test_opts1 test_opts2 test_opts3"
204 dnl Check for PostgreSQL libraries
206 _SAVEDCPPFLAGS="$CPPFLAGS"
208 ACX_HELP_STRING([--with-pgsql=DIR],
209 [sets path to pgsql installation]),
211 AC_CHECK_LIB(crypt,main)
212 if test "$ac_cv_lib_crypt_main" = "yes" -a "x$PGSQL" != "xno"; then
213 if test -n "$PGSQL"; then
214 LDFLAGS="$LDFLAGS -L$PGSQL/lib"
215 CPPFLAGS="$CPPFLAGS -I$PGSQL/include"
217 AC_CHECK_LIB(pq,PQsetdbLogin,,,-lcrypt)
218 if test "$ac_cv_lib_pq_PQsetdbLogin" = "yes"; then
219 AC_CHECK_HEADERS(pgsql/libpq-fe.h)
220 AC_CHECK_HEADERS(postgresql/libpq-fe.h)
221 AC_CHECK_HEADERS(libpq-fe.h)
222 if [[ -n "$PGSQL" -a "$ac_cv_header_libpq_fe_h" = "yes" ]]; then
223 PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
224 PGINCLUDE="-I$PGSQL/include"
225 elif test "$ac_cv_header_pgsql_libpq_fe_h" = "yes"; then
226 PGLIBS="-lpq -lcrypt"
227 PGINCLUDE="-I/usr/include/pgsql"
228 elif test "$ac_cv_header_postgresql_libpq_fe_h" = "yes"; then
229 PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
230 PGINCLUDE="-I/usr/include/postgresql"
231 elif test "$ac_cv_header_libpq_fe_h" = "yes"; then
232 PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
233 PGINCLUDE="-I$PGSQL/include"
235 if test -z "$PGINCLUDE"; then
236 AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
237 AC_MSG_WARN([install PostgreSQL headers to compile this plugin (see REQUIREMENTS).])
241 EXTRAS="$EXTRAS check_pgsql\$(EXEEXT)"
244 AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
245 AC_MSG_WARN([LIBS="$LIBS" CPPFLAGS="$CPPFLAGS"])
246 AC_MSG_WARN([install PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
249 AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
250 AC_MSG_WARN([install lib crypt and PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
253 CPPFLAGS="$_SAVEDCPPFLAGS"
255 AC_ARG_WITH([dbi], [AS_HELP_STRING([--without-dbi], [Skips the dbi plugin])])
256 dnl Check for DBI libraries
257 AS_IF([test "x$with_dbi" != "xno"], [
259 AC_CHECK_LIB(dbi,dbi_initialize)
260 if test "$ac_cv_lib_dbi_dbi_initialize" = "yes"; then
261 EXTRAS="$EXTRAS check_dbi\$(EXEEXT)"
265 AC_MSG_WARN([Skipping dbi plugin])
266 AC_MSG_WARN([install DBI libs to compile this plugin (see REQUIREMENTS).])
271 AC_ARG_WITH([radius], [AS_HELP_STRING([--without-radius], [Skips the radius plugin])])
273 dnl Check for radius libraries
274 AS_IF([test "x$with_radius" != "xno"], [
276 AC_CHECK_LIB(freeradius-client,rc_read_config)
277 if test "$ac_cv_lib_freeradius_client_rc_read_config" = "yes"; then
278 EXTRAS="$EXTRAS check_radius\$(EXEEXT)"
279 RADIUSLIBS="-lfreeradius-client"
282 AC_CHECK_LIB(radiusclient-ng,rc_read_config)
283 if test "$ac_cv_lib_radiusclient_ng_rc_read_config" = "yes"; then
284 EXTRAS="$EXTRAS check_radius\$(EXEEXT)"
285 RADIUSLIBS="-lradiusclient-ng"
288 AC_CHECK_LIB(radiusclient,rc_read_config)
289 if test "$ac_cv_lib_radiusclient_rc_read_config" = "yes"; then
290 EXTRAS="$EXTRAS check_radius\$(EXEEXT)"
291 RADIUSLIBS="-lradiusclient"
294 AC_MSG_WARN([Skipping radius plugin])
295 AC_MSG_WARN([install radius libs to compile this plugin (see REQUIREMENTS).])
302 AC_ARG_WITH([ldap], [AS_HELP_STRING([--without-ldap], [Skips the LDAP plugin])])
304 dnl Check for LDAP libraries
305 AS_IF([test "x$with_ldap" != "xno"], [
307 AC_CHECK_LIB(ldap,main,,,-llber)
308 if test "$ac_cv_lib_ldap_main" = "yes"; then
309 LDAPLIBS="-lldap -llber"\
310 LDAPINCLUDE="-I/usr/include/ldap"
312 AC_SUBST(LDAPINCLUDE)
313 AC_CHECK_FUNCS(ldap_set_option)
314 EXTRAS="$EXTRAS check_ldap\$(EXEEXT)"
315 AC_CHECK_FUNCS(ldap_init ldap_set_option ldap_get_option ldap_start_tls_s)
317 AC_MSG_WARN([Skipping LDAP plugin])
318 AC_MSG_WARN([install LDAP libs to compile this plugin (see REQUIREMENTS).])
323 dnl Check for headers used by check_ide_smart
326 AC_CHECK_HEADER(linux/hdreg.h, FOUNDINCLUDE=yes, FOUNDINCLUDE=no)
327 if test "$FOUNDINCLUDE" = "yes" ; then
328 AC_CHECK_HEADER(linux/types.h, FOUNDINCLUDE=yes, FOUNDINCLUDE=no)
330 if test "$FOUNDINCLUDE" = "no" ; then
331 AC_MSG_WARN([Skipping check_ide_smart plugin.])
332 AC_MSG_WARN([check_ide_smart requires linux/hdreg.h and linux/types.h.])
336 AC_CHECK_HEADER(dev/ata/atareg.h, FOUNDINCLUDE=yes, FOUNDINCLUDE=no)
337 if test "$FOUNDINCLUDE" = "yes" ; then
338 AC_CHECK_HEADER(dev/ic/wdcreg.h, FOUNDINCLUDE=yes, FOUNDINCLUDE=no)
340 if test "$FOUNDINCLUDE" = "no" ; then
341 AC_MSG_WARN([Skipping check_ide_smart plugin.])
342 AC_MSG_WARN([check_ide_smart requires dev/ata/atareg.h and dev/ic/wdcreg.h])
346 AC_MSG_WARN([Skipping check_ide_smart plugin.])
347 AC_MSG_WARN([check_ide_smart works only on Linux and NetBSD])
350 if test "$FOUNDINCLUDE" = "yes" ; then
351 EXTRAS="$EXTRAS check_ide_smart\$(EXEEXT)"
354 dnl Check for mysql libraries
356 if test $with_mysql = "no" ; then
357 AC_MSG_WARN([Skipping mysql plugin])
358 AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).])
360 EXTRAS="$EXTRAS check_mysql\$(EXEEXT) check_mysql_query\$(EXEEXT)"
361 MYSQLINCLUDE="$np_mysql_include"
362 MYSQLLIBS="$np_mysql_libs"
363 MYSQLCFLAGS="$np_mysql_cflags"
364 AC_SUBST(MYSQLINCLUDE)
366 AC_SUBST(MYSQLCFLAGS)
369 dnl Check for headers used by check_users
370 AC_CHECK_HEADERS(utmpx.h)
371 AM_CONDITIONAL([HAVE_UTMPX], [test "$ac_cv_header_utmpx_h" = "yes"])
373 AC_CHECK_HEADERS(wtsapi32.h, [], [], [#include <windows.h>])
374 AM_CONDITIONAL([HAVE_WTS32API], [test "$ac_cv_header_wtsapi32_h" = "yes"])
376 if test "$ac_cv_header_wtsapi32_h" = "yes"; then
377 WTSAPI32LIBS="-lwtsapi32"
378 AC_SUBST(WTSAPI32LIBS)
381 dnl Fallback to who(1) if the system doesn't provide an utmpx(5) interface
382 if test "$ac_cv_header_utmpx_h" = "no" -a "$ac_cv_header_wtsapi32_h" = "no"
384 AC_PATH_PROG(PATH_TO_WHO,who)
386 if [$PATH_TO_WHO -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
388 ac_cv_path_to_who="$PATH_TO_WHO -q"
390 ac_cv_path_to_who="$PATH_TO_WHO"
393 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$ac_cv_path_to_who",
394 [path and arguments for invoking 'who'])
398 [AS_HELP_STRING([--with-ipv6], [support IPv6 @<:@default=check@:>@])],
399 [], [with_ipv6=check])
401 dnl Check for AF_INET6 support - unistd.h required for Darwin
402 if test "$with_ipv6" != "no"; then
403 AC_CACHE_CHECK([for IPv6 support], np_cv_sys_ipv6, [
405 [#ifdef HAVE_UNISTD_H
408 #include <netinet/in.h>
409 #include <sys/socket.h>],
410 [struct sockaddr_in6 sin6;
413 sin6.sin6_family = AF_INET6;
414 sin6.sin6_port = 587;
415 p = &sin6.sin6_addr;],
416 [np_cv_sys_ipv6=yes],
419 if test "$np_cv_sys_ipv6" = "no" -a "$with_ipv6" != "check"; then
420 AC_MSG_FAILURE([--with-ipv6 was given, but test for IPv6 support failed])
422 if test "$np_cv_sys_ipv6" = "yes"; then
423 AC_DEFINE(USE_IPV6,1,[Enable IPv6 support])
425 with_ipv6="$np_cv_sys_ipv6"
429 dnl Checks for Kerberos. Must come before openssl checks for Redhat EL 3
430 AC_CHECK_HEADERS(krb5.h,FOUNDINCLUDE=yes,FOUNDINCLUDE=no)
431 if test "$FOUNDINCLUDE" = "no"; then
432 _SAVEDCPPFLAGS="$CPPFLAGS"
433 CPPFLAGS="$_SAVEDCPPFLAGS -I/usr/kerberos/include"
434 unset ac_cv_header_krb5_h
435 AC_CHECK_HEADERS(krb5.h,
436 KRB5INCLUDE="-I/usr/kerberos/include"
441 if test "$FOUNDINCLUDE" = "no"; then
442 CPPFLAGS="$_SAVEDCPPFLAGS"
445 dnl *** The following block comes from wget configure.ac ***
446 dnl Unfortunately, as of this writing (OpenSSL 0.9.6), the libcrypto
447 dnl shared library doesn't record its dependency on libdl, so we
448 dnl need to check for it ourselves so we won't fail to link due to a
449 dnl lack of -ldl. Most OSes use dlopen(), but HP-UX uses
451 AC_CHECK_LIB(dl,dlopen)
452 AC_CHECK_LIB(dl,shl_load)
454 dnl openssl detection/configuration
455 if ! test x"$with_openssl" = x"no"; then
456 dnl Check for OpenSSL location if it wasn't already specified
457 if ! test -d "$with_openssl"; then
458 for d in $OPENSSL_DIRS; do
459 if test -x ${d}/bin/openssl || test -x ${d}/sbin/openssl ; then
465 _SAVEDCPPFLAGS="$CPPFLAGS"
466 _SAVEDLDFLAGS="$LDFLAGS"
467 dnl Check for OpenSSL header files
469 if test x"$with_openssl" != x"/usr" ; then
470 CPPFLAGS="$CPPFLAGS -I$with_openssl/include"
471 LDFLAGS="$LDFLAGS -L$with_openssl/lib"
474 dnl check for openssl in $dir/include/openssl
475 AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h,
476 SSLINCLUDE="-I$with_openssl/include"
479 dnl else check to see if $dir/include has it
480 if test "$FOUNDINCLUDE" = "no"; then
481 AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h,
482 SSLINCLUDE="-I$with_openssl/include"
487 dnl if we didn't find it, reset CPPFLAGS
488 if test "$FOUNDINCLUDE" = "no"; then
489 CPPFLAGS="$_SAVEDCPPFLAGS"
490 LDFLAGS="$_SAVEDLDFLAGS"
493 dnl Check for crypto lib
495 LIBS="-L${with_openssl}/lib"
496 AC_CHECK_LIB(crypto,CRYPTO_lock)
497 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
498 dnl Check for SSL lib
499 AC_CHECK_LIB(ssl,main, SSLLIBS="-lssl -lcrypto",,-lcrypto)
503 dnl test headers and libs to decide whether check_http should use SSL
504 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
505 if test "$ac_cv_lib_ssl_main" = "yes"; then
506 if test "$FOUNDINCLUDE" = "yes"; then
514 dnl check for gnutls if openssl isn't found (or is disabled)
515 if test ! "$FOUNDOPENSSL" = "yes" && test ! "$with_gnutls" = "no"; then
516 if test ! "$with_gnutls" = ""; then
517 CPPFLAGS="$CPPFLAGS -I${with_gnutls}/include"
519 AC_CHECK_HEADERS([gnutls/openssl.h],FOUNDGNUTLS="yes",)
520 if test "$FOUNDGNUTLS" = "yes"; then
521 AC_CHECK_LIB(gnutls-openssl,main,SSLLIBS="-lgnutls-openssl")
524 dnl end check for gnutls
526 if test "$FOUNDOPENSSL" = "yes" || test "$FOUNDGNUTLS" = "yes"; then
527 check_tcp_ssl="check_simap check_spop check_jabber check_nntps check_ssmtp"
528 AC_SUBST(check_tcp_ssl)
530 AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
531 if test "$FOUNDOPENSSL" = "yes"; then
532 AC_DEFINE(USE_OPENSSL,1,[Define if using OpenSSL libraries])
536 AC_DEFINE(USE_GNUTLS,1,[Define if using gnutls libraries])
541 dnl else deliberately disabled or no ssl support available
542 AC_MSG_WARN([OpenSSL or GnuTLS libs could not be found or were disabled])
548 dnl Checks for header files.
553 AC_CHECK_HEADERS(signal.h syslog.h uio.h errno.h sys/time.h sys/socket.h sys/un.h sys/poll.h)
554 AC_CHECK_HEADERS(features.h stdarg.h sys/unistd.h ctype.h)
556 dnl Checks for typedefs, structures, and compiler characteristics.
563 AC_CACHE_CHECK([for va_copy],ac_cv_HAVE_VA_COPY,[
564 AC_TRY_LINK([#include <stdarg.h>
565 va_list ap1,ap2;], [va_copy(ap1,ap2);],
566 ac_cv_HAVE_VA_COPY=yes,
567 ac_cv_HAVE_VA_COPY=no)])
568 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
569 AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
571 AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE___VA_COPY,[
572 AC_TRY_LINK([#include <stdarg.h>
573 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
574 ac_cv_HAVE___VA_COPY=yes,
575 ac_cv_HAVE___VA_COPY=no)])
576 if test x"$ac_cv_HAVE___VA_COPY" = x"yes"; then
577 AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
581 AC_TRY_COMPILE([#include <sys/time.h>],
583 struct timezone *tz;],
584 AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
585 AC_TRY_COMPILE([#include <sys/time.h>],
588 gettimeofday(tv, tz);],
589 AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
590 AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
592 dnl Checks for library functions.
593 AC_CHECK_FUNCS(memmove select socket strdup strstr strtol strtoul floor)
596 AC_MSG_CHECKING(return type of socket size)
597 AC_TRY_COMPILE([#include <stdlib.h>
598 #include <sys/types.h>
599 #include <sys/socket.h>],
600 [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
601 ac_cv_socket_size_type=["size_t"]
602 AC_MSG_RESULT(size_t),
603 ac_cv_socket_size_type=["int"]
606 AC_DEFINE_UNQUOTED(SOCKET_SIZE_TYPE, $ac_cv_socket_size_type ,
607 [Define type of socket size])
610 dnl #### Process table test
612 AC_PATH_PROG(PATH_TO_PS,ps)
613 AC_PATH_PROG(PATH_TO_ENV,env)
615 AC_MSG_CHECKING(for ps syntax)
616 AC_ARG_WITH(ps_command,
617 ACX_HELP_STRING([--with-ps-command=PATH],
618 [Verbatim command to execute for ps]),
620 AC_ARG_WITH(ps_format,
621 ACX_HELP_STRING([--with-ps-format=FORMAT],
622 [Format string for scanning ps output]),
625 ACX_HELP_STRING([--with-ps-cols=NUM],
626 [Number of columns in ps command]),
628 AC_ARG_WITH(ps_varlist,
629 ACX_HELP_STRING([--with-ps-varlist=LIST],
630 [Variable list for sscanf of 'ps' output]),
633 if test -n "$PS_COMMAND" && test -n "$PS_FORMAT" && test -n "$PS_COLS" && test -n "$PS_VARLIST"; then
634 ac_cv_ps_command="$PS_COMMAND"
635 ac_cv_ps_format="$PS_FORMAT"
636 ac_cv_ps_varlist="$PS_VARLIST"
637 ac_cv_ps_cols="$PS_COLS"
638 AC_MSG_RESULT([(command-line) $ac_cv_ps_command])
640 dnl Now using the pst3/kmem hack for solaris systems to avoid truncation
641 elif test "$ac_cv_uname_s" = "SunOS"; then
643 # this is a very, very ugly hack, to hardcode the location for plugins
645 if test "$libexecdir" = '${exec_prefix}/libexec'; then
646 if test "$exec_prefix" = "NONE"; then
647 if test "$prefix" = "NONE"; then
648 pst3="$ac_default_prefix/libexec/pst3"
650 pst3="$prefix/libexec/pst3"
653 pst3="$exec_prefix/libexec/pst3"
656 pst3="$libexecdir/pst3"
658 ac_cv_ps_command="$pst3"
659 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
660 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
662 AC_MSG_RESULT([using monitoring-plugins internal ps command (pst3) for solaris])
663 if test `isainfo -b` = 64 ; then
665 AC_MSG_NOTICE([using 64bit pst3])
667 AC_MSG_NOTICE([using 32bit pst3])
669 EXTRAS_ROOT="$EXTRAS_ROOT pst3\$(EXEEXT)"
671 if test "$pst3_use_64bit" = 1; then
672 dnl Test if we can actually compile code in 64bit
674 CFLAGS="$CFLAGS -m64"
677 [AC_LANG_PROGRAM([], [
678 return sizeof(void*) == 8 ? 0 : 1;
684 AC_MSG_NOTICE([using -m64 for 64bit code])
687 AC_MSG_NOTICE([compiler do not like -m64])
690 if test "$pst3_64bit_working" = 0; then
692 CFLAGS="$CFLAGS -xarch=v9"
694 [AC_LANG_PROGRAM([], [
695 return sizeof(void*) == 8 ? 0 : 1;
698 PST3CFLAGS="-xarch=v9"
701 AC_MSG_NOTICE([using -xarch=v9 for 64bit code])
704 AC_MSG_NOTICE([compiler do not like -xarch=v9])
708 if test "$pst3_64bit_working" = 0; then
710 CFLAGS="$CFLAGS -xarch=amd64"
712 [AC_LANG_PROGRAM([], [
713 return sizeof(void*) == 8 ? 0 : 1;
716 PST3CFLAGS="-xarch=amd64"
719 AC_MSG_NOTICE([using -xarch=amd64 for 64bit code])
722 AC_MSG_NOTICE([compiler do not like -xarch=amd64])
726 if test "$pst3_64bit_working" = 0; then
727 AC_MSG_ERROR([I don't know how to build a 64-bit object!])
731 dnl Removing this for the moment - Ton
732 dnl Using /usr/ucb/ps on Solaris systems, to avoid truncation
733 dnl Limitation that command name is not available
734 dnl elif test "$ac_cv_uname_s" = "SunOS" && /usr/ucb/ps -alxwwn 2>/dev/null | \
735 dnl egrep -i ["^ *F +UID +PID +PPID +%C +PRI +NI +SZ +RSS +WCHAN +S +TT +TIME +COMMAND"] > /dev/null
737 dnl ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procpcpu,&procvsz,&procrss,procstat,&pos]"
738 dnl ac_cv_ps_command="/usr/ucb/ps -alxwwn"
739 dnl ac_cv_ps_format=["%*s %d %d %d %d %*d %*d %d %d%*[ 0123456789abcdef]%[OSRZT]%*s %*s %n"]
741 dnl AC_MSG_RESULT([$ac_cv_ps_command])
743 dnl Some gnu/linux systems (debian for one) don't like -axwo and need axwo.
744 dnl so test for this first...
745 elif ps axwo 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \
746 egrep -i ["^ *STAT +[UCOMAND]+ +VSZ +RSS +USER +UID +PID +PPID +COMMAND"] > /dev/null
748 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
749 ac_cv_ps_command="$PATH_TO_PS axwo 'stat uid pid ppid vsz rss pcpu comm args'"
750 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
752 AC_MSG_RESULT([$ac_cv_ps_command])
754 dnl For OpenBSD 3.2 & 3.3. Must come before ps -weo
755 dnl Should also work for FreeBSD 5.2.1 and 5.3
756 dnl STAT UCOMM VSZ RSS USER PPID COMMAND
757 elif ps -axwo 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \
758 egrep -i ["^ *STAT +[UCOMAND]+ +VSZ +RSS +USER +UID +PID +PPID +COMMAND"] > /dev/null
760 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
761 ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid pid ppid vsz rss pcpu comm args'"
762 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
764 AC_MSG_RESULT([$ac_cv_ps_command])
766 dnl Some *BSDs have different format for ps. This is mainly to catch FreeBSD 4.
767 dnl Limitation: Only first 16 chars returned for ucomm field
768 dnl Must come before ps -weo
769 elif ps -axwo 'stat uid pid ppid vsz rss pcpu ucomm command' 2>/dev/null | \
770 egrep -i ["^ *STAT +UID +PID +PPID +VSZ +RSS +%CPU +UCOMM +COMMAND"] > /dev/null
772 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
773 ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid pid ppid vsz rss pcpu ucomm command'"
774 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
776 AC_MSG_RESULT([$ac_cv_ps_command])
778 dnl STAT UCOMM VSZ RSS USER UID PPID COMMAND
779 elif ps -weo 'stat comm vsz rss user uid pid ppid etime args' 2>/dev/null | \
780 egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[ID]+ +P[PID]+ +[ELAPSD]+ +[RGSCOMDNA]+"] >/dev/null
782 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procetime,procprog,&pos]"
783 ac_cv_ps_command="$PATH_TO_PS -weo 'stat uid pid ppid vsz rss pcpu etime comm args'"
784 ac_cv_ps_format="%s %d %d %d %d %d %f %s %s %n"
786 AC_MSG_RESULT([$ac_cv_ps_command])
789 elif ps waxco 'state command vsz rss uid user pid ppid' 2>/dev/null | \
790 egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PID +PPID"] >/dev/null
792 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
793 ac_cv_ps_command="$PATH_TO_PS waxco 'state uid pid ppid vsz rss pcpu command command'"
794 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
796 AC_MSG_RESULT([$ac_cv_ps_command])
798 dnl BSD-like mode in RH 6.1
799 elif ps waxno 'state comm vsz rss uid user pid ppid args' 2>/dev/null | \
800 egrep -i ["^S +COMMAND +VSZ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
802 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
803 ac_cv_ps_command="$PATH_TO_PS waxno 'state uid pid ppid vsz rss pcpu comm args'"
804 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
806 AC_MSG_RESULT([$ac_cv_ps_command])
809 dnl F UID PID PPID CP PRI NI SZ RSS WCHAN STAT TT TIME COMMAND
810 dnl Need the head -1 otherwise test will work because arguments are found
811 elif ps -laxnwww 2>/dev/null | head -1 | \
812 egrep -i ["^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND"] >/dev/null
814 ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
815 ac_cv_ps_command="$PATH_TO_PS -laxnwww"
816 ac_cv_ps_format="%*s %d %d %d %*s %*s %*s %d %d %*s %s %*s %*s %n%s"
818 AC_MSG_RESULT([$ac_cv_ps_command])
820 dnl Debian Linux / procps v1.2.9:
821 dnl FLAGS UID PID PPID PRI NI SIZE RSS WCHAN STA TTY TIME COMMAND
822 dnl 100 0 1 0 0 0 776 76 c0131c8c S ffff 0:11 init [2]
824 elif ps laxnwww 2>/dev/null | \
825 egrep -i ["^ *F(LAGS)? +UID +PID +PPID +PRI +NI +(VSZ)|(SIZE) +RSS +WCHAN +STAT? TTY +TIME +COMMAND"] >/dev/null
827 ac_cv_ps_varlist="[&procuid,&procpid,&procppid,procstat,&procvsz,&procrss,&pos,procprog]"
828 ac_cv_ps_command="$PATH_TO_PS laxnwww"
829 ac_cv_ps_format="%*s %d %d %d %*s %*s %d %d %*s %s %*s %*s %n%s"
831 AC_MSG_RESULT([$ac_cv_ps_command])
833 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
834 elif ps -axo 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \
835 egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
837 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
838 ac_cv_ps_command="$PATH_TO_PS -axo 'stat uid pid ppid vsz rss pcpu comm args'"
839 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
841 AC_MSG_RESULT([$ac_cv_ps_command])
843 dnl Tru64 - needs %*[ +<>] in PS_FORMAT.
844 dnl Has /usr/bin/ps and /sbin/ps - force sbin version
845 dnl Can't use vsize and rssize because comes back with text (eg, 1.5M instead
846 dnl of 1500). Will need big changes to check_procs to support
847 elif /sbin/ps -eo 'stat uid pid ppid pcpu etime comm args' 2>/dev/null | \
848 egrep -i ["^ *S +[UID]+ +[PID]+ +[PID]+ +[%CPU]+ +[ELAPSD]+ +[COMMAND]+ +[COMMAND]+"] > /dev/null
850 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procpcpu,procetime,procprog,&pos]"
851 ac_cv_ps_command="/sbin/ps -eo 'stat uid pid ppid pcpu etime comm args'"
852 ac_cv_ps_format=["%s%*[ +<>] %d %d %d %f %s %s %n"]
854 AC_MSG_RESULT([$ac_cv_ps_command])
856 elif ps -eo 's comm vsz rss user uid pid ppid args' 2>/dev/null | \
857 egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
859 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
860 ac_cv_ps_command="$PATH_TO_PS -eo 's uid pid ppid vsz rss pcpu comm args'"
861 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
863 AC_MSG_RESULT([$ac_cv_ps_command])
865 dnl AIX 4.3.3 and 5.1 do not have an rss field
866 elif ps -eo 'stat uid pid ppid vsz pcpu comm args' 2>/dev/null | \
867 egrep -i ["^ *S[TAUES]* +UID +PID +PPID +VSZ +%CPU +COMMAND +COMMAND"] >/dev/null
869 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procpcpu,procprog,&pos]"
870 ac_cv_ps_command="$PATH_TO_PS -eo 'stat uid pid ppid vsz pcpu comm args'"
871 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
873 AC_MSG_RESULT([$ac_cv_ps_command - with no RSS])
876 elif ps -Ao 's comm vsz rss uid user pid ppid args' 2>/dev/null | \
877 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
879 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
880 ac_cv_ps_command="$PATH_TO_PS -Ao 's uid pid ppid vsz rss pcpu comm args'"
881 # There must be no space between the %s and %n due to a wierd problem in sscanf where
882 # it will return %n as longer than the line length
883 ac_cv_ps_format="%s %d %d %d %d %d %f %s%n"
885 AC_MSG_RESULT([$ac_cv_ps_command])
887 elif ps -Ao 'status comm vsz rss uid user pid ppid args' 2>/dev/null | \
888 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
890 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
891 ac_cv_ps_command="$PATH_TO_PS -Ao 'status uid pid ppid vsz rss pcpu comm args'"
892 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
894 AC_MSG_RESULT([$ac_cv_ps_command])
896 elif ps -Ao 'state comm vsz rss uid user pid ppid args' 2>/dev/null | \
897 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
899 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
900 ac_cv_ps_command="$PATH_TO_PS -Ao 'state uid pid ppid vsz rss pcpu comm args'"
901 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
903 AC_MSG_RESULT([$ac_cv_ps_command])
905 dnl wonder who takes state instead of stat
906 elif ps -ao 'state command vsz rss user pid ppid args' 2>/dev/null | \
907 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
909 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
910 ac_cv_ps_command="$PATH_TO_PS -ao 'state uid pid ppid vsz rss pcpu command args'"
911 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
913 AC_MSG_RESULT([$ac_cv_ps_command])
916 elif ps -el 2>/dev/null | \
917 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
919 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&pos,procprog]"
920 ac_cv_ps_command="$PATH_TO_PS -el (IRIX 53)"
921 ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %d %d %*s %*s %*s %n%s"
923 AC_MSG_RESULT([$ac_cv_ps_command])
926 elif ps -el 2>/dev/null | \
927 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +ADDR +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
929 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&pos,procprog]"
930 ac_cv_ps_command="$PATH_TO_PS -el (IRIX 63)"
931 ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
933 AC_MSG_RESULT([$ac_cv_ps_command])
936 dnl S UID RUID USER RUSER PID PPID VSZ %CPU COMMAND COMMAND
937 dnl S 0 400 root oracle 2805 1 12904 0.00 ora_dism_SEA1X ora_dism_SEA1X
938 dnl S 400 400 oracle oracle 19261 1 126488 0.00 tnslsnr /u01/app/oracle/product/db/11.2.0.3/bin/tnslsnr LISTENER -inherit
939 elif env UNIX95=1 ps -eo 'state uid ruid user ruser pid ppid vsz pcpu comm args' 2>/dev/null | head -n 1 | \
940 egrep -i ["^ *S +UID +RUID +USER +RUSER +PID +PPID +VSZ +%CPU +COMMAND +COMMAND"] >/dev/null
942 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procpcpu,procprog,&pos]"
943 ac_cv_ps_command="$PATH_TO_ENV UNIX95=1 $PATH_TO_PS -eo 'state uid pid ppid vsz pcpu comm args'"
944 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
946 AC_MSG_RESULT([$ac_cv_ps_command])
949 dnl F S UID PID PPID C PRI NI ADDR SZ RSS WCHAN TTY TIME CMD
950 dnl 303 A 0 0 0 120 16 -- 1c07 20 24 - 0:45 swapper
951 elif ps -el 2>/dev/null | \
952 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
954 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&pos,procprog]"
955 ac_cv_ps_command="$PATH_TO_PS -el (AIX 4.1 and HP-UX)"
956 ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
958 AC_MSG_RESULT([$ac_cv_ps_command])
961 elif ps glaxen 2>/dev/null | \
962 egrep -i ["^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND"] >/dev/null
964 ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
965 ac_cv_ps_command="$PATH_TO_PS glaxen"
966 ac_cv_ps_format="%*s %d %d %d %*s %*s %d %d %*s %s %*s %*s %n%s"
968 AC_MSG_RESULT([$ac_cv_ps_command])
971 dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
972 dnl Some truncation will happen in UCOMM column
973 dnl STAT VSZ RSS UID PPID %CPU UCOMM COMMAND
974 dnl Ss 52756 22496 501 1 6.9 Window Manager /System/Library/CoreServices/WindowServer -daemon
975 elif ps wwaxo 'state vsz rss uid pid ppid pcpu ucomm command' 2>/dev/null | \
976 egrep -i ["^STAT +VSZ +RSS +UID +PPID +%CPU +UCOMM +COMMAND"] >/dev/null
978 ac_cv_ps_command="$PATH_TO_PS wwaxo 'state vsz rss uid pid ppid pcpu ucomm command'"
979 ac_cv_ps_varlist="[procstat,&procvsz,&procrss,&procuid,&procpid,&procppid,&procpcpu,procprog,&pos]"
980 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
982 AC_MSG_RESULT([$ac_cv_ps_command])
985 elif ps -Al 2>/dev/null | \
986 egrep -i ["^ *F +S +UID +PID +PPID +CLS +PRI +NI +C +ADDR +SZ +WCHAN +TTY +TIME +COMD"] >/dev/null
988 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&pos,procprog]"
989 ac_cv_ps_command="$PATH_TO_PS -Al"
990 ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
992 AC_MSG_RESULT([$ac_cv_ps_command])
995 AC_MSG_WARN([unable to find usable ps syntax - check_procs and check_nagios will not be compiled])
998 if test -n "$ac_cv_ps_varlist" ; then
999 AC_DEFINE_UNQUOTED(PS_VARLIST,$ac_cv_ps_varlist,
1000 [Variable list for sscanf of 'ps' output])
1001 AC_DEFINE_UNQUOTED(PS_COMMAND,"$ac_cv_ps_command",
1002 [Verbatim command to execute for ps in check_procs])
1003 AC_DEFINE_UNQUOTED(PS_FORMAT,"$ac_cv_ps_format",
1004 [Format string for scanning ps output in check_procs])
1005 AC_DEFINE_UNQUOTED(PS_COLS,$ac_cv_ps_cols,
1006 [Number of columns in ps command])
1007 EXTRAS="$EXTRAS check_procs check_nagios\$(EXEEXT)"
1008 if echo "$ac_cv_ps_varlist" | grep "procetime" >/dev/null; then
1009 AC_DEFINE(PS_USES_PROCETIME,"yes",
1010 [Whether the ps utility uses the "procetime" field])
1014 AC_PATH_PROG(PATH_TO_PING,ping)
1015 AC_PATH_PROG(PATH_TO_PING6,ping6)
1017 AC_ARG_WITH(ping_command,
1018 ACX_HELP_STRING([--with-ping-command=SYNTAX],
1019 [sets syntax for ICMP ping]),
1020 with_ping_command=$withval,)
1022 AC_MSG_CHECKING(for ICMP ping syntax)
1023 ac_cv_ping_packets_first=no
1024 ac_cv_ping_has_timeout=no
1025 if test -n "$with_ping_command"
1027 AC_MSG_RESULT([(command-line) $with_ping_command])
1028 if echo "$with_ping_command" | grep '%d.*%d.*%s' >/dev/null
1030 ac_cv_ping_packets_first=yes
1031 ac_cv_ping_has_timeout=yes
1032 elif echo "$with_ping_command" | grep '%d.*%s.*%d' >/dev/null || \
1033 echo "$with_ping_command" | grep '%s.*%d.*%d' >/dev/null
1035 ac_cv_ping_has_timeout=yes
1036 elif echo "$with_ping_command" | grep '%d.*%s' >/dev/null
1038 ac_cv_ping_packets_first=yes
1041 elif [[ "z$ac_cv_uname_o" = "zCygwin" ]]
1043 with_ping_command="$PATH_TO_PING -n %d -w %d000 %s"
1044 ac_cv_ping_packets_first=yes
1045 ac_cv_ping_has_timeout=yes
1046 AC_MSG_RESULT([$with_ping_command])
1048 elif [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1049 $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
1050 egrep -i "^round-trip|^rtt" >/dev/null
1052 with_ping_command="$PATH_TO_PING -n -U -c %d %s"
1053 ac_cv_ping_packets_first=yes
1054 AC_MSG_RESULT([$with_ping_command])
1056 elif $PATH_TO_PING -n -U -w 10 -c 1 127.0.0.1 2>/dev/null | \
1057 egrep -i "^round-trip|^rtt" >/dev/null
1059 with_ping_command="$PATH_TO_PING -n -U -w %d -c %d %s"
1060 ac_cv_ping_packets_first=yes
1061 ac_cv_ping_has_timeout=yes
1062 AC_MSG_RESULT([$with_ping_command])
1064 elif $PATH_TO_PING -n -U -c 1 127.0.0.1 2>/dev/null | \
1065 egrep -i "^round-trip|^rtt" >/dev/null
1067 with_ping_command="$PATH_TO_PING -n -U -c %d %s"
1068 ac_cv_ping_packets_first=yes
1069 AC_MSG_RESULT([$with_ping_command])
1071 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
1072 egrep -i "^round-trip|^rtt" >/dev/null
1074 with_ping_command="$PATH_TO_PING -n -c %d %s"
1075 ac_cv_ping_packets_first=yes
1076 AC_MSG_RESULT([$with_ping_command])
1078 elif $PATH_TO_PING -n 127.0.0.1 -c 1 2>/dev/null | \
1079 egrep -i "^round-trip|^rtt" >/dev/null
1081 with_ping_command="$PATH_TO_PING -n %s -c %d"
1082 AC_MSG_RESULT([$with_ping_command])
1084 elif $PATH_TO_PING 127.0.0.1 -n 1 2>/dev/null | \
1085 egrep -i "^round-trip|^rtt" >/dev/null
1087 with_ping_command="$PATH_TO_PING %s -n %d"
1088 AC_MSG_RESULT([$with_ping_command])
1090 elif $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
1091 egrep -i "^round-trip|^rtt" >/dev/null
1093 with_ping_command="$PATH_TO_PING -n -s %s 56 %d"
1094 AC_MSG_RESULT([$with_ping_command])
1096 elif $PATH_TO_PING -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | \
1097 egrep -i "^round-trip|^rtt" >/dev/null
1099 with_ping_command="$PATH_TO_PING -n -h %s -s 56 -c %d"
1100 AC_MSG_RESULT([$with_ping_command])
1102 elif $PATH_TO_PING -n -s 56 -c 1 127.0.0.1 2>/dev/null | \
1103 egrep -i "^round-trip|^rtt" >/dev/null
1105 with_ping_command="$PATH_TO_PING -n -s 56 -c %d %s"
1106 ac_cv_ping_packets_first=yes
1107 AC_MSG_RESULT([$with_ping_command])
1109 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
1110 egrep -i "^round-trip|^rtt" >/dev/null
1112 with_ping_command="$PATH_TO_PING -n -c %d %s"
1113 ac_cv_ping_packets_first=yes
1114 AC_MSG_RESULT([$with_ping_command])
1117 AC_MSG_WARN([unable to find usable ping syntax])
1120 AC_DEFINE_UNQUOTED(PING_COMMAND,"$with_ping_command",
1121 [path and args for ICMP ping command])
1123 if test "x$ac_cv_ping_packets_first" != "xno"
1125 AC_DEFINE(PING_PACKETS_FIRST,1,
1126 [Define if packet count must precede host])
1129 if test "x$ac_cv_ping_has_timeout" != "xno"
1131 AC_DEFINE(PING_HAS_TIMEOUT,1,
1132 [Define if ping has its own timeout option that should be set])
1135 AC_ARG_WITH(ping6_command,
1136 ACX_HELP_STRING([--with-ping6-command=SYNTAX],
1137 [sets syntax for ICMPv6 ping]),
1138 with_ping6_command=$withval,)
1140 if test x"$with_ipv6" != xno ; then
1141 AC_MSG_CHECKING(for ICMPv6 ping syntax)
1142 ac_cv_ping6_packets_first=no
1143 if test -n "$with_ping6_command"
1145 AC_MSG_RESULT([(command-line) $with_ping6_command])
1146 if echo "$with_ping6_command" | grep '%d.*%d.*%s' >/dev/null
1148 ac_cv_ping6_packets_first=yes
1149 elif echo "$with_ping6_command" | grep '%d.*%s.*%d' >/dev/null || \
1150 echo "$with_ping6_command" | grep '%s.*%d.*%d' >/dev/null
1152 # Just keep same logic as ping (IPv4) if we ever need ac_cv_ping6_has_timeout
1154 elif echo "$with_ping6_command" | grep '%d.*%s' >/dev/null
1156 ac_cv_ping6_packets_first=yes
1158 elif [[ "z$ac_cv_uname_o" = "zCygwin" -a "x$PATH_TO_PING" != "x" ]]; then
1159 with_ping6_command="$PATH_TO_PING -6 -n %d -w %d000 %s"
1160 ac_cv_ping6_packets_first=yes
1161 ac_cv_ping_has_timeout=yes
1162 AC_MSG_RESULT([$with_ping6_command])
1163 elif test "x$PATH_TO_PING6" != "x"; then
1164 if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1165 $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1166 egrep -i "^round-trip|^rtt" >/dev/null
1168 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1169 ac_cv_ping6_packets_first=yes
1170 AC_MSG_RESULT([$with_ping6_command])
1172 elif $PATH_TO_PING6 -n -U -w 10 -c 1 ::1 2>/dev/null | \
1173 egrep -i "^round-trip|^rtt" >/dev/null
1175 with_ping6_command="$PATH_TO_PING6 -n -U -w %d -c %d %s"
1176 ac_cv_ping6_packets_first=yes
1177 ac_cv_ping_has_timeout=yes
1178 AC_MSG_RESULT([$with_ping6_command])
1180 elif $PATH_TO_PING6 -n -U -c 1 ::1 2>/dev/null | \
1181 egrep -i "^round-trip|^rtt" >/dev/null
1183 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1184 ac_cv_ping6_packets_first=yes
1185 AC_MSG_RESULT([$with_ping6_command])
1187 elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1188 egrep -i "^round-trip|^rtt" >/dev/null
1190 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1191 ac_cv_ping6_packets_first=yes
1192 AC_MSG_RESULT([$with_ping6_command])
1194 elif $PATH_TO_PING6 -n ::1 -c 1 2>/dev/null | \
1195 egrep -i "^round-trip|^rtt" >/dev/null
1197 with_ping6_command="$PATH_TO_PING6 -n %s -c %d"
1198 AC_MSG_RESULT([$with_ping6_command])
1200 elif $PATH_TO_PING6 ::1 -n 1 2>/dev/null | \
1201 egrep -i "^round-trip|^rtt" >/dev/null
1203 with_ping6_command="$PATH_TO_PING6 %s -n %d"
1204 AC_MSG_RESULT([$with_ping6_command])
1206 elif $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1207 egrep -i "^round-trip|^rtt" >/dev/null
1209 with_ping6_command="$PATH_TO_PING6 -n -s %s 56 %d"
1210 AC_MSG_RESULT([$with_ping6_command])
1212 elif $PATH_TO_PING6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1213 egrep -i "^round-trip|^rtt" >/dev/null
1215 with_ping6_command="$PATH_TO_PING6 -n -h %s -s 56 -c %d"
1216 AC_MSG_RESULT([$with_ping6_command])
1218 elif $PATH_TO_PING6 -n -s 56 -c 1 ::1 2>/dev/null | \
1219 egrep -i "^round-trip|^rtt" >/dev/null
1221 with_ping6_command="$PATH_TO_PING6 -n -s 56 -c %d %s"
1222 ac_cv_ping6_packets_first=yes
1223 AC_MSG_RESULT([$with_ping_command])
1225 elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1226 egrep -i "^round-trip|^rtt" >/dev/null
1228 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1229 ac_cv_ping6_packets_first=yes
1230 AC_MSG_RESULT([$with_ping6_command])
1234 elif test "x$PATH_TO_PING" != "x"; then
1235 if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1236 $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1237 egrep -i "^round-trip|^rtt" >/dev/null
1239 with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1240 ac_cv_ping6_packets_first=yes
1241 AC_MSG_RESULT([$with_ping6_command])
1243 elif $PATH_TO_PING -A inet6 -n -U -c 1 ::1 2>/dev/null | \
1244 egrep -i "^round-trip|^rtt" >/dev/null
1246 with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1247 ac_cv_ping6_packets_first=yes
1248 AC_MSG_RESULT([$with_ping6_command])
1250 elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1251 egrep -i "^round-trip|^rtt" >/dev/null
1253 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1254 ac_cv_ping6_packets_first=yes
1255 AC_MSG_RESULT([$with_ping6_command])
1257 elif $PATH_TO_PING -A inet6 -n ::1 -c 1 2>/dev/null | \
1258 egrep -i "^round-trip|^rtt" >/dev/null
1260 with_ping6_command="$PATH_TO_PING -A inet6 -n %s -c %d"
1261 AC_MSG_RESULT([$with_ping6_command])
1263 elif $PATH_TO_PING -A inet6 ::1 -n 1 2>/dev/null | \
1264 egrep -i "^round-trip|^rtt" >/dev/null
1266 with_ping6_command="$PATH_TO_PING -A inet6 %s -n %d"
1267 AC_MSG_RESULT([$with_ping6_command])
1269 elif $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1270 egrep -i "^round-trip|^rtt" >/dev/null
1272 with_ping6_command="$PATH_TO_PING -A inet6 -n -s %s 56 %d"
1273 AC_MSG_RESULT([$with_ping6_command])
1275 elif $PATH_TO_PING -A inet6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1276 egrep -i "^round-trip|^rtt" >/dev/null
1278 with_ping6_command="$PATH_TO_PING -A inet6 -n -h %s -s 56 -c %d"
1279 AC_MSG_RESULT([$with_ping6_command])
1281 elif $PATH_TO_PING -A inet6 -n -s 56 -c 1 ::1 2>/dev/null | \
1282 egrep -i "^round-trip|^rtt" >/dev/null
1284 with_ping6_command="$PATH_TO_PING -A inet6 -n -s 56 -c %d %s"
1285 ac_cv_ping6_packets_first=yes
1286 AC_MSG_RESULT([$with_ping_command])
1288 elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1289 egrep -i "^round-trip|^rtt" >/dev/null
1291 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1292 ac_cv_ping6_packets_first=yes
1293 AC_MSG_RESULT([$with_ping6_command])
1299 if test "x$with_ping6_command" != "x"; then
1300 AC_DEFINE_UNQUOTED(PING6_COMMAND,"$with_ping6_command",
1301 [path and args for ICMPv6 ping command])
1303 AC_MSG_RESULT([none])
1306 if test "x$ac_cv_ping6_packets_first" != "xno"; then
1307 AC_DEFINE(PING6_PACKETS_FIRST,1,
1308 [Define if packet count must precede host])
1313 AC_ARG_WITH(nslookup_command,
1314 ACX_HELP_STRING([--with-nslookup-command=PATH],
1315 [sets path to nslookup executable]),
1316 ac_cv_nslookup_command=$withval)
1317 if test -n "$ac_cv_nslookup_command"; then
1318 AC_MSG_NOTICE([Using specific nslookup at $ac_cv_nslookup_command])
1320 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
1321 if test -n "$PATH_TO_NSLOOKUP"
1323 AC_MSG_CHECKING(for nslookup syntax)
1324 if $PATH_TO_NSLOOKUP -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
1326 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP"
1327 AC_MSG_RESULT([$ac_cv_nslookup_command])
1330 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP -sil"
1331 AC_MSG_RESULT([$ac_cv_nslookup_command])
1335 AC_MSG_WARN([nslookup command not found])
1339 if test -n "$ac_cv_nslookup_command"; then
1340 EXTRAS="$EXTRAS check_dns\$(EXEEXT)"
1341 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$ac_cv_nslookup_command", [path and args for nslookup])
1344 AC_MSG_CHECKING([for number of online cpus])
1345 AC_TRY_COMPILE([#include <unistd.h>],
1346 [sysconf(_SC_NPROCESSORS_ONLN) > 0;],
1347 AC_DEFINE(HAVE_SYSCONF__SC_NPROCESSORS_ONLN,1,[Define if sysconf returns number of online cpus])
1348 AC_MSG_RESULT([sysconf(_SC_NPROCESSORS_ONLN)]),
1349 AC_MSG_RESULT([cannot calculate])
1352 AC_MSG_CHECKING([for number of available cpus])
1353 AC_TRY_COMPILE([#include <unistd.h>],
1354 [sysconf(_SC_NPROCESSORS_CONF) > 0;],
1355 AC_DEFINE(HAVE_SYSCONF__SC_NPROCESSORS_CONF,1,[Define if sysconf returns number of available cpus])
1356 AC_MSG_RESULT([sysconf(_SC_NPROCESSORS_CONF)]),
1357 AC_MSG_RESULT([cannot calculate])
1360 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
1361 AC_ARG_WITH(uptime_command,
1362 ACX_HELP_STRING([--with-uptime-command=PATH],
1363 [sets path to uptime]), PATH_TO_UPTIME=$withval)
1364 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
1366 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
1367 AC_ARG_WITH(rpcinfo_command,
1368 ACX_HELP_STRING([--with-rpcinfo-command=PATH],
1369 [sets path to rpcinfo]), PATH_TO_RPCINFO=$withval)
1370 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
1372 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
1373 if test -x "$PATH_TO_LMSTAT"
1375 AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
1377 AC_MSG_WARN([Get lmstat from Globetrotter Software to monitor flexlm licenses])
1380 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
1381 AC_ARG_WITH(smbclient_command,
1382 ACX_HELP_STRING([--with-smbclient-command=PATH],
1383 [sets path to smbclient]),
1384 PATH_TO_SMBCLIENT=$withval)
1385 if test -n "$PATH_TO_SMBCLIENT"
1387 AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
1389 AC_MSG_WARN([Get smbclient from Samba.org to monitor SMB shares])
1392 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
1393 AC_ARG_WITH(snmpget_command,
1394 ACX_HELP_STRING([--with-snmpget-command=PATH],
1395 [Path to snmpget command]),
1396 PATH_TO_SNMPGET=$withval)
1397 if test -n "$PATH_TO_SNMPGET"
1399 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
1400 EXTRAS="$EXTRAS check_hpjd check_snmp\$(EXEEXT)"
1402 AC_MSG_WARN([Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins])
1405 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
1406 AC_ARG_WITH(snmpgetnext_command,
1407 ACX_HELP_STRING([--with-snmpgetnext-command=PATH],
1408 [Path to snmpgetnext command]),
1409 PATH_TO_SNMPGETNEXT=$withval)
1410 if test -n "$PATH_TO_SNMPGETNEXT"
1412 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
1415 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null )
1417 AC_MSG_CHECKING(for Net::SNMP perl module)
1418 AC_MSG_RESULT([found])
1420 AC_MSG_WARN([Tried $PERL - install Net::SNMP perl module if you want to use the perl snmp plugins])
1423 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
1424 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
1425 AC_ARG_WITH(qstat_command,
1426 ACX_HELP_STRING([--with-qstat-command=PATH],
1427 [Path to qstat command]), PATH_TO_QSTAT=$withval)
1429 if test -x "$PATH_TO_QUAKESTAT"
1431 ac_cv_path_to_qstat="$PATH_TO_QUAKESTAT"
1432 EXTRAS="$EXTRAS check_game\$(EXEEXT)"
1434 elif test -n "$PATH_TO_QSTAT"
1436 ac_cv_path_to_qstat="$PATH_TO_QSTAT"
1437 EXTRAS="$EXTRAS check_game\$(EXEEXT)"
1439 AC_MSG_WARN([Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin])
1442 if test $ac_cv_path_to_qstat
1444 AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$ac_cv_path_to_qstat",
1445 [path to qstat/quakestat])
1448 AC_PATH_PROG(PATH_TO_FPING,fping)
1449 AC_PATH_PROG(PATH_TO_FPING6,fping6)
1451 AC_ARG_WITH(fping_command,
1452 ACX_HELP_STRING([--with-fping-command=PATH],
1453 [Path to fping command]), PATH_TO_FPING=$withval)
1454 AC_ARG_WITH(fping6_command,
1455 ACX_HELP_STRING([--with-fping6-command=PATH],
1456 [Path to fping6 command]), PATH_TO_FPING6=$withval)
1458 if test -n "$PATH_TO_FPING"
1460 AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
1461 EXTRAS="$EXTRAS check_fping\$(EXEEXT)"
1462 if test x"$with_ipv6" != xno && test -n "$PATH_TO_FPING6"; then
1463 AC_DEFINE_UNQUOTED(PATH_TO_FPING6,"$PATH_TO_FPING6",[path to fping6])
1466 AC_MSG_WARN([Get fping from http://www.fping.com in order to make check_fping plugin])
1469 AC_PATH_PROG(PATH_TO_SSH,ssh)
1470 AC_ARG_WITH(ssh_command,
1471 ACX_HELP_STRING([--with-ssh-command=PATH],
1472 [sets path for ssh]), PATH_TO_SSH=$withval)
1473 if test -n "$PATH_TO_SSH"
1475 AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
1476 EXTRAS="$EXTRAS check_by_ssh\$(EXEEXT)"
1478 AC_MSG_WARN([Get ssh in order to make check_by_ssh plugin])
1481 AC_PATH_PROG(PATH_TO_SUDO,sudo)
1482 AC_ARG_WITH(sudo_command,
1483 ACX_HELP_STRING([--with-sudo-command=PATH],
1484 [sets path to sudo]), PATH_TO_SUDO=$withval)
1485 if test -n "$PATH_TO_SUDO"
1487 AC_DEFINE_UNQUOTED(PATH_TO_SUDO,"$PATH_TO_SUDO",[path to sudo])
1489 AC_MSG_WARN([Could not find sudo or eqivalent])
1492 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
1493 AC_ARG_WITH(mailq_command,
1494 ACX_HELP_STRING([--with-mailq-command=PATH],
1495 [sets path to mailq]), PATH_TO_MAILQ=$withval)
1496 if test -n "$PATH_TO_MAILQ"
1498 AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
1500 AC_MSG_WARN([Could not find mailq or eqivalent])
1503 AC_PATH_PROG(PATH_TO_QMAIL_QSTAT,qmail-qstat)
1504 AC_ARG_WITH(qmail_qstat_command,
1505 ACX_HELP_STRING([--with-qmail-qstat-command=PATH],
1506 [sets path to qmail-qstat]), PATH_TO_QMAIL_QSTAT=$withval)
1507 if test -n "$PATH_TO_QMAIL_QSTAT"
1509 AC_DEFINE_UNQUOTED(PATH_TO_QMAIL_QSTAT,"$PATH_TO_QMAIL_QSTAT",[path to qmail-qstat])
1511 AC_MSG_WARN([Could not find qmail-qstat or eqivalent])
1514 dnl SWAP info required is amount allocated/available and amount free
1515 dnl The plugin works through all the swap devices and adds up the total swap
1517 AC_PATH_PROG(PATH_TO_SWAP,swap)
1518 if (test -n "$PATH_TO_SWAP")
1520 AC_MSG_CHECKING([for $PATH_TO_SWAP format])
1521 if [$PATH_TO_SWAP -l 2>&1 >/dev/null]
1524 ac_cv_swap_command="$PATH_TO_SWAP -l"
1525 if [$PATH_TO_SWAP -l 2>/dev/null | \
1526 egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" \
1529 ac_cv_swap_format=[" %*d %*s %*d,%*d %*d %*d %f %f"]
1530 ac_cv_swap_conv=2048
1531 AC_MSG_RESULT([using IRIX format swap])
1533 elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null]
1535 ac_cv_swap_format=["%*s %*[0-9,-] %*d %f %f"]
1536 ac_cv_swap_conv=2048
1537 AC_MSG_RESULT([using Unixware format swap])
1539 dnl if we don't know what format swap's output is
1540 dnl we might as well pretend we didn't see it
1542 ac_cv_swap_command=""
1545 dnl end if for PATH_TO_SWAP
1548 AC_PATH_PROG(PATH_TO_SWAPINFO,swapinfo)
1549 if (test -n "$PATH_TO_SWAPINFO")
1551 AC_MSG_CHECKING([for $PATH_TO_SWAPINFO format])
1552 if [$PATH_TO_SWAPINFO -k 2>&1 | egrep -i "^Device" >/dev/null]
1555 ac_cv_swap_command="$PATH_TO_SWAPINFO -k"
1557 if [$PATH_TO_SWAPINFO -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
1559 ac_cv_swap_format=["%*s %f %*d %f"]
1560 ac_cv_swap_conv=1024
1561 AC_MSG_RESULT([using FreeBSD format swapinfo])
1564 elif [$PATH_TO_SWAPINFO -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
1567 ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM"
1568 ac_cv_swap_format=["%*s %f %*d %f"]
1569 ac_cv_swap_conv=1024
1570 AC_MSG_RESULT([using HP-UX format swapinfo])
1572 dnl end if for PATH_TO_SWAPINFO
1575 AC_PATH_PROG(PATH_TO_LSPS,lsps)
1576 if (test -n "$PATH_TO_LSPS")
1578 AC_MSG_CHECKING([for $PATH_TO_LSPS format])
1579 if [$PATH_TO_LSPS -a 2>/dev/null | egrep -i "^Page Space" > /dev/null]
1582 ac_cv_swap_command="$PATH_TO_LSPS -a"
1583 ac_cv_swap_format=["%*s %*s %*s %f%*s %f %*s"]
1585 AC_MSG_RESULT([using AIX lsps])
1587 dnl end if for PATH_TO_SWAPINFO
1591 dnl test for swapctl system call, both the 2-arg and 3-arg variants
1592 dnl fwict, the 2-arg is an SVR4 standard, whereas the 3-arg is shared
1593 dnl in the various BSD's
1596 AC_CHECK_HEADERS([sys/stat.h sys/param.h])
1597 AC_CHECK_HEADERS([sys/swap.h], [], [], [
1598 #ifdef HAVE_SYS_PARAM_H
1599 #include <sys/param.h>
1602 AC_CHECK_DECLS([swapctl],,,[
1604 #include <sys/types.h>
1605 #include <sys/param.h>
1606 #include <sys/stat.h>
1607 #include <sys/swap.h>
1609 AC_CHECK_TYPES([swaptbl_t, swapent_t],,,[
1610 #include <sys/types.h>
1611 #include <sys/param.h>
1612 #include <sys/stat.h>
1613 #include <sys/swap.h>
1615 AC_CHECK_MEMBERS([struct swapent.se_nblks],,,[
1617 #include <sys/types.h>
1618 #include <sys/param.h>
1619 #include <sys/stat.h>
1620 #include <sys/swap.h>
1623 if test "$ac_cv_have_decl_swapctl" = "yes";
1625 EXTRAS="$EXTRAS check_swap\$(EXEEXT)"
1626 AC_MSG_CHECKING([for 2-arg (SVR4) swapctl])
1627 if test "$ac_cv_type_swaptbl_t" = "yes" -a \
1628 "$ac_cv_type_swapent_t" = "yes";
1630 AC_MSG_RESULT([yes])
1631 ac_cv_check_swap_swapctl_svr4="1";
1632 AC_DEFINE([CHECK_SWAP_SWAPCTL_SVR4],1,
1633 [Define if 2-argument SVR4 swapctl exists])
1636 AC_MSG_CHECKING([for 3-arg (*BSD) swapctl])
1637 if test "$ac_cv_member_struct_swapent_se_nblks" = "yes";
1639 AC_MSG_RESULT([yes])
1640 AC_DEFINE([CHECK_SWAP_SWAPCTL_BSD],1,
1641 [Define if 3-argument BSD swapctl exists])
1646 AC_MSG_CHECKING([for whether swapctl uses blocks or pages])
1647 if test "$ac_cv_check_swap_swapctl_svr4" = "1";
1650 dnl the SVR4 spec returns values in pages
1652 AC_MSG_RESULT([page])
1653 AC_CHECK_DECLS([sysconf])
1654 AC_MSG_CHECKING([for system page size])
1655 if test "$ac_cv_have_decl_sysconf" = "yes";
1657 AC_MSG_RESULT([determined by sysconf(3)])
1658 ac_cv_swap_conv="(1048576/sysconf(_SC_PAGESIZE))"
1660 AC_MSG_WARN([don't know. guessing 4096k])
1665 dnl the BSD spec returns values in blocks
1667 AC_MSG_RESULT([blocks (assuming 512b)])
1668 ac_cv_swap_conv=2048
1670 AC_DEFINE_UNQUOTED(SWAP_CONVERSION,$ac_cv_swap_conv,
1671 [Conversion factor to MB])
1674 dnl end tests for the swapctl system calls
1678 if test "x$ac_cv_have_swap" != "x"
1680 AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
1681 EXTRAS="$EXTRAS check_swap\$(EXEEXT)"
1683 if test "x$ac_cv_swap_command" != "x"
1685 AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$ac_cv_swap_command",
1686 [Path to swap/swapinfo binary, with any args])
1687 AC_DEFINE_UNQUOTED(SWAP_FORMAT,"$ac_cv_swap_format",
1688 [Format string for parsing swap output])
1689 AC_DEFINE_UNQUOTED(SWAP_CONVERSION,$ac_cv_swap_conv,
1690 [Conversion factor to MB])
1693 AC_ARG_WITH(proc-meminfo,
1694 ACX_HELP_STRING([--with-proc-meminfo=PATH],
1695 [path to /proc/meminfo or equivalent]),
1696 ac_cv_proc_meminfo=$withval)
1697 dnl dunno why this does not work below - use hack (kbd)
1698 dnl fine on linux, broken on solaris
1699 dnl if /bin/test -e "/proc/meminfo"
1700 AC_MSG_CHECKING([for /proc/meminfo])
1701 if test -n "$ac_cv_proc_meminfo"; then
1702 AC_MSG_RESULT([(command line) $ac_cv_proc_meminfo])
1703 elif [cat /proc/meminfo > /dev/null 2>&1]; then
1704 AC_MSG_RESULT([found /proc/meminfo])
1705 ac_cv_proc_meminfo="/proc/meminfo"
1710 if test -n "$ac_cv_proc_meminfo"; then
1711 AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
1712 AC_DEFINE_UNQUOTED(PROC_MEMINFO,"$ac_cv_proc_meminfo",[path to /proc/meminfo if name changes])
1713 EXTRAS="$EXTRAS check_swap\$(EXEEXT)"
1716 AC_PATH_PROG(PATH_TO_DIG,dig)
1717 AC_ARG_WITH(dig_command,
1718 ACX_HELP_STRING([--with-dig-command=PATH],
1719 [Path to dig command]), PATH_TO_DIG=$withval)
1720 if test -n "$PATH_TO_DIG"; then
1721 EXTRAS="$EXTRAS check_dig\$(EXEEXT)"
1722 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
1725 AC_PATH_PROG(PATH_TO_APTGET,apt-get)
1726 AC_ARG_WITH(apt-get_command,
1727 ACX_HELP_STRING([--with-apt-get-command=PATH],
1728 [Path to apt-get command]),
1729 with_apt_get_command=$withval,
1730 with_apt_get_command=$PATH_TO_APTGET)
1731 AC_DEFINE_UNQUOTED(PATH_TO_APTGET,"$PATH_TO_APTGET",[Path to apt-get command, if present])
1732 if test -n "$PATH_TO_APTGET" ; then
1733 EXTRAS="$EXTRAS check_apt\$(EXEEXT)"
1737 if test -f $srcdir/plugins/check_nt.c ; then
1738 EXTRAS="$EXTRAS check_nt\$(EXEEXT)"
1742 dnl used in check_dhcp
1743 AC_CHECK_HEADERS(sys/sockio.h)
1747 AC_DEFINE(__bsd__,1,[bsd specific code in check_dhcp.c])
1750 AC_DEFINE(__linux__,1,[linux specific code in check_dhcp.c])
1753 AC_DEFINE(__sun__,1,[sun specific code in check_dhcp.c])
1756 AC_DEFINE(__hpux__,1,[hpux specific code in check_dhcp.c])
1761 AC_SUBST(EXTRAS_ROOT)
1762 AC_SUBST(EXTRA_NETOBJS)
1765 AM_GNU_GETTEXT([external], [need-ngettext])
1766 AM_GNU_GETTEXT_VERSION(0.15)
1768 dnl Check for Redhat spopen problem
1769 dnl Wierd problem where ECHILD is returned from a wait call in error
1770 dnl Only appears to affect nslookup and dig calls. Only affects redhat around
1771 dnl 2.6.9-11 (okay in 2.6.9-5). Redhat investigating root cause
1772 dnl We patch plugins/popen.c
1773 dnl Need to add smp because uname different on those
1774 dnl Can force patch to be applied with --enable-redhat-pthread-workaround
1775 AC_ARG_ENABLE(redhat-pthread-workaround,
1776 AC_HELP_STRING([--enable-redhat-pthread-workaround],
1777 [force Redhat patch to be applied (default: test system)]),
1778 [ac_cv_enable_redhat_pthread_workaround=$enableval],
1779 [ac_cv_enable_redhat_pthread_workaround=test])
1780 if test "$ac_cv_enable_redhat_pthread_workaround" = "test" ; then
1781 if echo $ac_cv_uname_r | egrep "\.EL(smp)?$" >/dev/null 2>&1 ; then
1782 AC_MSG_NOTICE([See https://www.monitoring-plugins.org/doc/faq/configure-hangs.html if this next part takes a long time])
1783 AC_MSG_CHECKING(for redhat spopen problem)
1784 ( cd config_test && make && make test ) > /dev/null 2>&1
1785 if test $? -eq 0 ; then
1788 AC_MSG_RESULT(error)
1789 AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, [Workaround on redhat in spopen])
1792 elif test "$ac_cv_enable_redhat_pthread_workaround" = "yes" ; then
1793 AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, [Forced workaround on redhat in spopen])
1797 AC_ARG_ENABLE(perl-modules,
1798 AC_HELP_STRING([--enable-perl-modules],
1799 [Enables installation of Monitoring::Plugin and its dependencies (default: no)]),
1800 [enable_perl_modules=$enableval],
1801 [enable_perl_modules=no])
1802 if test "$enable_perl_modules" = "yes" ; then
1803 AC_SUBST(PERLMODS_DIR,perlmods)
1806 # From Tap configure
1807 # Checks for libraries
1810 LDFLAGS="$LDFLAGS -pthread"
1814 AC_CHECK_LIB(pthread, main)
1818 dnl External libraries - see ACKNOWLEDGEMENTS
1821 dnl Some helpful common compile errors checked here
1822 if test "$ac_cv_uname_s" = 'SunOS' -a \( "x$ac_cv_prog_ac_ct_AR" = "x" -o "$ac_cv_prog_ac_ct_AR" = 'false' \) ; then
1823 AC_MSG_ERROR(No ar found for Solaris - is /usr/ccs/bin in PATH?)
1832 plugins-root/Makefile
1833 plugins-scripts/Makefile
1834 plugins-scripts/utils.pm
1835 plugins-scripts/utils.sh
1843 dnl the ones below that are commented out need to be cleaned up
1844 dnl in the configure code above to use with_foo instead of ac_cv_foo
1845 dnl if we want them to show up here. it'd also make the code cleaner.
1846 dnl i'll get to that on another rainy day :) -sf
1847 ACX_FEATURE([with],[apt-get-command])
1848 dnl ACX_FEATURE([with],[dig-command])
1849 dnl ACX_FEATURE([with],[fping-command])
1850 dnl ACX_FEATURE([with],[mailq-command])
1851 dnl ACX_FEATURE([with],[nslookup-command])
1852 ACX_FEATURE([with],[ping6-command])
1853 ACX_FEATURE([with],[ping-command])
1854 dnl ACX_FEATURE([with],[qstat-command])
1855 dnl ACX_FEATURE([with],[rpcinfo-command])
1856 dnl ACX_FEATURE([with],[smbclient-command])
1857 dnl ACX_FEATURE([with],[snmpget-command])
1858 dnl ACX_FEATURE([with],[snmpgetnext-command])
1859 dnl ACX_FEATURE([with],[ssh-command])
1860 dnl ACX_FEATURE([with],[uptime-command])
1862 dnl ACX_FEATURE([with],[proc-meminfo])
1863 dnl ACX_FEATURE([with],[ps-command])
1864 dnl ACX_FEATURE([with],[ps-format])
1865 dnl ACX_FEATURE([with],[ps-cols])
1866 dnl ACX_FEATURE([with],[ps-varlist])
1868 ACX_FEATURE([with],[ipv6])
1869 ACX_FEATURE([with],[mysql])
1870 ACX_FEATURE([with],[openssl])
1871 ACX_FEATURE([with],[gnutls])
1872 ACX_FEATURE([enable],[extra-opts])
1873 ACX_FEATURE([with],[perl])
1874 ACX_FEATURE([enable],[perl-modules])
1875 ACX_FEATURE([with],[cgiurl])
1876 ACX_FEATURE([with],[trusted-path])
1877 ACX_FEATURE([enable],[libtap])