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(radcli,rc_read_config)
277 if test "$ac_cv_lib_radcli_rc_read_config" = "yes"; then
278 EXTRAS="$EXTRAS check_radius\$(EXEEXT)"
279 RADIUSLIBS="-lradcli"
282 AC_CHECK_LIB(freeradius-client,rc_read_config)
283 if test "$ac_cv_lib_freeradius_client_rc_read_config" = "yes"; then
284 EXTRAS="$EXTRAS check_radius\$(EXEEXT)"
285 RADIUSLIBS="-lfreeradius-client"
288 AC_CHECK_LIB(radiusclient-ng,rc_read_config)
289 if test "$ac_cv_lib_radiusclient_ng_rc_read_config" = "yes"; then
290 EXTRAS="$EXTRAS check_radius\$(EXEEXT)"
291 RADIUSLIBS="-lradiusclient-ng"
294 AC_CHECK_LIB(radiusclient,rc_read_config)
295 if test "$ac_cv_lib_radiusclient_rc_read_config" = "yes"; then
296 EXTRAS="$EXTRAS check_radius\$(EXEEXT)"
297 RADIUSLIBS="-lradiusclient"
300 AC_MSG_WARN([Skipping radius plugin])
301 AC_MSG_WARN([install radius libs to compile this plugin (see REQUIREMENTS).])
309 AC_ARG_WITH([ldap], [AS_HELP_STRING([--without-ldap], [Skips the LDAP plugin])])
311 dnl Check for LDAP libraries
312 AS_IF([test "x$with_ldap" != "xno"], [
314 AC_CHECK_LIB(ldap,main,,,-llber)
315 if test "$ac_cv_lib_ldap_main" = "yes"; then
316 LDAPLIBS="-lldap -llber"\
317 LDAPINCLUDE="-I/usr/include/ldap"
319 AC_SUBST(LDAPINCLUDE)
320 AC_CHECK_FUNCS(ldap_set_option)
321 EXTRAS="$EXTRAS check_ldap\$(EXEEXT)"
322 AC_CHECK_FUNCS(ldap_init ldap_set_option ldap_get_option ldap_start_tls_s)
324 AC_MSG_WARN([Skipping LDAP plugin])
325 AC_MSG_WARN([install LDAP libs to compile this plugin (see REQUIREMENTS).])
330 dnl Check for headers used by check_ide_smart
333 AC_CHECK_HEADER(linux/hdreg.h, FOUNDINCLUDE=yes, FOUNDINCLUDE=no)
334 if test "$FOUNDINCLUDE" = "yes" ; then
335 AC_CHECK_HEADER(linux/types.h, FOUNDINCLUDE=yes, FOUNDINCLUDE=no)
337 if test "$FOUNDINCLUDE" = "no" ; then
338 AC_MSG_WARN([Skipping check_ide_smart plugin.])
339 AC_MSG_WARN([check_ide_smart requires linux/hdreg.h and linux/types.h.])
343 AC_CHECK_HEADER(dev/ata/atareg.h, FOUNDINCLUDE=yes, FOUNDINCLUDE=no)
344 if test "$FOUNDINCLUDE" = "yes" ; then
345 AC_CHECK_HEADER(dev/ic/wdcreg.h, FOUNDINCLUDE=yes, FOUNDINCLUDE=no)
347 if test "$FOUNDINCLUDE" = "no" ; then
348 AC_MSG_WARN([Skipping check_ide_smart plugin.])
349 AC_MSG_WARN([check_ide_smart requires dev/ata/atareg.h and dev/ic/wdcreg.h])
353 AC_MSG_WARN([Skipping check_ide_smart plugin.])
354 AC_MSG_WARN([check_ide_smart works only on Linux and NetBSD])
357 if test "$FOUNDINCLUDE" = "yes" ; then
358 EXTRAS="$EXTRAS check_ide_smart\$(EXEEXT)"
361 dnl Check for mysql libraries
363 if test $with_mysql = "no" ; then
364 AC_MSG_WARN([Skipping mysql plugin])
365 AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).])
367 EXTRAS="$EXTRAS check_mysql\$(EXEEXT) check_mysql_query\$(EXEEXT)"
368 MYSQLINCLUDE="$np_mysql_include"
369 MYSQLLIBS="$np_mysql_libs"
370 MYSQLCFLAGS="$np_mysql_cflags"
371 AC_SUBST(MYSQLINCLUDE)
373 AC_SUBST(MYSQLCFLAGS)
376 dnl Check for headers used by check_users
377 AC_CHECK_HEADERS(utmpx.h)
378 AM_CONDITIONAL([HAVE_UTMPX], [test "$ac_cv_header_utmpx_h" = "yes"])
380 AC_CHECK_HEADERS(wtsapi32.h, [], [], [#include <windows.h>])
381 AM_CONDITIONAL([HAVE_WTS32API], [test "$ac_cv_header_wtsapi32_h" = "yes"])
383 if test "$ac_cv_header_wtsapi32_h" = "yes"; then
384 WTSAPI32LIBS="-lwtsapi32"
385 AC_SUBST(WTSAPI32LIBS)
388 dnl Fallback to who(1) if the system doesn't provide an utmpx(5) interface
389 if test "$ac_cv_header_utmpx_h" = "no" -a "$ac_cv_header_wtsapi32_h" = "no"
391 AC_PATH_PROG(PATH_TO_WHO,who)
393 if [$PATH_TO_WHO -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
395 ac_cv_path_to_who="$PATH_TO_WHO -q"
397 ac_cv_path_to_who="$PATH_TO_WHO"
400 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$ac_cv_path_to_who",
401 [path and arguments for invoking 'who'])
405 [AS_HELP_STRING([--with-ipv6], [support IPv6 @<:@default=check@:>@])],
406 [], [with_ipv6=check])
408 dnl Check for AF_INET6 support - unistd.h required for Darwin
409 if test "$with_ipv6" != "no"; then
410 AC_CACHE_CHECK([for IPv6 support], np_cv_sys_ipv6, [
412 [#ifdef HAVE_UNISTD_H
415 #include <netinet/in.h>
416 #include <sys/socket.h>],
417 [struct sockaddr_in6 sin6;
420 sin6.sin6_family = AF_INET6;
421 sin6.sin6_port = 587;
422 p = &sin6.sin6_addr;],
423 [np_cv_sys_ipv6=yes],
426 if test "$np_cv_sys_ipv6" = "no" -a "$with_ipv6" != "check"; then
427 AC_MSG_FAILURE([--with-ipv6 was given, but test for IPv6 support failed])
429 if test "$np_cv_sys_ipv6" = "yes"; then
430 AC_DEFINE(USE_IPV6,1,[Enable IPv6 support])
432 with_ipv6="$np_cv_sys_ipv6"
436 dnl Checks for Kerberos. Must come before openssl checks for Redhat EL 3
437 AC_CHECK_HEADERS(krb5.h,FOUNDINCLUDE=yes,FOUNDINCLUDE=no)
438 if test "$FOUNDINCLUDE" = "no"; then
439 _SAVEDCPPFLAGS="$CPPFLAGS"
440 CPPFLAGS="$_SAVEDCPPFLAGS -I/usr/kerberos/include"
441 unset ac_cv_header_krb5_h
442 AC_CHECK_HEADERS(krb5.h,
443 KRB5INCLUDE="-I/usr/kerberos/include"
448 if test "$FOUNDINCLUDE" = "no"; then
449 CPPFLAGS="$_SAVEDCPPFLAGS"
452 dnl *** The following block comes from wget configure.ac ***
453 dnl Unfortunately, as of this writing (OpenSSL 0.9.6), the libcrypto
454 dnl shared library doesn't record its dependency on libdl, so we
455 dnl need to check for it ourselves so we won't fail to link due to a
456 dnl lack of -ldl. Most OSes use dlopen(), but HP-UX uses
458 AC_CHECK_LIB(dl,dlopen)
459 AC_CHECK_LIB(dl,shl_load)
461 dnl openssl detection/configuration
462 if ! test x"$with_openssl" = x"no"; then
463 dnl Check for OpenSSL location if it wasn't already specified
464 if ! test -d "$with_openssl"; then
465 for d in $OPENSSL_DIRS; do
466 if test -x ${d}/bin/openssl || test -x ${d}/sbin/openssl ; then
472 _SAVEDCPPFLAGS="$CPPFLAGS"
473 _SAVEDLDFLAGS="$LDFLAGS"
474 dnl Check for OpenSSL header files
476 if test x"$with_openssl" != x"/usr" ; then
477 CPPFLAGS="$CPPFLAGS -I$with_openssl/include"
478 LDFLAGS="$LDFLAGS -L$with_openssl/lib"
481 dnl check for openssl in $dir/include/openssl
482 AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h,
483 SSLINCLUDE="-I$with_openssl/include"
486 dnl else check to see if $dir/include has it
487 if test "$FOUNDINCLUDE" = "no"; then
488 AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h,
489 SSLINCLUDE="-I$with_openssl/include"
494 dnl if we didn't find it, reset CPPFLAGS
495 if test "$FOUNDINCLUDE" = "no"; then
496 CPPFLAGS="$_SAVEDCPPFLAGS"
497 LDFLAGS="$_SAVEDLDFLAGS"
500 dnl Check for crypto lib
502 LIBS="-L${with_openssl}/lib"
503 AC_CHECK_LIB(crypto,CRYPTO_lock)
504 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
505 dnl Check for SSL lib
506 AC_CHECK_LIB(ssl,main, SSLLIBS="-lssl -lcrypto",,-lcrypto)
510 dnl test headers and libs to decide whether check_http should use SSL
511 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
512 if test "$ac_cv_lib_ssl_main" = "yes"; then
513 if test "$FOUNDINCLUDE" = "yes"; then
521 dnl check for gnutls if openssl isn't found (or is disabled)
522 if test ! "$FOUNDOPENSSL" = "yes" && test ! "$with_gnutls" = "no"; then
523 if test ! "$with_gnutls" = ""; then
524 CPPFLAGS="$CPPFLAGS -I${with_gnutls}/include"
526 AC_CHECK_HEADERS([gnutls/openssl.h],FOUNDGNUTLS="yes",)
527 if test "$FOUNDGNUTLS" = "yes"; then
528 AC_CHECK_LIB(gnutls-openssl,main,SSLLIBS="-lgnutls-openssl")
531 dnl end check for gnutls
533 if test "$FOUNDOPENSSL" = "yes" || test "$FOUNDGNUTLS" = "yes"; then
534 check_tcp_ssl="check_simap check_spop check_jabber check_nntps check_ssmtp"
535 AC_SUBST(check_tcp_ssl)
537 AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
538 if test "$FOUNDOPENSSL" = "yes"; then
539 AC_DEFINE(USE_OPENSSL,1,[Define if using OpenSSL libraries])
543 AC_DEFINE(USE_GNUTLS,1,[Define if using gnutls libraries])
548 dnl else deliberately disabled or no ssl support available
549 AC_MSG_WARN([OpenSSL or GnuTLS libs could not be found or were disabled])
555 dnl Checks for header files.
560 AC_CHECK_HEADERS(signal.h syslog.h uio.h errno.h sys/time.h sys/socket.h sys/un.h sys/poll.h)
561 AC_CHECK_HEADERS(features.h stdarg.h sys/unistd.h ctype.h)
563 dnl Checks for typedefs, structures, and compiler characteristics.
570 AC_CACHE_CHECK([for va_copy],ac_cv_HAVE_VA_COPY,[
571 AC_TRY_LINK([#include <stdarg.h>
572 va_list ap1,ap2;], [va_copy(ap1,ap2);],
573 ac_cv_HAVE_VA_COPY=yes,
574 ac_cv_HAVE_VA_COPY=no)])
575 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
576 AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
578 AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE___VA_COPY,[
579 AC_TRY_LINK([#include <stdarg.h>
580 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
581 ac_cv_HAVE___VA_COPY=yes,
582 ac_cv_HAVE___VA_COPY=no)])
583 if test x"$ac_cv_HAVE___VA_COPY" = x"yes"; then
584 AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
588 AC_TRY_COMPILE([#include <sys/time.h>],
590 struct timezone *tz;],
591 AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
592 AC_TRY_COMPILE([#include <sys/time.h>],
595 gettimeofday(tv, tz);],
596 AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
597 AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
599 dnl Checks for library functions.
600 AC_CHECK_FUNCS(memmove select socket strdup strstr strtol strtoul floor)
603 AC_MSG_CHECKING(return type of socket size)
604 AC_TRY_COMPILE([#include <stdlib.h>
605 #include <sys/types.h>
606 #include <sys/socket.h>],
607 [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
608 ac_cv_socket_size_type=["size_t"]
609 AC_MSG_RESULT(size_t),
610 ac_cv_socket_size_type=["int"]
613 AC_DEFINE_UNQUOTED(SOCKET_SIZE_TYPE, $ac_cv_socket_size_type ,
614 [Define type of socket size])
617 dnl #### Process table test
619 AC_PATH_PROG(PATH_TO_PS,ps)
620 AC_PATH_PROG(PATH_TO_ENV,env)
622 AC_MSG_CHECKING(for ps syntax)
623 AC_ARG_WITH(ps_command,
624 ACX_HELP_STRING([--with-ps-command=PATH],
625 [Verbatim command to execute for ps]),
627 AC_ARG_WITH(ps_format,
628 ACX_HELP_STRING([--with-ps-format=FORMAT],
629 [Format string for scanning ps output]),
632 ACX_HELP_STRING([--with-ps-cols=NUM],
633 [Number of columns in ps command]),
635 AC_ARG_WITH(ps_varlist,
636 ACX_HELP_STRING([--with-ps-varlist=LIST],
637 [Variable list for sscanf of 'ps' output]),
640 if test -n "$PS_COMMAND" && test -n "$PS_FORMAT" && test -n "$PS_COLS" && test -n "$PS_VARLIST"; then
641 ac_cv_ps_command="$PS_COMMAND"
642 ac_cv_ps_format="$PS_FORMAT"
643 ac_cv_ps_varlist="$PS_VARLIST"
644 ac_cv_ps_cols="$PS_COLS"
645 AC_MSG_RESULT([(command-line) $ac_cv_ps_command])
647 dnl Now using the pst3/kmem hack for solaris systems to avoid truncation
648 elif test "$ac_cv_uname_s" = "SunOS"; then
650 # this is a very, very ugly hack, to hardcode the location for plugins
652 if test "$libexecdir" = '${exec_prefix}/libexec'; then
653 if test "$exec_prefix" = "NONE"; then
654 if test "$prefix" = "NONE"; then
655 pst3="$ac_default_prefix/libexec/pst3"
657 pst3="$prefix/libexec/pst3"
660 pst3="$exec_prefix/libexec/pst3"
663 pst3="$libexecdir/pst3"
665 ac_cv_ps_command="$pst3"
666 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
667 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
669 AC_MSG_RESULT([using monitoring-plugins internal ps command (pst3) for solaris])
670 if test `isainfo -b` = 64 ; then
672 AC_MSG_NOTICE([using 64bit pst3])
674 AC_MSG_NOTICE([using 32bit pst3])
676 EXTRAS_ROOT="$EXTRAS_ROOT pst3\$(EXEEXT)"
678 if test "$pst3_use_64bit" = 1; then
679 dnl Test if we can actually compile code in 64bit
681 CFLAGS="$CFLAGS -m64"
684 [AC_LANG_PROGRAM([], [
685 return sizeof(void*) == 8 ? 0 : 1;
691 AC_MSG_NOTICE([using -m64 for 64bit code])
694 AC_MSG_NOTICE([compiler do not like -m64])
697 if test "$pst3_64bit_working" = 0; then
699 CFLAGS="$CFLAGS -xarch=v9"
701 [AC_LANG_PROGRAM([], [
702 return sizeof(void*) == 8 ? 0 : 1;
705 PST3CFLAGS="-xarch=v9"
708 AC_MSG_NOTICE([using -xarch=v9 for 64bit code])
711 AC_MSG_NOTICE([compiler do not like -xarch=v9])
715 if test "$pst3_64bit_working" = 0; then
717 CFLAGS="$CFLAGS -xarch=amd64"
719 [AC_LANG_PROGRAM([], [
720 return sizeof(void*) == 8 ? 0 : 1;
723 PST3CFLAGS="-xarch=amd64"
726 AC_MSG_NOTICE([using -xarch=amd64 for 64bit code])
729 AC_MSG_NOTICE([compiler do not like -xarch=amd64])
733 if test "$pst3_64bit_working" = 0; then
734 AC_MSG_ERROR([I don't know how to build a 64-bit object!])
738 dnl Removing this for the moment - Ton
739 dnl Using /usr/ucb/ps on Solaris systems, to avoid truncation
740 dnl Limitation that command name is not available
741 dnl elif test "$ac_cv_uname_s" = "SunOS" && /usr/ucb/ps -alxwwn 2>/dev/null | \
742 dnl egrep -i ["^ *F +UID +PID +PPID +%C +PRI +NI +SZ +RSS +WCHAN +S +TT +TIME +COMMAND"] > /dev/null
744 dnl ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procpcpu,&procvsz,&procrss,procstat,&pos]"
745 dnl ac_cv_ps_command="/usr/ucb/ps -alxwwn"
746 dnl ac_cv_ps_format=["%*s %d %d %d %d %*d %*d %d %d%*[ 0123456789abcdef]%[OSRZT]%*s %*s %n"]
748 dnl AC_MSG_RESULT([$ac_cv_ps_command])
750 dnl Some gnu/linux systems (debian for one) don't like -axwo and need axwo.
751 dnl so test for this first...
752 elif ps axwo 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \
753 egrep -i ["^ *STAT +[UCOMAND]+ +VSZ +RSS +USER +UID +PID +PPID +COMMAND"] > /dev/null
755 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
756 ac_cv_ps_command="$PATH_TO_PS axwo 'stat uid pid ppid vsz rss pcpu comm args'"
757 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
759 AC_MSG_RESULT([$ac_cv_ps_command])
761 dnl For OpenBSD 3.2 & 3.3. Must come before ps -weo
762 dnl Should also work for FreeBSD 5.2.1 and 5.3
763 dnl STAT UCOMM VSZ RSS USER PPID COMMAND
764 elif ps -axwo 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \
765 egrep -i ["^ *STAT +[UCOMAND]+ +VSZ +RSS +USER +UID +PID +PPID +COMMAND"] > /dev/null
767 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
768 ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid pid ppid vsz rss pcpu comm args'"
769 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
771 AC_MSG_RESULT([$ac_cv_ps_command])
773 dnl Some *BSDs have different format for ps. This is mainly to catch FreeBSD 4.
774 dnl Limitation: Only first 16 chars returned for ucomm field
775 dnl Must come before ps -weo
776 elif ps -axwo 'stat uid pid ppid vsz rss pcpu ucomm command' 2>/dev/null | \
777 egrep -i ["^ *STAT +UID +PID +PPID +VSZ +RSS +%CPU +UCOMM +COMMAND"] > /dev/null
779 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
780 ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid pid ppid vsz rss pcpu ucomm command'"
781 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
783 AC_MSG_RESULT([$ac_cv_ps_command])
785 dnl STAT UCOMM VSZ RSS USER UID PPID COMMAND
786 elif ps -weo 'stat comm vsz rss user uid pid ppid etime args' 2>/dev/null | \
787 egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[ID]+ +P[PID]+ +[ELAPSD]+ +[RGSCOMDNA]+"] >/dev/null
789 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procetime,procprog,&pos]"
790 ac_cv_ps_command="$PATH_TO_PS -weo 'stat uid pid ppid vsz rss pcpu etime comm args'"
791 ac_cv_ps_format="%s %d %d %d %d %d %f %s %s %n"
793 AC_MSG_RESULT([$ac_cv_ps_command])
796 elif ps waxco 'state command vsz rss uid user pid ppid' 2>/dev/null | \
797 egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PID +PPID"] >/dev/null
799 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
800 ac_cv_ps_command="$PATH_TO_PS waxco 'state uid pid ppid vsz rss pcpu command command'"
801 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
803 AC_MSG_RESULT([$ac_cv_ps_command])
805 dnl BSD-like mode in RH 6.1
806 elif ps waxno 'state comm vsz rss uid user pid ppid args' 2>/dev/null | \
807 egrep -i ["^S +COMMAND +VSZ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
809 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
810 ac_cv_ps_command="$PATH_TO_PS waxno 'state uid pid ppid vsz rss pcpu comm args'"
811 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
813 AC_MSG_RESULT([$ac_cv_ps_command])
816 dnl F UID PID PPID CP PRI NI SZ RSS WCHAN STAT TT TIME COMMAND
817 dnl Need the head -1 otherwise test will work because arguments are found
818 elif ps -laxnwww 2>/dev/null | head -1 | \
819 egrep -i ["^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND"] >/dev/null
821 ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
822 ac_cv_ps_command="$PATH_TO_PS -laxnwww"
823 ac_cv_ps_format="%*s %d %d %d %*s %*s %*s %d %d %*s %s %*s %*s %n%s"
825 AC_MSG_RESULT([$ac_cv_ps_command])
827 dnl Debian Linux / procps v1.2.9:
828 dnl FLAGS UID PID PPID PRI NI SIZE RSS WCHAN STA TTY TIME COMMAND
829 dnl 100 0 1 0 0 0 776 76 c0131c8c S ffff 0:11 init [2]
831 elif ps laxnwww 2>/dev/null | \
832 egrep -i ["^ *F(LAGS)? +UID +PID +PPID +PRI +NI +(VSZ)|(SIZE) +RSS +WCHAN +STAT? TTY +TIME +COMMAND"] >/dev/null
834 ac_cv_ps_varlist="[&procuid,&procpid,&procppid,procstat,&procvsz,&procrss,&pos,procprog]"
835 ac_cv_ps_command="$PATH_TO_PS laxnwww"
836 ac_cv_ps_format="%*s %d %d %d %*s %*s %d %d %*s %s %*s %*s %n%s"
838 AC_MSG_RESULT([$ac_cv_ps_command])
840 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
841 elif ps -axo 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \
842 egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
844 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
845 ac_cv_ps_command="$PATH_TO_PS -axo 'stat uid pid ppid vsz rss pcpu comm args'"
846 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
848 AC_MSG_RESULT([$ac_cv_ps_command])
850 dnl Tru64 - needs %*[ +<>] in PS_FORMAT.
851 dnl Has /usr/bin/ps and /sbin/ps - force sbin version
852 dnl Can't use vsize and rssize because comes back with text (eg, 1.5M instead
853 dnl of 1500). Will need big changes to check_procs to support
854 elif /sbin/ps -eo 'stat uid pid ppid pcpu etime comm args' 2>/dev/null | \
855 egrep -i ["^ *S +[UID]+ +[PID]+ +[PID]+ +[%CPU]+ +[ELAPSD]+ +[COMMAND]+ +[COMMAND]+"] > /dev/null
857 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procpcpu,procetime,procprog,&pos]"
858 ac_cv_ps_command="/sbin/ps -eo 'stat uid pid ppid pcpu etime comm args'"
859 ac_cv_ps_format=["%s%*[ +<>] %d %d %d %f %s %s %n"]
861 AC_MSG_RESULT([$ac_cv_ps_command])
863 elif ps -eo 's comm vsz rss user uid pid ppid args' 2>/dev/null | \
864 egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
866 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
867 ac_cv_ps_command="$PATH_TO_PS -eo 's uid pid ppid vsz rss pcpu comm args'"
868 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
870 AC_MSG_RESULT([$ac_cv_ps_command])
872 dnl AIX 4.3.3 and 5.1 do not have an rss field
873 elif ps -eo 'stat uid pid ppid vsz pcpu comm args' 2>/dev/null | \
874 egrep -i ["^ *S[TAUES]* +UID +PID +PPID +VSZ +%CPU +COMMAND +COMMAND"] >/dev/null
876 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procpcpu,procprog,&pos]"
877 ac_cv_ps_command="$PATH_TO_PS -eo 'stat uid pid ppid vsz pcpu comm args'"
878 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
880 AC_MSG_RESULT([$ac_cv_ps_command - with no RSS])
883 elif ps -Ao 's comm vsz rss uid user pid ppid args' 2>/dev/null | \
884 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
886 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
887 ac_cv_ps_command="$PATH_TO_PS -Ao 's uid pid ppid vsz rss pcpu comm args'"
888 # There must be no space between the %s and %n due to a wierd problem in sscanf where
889 # it will return %n as longer than the line length
890 ac_cv_ps_format="%s %d %d %d %d %d %f %s%n"
892 AC_MSG_RESULT([$ac_cv_ps_command])
894 elif ps -Ao 'status comm vsz rss uid user pid ppid args' 2>/dev/null | \
895 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
897 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
898 ac_cv_ps_command="$PATH_TO_PS -Ao 'status uid pid ppid vsz rss pcpu comm args'"
899 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
901 AC_MSG_RESULT([$ac_cv_ps_command])
903 elif ps -Ao 'state comm vsz rss uid user pid ppid args' 2>/dev/null | \
904 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
906 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
907 ac_cv_ps_command="$PATH_TO_PS -Ao 'state uid pid ppid vsz rss pcpu comm args'"
908 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
910 AC_MSG_RESULT([$ac_cv_ps_command])
912 dnl wonder who takes state instead of stat
913 elif ps -ao 'state command vsz rss user pid ppid args' 2>/dev/null | \
914 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
916 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
917 ac_cv_ps_command="$PATH_TO_PS -ao 'state uid pid ppid vsz rss pcpu command args'"
918 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
920 AC_MSG_RESULT([$ac_cv_ps_command])
923 elif ps -el 2>/dev/null | \
924 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
926 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&pos,procprog]"
927 ac_cv_ps_command="$PATH_TO_PS -el (IRIX 53)"
928 ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %d %d %*s %*s %*s %n%s"
930 AC_MSG_RESULT([$ac_cv_ps_command])
933 elif ps -el 2>/dev/null | \
934 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +ADDR +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
936 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&pos,procprog]"
937 ac_cv_ps_command="$PATH_TO_PS -el (IRIX 63)"
938 ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
940 AC_MSG_RESULT([$ac_cv_ps_command])
943 dnl S UID RUID USER RUSER PID PPID VSZ %CPU COMMAND COMMAND
944 dnl S 0 400 root oracle 2805 1 12904 0.00 ora_dism_SEA1X ora_dism_SEA1X
945 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
946 elif env UNIX95=1 ps -eo 'state uid ruid user ruser pid ppid vsz pcpu comm args' 2>/dev/null | head -n 1 | \
947 egrep -i ["^ *S +UID +RUID +USER +RUSER +PID +PPID +VSZ +%CPU +COMMAND +COMMAND"] >/dev/null
949 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procpcpu,procprog,&pos]"
950 ac_cv_ps_command="$PATH_TO_ENV UNIX95=1 $PATH_TO_PS -eo 'state uid pid ppid vsz pcpu comm args'"
951 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
953 AC_MSG_RESULT([$ac_cv_ps_command])
956 dnl F S UID PID PPID C PRI NI ADDR SZ RSS WCHAN TTY TIME CMD
957 dnl 303 A 0 0 0 120 16 -- 1c07 20 24 - 0:45 swapper
958 elif ps -el 2>/dev/null | \
959 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
961 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&pos,procprog]"
962 ac_cv_ps_command="$PATH_TO_PS -el (AIX 4.1 and HP-UX)"
963 ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
965 AC_MSG_RESULT([$ac_cv_ps_command])
968 elif ps glaxen 2>/dev/null | \
969 egrep -i ["^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND"] >/dev/null
971 ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
972 ac_cv_ps_command="$PATH_TO_PS glaxen"
973 ac_cv_ps_format="%*s %d %d %d %*s %*s %d %d %*s %s %*s %*s %n%s"
975 AC_MSG_RESULT([$ac_cv_ps_command])
978 dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
979 dnl Some truncation will happen in UCOMM column
980 dnl STAT VSZ RSS UID PPID %CPU UCOMM COMMAND
981 dnl Ss 52756 22496 501 1 6.9 Window Manager /System/Library/CoreServices/WindowServer -daemon
982 elif ps wwaxo 'state vsz rss uid pid ppid pcpu ucomm command' 2>/dev/null | \
983 egrep -i ["^STAT +VSZ +RSS +UID +PPID +%CPU +UCOMM +COMMAND"] >/dev/null
985 ac_cv_ps_command="$PATH_TO_PS wwaxo 'state vsz rss uid pid ppid pcpu ucomm command'"
986 ac_cv_ps_varlist="[procstat,&procvsz,&procrss,&procuid,&procpid,&procppid,&procpcpu,procprog,&pos]"
987 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
989 AC_MSG_RESULT([$ac_cv_ps_command])
992 elif ps -Al 2>/dev/null | \
993 egrep -i ["^ *F +S +UID +PID +PPID +CLS +PRI +NI +C +ADDR +SZ +WCHAN +TTY +TIME +COMD"] >/dev/null
995 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&pos,procprog]"
996 ac_cv_ps_command="$PATH_TO_PS -Al"
997 ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
999 AC_MSG_RESULT([$ac_cv_ps_command])
1002 AC_MSG_WARN([unable to find usable ps syntax - check_procs and check_nagios will not be compiled])
1005 if test -n "$ac_cv_ps_varlist" ; then
1006 AC_DEFINE_UNQUOTED(PS_VARLIST,$ac_cv_ps_varlist,
1007 [Variable list for sscanf of 'ps' output])
1008 AC_DEFINE_UNQUOTED(PS_COMMAND,"$ac_cv_ps_command",
1009 [Verbatim command to execute for ps in check_procs])
1010 AC_DEFINE_UNQUOTED(PS_FORMAT,"$ac_cv_ps_format",
1011 [Format string for scanning ps output in check_procs])
1012 AC_DEFINE_UNQUOTED(PS_COLS,$ac_cv_ps_cols,
1013 [Number of columns in ps command])
1014 EXTRAS="$EXTRAS check_procs check_nagios\$(EXEEXT)"
1015 if echo "$ac_cv_ps_varlist" | grep "procetime" >/dev/null; then
1016 AC_DEFINE(PS_USES_PROCETIME,"yes",
1017 [Whether the ps utility uses the "procetime" field])
1021 AC_PATH_PROG(PATH_TO_PING,ping)
1022 AC_PATH_PROG(PATH_TO_PING6,ping6)
1024 AC_ARG_WITH(ping_command,
1025 ACX_HELP_STRING([--with-ping-command=SYNTAX],
1026 [sets syntax for ICMP ping]),
1027 with_ping_command=$withval,)
1029 AC_MSG_CHECKING(for ICMP ping syntax)
1030 ac_cv_ping_packets_first=no
1031 ac_cv_ping_has_timeout=no
1032 if test -n "$with_ping_command"
1034 AC_MSG_RESULT([(command-line) $with_ping_command])
1035 if echo "$with_ping_command" | grep '%d.*%d.*%s' >/dev/null
1037 ac_cv_ping_packets_first=yes
1038 ac_cv_ping_has_timeout=yes
1039 elif echo "$with_ping_command" | grep '%d.*%s.*%d' >/dev/null || \
1040 echo "$with_ping_command" | grep '%s.*%d.*%d' >/dev/null
1042 ac_cv_ping_has_timeout=yes
1043 elif echo "$with_ping_command" | grep '%d.*%s' >/dev/null
1045 ac_cv_ping_packets_first=yes
1048 elif [[ "z$ac_cv_uname_o" = "zCygwin" ]]
1050 with_ping_command="$PATH_TO_PING -n %d -w %d000 %s"
1051 ac_cv_ping_packets_first=yes
1052 ac_cv_ping_has_timeout=yes
1053 AC_MSG_RESULT([$with_ping_command])
1055 elif [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1056 $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
1057 egrep -i "^round-trip|^rtt" >/dev/null
1059 with_ping_command="$PATH_TO_PING -n -U -c %d %s"
1060 ac_cv_ping_packets_first=yes
1061 AC_MSG_RESULT([$with_ping_command])
1063 elif $PATH_TO_PING -n -U -w 10 -c 1 127.0.0.1 2>/dev/null | \
1064 egrep -i "^round-trip|^rtt" >/dev/null
1066 with_ping_command="$PATH_TO_PING -n -U -w %d -c %d %s"
1067 ac_cv_ping_packets_first=yes
1068 ac_cv_ping_has_timeout=yes
1069 AC_MSG_RESULT([$with_ping_command])
1071 elif $PATH_TO_PING -n -U -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 -U -c %d %s"
1075 ac_cv_ping_packets_first=yes
1076 AC_MSG_RESULT([$with_ping_command])
1078 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
1079 egrep -i "^round-trip|^rtt" >/dev/null
1081 with_ping_command="$PATH_TO_PING -n -c %d %s"
1082 ac_cv_ping_packets_first=yes
1083 AC_MSG_RESULT([$with_ping_command])
1085 elif $PATH_TO_PING -n 127.0.0.1 -c 1 2>/dev/null | \
1086 egrep -i "^round-trip|^rtt" >/dev/null
1088 with_ping_command="$PATH_TO_PING -n %s -c %d"
1089 AC_MSG_RESULT([$with_ping_command])
1091 elif $PATH_TO_PING 127.0.0.1 -n 1 2>/dev/null | \
1092 egrep -i "^round-trip|^rtt" >/dev/null
1094 with_ping_command="$PATH_TO_PING %s -n %d"
1095 AC_MSG_RESULT([$with_ping_command])
1097 elif $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
1098 egrep -i "^round-trip|^rtt" >/dev/null
1100 with_ping_command="$PATH_TO_PING -n -s %s 56 %d"
1101 AC_MSG_RESULT([$with_ping_command])
1103 elif $PATH_TO_PING -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | \
1104 egrep -i "^round-trip|^rtt" >/dev/null
1106 with_ping_command="$PATH_TO_PING -n -h %s -s 56 -c %d"
1107 AC_MSG_RESULT([$with_ping_command])
1109 elif $PATH_TO_PING -n -s 56 -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 -s 56 -c %d %s"
1113 ac_cv_ping_packets_first=yes
1114 AC_MSG_RESULT([$with_ping_command])
1116 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
1117 egrep -i "^round-trip|^rtt" >/dev/null
1119 with_ping_command="$PATH_TO_PING -n -c %d %s"
1120 ac_cv_ping_packets_first=yes
1121 AC_MSG_RESULT([$with_ping_command])
1124 AC_MSG_WARN([unable to find usable ping syntax])
1127 AC_DEFINE_UNQUOTED(PING_COMMAND,"$with_ping_command",
1128 [path and args for ICMP ping command])
1130 if test "x$ac_cv_ping_packets_first" != "xno"
1132 AC_DEFINE(PING_PACKETS_FIRST,1,
1133 [Define if packet count must precede host])
1136 if test "x$ac_cv_ping_has_timeout" != "xno"
1138 AC_DEFINE(PING_HAS_TIMEOUT,1,
1139 [Define if ping has its own timeout option that should be set])
1142 AC_ARG_WITH(ping6_command,
1143 ACX_HELP_STRING([--with-ping6-command=SYNTAX],
1144 [sets syntax for ICMPv6 ping]),
1145 with_ping6_command=$withval,)
1147 if test x"$with_ipv6" != xno ; then
1148 AC_MSG_CHECKING(for ICMPv6 ping syntax)
1149 ac_cv_ping6_packets_first=no
1150 if test -n "$with_ping6_command"
1152 AC_MSG_RESULT([(command-line) $with_ping6_command])
1153 if echo "$with_ping6_command" | grep '%d.*%d.*%s' >/dev/null
1155 ac_cv_ping6_packets_first=yes
1156 elif echo "$with_ping6_command" | grep '%d.*%s.*%d' >/dev/null || \
1157 echo "$with_ping6_command" | grep '%s.*%d.*%d' >/dev/null
1159 # Just keep same logic as ping (IPv4) if we ever need ac_cv_ping6_has_timeout
1161 elif echo "$with_ping6_command" | grep '%d.*%s' >/dev/null
1163 ac_cv_ping6_packets_first=yes
1165 elif [[ "z$ac_cv_uname_o" = "zCygwin" -a "x$PATH_TO_PING" != "x" ]]; then
1166 with_ping6_command="$PATH_TO_PING -6 -n %d -w %d000 %s"
1167 ac_cv_ping6_packets_first=yes
1168 ac_cv_ping_has_timeout=yes
1169 AC_MSG_RESULT([$with_ping6_command])
1170 elif test "x$PATH_TO_PING6" != "x"; then
1171 if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1172 $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1173 egrep -i "^round-trip|^rtt" >/dev/null
1175 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1176 ac_cv_ping6_packets_first=yes
1177 AC_MSG_RESULT([$with_ping6_command])
1179 elif $PATH_TO_PING6 -n -U -w 10 -c 1 ::1 2>/dev/null | \
1180 egrep -i "^round-trip|^rtt" >/dev/null
1182 with_ping6_command="$PATH_TO_PING6 -n -U -w %d -c %d %s"
1183 ac_cv_ping6_packets_first=yes
1184 ac_cv_ping_has_timeout=yes
1185 AC_MSG_RESULT([$with_ping6_command])
1187 elif $PATH_TO_PING6 -n -U -c 1 ::1 2>/dev/null | \
1188 egrep -i "^round-trip|^rtt" >/dev/null
1190 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1191 ac_cv_ping6_packets_first=yes
1192 AC_MSG_RESULT([$with_ping6_command])
1194 elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1195 egrep -i "^round-trip|^rtt" >/dev/null
1197 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1198 ac_cv_ping6_packets_first=yes
1199 AC_MSG_RESULT([$with_ping6_command])
1201 elif $PATH_TO_PING6 -n ::1 -c 1 2>/dev/null | \
1202 egrep -i "^round-trip|^rtt" >/dev/null
1204 with_ping6_command="$PATH_TO_PING6 -n %s -c %d"
1205 AC_MSG_RESULT([$with_ping6_command])
1207 elif $PATH_TO_PING6 ::1 -n 1 2>/dev/null | \
1208 egrep -i "^round-trip|^rtt" >/dev/null
1210 with_ping6_command="$PATH_TO_PING6 %s -n %d"
1211 AC_MSG_RESULT([$with_ping6_command])
1213 elif $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1214 egrep -i "^round-trip|^rtt" >/dev/null
1216 with_ping6_command="$PATH_TO_PING6 -n -s %s 56 %d"
1217 AC_MSG_RESULT([$with_ping6_command])
1219 elif $PATH_TO_PING6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1220 egrep -i "^round-trip|^rtt" >/dev/null
1222 with_ping6_command="$PATH_TO_PING6 -n -h %s -s 56 -c %d"
1223 AC_MSG_RESULT([$with_ping6_command])
1225 elif $PATH_TO_PING6 -n -s 56 -c 1 ::1 2>/dev/null | \
1226 egrep -i "^round-trip|^rtt" >/dev/null
1228 with_ping6_command="$PATH_TO_PING6 -n -s 56 -c %d %s"
1229 ac_cv_ping6_packets_first=yes
1230 AC_MSG_RESULT([$with_ping_command])
1232 elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1233 egrep -i "^round-trip|^rtt" >/dev/null
1235 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1236 ac_cv_ping6_packets_first=yes
1237 AC_MSG_RESULT([$with_ping6_command])
1241 elif test "x$PATH_TO_PING" != "x"; then
1242 if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1243 $PATH_TO_PING -A inet6 -n -s ::1 56 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 -U -c 1 ::1 2>/dev/null | \
1251 egrep -i "^round-trip|^rtt" >/dev/null
1253 with_ping6_command="$PATH_TO_PING -A inet6 -n -U -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 -c 1 ::1 2>/dev/null | \
1258 egrep -i "^round-trip|^rtt" >/dev/null
1260 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1261 ac_cv_ping6_packets_first=yes
1262 AC_MSG_RESULT([$with_ping6_command])
1264 elif $PATH_TO_PING -A inet6 -n ::1 -c 1 2>/dev/null | \
1265 egrep -i "^round-trip|^rtt" >/dev/null
1267 with_ping6_command="$PATH_TO_PING -A inet6 -n %s -c %d"
1268 AC_MSG_RESULT([$with_ping6_command])
1270 elif $PATH_TO_PING -A inet6 ::1 -n 1 2>/dev/null | \
1271 egrep -i "^round-trip|^rtt" >/dev/null
1273 with_ping6_command="$PATH_TO_PING -A inet6 %s -n %d"
1274 AC_MSG_RESULT([$with_ping6_command])
1276 elif $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1277 egrep -i "^round-trip|^rtt" >/dev/null
1279 with_ping6_command="$PATH_TO_PING -A inet6 -n -s %s 56 %d"
1280 AC_MSG_RESULT([$with_ping6_command])
1282 elif $PATH_TO_PING -A inet6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1283 egrep -i "^round-trip|^rtt" >/dev/null
1285 with_ping6_command="$PATH_TO_PING -A inet6 -n -h %s -s 56 -c %d"
1286 AC_MSG_RESULT([$with_ping6_command])
1288 elif $PATH_TO_PING -A inet6 -n -s 56 -c 1 ::1 2>/dev/null | \
1289 egrep -i "^round-trip|^rtt" >/dev/null
1291 with_ping6_command="$PATH_TO_PING -A inet6 -n -s 56 -c %d %s"
1292 ac_cv_ping6_packets_first=yes
1293 AC_MSG_RESULT([$with_ping_command])
1295 elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1296 egrep -i "^round-trip|^rtt" >/dev/null
1298 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1299 ac_cv_ping6_packets_first=yes
1300 AC_MSG_RESULT([$with_ping6_command])
1306 if test "x$with_ping6_command" != "x"; then
1307 AC_DEFINE_UNQUOTED(PING6_COMMAND,"$with_ping6_command",
1308 [path and args for ICMPv6 ping command])
1310 AC_MSG_RESULT([none])
1313 if test "x$ac_cv_ping6_packets_first" != "xno"; then
1314 AC_DEFINE(PING6_PACKETS_FIRST,1,
1315 [Define if packet count must precede host])
1320 AC_ARG_WITH(nslookup_command,
1321 ACX_HELP_STRING([--with-nslookup-command=PATH],
1322 [sets path to nslookup executable]),
1323 ac_cv_nslookup_command=$withval)
1324 if test -n "$ac_cv_nslookup_command"; then
1325 AC_MSG_NOTICE([Using specific nslookup at $ac_cv_nslookup_command])
1327 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
1328 if test -n "$PATH_TO_NSLOOKUP"
1330 AC_MSG_CHECKING(for nslookup syntax)
1331 if $PATH_TO_NSLOOKUP -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
1333 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP"
1334 AC_MSG_RESULT([$ac_cv_nslookup_command])
1337 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP -sil"
1338 AC_MSG_RESULT([$ac_cv_nslookup_command])
1342 AC_MSG_WARN([nslookup command not found])
1346 if test -n "$ac_cv_nslookup_command"; then
1347 EXTRAS="$EXTRAS check_dns\$(EXEEXT)"
1348 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$ac_cv_nslookup_command", [path and args for nslookup])
1351 AC_MSG_CHECKING([for number of online cpus])
1352 AC_TRY_COMPILE([#include <unistd.h>],
1353 [sysconf(_SC_NPROCESSORS_ONLN) > 0;],
1354 AC_DEFINE(HAVE_SYSCONF__SC_NPROCESSORS_ONLN,1,[Define if sysconf returns number of online cpus])
1355 AC_MSG_RESULT([sysconf(_SC_NPROCESSORS_ONLN)]),
1356 AC_MSG_RESULT([cannot calculate])
1359 AC_MSG_CHECKING([for number of available cpus])
1360 AC_TRY_COMPILE([#include <unistd.h>],
1361 [sysconf(_SC_NPROCESSORS_CONF) > 0;],
1362 AC_DEFINE(HAVE_SYSCONF__SC_NPROCESSORS_CONF,1,[Define if sysconf returns number of available cpus])
1363 AC_MSG_RESULT([sysconf(_SC_NPROCESSORS_CONF)]),
1364 AC_MSG_RESULT([cannot calculate])
1367 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
1368 AC_ARG_WITH(uptime_command,
1369 ACX_HELP_STRING([--with-uptime-command=PATH],
1370 [sets path to uptime]), PATH_TO_UPTIME=$withval)
1371 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
1373 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
1374 AC_ARG_WITH(rpcinfo_command,
1375 ACX_HELP_STRING([--with-rpcinfo-command=PATH],
1376 [sets path to rpcinfo]), PATH_TO_RPCINFO=$withval)
1377 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
1379 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
1380 if test -x "$PATH_TO_LMSTAT"
1382 AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
1384 AC_MSG_WARN([Get lmstat from Globetrotter Software to monitor flexlm licenses])
1387 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
1388 AC_ARG_WITH(smbclient_command,
1389 ACX_HELP_STRING([--with-smbclient-command=PATH],
1390 [sets path to smbclient]),
1391 PATH_TO_SMBCLIENT=$withval)
1392 if test -n "$PATH_TO_SMBCLIENT"
1394 AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
1396 AC_MSG_WARN([Get smbclient from Samba.org to monitor SMB shares])
1399 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
1400 AC_ARG_WITH(snmpget_command,
1401 ACX_HELP_STRING([--with-snmpget-command=PATH],
1402 [Path to snmpget command]),
1403 PATH_TO_SNMPGET=$withval)
1404 if test -n "$PATH_TO_SNMPGET"
1406 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
1407 EXTRAS="$EXTRAS check_hpjd check_snmp\$(EXEEXT)"
1409 AC_MSG_WARN([Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins])
1412 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
1413 AC_ARG_WITH(snmpgetnext_command,
1414 ACX_HELP_STRING([--with-snmpgetnext-command=PATH],
1415 [Path to snmpgetnext command]),
1416 PATH_TO_SNMPGETNEXT=$withval)
1417 if test -n "$PATH_TO_SNMPGETNEXT"
1419 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
1422 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null )
1424 AC_MSG_CHECKING(for Net::SNMP perl module)
1425 AC_MSG_RESULT([found])
1427 AC_MSG_WARN([Tried $PERL - install Net::SNMP perl module if you want to use the perl snmp plugins])
1430 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
1431 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
1432 AC_ARG_WITH(qstat_command,
1433 ACX_HELP_STRING([--with-qstat-command=PATH],
1434 [Path to qstat command]), PATH_TO_QSTAT=$withval)
1436 if test -x "$PATH_TO_QUAKESTAT"
1438 ac_cv_path_to_qstat="$PATH_TO_QUAKESTAT"
1439 EXTRAS="$EXTRAS check_game\$(EXEEXT)"
1441 elif test -n "$PATH_TO_QSTAT"
1443 ac_cv_path_to_qstat="$PATH_TO_QSTAT"
1444 EXTRAS="$EXTRAS check_game\$(EXEEXT)"
1446 AC_MSG_WARN([Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin])
1449 if test $ac_cv_path_to_qstat
1451 AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$ac_cv_path_to_qstat",
1452 [path to qstat/quakestat])
1455 AC_PATH_PROG(PATH_TO_FPING,fping)
1456 AC_PATH_PROG(PATH_TO_FPING6,fping6)
1458 AC_ARG_WITH(fping_command,
1459 ACX_HELP_STRING([--with-fping-command=PATH],
1460 [Path to fping command]), PATH_TO_FPING=$withval)
1461 AC_ARG_WITH(fping6_command,
1462 ACX_HELP_STRING([--with-fping6-command=PATH],
1463 [Path to fping6 command]), PATH_TO_FPING6=$withval)
1465 if test -n "$PATH_TO_FPING"
1467 AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
1468 EXTRAS="$EXTRAS check_fping\$(EXEEXT)"
1469 if test x"$with_ipv6" != xno && test -n "$PATH_TO_FPING6"; then
1470 AC_DEFINE_UNQUOTED(PATH_TO_FPING6,"$PATH_TO_FPING6",[path to fping6])
1473 AC_MSG_WARN([Get fping from http://www.fping.com in order to make check_fping plugin])
1476 AC_PATH_PROG(PATH_TO_SSH,ssh)
1477 AC_ARG_WITH(ssh_command,
1478 ACX_HELP_STRING([--with-ssh-command=PATH],
1479 [sets path for ssh]), PATH_TO_SSH=$withval)
1480 if test -n "$PATH_TO_SSH"
1482 AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
1483 EXTRAS="$EXTRAS check_by_ssh\$(EXEEXT)"
1485 AC_MSG_WARN([Get ssh in order to make check_by_ssh plugin])
1488 AC_PATH_PROG(PATH_TO_SUDO,sudo)
1489 AC_ARG_WITH(sudo_command,
1490 ACX_HELP_STRING([--with-sudo-command=PATH],
1491 [sets path to sudo]), PATH_TO_SUDO=$withval)
1492 if test -n "$PATH_TO_SUDO"
1494 AC_DEFINE_UNQUOTED(PATH_TO_SUDO,"$PATH_TO_SUDO",[path to sudo])
1496 AC_MSG_WARN([Could not find sudo or eqivalent])
1499 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
1500 AC_ARG_WITH(mailq_command,
1501 ACX_HELP_STRING([--with-mailq-command=PATH],
1502 [sets path to mailq]), PATH_TO_MAILQ=$withval)
1503 if test -n "$PATH_TO_MAILQ"
1505 AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
1507 AC_MSG_WARN([Could not find mailq or eqivalent])
1510 AC_PATH_PROG(PATH_TO_QMAIL_QSTAT,qmail-qstat)
1511 AC_ARG_WITH(qmail_qstat_command,
1512 ACX_HELP_STRING([--with-qmail-qstat-command=PATH],
1513 [sets path to qmail-qstat]), PATH_TO_QMAIL_QSTAT=$withval)
1514 if test -n "$PATH_TO_QMAIL_QSTAT"
1516 AC_DEFINE_UNQUOTED(PATH_TO_QMAIL_QSTAT,"$PATH_TO_QMAIL_QSTAT",[path to qmail-qstat])
1518 AC_MSG_WARN([Could not find qmail-qstat or eqivalent])
1521 dnl SWAP info required is amount allocated/available and amount free
1522 dnl The plugin works through all the swap devices and adds up the total swap
1524 AC_PATH_PROG(PATH_TO_SWAP,swap)
1525 if (test -n "$PATH_TO_SWAP")
1527 AC_MSG_CHECKING([for $PATH_TO_SWAP format])
1528 if [$PATH_TO_SWAP -l 2>&1 >/dev/null]
1531 ac_cv_swap_command="$PATH_TO_SWAP -l"
1532 if [$PATH_TO_SWAP -l 2>/dev/null | \
1533 egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" \
1536 ac_cv_swap_format=[" %*d %*s %*d,%*d %*d %*d %f %f"]
1537 ac_cv_swap_conv=2048
1538 AC_MSG_RESULT([using IRIX format swap])
1540 elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null]
1542 ac_cv_swap_format=["%*s %*[0-9,-] %*d %f %f"]
1543 ac_cv_swap_conv=2048
1544 AC_MSG_RESULT([using Unixware format swap])
1546 dnl if we don't know what format swap's output is
1547 dnl we might as well pretend we didn't see it
1549 ac_cv_swap_command=""
1552 dnl end if for PATH_TO_SWAP
1555 AC_PATH_PROG(PATH_TO_SWAPINFO,swapinfo)
1556 if (test -n "$PATH_TO_SWAPINFO")
1558 AC_MSG_CHECKING([for $PATH_TO_SWAPINFO format])
1559 if [$PATH_TO_SWAPINFO -k 2>&1 | egrep -i "^Device" >/dev/null]
1562 ac_cv_swap_command="$PATH_TO_SWAPINFO -k"
1564 if [$PATH_TO_SWAPINFO -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
1566 ac_cv_swap_format=["%*s %f %*d %f"]
1567 ac_cv_swap_conv=1024
1568 AC_MSG_RESULT([using FreeBSD format swapinfo])
1571 elif [$PATH_TO_SWAPINFO -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
1574 ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM"
1575 ac_cv_swap_format=["%*s %f %*d %f"]
1576 ac_cv_swap_conv=1024
1577 AC_MSG_RESULT([using HP-UX format swapinfo])
1579 dnl end if for PATH_TO_SWAPINFO
1582 AC_PATH_PROG(PATH_TO_LSPS,lsps)
1583 if (test -n "$PATH_TO_LSPS")
1585 AC_MSG_CHECKING([for $PATH_TO_LSPS format])
1586 if [$PATH_TO_LSPS -a 2>/dev/null | egrep -i "^Page Space" > /dev/null]
1589 ac_cv_swap_command="$PATH_TO_LSPS -a"
1590 ac_cv_swap_format=["%*s %*s %*s %f%*s %f %*s"]
1592 AC_MSG_RESULT([using AIX lsps])
1594 dnl end if for PATH_TO_SWAPINFO
1598 dnl test for swapctl system call, both the 2-arg and 3-arg variants
1599 dnl fwict, the 2-arg is an SVR4 standard, whereas the 3-arg is shared
1600 dnl in the various BSD's
1603 AC_CHECK_HEADERS([sys/stat.h sys/param.h])
1604 AC_CHECK_HEADERS([sys/swap.h], [], [], [
1605 #ifdef HAVE_SYS_PARAM_H
1606 #include <sys/param.h>
1609 AC_CHECK_DECLS([swapctl],,,[
1611 #include <sys/types.h>
1612 #include <sys/param.h>
1613 #include <sys/stat.h>
1614 #include <sys/swap.h>
1616 AC_CHECK_TYPES([swaptbl_t, swapent_t],,,[
1617 #include <sys/types.h>
1618 #include <sys/param.h>
1619 #include <sys/stat.h>
1620 #include <sys/swap.h>
1622 AC_CHECK_MEMBERS([struct swapent.se_nblks],,,[
1624 #include <sys/types.h>
1625 #include <sys/param.h>
1626 #include <sys/stat.h>
1627 #include <sys/swap.h>
1630 if test "$ac_cv_have_decl_swapctl" = "yes";
1632 EXTRAS="$EXTRAS check_swap\$(EXEEXT)"
1633 AC_MSG_CHECKING([for 2-arg (SVR4) swapctl])
1634 if test "$ac_cv_type_swaptbl_t" = "yes" -a \
1635 "$ac_cv_type_swapent_t" = "yes";
1637 AC_MSG_RESULT([yes])
1638 ac_cv_check_swap_swapctl_svr4="1";
1639 AC_DEFINE([CHECK_SWAP_SWAPCTL_SVR4],1,
1640 [Define if 2-argument SVR4 swapctl exists])
1643 AC_MSG_CHECKING([for 3-arg (*BSD) swapctl])
1644 if test "$ac_cv_member_struct_swapent_se_nblks" = "yes";
1646 AC_MSG_RESULT([yes])
1647 AC_DEFINE([CHECK_SWAP_SWAPCTL_BSD],1,
1648 [Define if 3-argument BSD swapctl exists])
1653 AC_MSG_CHECKING([for whether swapctl uses blocks or pages])
1654 if test "$ac_cv_check_swap_swapctl_svr4" = "1";
1657 dnl the SVR4 spec returns values in pages
1659 AC_MSG_RESULT([page])
1660 AC_CHECK_DECLS([sysconf])
1661 AC_MSG_CHECKING([for system page size])
1662 if test "$ac_cv_have_decl_sysconf" = "yes";
1664 AC_MSG_RESULT([determined by sysconf(3)])
1665 ac_cv_swap_conv="(1048576/sysconf(_SC_PAGESIZE))"
1667 AC_MSG_WARN([don't know. guessing 4096k])
1672 dnl the BSD spec returns values in blocks
1674 AC_MSG_RESULT([blocks (assuming 512b)])
1675 ac_cv_swap_conv=2048
1677 AC_DEFINE_UNQUOTED(SWAP_CONVERSION,$ac_cv_swap_conv,
1678 [Conversion factor to MB])
1681 dnl end tests for the swapctl system calls
1685 if test "x$ac_cv_have_swap" != "x"
1687 AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
1688 EXTRAS="$EXTRAS check_swap\$(EXEEXT)"
1690 if test "x$ac_cv_swap_command" != "x"
1692 AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$ac_cv_swap_command",
1693 [Path to swap/swapinfo binary, with any args])
1694 AC_DEFINE_UNQUOTED(SWAP_FORMAT,"$ac_cv_swap_format",
1695 [Format string for parsing swap output])
1696 AC_DEFINE_UNQUOTED(SWAP_CONVERSION,$ac_cv_swap_conv,
1697 [Conversion factor to MB])
1700 AC_ARG_WITH(proc-meminfo,
1701 ACX_HELP_STRING([--with-proc-meminfo=PATH],
1702 [path to /proc/meminfo or equivalent]),
1703 ac_cv_proc_meminfo=$withval)
1704 dnl dunno why this does not work below - use hack (kbd)
1705 dnl fine on linux, broken on solaris
1706 dnl if /bin/test -e "/proc/meminfo"
1707 AC_MSG_CHECKING([for /proc/meminfo])
1708 if test -n "$ac_cv_proc_meminfo"; then
1709 AC_MSG_RESULT([(command line) $ac_cv_proc_meminfo])
1710 elif [cat /proc/meminfo > /dev/null 2>&1]; then
1711 AC_MSG_RESULT([found /proc/meminfo])
1712 ac_cv_proc_meminfo="/proc/meminfo"
1717 if test -n "$ac_cv_proc_meminfo"; then
1718 AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
1719 AC_DEFINE_UNQUOTED(PROC_MEMINFO,"$ac_cv_proc_meminfo",[path to /proc/meminfo if name changes])
1720 EXTRAS="$EXTRAS check_swap\$(EXEEXT)"
1723 AC_PATH_PROG(PATH_TO_DIG,dig)
1724 AC_ARG_WITH(dig_command,
1725 ACX_HELP_STRING([--with-dig-command=PATH],
1726 [Path to dig command]), PATH_TO_DIG=$withval)
1727 if test -n "$PATH_TO_DIG"; then
1728 EXTRAS="$EXTRAS check_dig\$(EXEEXT)"
1729 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
1732 AC_PATH_PROG(PATH_TO_APTGET,apt-get)
1733 AC_ARG_WITH(apt-get_command,
1734 ACX_HELP_STRING([--with-apt-get-command=PATH],
1735 [Path to apt-get command]),
1736 with_apt_get_command=$withval,
1737 with_apt_get_command=$PATH_TO_APTGET)
1738 AC_DEFINE_UNQUOTED(PATH_TO_APTGET,"$PATH_TO_APTGET",[Path to apt-get command, if present])
1739 if test -n "$PATH_TO_APTGET" ; then
1740 EXTRAS="$EXTRAS check_apt\$(EXEEXT)"
1744 if test -f $srcdir/plugins/check_nt.c ; then
1745 EXTRAS="$EXTRAS check_nt\$(EXEEXT)"
1749 dnl used in check_dhcp
1750 AC_CHECK_HEADERS(sys/sockio.h)
1754 AC_DEFINE(__bsd__,1,[bsd specific code in check_dhcp.c])
1757 AC_DEFINE(__linux__,1,[linux specific code in check_dhcp.c])
1760 AC_DEFINE(__sun__,1,[sun specific code in check_dhcp.c])
1763 AC_DEFINE(__hpux__,1,[hpux specific code in check_dhcp.c])
1768 AC_SUBST(EXTRAS_ROOT)
1769 AC_SUBST(EXTRA_NETOBJS)
1772 AM_GNU_GETTEXT([external], [need-ngettext])
1773 AM_GNU_GETTEXT_VERSION(0.15)
1775 dnl Check for Redhat spopen problem
1776 dnl Wierd problem where ECHILD is returned from a wait call in error
1777 dnl Only appears to affect nslookup and dig calls. Only affects redhat around
1778 dnl 2.6.9-11 (okay in 2.6.9-5). Redhat investigating root cause
1779 dnl We patch plugins/popen.c
1780 dnl Need to add smp because uname different on those
1781 dnl Can force patch to be applied with --enable-redhat-pthread-workaround
1782 AC_ARG_ENABLE(redhat-pthread-workaround,
1783 AC_HELP_STRING([--enable-redhat-pthread-workaround],
1784 [force Redhat patch to be applied (default: test system)]),
1785 [ac_cv_enable_redhat_pthread_workaround=$enableval],
1786 [ac_cv_enable_redhat_pthread_workaround=test])
1787 if test "$ac_cv_enable_redhat_pthread_workaround" = "test" ; then
1788 if echo $ac_cv_uname_r | egrep "\.EL(smp)?$" >/dev/null 2>&1 ; then
1789 AC_MSG_NOTICE([See https://www.monitoring-plugins.org/doc/faq/configure-hangs.html if this next part takes a long time])
1790 AC_MSG_CHECKING(for redhat spopen problem)
1791 ( cd config_test && make && make test ) > /dev/null 2>&1
1792 if test $? -eq 0 ; then
1795 AC_MSG_RESULT(error)
1796 AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, [Workaround on redhat in spopen])
1799 elif test "$ac_cv_enable_redhat_pthread_workaround" = "yes" ; then
1800 AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, [Forced workaround on redhat in spopen])
1804 AC_ARG_ENABLE(perl-modules,
1805 AC_HELP_STRING([--enable-perl-modules],
1806 [Enables installation of Monitoring::Plugin and its dependencies (default: no)]),
1807 [enable_perl_modules=$enableval],
1808 [enable_perl_modules=no])
1809 if test "$enable_perl_modules" = "yes" ; then
1810 AC_SUBST(PERLMODS_DIR,perlmods)
1813 # From Tap configure
1814 # Checks for libraries
1817 LDFLAGS="$LDFLAGS -pthread"
1821 AC_CHECK_LIB(pthread, main)
1825 dnl External libraries - see ACKNOWLEDGEMENTS
1828 dnl Some helpful common compile errors checked here
1829 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
1830 AC_MSG_ERROR(No ar found for Solaris - is /usr/ccs/bin in PATH?)
1839 plugins-root/Makefile
1840 plugins-scripts/Makefile
1841 plugins-scripts/utils.pm
1842 plugins-scripts/utils.sh
1850 dnl the ones below that are commented out need to be cleaned up
1851 dnl in the configure code above to use with_foo instead of ac_cv_foo
1852 dnl if we want them to show up here. it'd also make the code cleaner.
1853 dnl i'll get to that on another rainy day :) -sf
1854 ACX_FEATURE([with],[apt-get-command])
1855 dnl ACX_FEATURE([with],[dig-command])
1856 dnl ACX_FEATURE([with],[fping-command])
1857 dnl ACX_FEATURE([with],[mailq-command])
1858 dnl ACX_FEATURE([with],[nslookup-command])
1859 ACX_FEATURE([with],[ping6-command])
1860 ACX_FEATURE([with],[ping-command])
1861 dnl ACX_FEATURE([with],[qstat-command])
1862 dnl ACX_FEATURE([with],[rpcinfo-command])
1863 dnl ACX_FEATURE([with],[smbclient-command])
1864 dnl ACX_FEATURE([with],[snmpget-command])
1865 dnl ACX_FEATURE([with],[snmpgetnext-command])
1866 dnl ACX_FEATURE([with],[ssh-command])
1867 dnl ACX_FEATURE([with],[uptime-command])
1869 dnl ACX_FEATURE([with],[proc-meminfo])
1870 dnl ACX_FEATURE([with],[ps-command])
1871 dnl ACX_FEATURE([with],[ps-format])
1872 dnl ACX_FEATURE([with],[ps-cols])
1873 dnl ACX_FEATURE([with],[ps-varlist])
1875 ACX_FEATURE([with],[ipv6])
1876 ACX_FEATURE([with],[mysql])
1877 ACX_FEATURE([with],[openssl])
1878 ACX_FEATURE([with],[gnutls])
1879 ACX_FEATURE([enable],[extra-opts])
1880 ACX_FEATURE([with],[perl])
1881 ACX_FEATURE([enable],[perl-modules])
1882 ACX_FEATURE([with],[cgiurl])
1883 ACX_FEATURE([with],[trusted-path])
1884 ACX_FEATURE([enable],[libtap])