1 dnl Process this file with autoconf to produce a configure script.
3 AC_INIT(nagios-plugins,1.4.16)
4 AC_CONFIG_SRCDIR(NPTest.pm)
5 AC_CONFIG_FILES([gl/Makefile
7 AC_CONFIG_AUX_DIR(build-aux)
8 AM_INIT_AUTOMAKE([1.8.3])
9 AM_CONFIG_HEADER(config.h)
15 AC_PREFIX_DEFAULT(/usr/local/nagios)
17 dnl Deprecated configure options
20 dnl Append user (-o), group (-g), mode (-m) to install command
21 dnl There is an assumption that this is possible with ./configure's chosen install command
23 AC_ARG_WITH(nagios_user,
24 ACX_HELP_STRING([--with-nagios-user=USER],
25 [Installs executables with this user. Defaults to install user]),
26 extra_install_args="-o $withval")
27 AC_ARG_WITH(nagios_group,
28 ACX_HELP_STRING([--with-nagios-group=GROUP],
29 [Installs executables with this group. Defaults to install user]),
30 extra_install_args="$extra_install_args -g $withval")
31 AC_ARG_WITH(world_permissions,
32 ACX_HELP_STRING([--without-world-permissions],
33 [Installs executables without world permissions]))
35 if test "x$with_world_permissions" = xno ; then
36 extra_install_args="$extra_install_args -m 0550"
39 INSTALL="$INSTALL $extra_install_args"
40 INSTALL_STRIP_PROGRAM="$INSTALL_STRIP_PROGRAM $extra_install_args"
45 AC_PROG_GCC_TRADITIONAL
53 ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD])
55 PLUGIN_TEST=`echo $srcdir/plugins/t/*.t|sed -e 's,\.*/plugins/,,g'`
56 AC_SUBST(PLUGIN_TEST)dnl
58 SCRIPT_TEST=`echo $srcdir/plugins-scripts/t/*.t|sed -e 's,\.*/plugins-scripts/,,g'`
59 AC_SUBST(SCRIPT_TEST)dnl
61 WARRANTY="The nagios plugins come with ABSOLUTELY NO WARRANTY. You may redistribute\ncopies of the plugins under the terms of the GNU General Public License.\nFor more information about these matters, see the file named COPYING.\n"
64 SUPPORT="Send email to nagios-users@lists.sourceforge.net if you have questions\nregarding use of this software. To submit patches or suggest improvements,\nsend email to nagiosplug-devel@lists.sourceforge.net.\nPlease include version information with all correspondence (when possible,\nuse output from the --version option of the plugin itself).\n"
67 dnl CGIURL has changed for Nagios with 1.0 beta
69 ACX_HELP_STRING([--with-cgiurl=DIR],
70 [sets URL for cgi programs]),
72 with_cgiurl=/nagios/cgi-bin)
74 AC_DEFINE_UNQUOTED(CGIURL,"$CGIURL",[URL of CGI programs])
76 AC_ARG_WITH(trusted_path,
77 ACX_HELP_STRING([--with-trusted-path=PATH],
78 [sets trusted path for executables called by scripts (default=/bin:/sbin:/usr/bin:/usr/sbin)]),
79 with_trusted_path=$withval,
80 with_trusted_path=/bin:/sbin:/usr/bin:/usr/sbin)
81 AC_SUBST(with_trusted_path)
85 dnl PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/etc:/usr/local/bin:/usr/local/sbin:$PATH
87 LDFLAGS="$LDFLAGS -L."
89 ac_cv_uname_m=`uname -m`
90 ac_cv_uname_s=`uname -s`
91 ac_cv_uname_r=`uname -r`
92 ac_cv_uname_v=`uname -v`
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(PYTHON,python)
116 AC_PATH_PROG(PERL,perl)
117 AC_PATH_PROG(LIBGNUTLS_CONFIG,libgnutls-config)
118 AC_PATH_PROG(HOSTNAME,hostname)
119 AC_PATH_PROG(BASENAME,basename)
121 dnl allow them to override the path of perl
123 ACX_HELP_STRING([--with-perl=PATH],
124 [sets path to perl executable]),
125 with_perl=$withval,with_perl=$PERL)
126 AC_SUBST(PERL, $with_perl)
130 AC_HELP_STRING([--with-openssl=DIR],
131 [path to openssl installation]),)
134 ACX_HELP_STRING([--with-gnutls=PATH],
135 [path to gnutls installation root]),)
137 dnl you can only have one or the other
138 if test ! "$with_openssl" = "" && test ! "$with_openssl" = "no"; then
141 if test ! "$with_gnutls" = "" && test ! "$with_gnutls" = "no"; then
145 dnl list of possible dirs to try to autodetect openssl
146 dnl if $dir/include exists, we consider it found
147 dnl the order should allow locally installed versions to override distros' ones
148 OPENSSL_DIRS="/usr /usr/local /usr/slocal /usr/local/openssl /usr/local/ssl \
153 dnl Checks for libraries.
156 AC_CHECK_LIB(dce,main,SOCKETLIBS="$SOCKETLIBS -ldce")
157 AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
158 AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
159 AC_CHECK_LIB(resolv,main,SOCKETLIBS="$SOCKETLIBS -lresolv")
163 dnl check for math-related functions needing -lm
164 AC_CHECK_HEADERS(math.h)
165 AC_CHECK_LIB(m,floor,MATHLIBS="-lm")
166 AC_CHECK_HEADERS(mp.h)
167 AC_CHECK_LIB(bsd,pow,MATHLIBS="$MATHLIBS -lbsd")
170 dnl Check if we buils local libtap
171 AC_ARG_ENABLE(libtap,
172 AC_HELP_STRING([--enable-libtap],
173 [Enable built-in libtap for unit-testing (default: autodetect system library).]),
174 [enable_libtap=$enableval],
176 AM_CONDITIONAL([USE_LIBTAP_LOCAL],[test "$enable_libtap" = "yes"])
178 # If not local, check if we can use the system one
179 if test "$enable_libtap" != "yes" ; then
180 dnl Check for libtap, to run perl-like tests
181 AC_CHECK_LIB(tap, plan_tests,
186 # Finally, define tests if we use libtap
187 if test "$enable_libtap" = "yes" ; then
188 EXTRA_TEST="test_utils test_disk test_tcp test_cmd test_base64"
193 AC_ARG_ENABLE(extra-opts,
194 AC_HELP_STRING([--enable-extra-opts],
195 [Enables parsing of plugins ini config files for extra options (default: no)]),
196 [enable_extra_opts=$enableval],
197 [enable_extra_opts=no])
198 AM_CONDITIONAL([USE_PARSE_INI],[test "$enable_extra_opts" = "yes"])
199 if test "$enable_extra_opts" = "yes" ; then
200 AC_DEFINE(NP_EXTRA_OPTS,[1],[Enable INI file parsing.])
201 if test "$enable_libtap" = "yes"; then
202 EXTRA_TEST="$EXTRA_TEST test_ini1 test_ini3 test_opts1 test_opts2 test_opts3"
207 dnl Check for PostgreSQL libraries
209 _SAVEDCPPFLAGS="$CPPFLAGS"
211 ACX_HELP_STRING([--with-pgsql=DIR],
212 [sets path to pgsql installation]),
214 AC_CHECK_LIB(crypt,main)
215 if test "$ac_cv_lib_crypt_main" = "yes" -a "x$PGSQL" != "xno"; then
216 if test -n "$PGSQL"; then
217 LDFLAGS="$LDFLAGS -L$PGSQL/lib"
218 CPPFLAGS="$CPPFLAGS -I$PGSQL/include"
220 AC_CHECK_LIB(pq,PQsetdbLogin,,,-lcrypt)
221 if test "$ac_cv_lib_pq_PQsetdbLogin" = "yes"; then
222 AC_CHECK_HEADERS(pgsql/libpq-fe.h)
223 AC_CHECK_HEADERS(postgresql/libpq-fe.h)
224 AC_CHECK_HEADERS(libpq-fe.h)
225 if [[ -n "$PGSQL" -a "$ac_cv_header_libpq_fe_h" = "yes" ]]; then
226 PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
227 PGINCLUDE="-I$PGSQL/include"
228 elif test "$ac_cv_header_pgsql_libpq_fe_h" = "yes"; then
229 PGLIBS="-lpq -lcrypt"
230 PGINCLUDE="-I/usr/include/pgsql"
231 elif test "$ac_cv_header_postgresql_libpq_fe_h" = "yes"; then
232 PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
233 PGINCLUDE="-I/usr/include/postgresql"
234 elif test "$ac_cv_header_libpq_fe_h" = "yes"; then
235 PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
236 PGINCLUDE="-I$PGSQL/include"
238 if test -z "$PGINCLUDE"; then
239 AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
240 AC_MSG_WARN([install PostgreSQL headers to compile this plugin (see REQUIREMENTS).])
244 EXTRAS="$EXTRAS check_pgsql"
247 AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
248 AC_MSG_WARN([LIBS="$LIBS" CPPFLAGS="$CPPFLAGS"])
249 AC_MSG_WARN([install PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
252 AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
253 AC_MSG_WARN([install lib crypt and PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
256 CPPFLAGS="$_SAVEDCPPFLAGS"
258 AC_ARG_WITH([dbi], [AS_HELP_STRING([--without-dbi], [Skips the dbi plugin])])
259 dnl Check for DBI libraries
260 AS_IF([test "x$with_dbi" != "xno"], [
262 AC_CHECK_LIB(dbi,dbi_initialize)
263 if test "$ac_cv_lib_dbi_dbi_initialize" = "yes"; then
264 EXTRAS="$EXTRAS check_dbi"
268 AC_MSG_WARN([Skipping dbi plugin])
269 AC_MSG_WARN([install DBI libs to compile this plugin (see REQUIREMENTS).])
274 AC_ARG_WITH([radius], [AS_HELP_STRING([--without-radius], [Skips the radius plugin])])
276 dnl Check for radius libraries
277 AS_IF([test "x$with_radius" != "xno"], [
279 AC_CHECK_LIB(radiusclient,rc_read_config)
280 if test "$ac_cv_lib_radiusclient_rc_read_config" = "yes"; then
281 EXTRAS="$EXTRAS check_radius"
282 RADIUSLIBS="-lradiusclient"
285 AC_CHECK_LIB(radiusclient-ng,rc_read_config)
286 if test "$ac_cv_lib_radiusclient_ng_rc_read_config" = "yes"; then
287 EXTRAS="$EXTRAS check_radius"
288 RADIUSLIBS="-lradiusclient-ng"
291 AC_MSG_WARN([Skipping radius plugin])
292 AC_MSG_WARN([install radius libs to compile this plugin (see REQUIREMENTS).])
298 AC_ARG_WITH([ldap], [AS_HELP_STRING([--without-ldap], [Skips the LDAP plugin])])
300 dnl Check for LDAP libraries
301 AS_IF([test "x$with_ldap" != "xno"], [
303 AC_CHECK_LIB(ldap,main,,,-llber)
304 if test "$ac_cv_lib_ldap_main" = "yes"; then
305 LDAPLIBS="-lldap -llber"\
306 LDAPINCLUDE="-I/usr/include/ldap"
308 AC_SUBST(LDAPINCLUDE)
309 AC_CHECK_FUNCS(ldap_set_option)
310 EXTRAS="$EXTRAS check_ldap"
311 AC_CHECK_FUNCS(ldap_init ldap_set_option ldap_get_option ldap_start_tls_s)
313 AC_MSG_WARN([Skipping LDAP plugin])
314 AC_MSG_WARN([install LDAP libs to compile this plugin (see REQUIREMENTS).])
319 dnl Check for headers used by check_ide_smart
322 AC_CHECK_HEADER(linux/hdreg.h, FOUNDINCLUDE=yes, FOUNDINCLUDE=no)
323 if test "$FOUNDINCLUDE" = "yes" ; then
324 AC_CHECK_HEADER(linux/types.h, FOUNDINCLUDE=yes, FOUNDINCLUDE=no)
326 if test "$FOUNDINCLUDE" = "no" ; then
327 AC_MSG_WARN([Skipping check_ide_smart plugin.])
328 AC_MSG_WARN([check_ide_smart requires linux/hdreg.h and linux/types.h.])
332 AC_CHECK_HEADER(dev/ata/atareg.h, FOUNDINCLUDE=yes, FOUNDINCLUDE=no)
333 if test "$FOUNDINCLUDE" = "yes" ; then
334 AC_CHECK_HEADER(dev/ic/wdcreg.h, FOUNDINCLUDE=yes, FOUNDINCLUDE=no)
336 if test "$FOUNDINCLUDE" = "no" ; then
337 AC_MSG_WARN([Skipping check_ide_smart plugin.])
338 AC_MSG_WARN([check_ide_smart requires dev/ata/atareg.h and dev/ic/wdcreg.h])
342 AC_MSG_WARN([Skipping check_ide_smart plugin.])
343 AC_MSG_WARN([check_ide_smart works only on Linux and NetBSD])
346 if test "$FOUNDINCLUDE" = "yes" ; then
347 EXTRAS="$EXTRAS check_ide_smart"
350 dnl Check for mysql libraries
352 if test $with_mysql = "no" ; then
353 AC_MSG_WARN([Skipping mysql plugin])
354 AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).])
356 EXTRAS="$EXTRAS check_mysql check_mysql_query"
357 MYSQLINCLUDE="$np_mysql_include"
358 MYSQLLIBS="$np_mysql_libs"
359 MYSQLCFLAGS="$np_mysql_cflags"
360 AC_SUBST(MYSQLINCLUDE)
362 AC_SUBST(MYSQLCFLAGS)
365 dnl Check for headers used by check_users
366 AC_CHECK_HEADERS(utmpx.h)
367 AM_CONDITIONAL([HAVE_UTMPX], [test "$ac_cv_header_utmpx_h" = "yes"])
369 dnl Fallback to who(1) if the system doesn't provide an utmpx(5) interface
370 if test "$ac_cv_header_utmpx_h" = "no"
372 AC_PATH_PROG(PATH_TO_WHO,who)
374 if [$PATH_TO_WHO -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
376 ac_cv_path_to_who="$PATH_TO_WHO -q"
378 ac_cv_path_to_who="$PATH_TO_WHO"
381 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$ac_cv_path_to_who",
382 [path and arguments for invoking 'who'])
386 [AS_HELP_STRING([--with-ipv6], [support IPv6 @<:@default=check@:>@])],
387 [], [with_ipv6=check])
389 dnl Check for AF_INET6 support - unistd.h required for Darwin
390 if test "$with_ipv6" != "no"; then
391 AC_CACHE_CHECK([for IPv6 support], np_cv_sys_ipv6, [
393 [#ifdef HAVE_UNISTD_H
396 #include <netinet/in.h>
397 #include <sys/socket.h>],
398 [struct sockaddr_in6 sin6;
401 sin6.sin6_family = AF_INET6;
402 sin6.sin6_port = 587;
403 p = &sin6.sin6_addr;],
404 [np_cv_sys_ipv6=yes],
407 if test "$np_cv_sys_ipv6" = "no" -a "$with_ipv6" != "check"; then
408 AC_MSG_FAILURE([--with-ipv6 was given, but test for IPv6 support failed])
410 if test "$np_cv_sys_ipv6" = "yes"; then
411 AC_DEFINE(USE_IPV6,1,[Enable IPv6 support])
413 with_ipv6="$np_cv_sys_ipv6"
417 dnl Checks for Kerberos. Must come before openssl checks for Redhat EL 3
418 AC_CHECK_HEADERS(krb5.h,FOUNDINCLUDE=yes,FOUNDINCLUDE=no)
419 if test "$FOUNDINCLUDE" = "no"; then
420 _SAVEDCPPFLAGS="$CPPFLAGS"
421 CPPFLAGS="$_SAVEDCPPFLAGS -I/usr/kerberos/include"
422 unset ac_cv_header_krb5_h
423 AC_CHECK_HEADERS(krb5.h,
424 KRB5INCLUDE="-I/usr/kerberos/include"
429 if test "$FOUNDINCLUDE" = "no"; then
430 CPPFLAGS="$_SAVEDCPPFLAGS"
433 dnl *** The following block comes from wget configure.ac ***
434 dnl Unfortunately, as of this writing (OpenSSL 0.9.6), the libcrypto
435 dnl shared library doesn't record its dependency on libdl, so we
436 dnl need to check for it ourselves so we won't fail to link due to a
437 dnl lack of -ldl. Most OSes use dlopen(), but HP-UX uses
439 AC_CHECK_LIB(dl,dlopen)
440 AC_CHECK_LIB(dl,shl_load)
442 dnl openssl detection/configuration
443 if ! test x"$with_openssl" = x"no"; then
444 dnl Check for OpenSSL location if it wasn't already specified
445 if ! test -d "$with_openssl"; then
446 for d in $OPENSSL_DIRS; do
447 if test -x ${d}/bin/openssl || test -x ${d}/sbin/openssl ; then
453 _SAVEDCPPFLAGS="$CPPFLAGS"
454 _SAVEDLDFLAGS="$LDFLAGS"
455 dnl Check for OpenSSL header files
457 if test x"$with_openssl" != x"/usr" ; then
458 CPPFLAGS="$CPPFLAGS -I$with_openssl/include"
459 LDFLAGS="$LDFLAGS -L$with_openssl/lib"
462 dnl check for openssl in $dir/include/openssl
463 AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h,
464 SSLINCLUDE="-I$with_openssl/include"
467 dnl else check to see if $dir/include has it
468 if test "$FOUNDINCLUDE" = "no"; then
469 AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h,
470 SSLINCLUDE="-I$with_openssl/include"
475 dnl if we didn't find it, reset CPPFLAGS
476 if test "$FOUNDINCLUDE" = "no"; then
477 CPPFLAGS="$_SAVEDCPPFLAGS"
478 LDFLAGS="$_SAVEDLDFLAGS"
481 dnl Check for crypto lib
483 LIBS="-L${with_openssl}/lib"
484 AC_CHECK_LIB(crypto,CRYPTO_lock)
485 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
486 dnl Check for SSL lib
487 AC_CHECK_LIB(ssl,main, SSLLIBS="-lssl -lcrypto",,-lcrypto)
491 dnl test headers and libs to decide whether check_http should use SSL
492 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
493 if test "$ac_cv_lib_ssl_main" = "yes"; then
494 if test "$FOUNDINCLUDE" = "yes"; then
502 dnl check for gnutls if openssl isn't found (or is disabled)
503 if test ! "$FOUNDOPENSSL" = "yes" && test ! "$with_gnutls" = "no"; then
504 if test ! "$with_gnutls" = ""; then
505 CPPFLAGS="$CPPFLAGS -I${with_gnutls}/include"
506 elif test ! "$LIBGNUTLS_CONFIG" = ""; then
507 CPPFLAGS="$CPPFLAGS -I`$LIBGNUTLS_CONFIG --prefix`"
509 AC_CHECK_HEADERS([gnutls/openssl.h],FOUNDGNUTLS="yes",)
510 if test "$FOUNDGNUTLS" = "yes"; then
511 AC_CHECK_LIB(gnutls-openssl,main,SSLLIBS="-lgnutls-openssl")
514 dnl end check for gnutls
516 if test "$FOUNDOPENSSL" = "yes" || test "$FOUNDGNUTLS" = "yes"; then
517 check_tcp_ssl="check_simap check_spop check_jabber check_nntps check_ssmtp"
518 AC_SUBST(check_tcp_ssl)
520 AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
521 if test "$FOUNDOPENSSL" = "yes"; then
522 AC_DEFINE(USE_OPENSSL,1,[Define if using OpenSSL libraries])
526 AC_DEFINE(USE_GNUTLS,1,[Define if using gnutls libraries])
531 dnl else deliberately disabled or no ssl support available
532 AC_MSG_WARN([OpenSSL or GnuTLS libs could not be found or were disabled])
538 dnl Checks for header files.
543 AC_CHECK_HEADERS(signal.h syslog.h uio.h errno.h sys/time.h sys/socket.h sys/un.h sys/poll.h)
544 AC_CHECK_HEADERS(features.h stdarg.h sys/unistd.h ctype.h)
546 dnl Checks for typedefs, structures, and compiler characteristics.
553 AC_CACHE_CHECK([for va_copy],ac_cv_HAVE_VA_COPY,[
554 AC_TRY_LINK([#include <stdarg.h>
555 va_list ap1,ap2;], [va_copy(ap1,ap2);],
556 ac_cv_HAVE_VA_COPY=yes,
557 ac_cv_HAVE_VA_COPY=no)])
558 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
559 AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
561 AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE___VA_COPY,[
562 AC_TRY_LINK([#include <stdarg.h>
563 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
564 ac_cv_HAVE___VA_COPY=yes,
565 ac_cv_HAVE___VA_COPY=no)])
566 if test x"$ac_cv_HAVE___VA_COPY" = x"yes"; then
567 AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
571 AC_TRY_COMPILE([#include <sys/time.h>],
573 struct timezone *tz;],
574 AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
575 AC_TRY_COMPILE([#include <sys/time.h>],
578 gettimeofday(tv, tz);],
579 AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
580 AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
582 dnl Checks for library functions.
583 AC_CHECK_FUNCS(memmove select socket strdup strstr strtol strtoul floor)
586 AC_MSG_CHECKING(return type of socket size)
587 AC_TRY_COMPILE([#include <stdlib.h>
588 #include <sys/types.h>
589 #include <sys/socket.h>],
590 [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
591 ac_cv_socket_size_type=["size_t"]
592 AC_MSG_RESULT(size_t),
593 ac_cv_socket_size_type=["int"]
596 AC_DEFINE_UNQUOTED(SOCKET_SIZE_TYPE, $ac_cv_socket_size_type ,
597 [Define type of socket size])
600 dnl #### Process table test
602 AC_PATH_PROG(PATH_TO_PS,ps)
604 AC_MSG_CHECKING(for ps syntax)
605 AC_ARG_WITH(ps_command,
606 ACX_HELP_STRING([--with-ps-command=PATH],
607 [Verbatim command to execute for ps]),
609 AC_ARG_WITH(ps_format,
610 ACX_HELP_STRING([--with-ps-format=FORMAT],
611 [Format string for scanning ps output]),
614 ACX_HELP_STRING([--with-ps-cols=NUM],
615 [Number of columns in ps command]),
617 AC_ARG_WITH(ps_varlist,
618 ACX_HELP_STRING([--with-ps-varlist=LIST],
619 [Variable list for sscanf of 'ps' output]),
622 if test -n "$PS_COMMAND" && test -n "$PS_FORMAT" && test -n "$PS_COLS" && test -n "$PS_VARLIST"; then
623 ac_cv_ps_command="$PS_COMMAND"
624 ac_cv_ps_format="$PS_FORMAT"
625 ac_cv_ps_varlist="$PS_VARLIST"
626 ac_cv_ps_cols="$PS_COLS"
627 AC_MSG_RESULT([(command-line) $ac_cv_ps_command])
629 dnl Now using the pst3/kmem hack for solaris systems to avoid truncation
630 elif test "$ac_cv_uname_s" = "SunOS"; then
632 # this is a very, very ugly hack, to hardcode the location for plugins
634 if test "$libexecdir" = '${exec_prefix}/libexec'; then
635 if test "$exec_prefix" = "NONE"; then
636 if test "$prefix" = "NONE"; then
637 pst3="$ac_default_prefix/libexec/pst3"
639 pst3="$prefix/libexec/pst3"
642 pst3="$exec_prefix/libexec/pst3"
645 pst3="$libexecdir/pst3"
647 ac_cv_ps_command="$pst3"
648 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
649 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
651 AC_MSG_RESULT([using nagios-plugins internal ps command (pst3) for solaris])
652 if test `isainfo -b` = 64 ; then
654 AC_MSG_NOTICE([using 64bit pst3])
656 AC_MSG_NOTICE([using 32bit pst3])
658 EXTRAS_ROOT="$EXTRAS_ROOT pst3"
660 if test "$pst3_use_64bit" = 1; then
661 dnl Test if we can actually compile code in 64bit
663 CFLAGS="$CFLAGS -m64"
666 [AC_LANG_PROGRAM([], [
667 return sizeof(void*) == 8 ? 0 : 1;
673 AC_MSG_NOTICE([using -m64 for 64bit code])
676 AC_MSG_NOTICE([compiler do not like -m64])
679 if test "$pst3_64bit_working" = 0; then
681 CFLAGS="$CFLAGS -xarch=v9"
683 [AC_LANG_PROGRAM([], [
684 return sizeof(void*) == 8 ? 0 : 1;
687 PST3CFLAGS="-xarch=v9"
690 AC_MSG_NOTICE([using -xarch=v9 for 64bit code])
693 AC_MSG_NOTICE([compiler do not like -xarch=v9])
697 if test "$pst3_64bit_working" = 0; then
699 CFLAGS="$CFLAGS -xarch=amd64"
701 [AC_LANG_PROGRAM([], [
702 return sizeof(void*) == 8 ? 0 : 1;
705 PST3CFLAGS="-xarch=amd64"
708 AC_MSG_NOTICE([using -xarch=amd64 for 64bit code])
711 AC_MSG_NOTICE([compiler do not like -xarch=amd64])
715 if test "$pst3_64bit_working" = 0; then
716 AC_MSG_ERROR([I don't know how to build a 64-bit object!])
720 dnl Removing this for the moment - Ton
721 dnl Using /usr/ucb/ps on Solaris systems, to avoid truncation
722 dnl Limitation that command name is not available
723 dnl elif test "$ac_cv_uname_s" = "SunOS" && /usr/ucb/ps -alxwwn 2>/dev/null | \
724 dnl egrep -i ["^ *F +UID +PID +PPID +%C +PRI +NI +SZ +RSS +WCHAN +S +TT +TIME +COMMAND"] > /dev/null
726 dnl ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procpcpu,&procvsz,&procrss,procstat,&pos]"
727 dnl ac_cv_ps_command="/usr/ucb/ps -alxwwn"
728 dnl ac_cv_ps_format=["%*s %d %d %d %d %*d %*d %d %d%*[ 0123456789abcdef]%[OSRZT]%*s %*s %n"]
730 dnl AC_MSG_RESULT([$ac_cv_ps_command])
732 dnl Some gnu/linux systems (debian for one) don't like -axwo and need axwo.
733 dnl so test for this first...
734 elif ps axwo 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \
735 egrep -i ["^ *STAT +[UCOMAND]+ +VSZ +RSS +USER +UID +PID +PPID +COMMAND"] > /dev/null
737 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
738 ac_cv_ps_command="$PATH_TO_PS axwo 'stat uid pid ppid vsz rss pcpu comm args'"
739 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
741 AC_MSG_RESULT([$ac_cv_ps_command])
743 dnl For OpenBSD 3.2 & 3.3. Must come before ps -weo
744 dnl Should also work for FreeBSD 5.2.1 and 5.3
745 dnl STAT UCOMM VSZ RSS USER PPID COMMAND
746 elif ps -axwo 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \
747 egrep -i ["^ *STAT +[UCOMAND]+ +VSZ +RSS +USER +UID +PID +PPID +COMMAND"] > /dev/null
749 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
750 ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid pid ppid vsz rss pcpu comm args'"
751 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
753 AC_MSG_RESULT([$ac_cv_ps_command])
755 dnl Some *BSDs have different format for ps. This is mainly to catch FreeBSD 4.
756 dnl Limitation: Only first 16 chars returned for ucomm field
757 dnl Must come before ps -weo
758 elif ps -axwo 'stat uid pid ppid vsz rss pcpu ucomm command' 2>/dev/null | \
759 egrep -i ["^ *STAT +UID +PID +PPID +VSZ +RSS +%CPU +UCOMM +COMMAND"] > /dev/null
761 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
762 ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid pid ppid vsz rss pcpu ucomm command'"
763 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
765 AC_MSG_RESULT([$ac_cv_ps_command])
767 dnl STAT UCOMM VSZ RSS USER UID PPID COMMAND
768 elif ps -weo 'stat comm vsz rss user uid pid ppid etime args' 2>/dev/null | \
769 egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[ID]+ +P[PID]+ +[ELAPSD]+ +[RGSCOMDNA]+"] >/dev/null
771 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procetime,procprog,&pos]"
772 ac_cv_ps_command="$PATH_TO_PS -weo 'stat uid pid ppid vsz rss pcpu etime comm args'"
773 ac_cv_ps_format="%s %d %d %d %d %d %f %s %s %n"
775 AC_MSG_RESULT([$ac_cv_ps_command])
778 elif ps waxco 'state command vsz rss uid user pid ppid' 2>/dev/null | \
779 egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PID +PPID"] >/dev/null
781 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
782 ac_cv_ps_command="$PATH_TO_PS waxco 'state uid pid ppid vsz rss pcpu command command'"
783 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
785 AC_MSG_RESULT([$ac_cv_ps_command])
787 dnl BSD-like mode in RH 6.1
788 elif ps waxno 'state comm vsz rss uid user pid ppid args' 2>/dev/null | \
789 egrep -i ["^S +COMMAND +VSZ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
791 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
792 ac_cv_ps_command="$PATH_TO_PS waxno 'state uid pid ppid vsz rss pcpu comm args'"
793 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
795 AC_MSG_RESULT([$ac_cv_ps_command])
798 dnl F UID PID PPID CP PRI NI SZ RSS WCHAN STAT TT TIME COMMAND
799 dnl Need the head -1 otherwise test will work because arguments are found
800 elif ps -laxnwww 2>/dev/null | head -1 | \
801 egrep -i ["^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND"] >/dev/null
803 ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
804 ac_cv_ps_command="$PATH_TO_PS -laxnwww"
805 ac_cv_ps_format="%*s %d %d %d %*s %*s %*s %d %d %*s %s %*s %*s %n%s"
807 AC_MSG_RESULT([$ac_cv_ps_command])
809 dnl Debian Linux / procps v1.2.9:
810 dnl FLAGS UID PID PPID PRI NI SIZE RSS WCHAN STA TTY TIME COMMAND
811 dnl 100 0 1 0 0 0 776 76 c0131c8c S ffff 0:11 init [2]
813 elif ps laxnwww 2>/dev/null | \
814 egrep -i ["^ *F(LAGS)? +UID +PID +PPID +PRI +NI +(VSZ)|(SIZE) +RSS +WCHAN +STAT? TTY +TIME +COMMAND"] >/dev/null
816 ac_cv_ps_varlist="[&procuid,&procpid,&procppid,procstat,&procvsz,&procrss,&pos,procprog]"
817 ac_cv_ps_command="$PATH_TO_PS laxnwww"
818 ac_cv_ps_format="%*s %d %d %d %*s %*s %d %d %*s %s %*s %*s %n%s"
820 AC_MSG_RESULT([$ac_cv_ps_command])
822 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
823 elif ps -axo 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \
824 egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
826 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
827 ac_cv_ps_command="$PATH_TO_PS -axo 'stat uid pid ppid vsz rss pcpu comm args'"
828 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
830 AC_MSG_RESULT([$ac_cv_ps_command])
832 dnl Tru64 - needs %*[ +<>] in PS_FORMAT.
833 dnl Has /usr/bin/ps and /sbin/ps - force sbin version
834 dnl Can't use vsize and rssize because comes back with text (eg, 1.5M instead
835 dnl of 1500). Will need big changes to check_procs to support
836 elif /sbin/ps -eo 'stat uid pid ppid pcpu etime comm args' 2>/dev/null | \
837 egrep -i ["^ *S +[UID]+ +[PID]+ +[PID]+ +[%CPU]+ +[ELAPSD]+ +[COMMAND]+ +[COMMAND]+"] > /dev/null
839 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procpcpu,procetime,procprog,&pos]"
840 ac_cv_ps_command="/sbin/ps -eo 'stat uid pid ppid pcpu etime comm args'"
841 ac_cv_ps_format=["%s%*[ +<>] %d %d %d %f %s %s %n"]
843 AC_MSG_RESULT([$ac_cv_ps_command])
845 elif ps -eo 's comm vsz rss user uid pid ppid args' 2>/dev/null | \
846 egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
848 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
849 ac_cv_ps_command="$PATH_TO_PS -eo 's uid pid ppid vsz rss pcpu comm args'"
850 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
852 AC_MSG_RESULT([$ac_cv_ps_command])
854 dnl AIX 4.3.3 and 5.1 do not have an rss field
855 elif ps -eo 'stat uid pid ppid vsz pcpu comm args' 2>/dev/null | \
856 egrep -i ["^ *S[TAUES]* +UID +PID +PPID +VSZ +%CPU +COMMAND +COMMAND"] >/dev/null
858 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procpcpu,procprog,&pos]"
859 ac_cv_ps_command="$PATH_TO_PS -eo 'stat uid pid ppid vsz pcpu comm args'"
860 ac_cv_ps_format="%s %d %d %d %d %f %s %n"
862 AC_MSG_RESULT([$ac_cv_ps_command - with no RSS])
865 elif ps -Ao 's comm vsz rss uid user pid ppid args' 2>/dev/null | \
866 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
868 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
869 ac_cv_ps_command="$PATH_TO_PS -Ao 's uid pid ppid vsz rss pcpu comm args'"
870 # There must be no space between the %s and %n due to a wierd problem in sscanf where
871 # it will return %n as longer than the line length
872 ac_cv_ps_format="%s %d %d %d %d %d %f %s%n"
874 AC_MSG_RESULT([$ac_cv_ps_command])
876 elif ps -Ao 'status 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 'status uid pid ppid vsz rss pcpu comm args'"
881 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
883 AC_MSG_RESULT([$ac_cv_ps_command])
885 elif ps -Ao 'state comm vsz rss uid user pid ppid args' 2>/dev/null | \
886 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
888 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
889 ac_cv_ps_command="$PATH_TO_PS -Ao 'state uid pid ppid vsz rss pcpu comm args'"
890 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
892 AC_MSG_RESULT([$ac_cv_ps_command])
894 dnl wonder who takes state instead of stat
895 elif ps -ao 'state command vsz rss user pid ppid args' 2>/dev/null | \
896 egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
898 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
899 ac_cv_ps_command="$PATH_TO_PS -ao 'state uid pid ppid vsz rss pcpu command args'"
900 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
902 AC_MSG_RESULT([$ac_cv_ps_command])
905 elif ps -el 2>/dev/null | \
906 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
908 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&pos,procprog]"
909 ac_cv_ps_command="$PATH_TO_PS -el (IRIX 53)"
910 ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %d %d %*s %*s %*s %n%s"
912 AC_MSG_RESULT([$ac_cv_ps_command])
915 elif ps -el 2>/dev/null | \
916 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +ADDR +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
918 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&pos,procprog]"
919 ac_cv_ps_command="$PATH_TO_PS -el (IRIX 63)"
920 ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
922 AC_MSG_RESULT([$ac_cv_ps_command])
925 dnl F S UID PID PPID C PRI NI ADDR SZ RSS WCHAN TTY TIME CMD
926 dnl 303 A 0 0 0 120 16 -- 1c07 20 24 - 0:45 swapper
927 elif ps -el 2>/dev/null | \
928 egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
930 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&pos,procprog]"
931 ac_cv_ps_command="$PATH_TO_PS -el (AIX 4.1 and HP-UX)"
932 ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
934 AC_MSG_RESULT([$ac_cv_ps_command])
937 elif ps glaxen 2>/dev/null | \
938 egrep -i ["^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND"] >/dev/null
940 ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
941 ac_cv_ps_command="$PATH_TO_PS glaxen"
942 ac_cv_ps_format="%*s %d %d %d %*s %*s %d %d %*s %s %*s %*s %n%s"
944 AC_MSG_RESULT([$ac_cv_ps_command])
947 dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
948 dnl Some truncation will happen in UCOMM column
949 dnl STAT VSZ RSS UID PPID %CPU UCOMM COMMAND
950 dnl Ss 52756 22496 501 1 6.9 Window Manager /System/Library/CoreServices/WindowServer -daemon
951 elif ps wwaxo 'state vsz rss uid pid ppid pcpu ucomm command' 2>/dev/null | \
952 egrep -i ["^STAT +VSZ +RSS +UID +PPID +%CPU +UCOMM +COMMAND"] >/dev/null
954 ac_cv_ps_command="$PATH_TO_PS wwaxo 'state vsz rss uid pid ppid pcpu ucomm command'"
955 ac_cv_ps_varlist="[procstat,&procvsz,&procrss,&procuid,&procpid,&procppid,&procpcpu,procprog,&pos]"
956 ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
958 AC_MSG_RESULT([$ac_cv_ps_command])
961 elif ps -Al 2>/dev/null | \
962 egrep -i ["^ *F +S +UID +PID +PPID +CLS +PRI +NI +C +ADDR +SZ +WCHAN +TTY +TIME +COMD"] >/dev/null
964 ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&pos,procprog]"
965 ac_cv_ps_command="$PATH_TO_PS -Al"
966 ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
968 AC_MSG_RESULT([$ac_cv_ps_command])
971 AC_MSG_WARN([unable to find usable ps syntax - check_procs and check_nagios will not be compiled])
974 if test -n "$ac_cv_ps_varlist" ; then
975 AC_DEFINE_UNQUOTED(PS_VARLIST,$ac_cv_ps_varlist,
976 [Variable list for sscanf of 'ps' output])
977 AC_DEFINE_UNQUOTED(PS_COMMAND,"$ac_cv_ps_command",
978 [Verbatim command to execute for ps in check_procs])
979 AC_DEFINE_UNQUOTED(PS_FORMAT,"$ac_cv_ps_format",
980 [Format string for scanning ps output in check_procs])
981 AC_DEFINE_UNQUOTED(PS_COLS,$ac_cv_ps_cols,
982 [Number of columns in ps command])
983 EXTRAS="$EXTRAS check_procs check_nagios"
984 if echo "$ac_cv_ps_varlist" | grep "procetime" >/dev/null; then
985 AC_DEFINE(PS_USES_PROCETIME,"yes",
986 [Whether the ps utility uses the "procetime" field])
990 AC_PATH_PROG(PATH_TO_PING,ping)
991 AC_PATH_PROG(PATH_TO_PING6,ping6)
993 AC_ARG_WITH(ping_command,
994 ACX_HELP_STRING([--with-ping-command=SYNTAX],
995 [sets syntax for ICMP ping]),
996 with_ping_command=$withval,)
998 AC_MSG_CHECKING(for ICMP ping syntax)
999 ac_cv_ping_packets_first=no
1000 ac_cv_ping_has_timeout=no
1001 if test -n "$with_ping_command"
1003 AC_MSG_RESULT([(command-line) $with_ping_command])
1004 if echo "$with_ping_command" | grep '%d.*%d.*%s' >/dev/null
1006 ac_cv_ping_packets_first=yes
1007 ac_cv_ping_has_timeout=yes
1008 elif echo "$with_ping_command" | grep '%d.*%s.*%d' >/dev/null || \
1009 echo "$with_ping_command" | grep '%s.*%d.*%d' >/dev/null
1011 ac_cv_ping_has_timeout=yes
1012 elif echo "$with_ping_command" | grep '%d.*%s' >/dev/null
1014 ac_cv_ping_packets_first=yes
1017 elif [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1018 $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
1019 egrep -i "^round-trip|^rtt" >/dev/null
1021 with_ping_command="$PATH_TO_PING -n -U -c %d %s"
1022 ac_cv_ping_packets_first=yes
1023 AC_MSG_RESULT([$with_ping_command])
1025 elif $PATH_TO_PING -n -U -w 10 -c 1 127.0.0.1 2>/dev/null | \
1026 egrep -i "^round-trip|^rtt" >/dev/null
1028 with_ping_command="$PATH_TO_PING -n -U -w %d -c %d %s"
1029 ac_cv_ping_packets_first=yes
1030 ac_cv_ping_has_timeout=yes
1031 AC_MSG_RESULT([$with_ping_command])
1033 elif $PATH_TO_PING -n -U -c 1 127.0.0.1 2>/dev/null | \
1034 egrep -i "^round-trip|^rtt" >/dev/null
1036 with_ping_command="$PATH_TO_PING -n -U -c %d %s"
1037 ac_cv_ping_packets_first=yes
1038 AC_MSG_RESULT([$with_ping_command])
1040 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
1041 egrep -i "^round-trip|^rtt" >/dev/null
1043 with_ping_command="$PATH_TO_PING -n -c %d %s"
1044 ac_cv_ping_packets_first=yes
1045 AC_MSG_RESULT([$with_ping_command])
1047 elif $PATH_TO_PING -n 127.0.0.1 -c 1 2>/dev/null | \
1048 egrep -i "^round-trip|^rtt" >/dev/null
1050 with_ping_command="$PATH_TO_PING -n %s -c %d"
1051 AC_MSG_RESULT([$with_ping_command])
1053 elif $PATH_TO_PING 127.0.0.1 -n 1 2>/dev/null | \
1054 egrep -i "^round-trip|^rtt" >/dev/null
1056 with_ping_command="$PATH_TO_PING %s -n %d"
1057 AC_MSG_RESULT([$with_ping_command])
1059 elif $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
1060 egrep -i "^round-trip|^rtt" >/dev/null
1062 with_ping_command="$PATH_TO_PING -n -s %s 56 %d"
1063 AC_MSG_RESULT([$with_ping_command])
1065 elif $PATH_TO_PING -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | \
1066 egrep -i "^round-trip|^rtt" >/dev/null
1068 with_ping_command="$PATH_TO_PING -n -h %s -s 56 -c %d"
1069 AC_MSG_RESULT([$with_ping_command])
1071 elif $PATH_TO_PING -n -s 56 -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 -s 56 -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])
1086 AC_MSG_WARN([unable to find usable ping syntax])
1089 AC_DEFINE_UNQUOTED(PING_COMMAND,"$with_ping_command",
1090 [path and args for ICMP ping command])
1092 if test "x$ac_cv_ping_packets_first" != "xno"
1094 AC_DEFINE(PING_PACKETS_FIRST,1,
1095 [Define if packet count must precede host])
1098 if test "x$ac_cv_ping_has_timeout" != "xno"
1100 AC_DEFINE(PING_HAS_TIMEOUT,1,
1101 [Define if ping has its own timeout option that should be set])
1104 AC_ARG_WITH(ping6_command,
1105 ACX_HELP_STRING([--with-ping6-command=SYNTAX],
1106 [sets syntax for ICMPv6 ping]),
1107 with_ping6_command=$withval,)
1109 if test x"$with_ipv6" != xno ; then
1110 AC_MSG_CHECKING(for ICMPv6 ping syntax)
1111 ac_cv_ping6_packets_first=no
1112 if test -n "$with_ping6_command"
1114 AC_MSG_RESULT([(command-line) $with_ping6_command])
1115 if echo "$with_ping6_command" | grep '%d.*%d.*%s' >/dev/null
1117 ac_cv_ping6_packets_first=yes
1118 elif echo "$with_ping6_command" | grep '%d.*%s.*%d' >/dev/null || \
1119 echo "$with_ping6_command" | grep '%s.*%d.*%d' >/dev/null
1121 # Just keep same logic as ping (IPv4) if we ever need ac_cv_ping6_has_timeout
1123 elif echo "$with_ping6_command" | grep '%d.*%s' >/dev/null
1125 ac_cv_ping6_packets_first=yes
1128 elif test "x$PATH_TO_PING6" != "x"; then
1129 if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1130 $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1131 egrep -i "^round-trip|^rtt" >/dev/null
1133 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1134 ac_cv_ping6_packets_first=yes
1135 AC_MSG_RESULT([$with_ping6_command])
1137 elif $PATH_TO_PING6 -n -U -w 10 -c 1 ::1 2>/dev/null | \
1138 egrep -i "^round-trip|^rtt" >/dev/null
1140 with_ping6_command="$PATH_TO_PING6 -n -U -w %d -c %d %s"
1141 ac_cv_ping6_packets_first=yes
1142 ac_cv_ping_has_timeout=yes
1143 AC_MSG_RESULT([$with_ping6_command])
1145 elif $PATH_TO_PING6 -n -U -c 1 ::1 2>/dev/null | \
1146 egrep -i "^round-trip|^rtt" >/dev/null
1148 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1149 ac_cv_ping6_packets_first=yes
1150 AC_MSG_RESULT([$with_ping6_command])
1152 elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1153 egrep -i "^round-trip|^rtt" >/dev/null
1155 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1156 ac_cv_ping6_packets_first=yes
1157 AC_MSG_RESULT([$with_ping6_command])
1159 elif $PATH_TO_PING6 -n ::1 -c 1 2>/dev/null | \
1160 egrep -i "^round-trip|^rtt" >/dev/null
1162 with_ping6_command="$PATH_TO_PING6 -n %s -c %d"
1163 AC_MSG_RESULT([$with_ping6_command])
1165 elif $PATH_TO_PING6 ::1 -n 1 2>/dev/null | \
1166 egrep -i "^round-trip|^rtt" >/dev/null
1168 with_ping6_command="$PATH_TO_PING6 %s -n %d"
1169 AC_MSG_RESULT([$with_ping6_command])
1171 elif $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1172 egrep -i "^round-trip|^rtt" >/dev/null
1174 with_ping6_command="$PATH_TO_PING6 -n -s %s 56 %d"
1175 AC_MSG_RESULT([$with_ping6_command])
1177 elif $PATH_TO_PING6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1178 egrep -i "^round-trip|^rtt" >/dev/null
1180 with_ping6_command="$PATH_TO_PING6 -n -h %s -s 56 -c %d"
1181 AC_MSG_RESULT([$with_ping6_command])
1183 elif $PATH_TO_PING6 -n -s 56 -c 1 ::1 2>/dev/null | \
1184 egrep -i "^round-trip|^rtt" >/dev/null
1186 with_ping6_command="$PATH_TO_PING6 -n -s 56 -c %d %s"
1187 ac_cv_ping6_packets_first=yes
1188 AC_MSG_RESULT([$with_ping_command])
1190 elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1191 egrep -i "^round-trip|^rtt" >/dev/null
1193 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1194 ac_cv_ping6_packets_first=yes
1195 AC_MSG_RESULT([$with_ping6_command])
1199 elif test "x$PATH_TO_PING" != "x"; then
1200 if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1201 $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1202 egrep -i "^round-trip|^rtt" >/dev/null
1204 with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1205 ac_cv_ping6_packets_first=yes
1206 AC_MSG_RESULT([$with_ping6_command])
1208 elif $PATH_TO_PING -A inet6 -n -U -c 1 ::1 2>/dev/null | \
1209 egrep -i "^round-trip|^rtt" >/dev/null
1211 with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1212 ac_cv_ping6_packets_first=yes
1213 AC_MSG_RESULT([$with_ping6_command])
1215 elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1216 egrep -i "^round-trip|^rtt" >/dev/null
1218 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1219 ac_cv_ping6_packets_first=yes
1220 AC_MSG_RESULT([$with_ping6_command])
1222 elif $PATH_TO_PING -A inet6 -n ::1 -c 1 2>/dev/null | \
1223 egrep -i "^round-trip|^rtt" >/dev/null
1225 with_ping6_command="$PATH_TO_PING -A inet6 -n %s -c %d"
1226 AC_MSG_RESULT([$with_ping6_command])
1228 elif $PATH_TO_PING -A inet6 ::1 -n 1 2>/dev/null | \
1229 egrep -i "^round-trip|^rtt" >/dev/null
1231 with_ping6_command="$PATH_TO_PING -A inet6 %s -n %d"
1232 AC_MSG_RESULT([$with_ping6_command])
1234 elif $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1235 egrep -i "^round-trip|^rtt" >/dev/null
1237 with_ping6_command="$PATH_TO_PING -A inet6 -n -s %s 56 %d"
1238 AC_MSG_RESULT([$with_ping6_command])
1240 elif $PATH_TO_PING -A inet6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1241 egrep -i "^round-trip|^rtt" >/dev/null
1243 with_ping6_command="$PATH_TO_PING -A inet6 -n -h %s -s 56 -c %d"
1244 AC_MSG_RESULT([$with_ping6_command])
1246 elif $PATH_TO_PING -A inet6 -n -s 56 -c 1 ::1 2>/dev/null | \
1247 egrep -i "^round-trip|^rtt" >/dev/null
1249 with_ping6_command="$PATH_TO_PING -A inet6 -n -s 56 -c %d %s"
1250 ac_cv_ping6_packets_first=yes
1251 AC_MSG_RESULT([$with_ping_command])
1253 elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1254 egrep -i "^round-trip|^rtt" >/dev/null
1256 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1257 ac_cv_ping6_packets_first=yes
1258 AC_MSG_RESULT([$with_ping6_command])
1264 if test "x$with_ping6_command" != "x"; then
1265 AC_DEFINE_UNQUOTED(PING6_COMMAND,"$with_ping6_command",
1266 [path and args for ICMPv6 ping command])
1268 AC_MSG_RESULT([none])
1271 if test "x$ac_cv_ping6_packets_first" != "xno"; then
1272 AC_DEFINE(PING6_PACKETS_FIRST,1,
1273 [Define if packet count must precede host])
1278 AC_ARG_WITH(nslookup_command,
1279 ACX_HELP_STRING([--with-nslookup-command=PATH],
1280 [sets path to nslookup executable]),
1281 ac_cv_nslookup_command=$withval)
1282 if test -n "$ac_cv_nslookup_command"; then
1283 AC_MSG_NOTICE([Using specific nslookup at $ac_cv_nslookup_command])
1285 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
1286 if test -n "$PATH_TO_NSLOOKUP"
1288 AC_MSG_CHECKING(for nslookup syntax)
1289 if $PATH_TO_NSLOOKUP -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
1291 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP"
1292 AC_MSG_RESULT([$ac_cv_nslookup_command])
1295 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP -sil"
1296 AC_MSG_RESULT([$ac_cv_nslookup_command])
1300 AC_MSG_WARN([nslookup command not found])
1304 if test -n "$ac_cv_nslookup_command"; then
1305 EXTRAS="$EXTRAS check_dns"
1306 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$ac_cv_nslookup_command", [path and args for nslookup])
1309 AC_MSG_CHECKING([for number of online cpus])
1310 AC_TRY_COMPILE([#include <unistd.h>],
1311 [sysconf(_SC_NPROCESSORS_ONLN) > 0;],
1312 AC_DEFINE(HAVE_SYSCONF__SC_NPROCESSORS_ONLN,1,[Define if sysconf returns number of online cpus])
1313 AC_MSG_RESULT([sysconf(_SC_NPROCESSORS_ONLN)]),
1314 AC_MSG_RESULT([cannot calculate])
1317 AC_MSG_CHECKING([for number of available cpus])
1318 AC_TRY_COMPILE([#include <unistd.h>],
1319 [sysconf(_SC_NPROCESSORS_CONF) > 0;],
1320 AC_DEFINE(HAVE_SYSCONF__SC_NPROCESSORS_CONF,1,[Define if sysconf returns number of available cpus])
1321 AC_MSG_RESULT([sysconf(_SC_NPROCESSORS_CONF)]),
1322 AC_MSG_RESULT([cannot calculate])
1325 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
1326 AC_ARG_WITH(uptime_command,
1327 ACX_HELP_STRING([--with-uptime-command=PATH],
1328 [sets path to uptime]), PATH_TO_UPTIME=$withval)
1329 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
1331 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
1332 AC_ARG_WITH(rpcinfo_command,
1333 ACX_HELP_STRING([--with-rpcinfo-command=PATH],
1334 [sets path to rpcinfo]), PATH_TO_RPCINFO=$withval)
1335 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
1337 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
1338 if test -x "$PATH_TO_LMSTAT"
1340 AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
1342 AC_MSG_WARN([Get lmstat from Globetrotter Software to monitor flexlm licenses])
1345 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
1346 AC_ARG_WITH(smbclient_command,
1347 ACX_HELP_STRING([--with-smbclient-command=PATH],
1348 [sets path to smbclient]),
1349 PATH_TO_SMBCLIENT=$withval)
1350 if test -n "$PATH_TO_SMBCLIENT"
1352 AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
1354 AC_MSG_WARN([Get smbclient from Samba.org to monitor SMB shares])
1357 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
1358 AC_ARG_WITH(snmpget_command,
1359 ACX_HELP_STRING([--with-snmpget-command=PATH],
1360 [Path to snmpget command]),
1361 PATH_TO_SNMPGET=$withval)
1362 if test -n "$PATH_TO_SNMPGET"
1364 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
1365 EXTRAS="$EXTRAS check_hpjd check_snmp"
1367 AC_MSG_WARN([Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins])
1370 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
1371 AC_ARG_WITH(snmpgetnext_command,
1372 ACX_HELP_STRING([--with-snmpgetnext-command=PATH],
1373 [Path to snmpgetnext command]),
1374 PATH_TO_SNMPGETNEXT=$withval)
1375 if test -n "$PATH_TO_SNMPGETNEXT"
1377 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
1380 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null )
1382 AC_MSG_CHECKING(for Net::SNMP perl module)
1383 AC_MSG_RESULT([found])
1385 AC_MSG_WARN([Tried $PERL - install Net::SNMP perl module if you want to use the perl snmp plugins])
1388 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
1389 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
1390 AC_ARG_WITH(qstat_command,
1391 ACX_HELP_STRING([--with-qstat-command=PATH],
1392 [Path to qstat command]), PATH_TO_QSTAT=$withval)
1394 if test -x "$PATH_TO_QUAKESTAT"
1396 ac_cv_path_to_qstat="$PATH_TO_QUAKESTAT"
1397 EXTRAS="$EXTRAS check_game"
1399 elif test -n "$PATH_TO_QSTAT"
1401 ac_cv_path_to_qstat="$PATH_TO_QSTAT"
1402 EXTRAS="$EXTRAS check_game"
1404 AC_MSG_WARN([Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin])
1407 if test $ac_cv_path_to_qstat
1409 AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$ac_cv_path_to_qstat",
1410 [path to qstat/quakestat])
1413 AC_PATH_PROG(PATH_TO_FPING,fping)
1414 AC_PATH_PROG(PATH_TO_FPING6,fping6)
1416 AC_ARG_WITH(fping_command,
1417 ACX_HELP_STRING([--with-fping-command=PATH],
1418 [Path to fping command]), PATH_TO_FPING=$withval)
1419 AC_ARG_WITH(fping6_command,
1420 ACX_HELP_STRING([--with-fping6-command=PATH],
1421 [Path to fping6 command]), PATH_TO_FPING6=$withval)
1423 if test -n "$PATH_TO_FPING"
1425 AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
1426 EXTRAS="$EXTRAS check_fping"
1427 if test x"$with_ipv6" != xno && test -n "$PATH_TO_FPING6"; then
1428 AC_DEFINE_UNQUOTED(PATH_TO_FPING6,"$PATH_TO_FPING6",[path to fping6])
1431 AC_MSG_WARN([Get fping from http://www.fping.com in order to make check_fping plugin])
1434 AC_PATH_PROG(PATH_TO_SSH,ssh)
1435 AC_ARG_WITH(ssh_command,
1436 ACX_HELP_STRING([--with-ssh-command=PATH],
1437 [sets path for ssh]), PATH_TO_SSH=$withval)
1438 if test -n "$PATH_TO_SSH"
1440 AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
1441 EXTRAS="$EXTRAS check_by_ssh"
1443 AC_MSG_WARN([Get ssh in order to make check_by_ssh plugin])
1447 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
1448 AC_ARG_WITH(mailq_command,
1449 ACX_HELP_STRING([--with-mailq-command=PATH],
1450 [sets path to mailq]), PATH_TO_MAILQ=$withval)
1451 if test -n "$PATH_TO_MAILQ"
1453 AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
1455 AC_MSG_WARN([Could not find mailq or eqivalent])
1458 AC_PATH_PROG(PATH_TO_QMAIL_QSTAT,qmail-qstat)
1459 if test -x "$PATH_TO_QMAIL_QSTAT"
1461 AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_QMAIL_QSTAT",[path to qmail-qstat])
1463 AC_MSG_WARN([Could not find qmail-qstat or eqivalent])
1466 dnl SWAP info required is amount allocated/available and amount free
1467 dnl The plugin works through all the swap devices and adds up the total swap
1469 AC_PATH_PROG(PATH_TO_SWAP,swap)
1470 if (test -n "$PATH_TO_SWAP")
1472 AC_MSG_CHECKING([for $PATH_TO_SWAP format])
1473 if [$PATH_TO_SWAP -l 2>&1 >/dev/null]
1476 ac_cv_swap_command="$PATH_TO_SWAP -l"
1477 if [$PATH_TO_SWAP -l 2>/dev/null | \
1478 egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" \
1481 ac_cv_swap_format=[" %*d %*s %*d,%*d %*d %*d %f %f"]
1482 ac_cv_swap_conv=2048
1483 AC_MSG_RESULT([using IRIX format swap])
1485 elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null]
1487 ac_cv_swap_format=["%*s %*[0-9,-] %*d %f %f"]
1488 ac_cv_swap_conv=2048
1489 AC_MSG_RESULT([using Unixware format swap])
1491 dnl if we don't know what format swap's output is
1492 dnl we might as well pretend we didn't see it
1494 ac_cv_swap_command=""
1497 dnl end if for PATH_TO_SWAP
1500 AC_PATH_PROG(PATH_TO_SWAPINFO,swapinfo)
1501 if (test -n "$PATH_TO_SWAPINFO")
1503 AC_MSG_CHECKING([for $PATH_TO_SWAPINFO format])
1504 if [$PATH_TO_SWAPINFO -k 2>&1 | egrep -i "^Device" >/dev/null]
1507 ac_cv_swap_command="$PATH_TO_SWAPINFO -k"
1509 if [$PATH_TO_SWAPINFO -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
1511 ac_cv_swap_format=["%*s %f %*d %f"]
1512 ac_cv_swap_conv=1024
1513 AC_MSG_RESULT([using FreeBSD format swapinfo])
1516 elif [$PATH_TO_SWAPINFO -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
1519 ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM"
1520 ac_cv_swap_format=["%*s %f %*d %f"]
1521 ac_cv_swap_conv=1024
1522 AC_MSG_RESULT([using HP-UX format swapinfo])
1524 dnl end if for PATH_TO_SWAPINFO
1527 AC_PATH_PROG(PATH_TO_LSPS,lsps)
1528 if (test -n "$PATH_TO_LSPS")
1530 AC_MSG_CHECKING([for $PATH_TO_LSPS format])
1531 if [$PATH_TO_LSPS -a 2>/dev/null | egrep -i "^Page Space" > /dev/null]
1534 ac_cv_swap_command="$PATH_TO_LSPS -a"
1535 ac_cv_swap_format=["%*s %*s %*s %f%*s %f %*s"]
1537 AC_MSG_RESULT([using AIX lsps])
1539 dnl end if for PATH_TO_SWAPINFO
1543 dnl test for swapctl system call, both the 2-arg and 3-arg variants
1544 dnl fwict, the 2-arg is an SVR4 standard, whereas the 3-arg is shared
1545 dnl in the various BSD's
1548 AC_CHECK_HEADERS([sys/stat.h sys/param.h])
1549 AC_CHECK_HEADERS([sys/swap.h], [], [], [
1550 #ifdef HAVE_SYS_PARAM_H
1551 #include <sys/param.h>
1554 AC_CHECK_DECLS([swapctl],,,[
1556 #include <sys/types.h>
1557 #include <sys/param.h>
1558 #include <sys/stat.h>
1559 #include <sys/swap.h>
1561 AC_CHECK_TYPES([swaptbl_t, swapent_t],,,[
1562 #include <sys/types.h>
1563 #include <sys/param.h>
1564 #include <sys/stat.h>
1565 #include <sys/swap.h>
1567 AC_CHECK_MEMBERS([struct swapent.se_nblks],,,[
1569 #include <sys/types.h>
1570 #include <sys/param.h>
1571 #include <sys/stat.h>
1572 #include <sys/swap.h>
1575 if test "$ac_cv_have_decl_swapctl" = "yes";
1577 EXTRAS="$EXTRAS check_swap"
1578 AC_MSG_CHECKING([for 2-arg (SVR4) swapctl])
1579 if test "$ac_cv_type_swaptbl_t" = "yes" -a \
1580 "$ac_cv_type_swapent_t" = "yes";
1582 AC_MSG_RESULT([yes])
1583 ac_cv_check_swap_swapctl_svr4="1";
1584 AC_DEFINE([CHECK_SWAP_SWAPCTL_SVR4],1,
1585 [Define if 2-argument SVR4 swapctl exists])
1588 AC_MSG_CHECKING([for 3-arg (*BSD) swapctl])
1589 if test "$ac_cv_member_struct_swapent_se_nblks" = "yes";
1591 AC_MSG_RESULT([yes])
1592 AC_DEFINE([CHECK_SWAP_SWAPCTL_BSD],1,
1593 [Define if 3-argument BSD swapctl exists])
1598 AC_MSG_CHECKING([for whether swapctl uses blocks or pages])
1599 if test "$ac_cv_check_swap_swapctl_svr4" = "1";
1602 dnl the SVR4 spec returns values in pages
1604 AC_MSG_RESULT([page])
1605 AC_CHECK_DECLS([sysconf])
1606 AC_MSG_CHECKING([for system page size])
1607 if test "$ac_cv_have_decl_sysconf" = "yes";
1609 AC_MSG_RESULT([determined by sysconf(3)])
1610 ac_cv_swap_conv="(1048576/sysconf(_SC_PAGESIZE))"
1612 AC_MSG_WARN([don't know. guessing 4096k])
1617 dnl the BSD spec returns values in blocks
1619 AC_MSG_RESULT([blocks (assuming 512b)])
1620 ac_cv_swap_conv=2048
1622 AC_DEFINE_UNQUOTED(SWAP_CONVERSION,$ac_cv_swap_conv,
1623 [Conversion factor to MB])
1626 dnl end tests for the swapctl system calls
1630 if test "x$ac_cv_have_swap" != "x"
1632 AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
1633 EXTRAS="$EXTRAS check_swap"
1635 if test "x$ac_cv_swap_command" != "x"
1637 AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$ac_cv_swap_command",
1638 [Path to swap/swapinfo binary, with any args])
1639 AC_DEFINE_UNQUOTED(SWAP_FORMAT,"$ac_cv_swap_format",
1640 [Format string for parsing swap output])
1641 AC_DEFINE_UNQUOTED(SWAP_CONVERSION,$ac_cv_swap_conv,
1642 [Conversion factor to MB])
1645 AC_ARG_WITH(proc-meminfo,
1646 ACX_HELP_STRING([--with-proc-meminfo=PATH],
1647 [path to /proc/meminfo or equivalent]),
1648 ac_cv_proc_meminfo=$withval)
1649 dnl dunno why this does not work below - use hack (kbd)
1650 dnl fine on linux, broken on solaris
1651 dnl if /bin/test -e "/proc/meminfo"
1652 AC_MSG_CHECKING([for /proc/meminfo])
1653 if test -n "$ac_cv_proc_meminfo"; then
1654 AC_MSG_RESULT([(command line) $ac_cv_proc_meminfo])
1655 elif [cat /proc/meminfo > /dev/null 2>&1]; then
1656 AC_MSG_RESULT([found /proc/meminfo])
1657 ac_cv_proc_meminfo="/proc/meminfo"
1662 if test -n "$ac_cv_proc_meminfo"; then
1663 AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
1664 AC_DEFINE_UNQUOTED(PROC_MEMINFO,"$ac_cv_proc_meminfo",[path to /proc/meminfo if name changes])
1665 EXTRAS="$EXTRAS check_swap"
1668 AC_PATH_PROG(PATH_TO_DIG,dig)
1669 AC_ARG_WITH(dig_command,
1670 ACX_HELP_STRING([--with-dig-command=PATH],
1671 [Path to dig command]), PATH_TO_DIG=$withval)
1672 if test -n "$PATH_TO_DIG"; then
1673 EXTRAS="$EXTRAS check_dig"
1674 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
1677 AC_PATH_PROG(PATH_TO_APTGET,apt-get)
1678 AC_ARG_WITH(apt-get_command,
1679 ACX_HELP_STRING([--with-apt-get-command=PATH],
1680 [Path to apt-get command]),
1681 with_apt_get_command=$withval,
1682 with_apt_get_command=$PATH_TO_APTGET)
1683 AC_DEFINE_UNQUOTED(PATH_TO_APTGET,"$PATH_TO_APTGET",[Path to apt-get command, if present])
1684 if test -n "$PATH_TO_APTGET" ; then
1685 EXTRAS="$EXTRAS check_apt"
1689 if test -f $srcdir/plugins/check_nt.c ; then
1690 EXTRAS="$EXTRAS check_nt"
1694 dnl used in check_dhcp
1695 AC_CHECK_HEADERS(sys/sockio.h)
1699 AC_DEFINE(__bsd__,1,[bsd specific code in check_dhcp.c])
1702 AC_DEFINE(__linux__,1,[linux specific code in check_dhcp.c])
1705 AC_DEFINE(__sun__,1,[sun specific code in check_dhcp.c])
1708 AC_DEFINE(__hpux__,1,[hpux specific code in check_dhcp.c])
1713 AC_SUBST(EXTRAS_ROOT)
1714 AC_SUBST(EXTRA_NETOBJS)
1717 AM_GNU_GETTEXT([external], [need-ngettext])
1718 AM_GNU_GETTEXT_VERSION(0.15)
1720 dnl Check for Redhat spopen problem
1721 dnl Wierd problem where ECHILD is returned from a wait call in error
1722 dnl Only appears to affect nslookup and dig calls. Only affects redhat around
1723 dnl 2.6.9-11 (okay in 2.6.9-5). Redhat investigating root cause
1724 dnl We patch plugins/popen.c
1725 dnl Need to add smp because uname different on those
1726 dnl Can force patch to be applied with --enable-redhat-pthread-workaround
1727 AC_ARG_ENABLE(redhat-pthread-workaround,
1728 AC_HELP_STRING([--enable-redhat-pthread-workaround],
1729 [force Redhat patch to be applied (default: test system)]),
1730 [ac_cv_enable_redhat_pthread_workaround=$enableval],
1731 [ac_cv_enable_redhat_pthread_workaround=test])
1732 if test "$ac_cv_enable_redhat_pthread_workaround" = "test" ; then
1733 if echo $ac_cv_uname_r | egrep "\.EL(smp)?$" >/dev/null 2>&1 ; then
1734 AC_MSG_NOTICE([See http://nagiosplugins.org/faq/compile/configure_appears_to_hang if this next part takes a long time])
1735 AC_MSG_CHECKING(for redhat spopen problem)
1736 ( cd config_test && make && make test ) > /dev/null 2>&1
1737 if test $? -eq 0 ; then
1740 AC_MSG_RESULT(error)
1741 AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, [Workaround on redhat in spopen])
1744 elif test "$ac_cv_enable_redhat_pthread_workaround" = "yes" ; then
1745 AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, [Forced workaround on redhat in spopen])
1749 AC_ARG_ENABLE(perl-modules,
1750 AC_HELP_STRING([--enable-perl-modules],
1751 [Enables installation of Nagios::Plugin and its dependencies (default: no)]),
1752 [enable_perl_modules=$enableval],
1753 [enable_perl_modules=no])
1754 if test "$enable_perl_modules" = "yes" ; then
1755 AC_SUBST(PERLMODS_DIR,perlmods)
1758 # From Tap configure
1759 # Checks for libraries
1762 LDFLAGS="$LDFLAGS -pthread"
1766 AC_CHECK_LIB(pthread, main)
1770 dnl External libraries - see ACKNOWLEDGEMENTS
1773 dnl Some helpful common compile errors checked here
1774 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
1775 AC_MSG_ERROR(No ar found for Solaris - is /usr/ccs/bin in PATH?)
1784 plugins-root/Makefile
1785 plugins-scripts/Makefile
1786 plugins-scripts/subst
1787 plugins-scripts/utils.pm
1788 plugins-scripts/utils.sh
1797 dnl the ones below that are commented out need to be cleaned up
1798 dnl in the configure code above to use with_foo instead of ac_cv_foo
1799 dnl if we want them to show up here. it'd also make the code cleaner.
1800 dnl i'll get to that on another rainy day :) -sf
1801 ACX_FEATURE([with],[apt-get-command])
1802 dnl ACX_FEATURE([with],[dig-command])
1803 dnl ACX_FEATURE([with],[fping-command])
1804 dnl ACX_FEATURE([with],[mailq-command])
1805 dnl ACX_FEATURE([with],[nslookup-command])
1806 ACX_FEATURE([with],[ping6-command])
1807 ACX_FEATURE([with],[ping-command])
1808 dnl ACX_FEATURE([with],[qstat-command])
1809 dnl ACX_FEATURE([with],[rpcinfo-command])
1810 dnl ACX_FEATURE([with],[smbclient-command])
1811 dnl ACX_FEATURE([with],[snmpget-command])
1812 dnl ACX_FEATURE([with],[snmpgetnext-command])
1813 dnl ACX_FEATURE([with],[ssh-command])
1814 dnl ACX_FEATURE([with],[uptime-command])
1816 dnl ACX_FEATURE([with],[proc-meminfo])
1817 dnl ACX_FEATURE([with],[ps-command])
1818 dnl ACX_FEATURE([with],[ps-format])
1819 dnl ACX_FEATURE([with],[ps-cols])
1820 dnl ACX_FEATURE([with],[ps-varlist])
1822 ACX_FEATURE([with],[ipv6])
1823 ACX_FEATURE([with],[mysql])
1824 ACX_FEATURE([with],[openssl])
1825 ACX_FEATURE([with],[gnutls])
1826 ACX_FEATURE([enable],[extra-opts])
1827 ACX_FEATURE([with],[perl])
1828 ACX_FEATURE([enable],[perl-modules])
1829 ACX_FEATURE([with],[cgiurl])
1830 ACX_FEATURE([with],[trusted-path])
1831 ACX_FEATURE([enable],[libtap])