Code

version increase, statfs work
[nagiosplug.git] / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 AC_REVISION ($Revision$)
3 AC_INIT(Helper.pm)
4 VER=1.3.99
5 REL=1
6 AC_SUBST(VER)
7 AC_SUBST(REL)
8 PACKAGE_VERSION="${VER}"
9 AC_SUBST(PACKAGE_VERSION)
10 PACKAGE_RELEASE="${REL}"
11 AC_SUBST(PACKAGE_RELEASE)
12 AM_INIT_AUTOMAKE(nagios-plugins,${PACKAGE_VERSION})
13 AM_CONFIG_HEADER(plugins/config.h plugins/common.h plugins/version.h plugins/netutils.h plugins/utils.h plugins/popen.h)
14 AC_CANONICAL_HOST
16 AC_PREFIX_DEFAULT(/usr/local/nagios)
18 dnl Figure out how to invoke "install" and what install options to use.
20 AC_PROG_INSTALL
21 AC_SUBST(INSTALL)
23 AC_PROG_CC
24 AC_PROG_CPP
25 AC_PROG_GCC_TRADITIONAL
26 AC_PROG_RANLIB
27 AC_AIX
28 AC_MINIX
30 AC_PROG_MAKE_SET
31 AC_PROG_AWK
33 # Check for SunOS statfs brokenness wrt partitions 2GB and larger.
34 # If <sys/vfs.h> exists and struct statfs has a member named f_spare,
35 # enable the work-around code in fsusage.c.
36 AC_MSG_CHECKING([for statfs that truncates block counts])
37 AC_CACHE_VAL(fu_cv_sys_truncating_statfs,
38 [AC_TRY_COMPILE([
39 #if !defined(sun) && !defined(__sun)
40 choke -- this is a workaround for a Sun-specific problem
41 #endif
42 #include <sys/types.h>
43 #include <sys/vfs.h>],
44 [struct statfs t; long c = *(t.f_spare);],
45 fu_cv_sys_truncating_statfs=yes
46 AC_MSG_RESULT(yes),
47 fu_cv_sys_truncating_statfs=no
48 AC_MSG_RESULT(no),
49 )])
50 if test $fu_cv_sys_truncating_statfs = yes; then
51   AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS, 1,
52 [  Define if the block counts reported by statfs may be truncated to 2GB
53    and the correct values may be stored in the f_spare array.
54    (SunOS 4.1.2, 4.1.3, and 4.1.3_U1 are reported to have this problem.
55    SunOS 4.1.1 seems not to be affected.)])
56 fi
58 saved_srcdir=$srcdir
59 srcdir=$srcdir/lib
60 test -f $srcdir/getloadavg.c \
61   || AC_MSG_ERROR([getloadavg.c is not in $srcdir])
62 AC_FUNC_GETLOADAVG
63 srcdir=$saved_srcdir
65 ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD])
66 dnl AM_WITH_REGEX
67 AC_PROG_RANLIB
69 AC_PATH_PROG(ACLOCAL,aclocal)
70 AC_PATH_PROG(AUTOMAKE,automake)
71 AC_PATH_PROG(AUTOCONF,autoconf)
72 AC_PATH_PROG(AUTOHEADER,autoheader)
74 PLUGIN_TEST=`echo $srcdir/plugins/t/*.t|sed -e 's,\.*/plugins/,,g'`
75 AC_SUBST(PLUGIN_TEST)dnl
77 SCRIPT_TEST=`echo $srcdir/plugins-scripts/t/*.t|sed -e 's,\.*/plugins-scripts/,,g'`
78 AC_SUBST(SCRIPT_TEST)dnl
80 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"
81 AC_SUBST(WARRANTY)
83 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\n"
84 AC_SUBST(SUPPORT)
86 dnl CGIURL has changed for Nagios with 1.0 beta
87 AC_ARG_WITH(cgiurl,
88         ACX_HELP_STRING([--with-cgiurl=DIR],
89                 [sets URL for cgi programs]),
90         cgiurl=$withval,
91         cgiurl=/nagios/cgi-bin)
92 CGIURL="$cgiurl"
93 AC_DEFINE_UNQUOTED(CGIURL,"$CGIURL",[URL of CGI programs])
95 AC_ARG_WITH(nagios_user,
96         ACX_HELP_STRING([--with-nagios-user=USER],
97                 [set user name to run nagios]),
98         nagios_usr=$withval,
99         nagios_usr=nagios)
100 AC_ARG_WITH(nagios_group,
101         ACX_HELP_STRING([--with-nagios-group=GROUP],
102                 [set group name to run nagios]),
103         nagios_grp=$withval,
104         nagios_grp=nagios)
105 AC_SUBST(nagios_usr)
106 AC_SUBST(nagios_grp)
107 INSTALL_OPTS="-o $nagios_usr -g $nagios_grp"
108 AC_SUBST(INSTALL_OPTS)
110 AC_ARG_WITH(trusted_path,
111         ACX_HELP_STRING([--with-trusted-path=PATH],
112                 [sets trusted path for executables called by scripts (default=/bin:/sbin:/usr/bin:/usr/sbin)]),
113         trusted_path=$withval,
114         trusted_path=/bin:/sbin:/usr/bin:/usr/sbin)
115 AC_SUBST(trusted_path)
117 EXTRAS=
118 dnl PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/etc:/usr/local/bin:/usr/local/sbin:$PATH
120 LDFLAGS="$LDFLAGS -L."
122 ac_cv_uname_m=`uname -m`
123 ac_cv_uname_s=`uname -s`
124 ac_cv_uname_r=`uname -r`
125 ac_cv_uname_v=`uname -v`
127 dnl Checks for programs.
128 AC_PATH_PROG(PYTHON,python)
129 AC_PATH_PROG(PERL,perl)
130 AC_PATH_PROG(SH,sh)
132 AC_PATH_PROG(HOSTNAME,hostname)
133 AC_PATH_PROG(BASENAME,basename)
135 dnl
136 dnl Check for miscellaneous stuff
137 dnl 
139 case $host_vender-$host_os in
140 sun*)
141         AC_DEFINE(__EXTENSIONS__,1,[Sun's netdb.h needs this for getaddrinfo])
142         ;;
143 osf*)
144         AC_DEFINE(_OSF_SOURCE,1,[OSF needs this for getaddrinfo])
145         ;;
146 esac
148 dnl
149 dnl Checks for libraries.
150 dnl
152 AC_CHECK_LIB(dce,main,SOCKETLIBS="$SOCKETLIBS -ldce")
153 AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
154 AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
155 AC_CHECK_LIB(resolv,main,SOCKETLIBS="$SOCKETLIBS -lresolv")
156 AC_SUBST(SOCKETLIBS)
158 dnl Check for PostgreSQL libraries
159 _SAVEDLIBS="$LIBS"
160 _SAVEDCPPFLAGS="$CPPFLAGS"
161 AC_ARG_WITH(pgsql,
162         ACX_HELP_STRING([--with-pgsql=DIR],
163                 [sets path to pgsql installation]),
164         PGSQL=$withval,)
165 AC_CHECK_LIB(crypt,main)
166 if test "$ac_cv_lib_crypt_main" = "yes"; then
167   if test -n "$PGSQL"; then
168     LDFLAGS="$LDFLAGS -L$PGSQL/lib"
169     CPPFLAGS="$CPPFLAGS -I$PGSQL/include"
170   fi
171   AC_CHECK_LIB(pq,PQsetdbLogin,,,-lcrypt)
172   if test "$ac_cv_lib_pq_PQsetdbLogin" = "yes"; then
173     AC_CHECK_HEADERS(pgsql/libpq-fe.h)
174     AC_CHECK_HEADERS(postgresql/libpq-fe.h)
175     AC_CHECK_HEADERS(libpq-fe.h)
176     if [[ -n "$PGSQL" -a "$ac_cv_header_libpq_fe_h" = "yes" ]]; then
177       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
178       PGINCLUDE="-I$PGSQL/include"
179     elif test  "$ac_cv_header_pgsql_libpq_fe_h" = "yes"; then
180       PGLIBS="-lpq -lcrypt"
181       PGINCLUDE="-I/usr/include/pgsql"
182     elif test  "$ac_cv_header_postgresql_libpq_fe_h" = "yes"; then
183       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
184       PGINCLUDE="-I/usr/include/postgresql"
185     elif test  "$ac_cv_header_libpq_fe_h" = "yes"; then
186       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
187       PGINCLUDE="-I$PGSQL/include"
188     fi
189     if test -z "$PGINCLUDE"; then
190       AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
191       AC_MSG_WARN([install PostgreSQL headers to compile this plugin (see REQUIREMENTS).])
192     else
193       AC_SUBST(PGLIBS)
194       AC_SUBST(PGINCLUDE)
195       EXTRAS="$EXTRAS check_pgsql"
196     fi
197   else
198     AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
199     AC_MSG_WARN([LIBS="$LIBS" CPPFLAGS="$CPPFLAGS"])
200     AC_MSG_WARN([install PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
201   fi
202 else
203   AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
204   AC_MSG_WARN([install lib crypt and PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
205 fi
206 LIBS="$_SAVEDLIBS"
207 CPPFLAGS="$_SAVEDCPPFLAGS"
209 dnl Check for radius libraries
210 _SAVEDLIBS="$LIBS"
211 AC_CHECK_LIB(radiusclient,rc_read_config)
212 if test "$ac_cv_lib_radiusclient_rc_read_config" = "yes"; then
213   EXTRAS="$EXTRAS check_radius"
214         RADIUSLIBS="-lradiusclient"
215   AC_SUBST(RADIUSLIBS)
216 else
217   AC_MSG_WARN([Skipping radius plugin])
218   AC_MSG_WARN([install radius libs to compile this plugin (see REQUIREMENTS).])
219 fi
220 LIBS="$_SAVEDLIBS"
222 dnl Check for LDAP libraries
223 _SAVEDLIBS="$LIBS"
224 AC_CHECK_LIB(ldap,main,,,-llber)
225 if test "$ac_cv_lib_ldap_main" = "yes"; then
226   LDAPLIBS="-lldap -llber"\
227   LDAPINCLUDE="-I/usr/include/ldap"
228   AC_SUBST(LDAPLIBS)
229   AC_SUBST(LDAPINCLUDE)
230   EXTRAS="$EXTRAS check_ldap"
231 else
232   AC_MSG_WARN([Skipping LDAP plugin])
233   AC_MSG_WARN([install LDAP libs to compile this plugin (see REQUIREMENTS).])
234 fi
235 LIBS="$_SAVEDLIBS"
238 dnl Check for mysql libraries
239 _SAVEDLIBS="$LIBS"
240 _SAVEDCPPFLAGS="$CPPFLAGS"
241 AC_ARG_WITH(mysql,
242         ACX_HELP_STRING([--with-mysql=DIR],
243                 [sets path to mysql installation (assumes lib/mysql and include subdirs]),
244         MYSQL=$withval,)
245 if test -n "$MYSQL"; then
246   MYSQLLIBDIR=$MYSQL/lib/mysql
247   CPPFLAGS="-I$MYSQL/include"
248   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L$MYSQLLIBDIR ",,-L$MYSQLLIBDIR -lz)
249   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
250 elif test -f /usr/lib/libmysqlclient.so; then
251   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
252   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
253 elif test -f /usr/lib/libmysqlclient.a; then
254   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
255   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
256 elif test -f /usr/lib/mysql/libmysqlclient.so; then
257   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
258   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
259 elif test -f /usr/lib/mysql/libmysqlclient.a; then
260   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
261   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
262 fi
263 if test "$ac_cv_lib_mysqlclient_mysql_init" = "yes" -o "$ac_cv_lib_mysqlclient_mysql_close" = "yes"; then
264   AC_CHECK_HEADERS(mysql/mysql.h mysql/errmsg.h, MYSQLINCLUDE="-I$MYSQL/include" )
265   if test "$ac_cv_header_mysql_mysql_h" = "yes" -a "$ac_cv_header_mysql_errmsg_h" = "yes"; then
266     EXTRAS="$EXTRAS check_mysql"
267     AC_SUBST(MYSQLINCLUDE)
268     AC_SUBST(MYSQLLIBS)
269     AC_SUBST(check_mysql_LDFLAGS)
270   else
271     AC_MSG_WARN([Skipping mysql plugin])
272     AC_MSG_WARN([install mysql client headers to compile this plugin (see REQUIREMENTS).])
273   fi
274 else
275   AC_MSG_WARN([Skipping mysql plugin])
276   AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).])
277 fi
278 CPPFLAGS="$_SAVEDCPPFLAGS"
279 LIBS="$_SAVEDLIBS"
281 dnl Check for OpenSSL location
282 AC_PATH_PROG(OPENSSL,openssl)
283 if test "$OPENSSL" = "/usr/bin/openssl"; then
284   OPENSSL=/usr
285 elif test "$OPENSSL" = "/usr/sbin/openssl"; then
286   OPENSSL=/usr
287 elif test "$OPENSSL" = "/opt/bin/openssl"; then
288   OPENSSL=/opt
289 elif test "$OPENSSL" = "/opt/openssl/bin/openssl"; then
290   OPENSSL=/opt/openssl
291 elif test "$OPENSSL" = "/usr/slocal/bin/openssl"; then
292   OPENSSL=/usr/slocal
293 elif test "$OPENSSL" = "/usr/local/bin/openssl"; then
294   OPENSSL=/usr/local
295 elif test "$OPENSSL" = "/usr/local/ssl/bin/openssl"; then
296   OPENSSL=/usr/local/ssl
297 fi
298 AC_ARG_WITH(openssl,
299         ACX_HELP_STRING([--with-openssl=DIR],
300                 [sets path to openssl installation]),
301         OPENSSL=$withval,)
303 dnl #########################################################################
304 dnl Check if Posix getaddrinfo() is available.  It is also possible to use
305 dnl the version from the lwres library distributed with BIND.
306 dnl #########################################################################
307 AC_ARG_ENABLE([emulate-getaddrinfo],
308               ACX_HELP_STRING([--enable-emulate-getaddrinfo],
309                              [enable getaddrinfo emulation (default=no)]),
310               ,
311               enable_emulate_getaddrinfo=no)
312 AC_ARG_WITH(lwres,
313             ACX_HELP_STRING([--with-lwres=DIR],
314                            [use lwres library for getaddrinfo (default=no)]),
315             ,
316             with_lwres=no)
318 dnl ## enable force to test getaddrinfo.c
319 if test x$enable_emulate_getaddrinfo = xforce ; then
320         enable_emulate_getaddrinfo=yes
321         have_getaddrinfo=no
322 else
324 have_getaddrinfo=no
325 if test x$with_lwres != xno ; then
326         if test "$with_lwres" != yes ; then
327                    CPPFLAGS="-I${with_lwres}/include $CPPFLAGS"
328                    LDFLAGS="-L${with_lwres}/lib $LDFLAGS"
329         fi
330         AC_CHECK_HEADERS(lwres/netdb.h, ,
331                         [AC_MSG_ERROR([cannot find <lwres/netdb.h>])])
332         AC_CHECK_LIB(lwres, lwres_getaddrinfo, ,
333                      [AC_MSG_ERROR([cannot find the lwres library])],
334                      -lnsl -lpthread)
335         have_getaddrinfo=yes
336 fi
338 if test x$have_getaddrinfo != xyes ; then
339         AC_SEARCH_LIBS(getaddrinfo, socket resolv bind nsl c_r cr, have_getaddrinfo=yes)
340 fi
342 dnl # Special nonsense for systems that actually have getaddrinfo but
343 dnl # redefine the name to something else, e.g. OSF
344 if test x$have_getaddrinfo != xyes ; then
345         AC_MSG_CHECKING(if getaddrinfo is redefined in netdb.h)
346         AC_TRY_LINK([
347 #               include <netdb.h>
348         ], [
349                 struct addrinfo hints, *res;
350                 int err;
352                 err = getaddrinfo ("host", "service", &hints, &res);
353         ], [
354                 have_getaddrinfo=yes
355                 AC_MSG_RESULT(yes)
356         ], [AC_MSG_RESULT(no)])
357 fi
359 fi
361 if test x$have_getaddrinfo != xno ; then
362         if test x$enable_emulate_getaddrinfo != xno ; then
363                 AC_MSG_ERROR([getaddrinfo found but emulate-getaddrinfo was enabled])
364         fi
365         AC_DEFINE(HAVE_GETADDRINFO, 1,
366                   [Does system provide RFC 2553/Posix getaddrinfo?])
367 else
368         if test x$enable_emulate_getaddrinfo != xyes ; then
369                 AC_MSG_ERROR([getaddrinfo not found: try --with-lwres or --enable-emulate-getaddrinfo])
370         fi
371         LIBOBJS="$LIBOBJS getaddrinfo.o"
372 fi
374 if test x"$enable_emulate_getaddrinfo" != xno ; then
375     have_resolver=no
377   dnl  Try for getipnodebyname
378     AC_SEARCH_LIBS(getipnodebyname, resolv bind nsl c_r cr, have_resolver=yes)
379     if test x"$have_resolver" != xno ; then
380          AC_DEFINE(HAVE_GETIPNODEBYNAME, 1,
381                    [Set when getipnodebyname is available])
382     fi
384   dnl  Try for gethostbyname_r
385     if test x"$have_resolver" = xno ; then
386         AC_SEARCH_LIBS(gethostbyname_r, resolv bind nsl c_r cr,
387                        [have_resolver=yes
388                         ACX_WHICH_GETHOSTBYNAME_R])
389     fi
391   dnl  Try for gethostbyname
392     if test x"$have_resolver" = xno ; then
393         if test x"$enable_pthreads" != xno ; then
394             AC_MSG_WARN([using threads but cannot find gethostbyname_r or getipnodebyname])
395         fi
396         AC_SEARCH_LIBS(gethostbyname, resolv bind nsl, ,
397                        [AC_MSG_ERROR([cannot find gethostbyname])])
398     fi
399     LIBOBJS="$LIBOBJS gethostbyname.o"
401     AC_CACHE_CHECK([for IPv6 support], acx_cv_sys_use_ipv6, [
402             AC_TRY_COMPILE([
403 #               include <netinet/in.h>
404             ], [
405                 struct sockaddr_in6 sin6;
406                 void *p;
408                 sin6.sin6_family = AF_INET6;
409                 sin6.sin6_port = 587;
410                 p = &sin6.sin6_addr;
411             ], [acx_cv_sys_use_ipv6=yes], [acx_cv_sys_use_ipv6=no])
412     ])
413     if test x"$acx_cv_sys_use_ipv6" != xno ; then
414             AC_DEFINE(USE_IPV6,1,[Enable IPv6 support])
415     fi
416 fi
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"
425                    FOUNDINCLUDE=yes,
426                    FOUNDINCLUDE=no)
427 fi
428 AC_SUBST(KRBINCLUDE)
429 if test "$FOUNDINCLUDE" = "no"; then
430   CPPFLAGS="$_SAVEDCPPFLAGS"
431 fi
433 dnl Check for OpenSSL header files
434 unset FOUNDINCLUDE
435 _SAVEDCPPFLAGS="$CPPFLAGS"
436 CPPFLAGS="$CPPFLAGS -I$OPENSSL/include"
437 AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h,
438                  SSLINCLUDE="-I$OPENSSL/include"
439                  FOUNDINCLUDE=yes,
440                  FOUNDINCLUDE=no)
441 if test "$FOUNDINCLUDE" = "no"; then
442   AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h,
443                    SSLINCLUDE="-I$OPENSSL/include"
444                    FOUNDINCLUDE=yes,
445                    FOUNDINCLUDE=no)
446 fi
447 AC_SUBST(SSLINCLUDE)
448 if test "$FOUNDINCLUDE" = "no"; then
449   CPPFLAGS="$_SAVEDCPPFLAGS"
450 fi
452 dnl Check for crypto lib
453 _SAVEDLIBS="$LIBS"
454 AC_CHECK_LIB(crypto,CRYPTO_lock,,,-L$OPENSSL/lib)
455 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
456   dnl Check for SSL lib
457   AC_CHECK_LIB(ssl,main,LDFLAGS="$LDFLAGS -L$OPENSSL/lib" SSLLIBS="-lssl -lcrypto",AC_CHECK_LIB(ssl,main,LDFLAGS="$LDFLAGS -L$OPENSSL/lib" SSLLIBS="-lssl -lcrypto"),-L$OPENSSL/lib -lcrypto)
458 fi
459 LIBS="$_SAVEDLIBS"
461 dnl test headers and libs to decide whether check_http should use SSL
462 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
463   if test "$ac_cv_lib_ssl_main" = "yes"; then
464     if test "$FOUNDINCLUDE" = "yes"; then
465       AC_SUBST(SSLLIBS)
466       AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
467     fi
468   fi
469 fi
470 CPPFLAGS="$_SAVEDCPPFLAGS"
472 dnl
473 dnl Checks for header files.
474 dnl
476 AC_HEADER_STDC
477 AC_HEADER_TIME
478 AC_HEADER_SYS_WAIT
479 AC_CHECK_HEADERS(signal.h strings.h string.h syslog.h unistd.h uio.h errno.h regex.h sys/types.h sys/time.h sys/socket.h sys/loadavg.h)
480 AC_CHECK_HEADERS(stdarg.h sys/unistd.h unistd.h ctype.h stdlib.h)
482 dnl Linux
483 AC_CHECK_HEADERS(sys/vfs.h,
484                  [AC_TRY_COMPILE([#include <sys/vfs.h>],
485                                  [struct statfs buf; long foo; statfs ("/", &buf); foo = buf.f_namelen;],
486                                  [AC_DEFINE(HAVE_STRUCT_STATFS,1,[Define if statfs struct can be found])])])
488 dnl FreeBSD
489 AC_CHECK_HEADERS(sys/param.h sys/mount.h,
490                  [AC_TRY_COMPILE([#include <sys/param.h>
491 #include <sys/mount.h>],
492                                  [struct statfs buf; int foo; statfs ("/", &buf); foo = buf.f_flags;],
493                                  [AC_DEFINE(HAVE_STRUCT_STATFS,1,[Define if statfs struct can be found])])])
495 dnl Checks for typedefs, structures, and compiler characteristics.
496 AC_C_CONST
497 AC_STRUCT_TM
498 AC_TYPE_PID_T
499 AC_TYPE_SIZE_T
500 AC_TYPE_SIGNAL
502 AC_CHECK_SIZEOF(int,cross)
503 AC_CHECK_SIZEOF(long,cross)
504 AC_CHECK_SIZEOF(short,cross)
506 AC_CACHE_CHECK([for long long],ac_cv_have_longlong,[
507 AC_TRY_RUN([#include <stdio.h>
508 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
509 ac_cv_have_longlong=yes,ac_cv_have_longlong=no,ac_cv_have_longlong=cross)])
510 if test x"$ac_cv_have_longlong" = x"yes"; then
511     AC_DEFINE(HAVE_LONGLONG,1,[Define if system has long long type])
512 fi
515 # Check if the compiler supports the LL prefix on long long integers.
516 # AIX needs this.
518 AC_CACHE_CHECK([for LL suffix on long long integers],ac_cv_compiler_supports_ll, [
519     AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
520         ac_cv_compiler_supports_ll=yes,ac_cv_compiler_supports_ll=no)])
521 if test x"$ac_cv_compiler_supports_ll" = x"yes"; then
522    AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Define if compiler support long long])
523 fi
525 AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE_VA_COPY,[
526 AC_TRY_LINK([#include <stdarg.h>
527 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
528 ac_cv_HAVE_VA_COPY=yes,ac_cv_HAVE_VA_COPY=no)])
529 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
530     AC_DEFINE(HAVE_VA_COPY,1,[Define if system has va_copy])
531 fi
533 AC_CHECK_FUNCS(vsnprintf snprintf asprintf vasprintf)
534 AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
535 AC_TRY_RUN([
536 #include <sys/types.h>
537 #include <stdarg.h>
538 void foo(const char *format, ...) { 
539        va_list ap;
540        int len;
541        char buf[5];
543        va_start(ap, format);
544        len = vsnprintf(buf, 0, format, ap);
545        va_end(ap);
546        if (len != 5) exit(1);
548        va_start(ap, format);
549        len = vsnprintf(0, 0, format, ap);
550        va_end(ap);
551        if (len != 5) exit(1);
553        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
555        exit(0);
557 main() { foo("hello"); }
558 ],
559 ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
560 if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
561     AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
562 fi
564 AC_TRY_COMPILE([#include <sys/time.h>],
565                [struct timeval *tv;
566                 struct timezone *tz;],
567                AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
568                AC_TRY_COMPILE([#include <sys/time.h>],
569                               [struct timeval *tv;
570                                struct timezone *tz;
571                                gettimeofday(tv, tz);],
572                               AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
573                               AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
575 dnl Checks for library functions.
576 AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul)
578 AC_MSG_CHECKING(return type of socket size)
579 AC_TRY_COMPILE([#include <stdlib.h>
580                 #include <sys/types.h>
581                 #include <sys/socket.h>],
582                [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
583                ac_cv_socket_size_type=["size_t"]
584                 AC_MSG_RESULT(size_t),
585                ac_cv_socket_size_type=["int"]
586                 AC_MSG_RESULT(int))
588 AC_DEFINE_UNQUOTED(SOCKET_SIZE_TYPE, $ac_cv_socket_size_type ,
589         [Define type of socket size])
591 if test -f "/proc/loadavg"
592 then
593   AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
594   AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg])
595 fi
597 dnl #### Process table test
599 AC_PATH_PROG(PATH_TO_PS,ps)
600 ac_cv_use_ps_vars=no
602 AC_MSG_CHECKING(for ps syntax)
603 dnl  STAT UCOMM              VSZ   RSS USER       UID  PPID COMMAND
604 if ps -weo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
605         egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
606 then
607         ac_cv_use_ps_vars=yes
608         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
609         ac_cv_ps_raw_command="$PATH_TO_PS -weo 'stat user ppid args'"
610         ac_cv_ps_command="$PATH_TO_PS -weo 'stat uid ppid comm args'"
611         ac_cv_ps_format="%s %d %d %s %n"
612         ac_cv_vsz_command="$PATH_TO_PS -weo 'vsz comm'"
613         ac_cv_vsz_format="%d %s"
614         ac_cv_rss_command="$PATH_TO_PS -weo 'rss comm'"
615         ac_cv_rss_format="%d %s"
616         EXTRAS="$EXTRAS check_nagios"
617         AC_MSG_RESULT([$ac_cv_ps_command])
619 dnl FreeBSD
620 elif ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | \
621         egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PPID"] >/dev/null
622 then
623         ac_cv_use_ps_vars=yes
624         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
625         ac_cv_ps_raw_command="$PATH_TO_PS waxo 'state uid ppid command'"
626         ac_cv_ps_command="$PATH_TO_PS waxco 'state uid ppid command command'"
627         ac_cv_ps_format="%s %d %d %s %n"
628         ac_cv_vsz_command="$PATH_TO_PS waxco 'vsz command'"
629         ac_cv_vsz_format="%d %s"
630         ac_cv_rss_command="$PATH_TO_PS waxco 'rss command'"
631         ac_cv_rss_format="%d %s"
632         EXTRAS="$EXTRAS check_nagios"
633         AC_MSG_RESULT([$ac_cv_ps_command])
635 dnl BSD-like mode in RH 6.1
636 elif ps waxno 'state comm vsz rss uid user ppid args' 2>/dev/null | \
637         egrep -i ["^S +COMMAND +VSZ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
638 then
639         ac_cv_use_ps_vars=yes
640         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
641         ac_cv_ps_raw_command="$PATH_TO_PS waxno 'state user ppid comm'"
642         ac_cv_ps_command="$PATH_TO_PS waxno 'state uid ppid comm args'"
643         ac_cv_ps_format="%s %d %d %s %n"
644         ac_cv_vsz_command="$PATH_TO_PS waxno 'vsz comm'"
645         ac_cv_vsz_format="%d %s"
646         ac_cv_rss_command="$PATH_TO_PS waxno 'rss comm'"
647         ac_cv_rss_format="%d %s"
648         EXTRAS="$EXTRAS check_nagios"
649         AC_MSG_RESULT([$ac_cv_ps_command])
651 dnl SunOS 4.1.3:
652 dnl  F  UID  PID  PPID  CP  PRI  NI  SZ  RSS  WCHAN  STAT  TT  TIME  COMMAND
653 elif ps -laxnwww 2>/dev/null | \
654         egrep -i ["^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND"] >/dev/null
655 then
656         ac_cv_use_ps_vars=yes
657         ac_cv_ps_raw_command="$PATH_TO_PS laxnwww"
658         ac_cv_ps_varlist="[&procuid,&procppid,procstat,&pos,procprog]"
659         ac_cv_ps_command="$PATH_TO_PS -laxnwww"
660         ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %*s %*s %*s %s %*s %*s %n%s"
661         ac_cv_vsz_command="$PATH_TO_PS laxnwww"
662         ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %*s %d"
663         ac_cv_rss_command="$PATH_TO_PS laxnwww"
664         ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %d"
665         EXTRAS="$EXTRAS check_nagios"
666         AC_MSG_RESULT([$ac_cv_ps_command])
668 dnl Debian Linux / procps v1.2.9:
669 dnl  FLAGS   UID   PID  PPID PRI  NI   SIZE   RSS WCHAN       STA TTY TIME COMMAND
670 dnl    100     0     1     0   0   0    776    76  c0131c8c   S  ffff  0:11 init [2]
671 dnl
672 elif ps laxnwww 2>/dev/null | \
673         egrep -i ["^ *F(LAGS)? +UID +PID +PPID +PRI +NI +(VSZ)|(SIZE) +RSS +WCHAN +STAT? TTY +TIME +COMMAND"] >/dev/null
674 then
675         ac_cv_use_ps_vars=yes
676         ac_cv_ps_raw_command="$PATH_TO_PS laxnwww"
677         ac_cv_ps_varlist="[&procuid,&procppid,procstat,&pos,procprog]"
678         ac_cv_ps_command="$PATH_TO_PS laxnwww"
679         ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s"
680         ac_cv_vsz_command="$PATH_TO_PS laxnwww"
681         ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %d"
682         ac_cv_rss_command="$PATH_TO_PS laxnwww"
683         ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %d"
684         EXTRAS="$EXTRAS check_nagios"
685         AC_MSG_RESULT([$ac_cv_ps_command])
687 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
688 elif ps -axo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
689         egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
690 then
691         ac_cv_use_ps_vars=yes
692         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
693         ac_cv_ps_raw_command="$PATH_TO_PS -axo 'stat user ppid args'"
694         ac_cv_ps_command="$PATH_TO_PS -axo 'stat uid ppid comm args'"
695         ac_cv_ps_format="%s %d %d %s %n"
696         ac_cv_vsz_command="$PATH_TO_PS -axo 'vsz comm'"
697         ac_cv_vsz_format="%d %s"
698         ac_cv_rss_command="$PATH_TO_PS -axo 'rss comm'"
699         ac_cv_rss_format="%d %s"
700         EXTRAS="$EXTRAS check_nagios"
701         AC_MSG_RESULT([$ac_cv_ps_command])
703 dnl AIX 4.3.3 - needs verification. This works for Tru64 - needs %*[ +] in PS_FORMAT
704 elif ps -ao 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
705         egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
706 then
707         ac_cv_use_ps_vars=yes
708         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
709         ac_cv_ps_raw_command="$PATH_TO_PS -ao 'stat user ppid args'"
710         ac_cv_ps_command="$PATH_TO_PS -ao 'stat uid ppid comm args'"
711         ac_cv_ps_format="[["%s%*[ +] %d %d %s %n"]]"
712         ac_cv_vsz_command="$PATH_TO_PS -ao 'vsz comm'"
713         ac_cv_vsz_format="%d %s"
714         ac_cv_rss_command="$PATH_TO_PS -ao 'rss comm'"
715         ac_cv_rss_format="%d %s"
716         EXTRAS="$EXTRAS check_nagios"
717         AC_MSG_RESULT([$ac_cv_ps_command])
719 elif ps -eo 's comm vsz rss user uid ppid args' 2>/dev/null | \
720         egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
721 then
722         ac_cv_use_ps_vars=yes
723         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
724         ac_cv_ps_raw_command="$PATH_TO_PS -eo 's user ppid args'"
725         ac_cv_ps_command="$PATH_TO_PS -eo 's uid ppid comm args'"
726         ac_cv_ps_format="%s %d %d %s %n"
727         ac_cv_vsz_command="$PATH_TO_PS -eo 'vsz comm'"
728         ac_cv_vsz_format="%d %s"
729         ac_cv_rss_command="$PATH_TO_PS -eo 'rss comm'"
730         ac_cv_rss_format="%d %s"
731         EXTRAS="$EXTRAS check_nagios"
732         AC_MSG_RESULT([$ac_cv_ps_command])
734 elif ps -Ao 's comm vsz rss uid user ppid args' 2>/dev/null | \
735         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
736 then
737         ac_cv_use_ps_vars=yes
738         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
739         ac_cv_ps_raw_command="$PATH_TO_PS -Ao 's user ppid args'"
740         ac_cv_ps_command="$PATH_TO_PS -Ao 's uid ppid comm args'"
741         ac_cv_ps_format="%s %d %d %s %n"
742         ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
743         ac_cv_vsz_format="%d %s"
744         ac_cv_rss_command="$PATH_TO_PS -Ao 'rss comm'"
745         ac_cv_rss_format="%d %s"
746         EXTRAS="$EXTRAS check_nagios"
747         AC_MSG_RESULT([$ac_cv_ps_command])
749 elif ps -Ao 'status comm vsz rss uid user ppid args' 2>/dev/null | \
750         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
751 then
752         ac_cv_use_ps_vars=yes
753         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
754         ac_cv_ps_raw_command="$PATH_TO_PS -Ao 'status user ppid args'"
755         ac_cv_ps_command="$PATH_TO_PS -Ao 'status uid ppid comm args'"
756         ac_cv_ps_format="%s %d %d %s %n"
757         ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
758         ac_cv_vsz_format="%d %s"
759         ac_cv_rss_command="$PATH_TO_PS -Ao 'rss comm'"
760         ac_cv_rss_format="%d %s"
761         EXTRAS="$EXTRAS check_nagios"
762         AC_MSG_RESULT([$ac_cv_ps_command])
764 elif ps -Ao 'state comm vsz rss uid user ppid args' 2>/dev/null | \
765         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
766 then
767         ac_cv_use_ps_vars=yes
768         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
769         ac_cv_ps_raw_command="$PATH_TO_PS -Ao 'state user ppid args'"
770         ac_cv_ps_command="$PATH_TO_PS -Ao 'state uid ppid comm args'"
771         ac_cv_ps_format="%s %d %d %s %n"
772         ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
773         ac_cv_vsz_format="%d %s"
774         ac_cv_rss_command="$PATH_TO_PS -Ao 'rss comm'"
775         ac_cv_rss_format="%d %s"
776         EXTRAS="$EXTRAS check_nagios"
777         AC_MSG_RESULT([$ac_cv_ps_command])
779 dnl wonder who takes state instead of stat
780 elif ps -ao 'state command vsz rss user ppid args' 2>/dev/null | \
781         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
782 then
783         ac_cv_use_ps_vars=yes
784         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
785         ac_cv_ps_raw_command="$PATH_TO_PS -ao 'state user ppid args'"
786         ac_cv_ps_command="$PATH_TO_PS -ao 'state uid ppid command args'"
787         ac_cv_ps_format="%s %d %d %s %n"
788         ac_cv_vsz_command="$PATH_TO_PS -ao 'vsz command'"
789         ac_cv_vsz_format="%d %s"
790         ac_cv_rss_command="$PATH_TO_PS -ao 'rss command'"
791         ac_cv_rss_format="%d %s"
792         EXTRAS="$EXTRAS check_nagios"
793         AC_MSG_RESULT([$ac_cv_ps_command])
795 dnl IRIX 53
796 elif ps -el 2>/dev/null | \
797         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
798 then
799         ac_cv_use_ps_vars=yes
800         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
801         ac_cv_ps_command="$PATH_TO_PS -el"
802         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
803         ac_cv_vsz_command="$PATH_TO_PS -el"
804         ac_cv_vsz_format="%*s %*s %*s %*s %d"
805         ac_cv_rss_command="$PATH_TO_PS -el"
806         ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
807         AC_MSG_RESULT([$ac_cv_ps_command])
809 dnl IRIX 63
810 elif ps -el 2>/dev/null | \
811         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +ADDR +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
812 then
813         ac_cv_use_ps_vars=yes
814         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
815         ac_cv_ps_command="$PATH_TO_PS -el"
816         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
817         ac_cv_vsz_command="$PATH_TO_PS -el"
818         ac_cv_vsz_format="%*s %*s %*s %*s %d"
819         ac_cv_rss_command="$PATH_TO_PS -el"
820         ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
821         AC_MSG_RESULT([$ac_cv_ps_command])
823 dnl AIX 4.1:
824 dnl     F S      UID   PID  PPID   C PRI NI ADDR  SZ  RSS   WCHAN    TTY  TIME CMD
825 dnl    303 A        0     0     0 120  16 -- 1c07  20   24              -  0:45 swapper
826 elif ps -el 2>/dev/null | \
827         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
828 then
829         ac_cv_use_ps_vars=yes
830         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
831         ac_cv_ps_command="$PATH_TO_PS -el"
832         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
833         ac_cv_vsz_command="$PATH_TO_PS -el"
834         ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
835         ac_cv_rss_command="$PATH_TO_PS -el"
836         ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
837         AC_MSG_RESULT([$ac_cv_ps_command])
839 dnl AIX?
840 elif ps glaxen 2>/dev/null | \
841         egrep -i ["^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND"] >/dev/null
842 then
843         ac_cv_use_ps_vars=yes
844         ac_cv_ps_varlist="[&procuid,&procppid,procstat,&pos,procprog]"
845         ac_cv_ps_command="$PATH_TO_PS glaxen"
846         ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s"
847         ac_cv_vsz_command="$PATH_TO_PS glaxen"
848         ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %d"
849         ac_cv_rss_command="$PATH_TO_PS glaxen"
850         ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %d"
851         AC_MSG_RESULT([$ac_cv_ps_command])
853 dnl MacOSX / Darwin
854 dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
855 dnl STAT      VSZ    RSS   UID USER     PPID UCOMM            COMMAND
856 dnl Ss       1308    272     0 root        0 init             /sbin/init
857 elif ps waxo 'state vsz rss uid user ppid ucomm command' 2>/dev/null | \
858         egrep -i ["^STAT +VSZ +RSS +UID +USER +PPID +UCOMM +COMMAND"] >/dev/null
859 then
860         ac_cv_use_ps_vars=yes
861         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
862         ac_cv_ps_raw_command="$PATH_TO_PS waxo 'state uid ppid command'"
863         ac_cv_ps_command="$PATH_TO_PS waxo 'state uid ppid ucomm command'"
864         ac_cv_ps_format="%s %d %d %s %n"
865         ac_cv_vsz_command="$PATH_TO_PS waxco 'vsz command'"
866         ac_cv_vsz_format="%d %s"
867         ac_cv_rss_command="$PATH_TO_PS waxco 'rss command'"
868         ac_cv_rss_format="%d %s"
869         EXTRAS="$EXTRAS check_nagios"
870         AC_MSG_RESULT([$ac_cv_ps_command])
872 dnl UnixWare 
873 elif ps -Al 2>/dev/null | \
874         egrep -i ["^ *F +S +UID +PID +PPID +CLS +PRI +NI +C +ADDR +SZ +WCHAN +TTY +TIME +COMD"] >/dev/null
875 then
876         ac_cv_use_ps_vars=yes
877         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
878         ac_cv_ps_command="$PATH_TO_PS -Al"
879         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
880         if ps -Ao 'vsz comm' 2>/dev/null | \
881                 egrep -i ["^ *VSZ +COMMAND"] >/dev/null
882         then
883                 ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
884                 ac_cv_vsz_format="%*s %d"
885         fi
886         AC_MSG_RESULT([$ac_cv_ps_command])
888 else
889         AC_MSG_WARN([unable to find usable ps syntax])
890 fi
892 if test "x$ac_cv_use_ps_vars" != "xno"
893 then
894         AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
895 fi
896 AC_DEFINE_UNQUOTED(PS_VARLIST,$ac_cv_ps_varlist,
897         [Variable list for sscanf of 'ps' output])
898 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$ac_cv_ps_raw_command",
899         [Verbatim command to execute for ps in check_netsaint])
900 AC_DEFINE_UNQUOTED(PS_COMMAND,"$ac_cv_ps_command",
901         [Verbatim command to execute for ps in check_procs])
902 AC_DEFINE_UNQUOTED(PS_FORMAT,"$ac_cv_ps_format",
903         [Format string for scanning ps output in check_procs])
904 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$ac_cv_vsz_command",
905         [Verbatim command to execute for ps in check_vsz])
906 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"$ac_cv_vsz_format",
907         [Format string for scanning ps output in check_vsz])
908 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$ac_cv_rss_command",
909         [Verbatim command to execute for ps in check_rss])
910 AC_DEFINE_UNQUOTED(RSS_FORMAT,"$ac_cv_rss_format",
911         [Format string for scanning ps output in check_rss])
913 AC_PATH_PROG(PATH_TO_DF,df)
914 AC_PATH_PROG(PATH_TO_BDF,bdf)
916 AC_ARG_WITH(df_command,
917         ACX_HELP_STRING([--with-df-command=SYNTAX],
918                 [sets syntax for df]),
919         ac_cv_df_command=$withval,)
921 AC_MSG_CHECKING(for df syntax)
922 if test -n "$ac_cv_df_command"
923 then
924         AC_MSG_RESULT([$ac_cv_df_command])
926 elif df -Pk 2>/dev/null | egrep -i ["^(/dev/|[a-zA-Z]:)[a-z0-9/\\]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/\\]*"] >/dev/null
927 then
928         ac_cv_df_command="$PATH_TO_DF -Pk"
929         AC_MSG_RESULT([$ac_cv_df_command])
931 elif df -k 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
932 then
933         ac_cv_df_command="$PATH_TO_DF -k"
934         AC_MSG_RESULT([$ac_cv_df_command])
936 elif df 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
937 then
938         ac_cv_df_command="$PATH_TO_DF"
939         AC_MSG_RESULT([$ac_cv_df_command])
941 elif bdf 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
942 then
943         ac_cv_df_command="$PATH_TO_BDF"
944         AC_MSG_RESULT([$ac_cv_df_command])
946 else
947         AC_MSG_WARN([unable to find usable df syntax])
948 fi
950 AC_DEFINE_UNQUOTED(DF_COMMAND,"$ac_cv_df_command",[path and args for df command])
952 AC_PATH_PROG(PATH_TO_PING,ping)
953 AC_PATH_PROG(PATH_TO_PING6,ping6)
955 AC_ARG_WITH(ping_command,
956         ACX_HELP_STRING([--with-ping-command=SYNTAX],
957                 [sets syntax for ICMP ping]),
958         ac_cv_ping_command=$withval,)
960 AC_MSG_CHECKING(for ICMP ping syntax)
961 ac_cv_ping_packets_first=no
962 if test -n "$ac_cv_ping_command"
963 then
964         AC_MSG_RESULT([(command-line) $ac_cv_ping_command])
965         if test -n "$ac_cv_ping_packets_first"
966         then
967                 ac_cv_ping_packets_first=yes
968                 dnl AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$ac_cv_ping_command",
969                 dnl     [Define if packet count must precede host])
970         fi
972 elif [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
973         $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
974         egrep -i "^round-trip|^rtt" >/dev/null
975 then
976         ac_cv_ping_command="$PATH_TO_PING -n -U -c %d %s"
977         ac_cv_ping_packets_first=yes
978         AC_MSG_RESULT([$ac_cv_ping_command])
980 elif $PATH_TO_PING -n -U -c 1 127.0.0.1 2>/dev/null | \
981         egrep -i "^round-trip|^rtt" >/dev/null
982 then
983         ac_cv_ping_command="$PATH_TO_PING -n -U -c %d %s"
984         ac_cv_ping_packets_first=yes
985         AC_MSG_RESULT([$ac_cv_ping_command])
987 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
988         egrep -i "^round-trip|^rtt" >/dev/null
989 then
990         ac_cv_ping_command="$PATH_TO_PING -n -c %d %s"
991         ac_cv_ping_packets_first=yes
992         AC_MSG_RESULT([$ac_cv_ping_command])
994 elif $PATH_TO_PING -n 127.0.0.1 -c 1 2>/dev/null | \
995         egrep -i "^round-trip|^rtt" >/dev/null
996 then
997         ac_cv_ping_command="$PATH_TO_PING -n %s -c %d"
998         AC_MSG_RESULT([$ac_cv_ping_command])
1000 elif $PATH_TO_PING 127.0.0.1 -n 1 2>/dev/null | \
1001         egrep -i "^round-trip|^rtt" >/dev/null
1002 then
1003         ac_cv_ping_command="$PATH_TO_PING %s -n %d"
1004         AC_MSG_RESULT([$ac_cv_ping_command])
1006 elif $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
1007         egrep -i "^round-trip|^rtt" >/dev/null
1008 then
1009         ac_cv_ping_command="$PATH_TO_PING -n -s %s 56 %d"
1010         AC_MSG_RESULT([$ac_cv_ping_command])
1012 elif $PATH_TO_PING -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | \
1013         egrep -i "^round-trip|^rtt" >/dev/null
1014 then
1015         ac_cv_ping_command="$PATH_TO_PING -n -h %s -s 56 -c %d"
1016         AC_MSG_RESULT([$ac_cv_ping_command])
1018 elif $PATH_TO_PING -n -s 56 -c 1 127.0.0.1 2>/dev/null | \
1019         egrep -i "^round-trip|^rtt" >/dev/null
1020 then
1021         ac_cv_ping_command="$PATH_TO_PING -n -s 56 -c %d %s"
1022         ac_cv_ping_packets_first=yes
1023         AC_MSG_RESULT([$ac_cv_ping_command])
1025 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
1026         egrep -i "^round-trip|^rtt" >/dev/null
1027 then
1028         ac_cv_ping_command="$PATH_TO_PING -n -c %d %s"
1029         ac_cv_ping_packets_first=yes
1030         AC_MSG_RESULT([$ac_cv_ping_command])
1032 else
1033         AC_MSG_WARN([unable to find usable ping syntax])
1034 fi
1036 AC_DEFINE_UNQUOTED(PING_COMMAND,"$ac_cv_ping_command",
1037         [path and args for ICMP ping command])
1039 if test "x$ac_cv_ping_packets_first" != "xno"
1040 then
1041         AC_DEFINE(PING_PACKETS_FIRST,1,
1042                 [Define if packet count must precede host])
1043 fi
1045 AC_ARG_WITH(ping6_command,
1046         ACX_HELP_STRING([--with-ping6-command=SYNTAX],
1047                 [sets syntax for ICMPv6 ping]),
1048         ac_cv_ping6_command=$withval,)
1050 AC_MSG_CHECKING(for ICMPv6 ping syntax)
1051 ac_cv_ping6_packets_first=no
1052 if test -n "$ac_cv_ping6_command"
1053 then
1054         AC_MSG_RESULT([(command-line) $ac_cv_ping6_command])
1055         if test -n "$ac_cv_ping6_packets_first"
1056         then
1057                 ac_cv_ping6_packets_first=yes
1058         fi
1060 elif test "x$PATH_TO_PING6" != "x"; then
1061         if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1062                 $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1063                 egrep -i "^round-trip|^rtt" >/dev/null
1064         then
1065                 ac_cv_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1066                 ac_cv_ping6_packets_first=yes
1067                 AC_MSG_RESULT([$ac_cv_ping6_command])
1069         elif $PATH_TO_PING6 -n -U -c 1 ::1 2>/dev/null | \
1070                 egrep -i "^round-trip|^rtt" >/dev/null
1071         then
1072                 ac_cv_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1073                 ac_cv_ping6_packets_first=yes
1074                 AC_MSG_RESULT([$ac_cv_ping6_command])
1076         elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1077                 egrep -i "^round-trip|^rtt" >/dev/null
1078         then
1079                 ac_cv_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1080                 ac_cv_ping6_packets_first=yes
1081                 AC_MSG_RESULT([$ac_cv_ping6_command])
1083         elif $PATH_TO_PING6 -n ::1 -c 1 2>/dev/null | \
1084                 egrep -i "^round-trip|^rtt" >/dev/null
1085         then
1086                 ac_cv_ping6_command="$PATH_TO_PING6 -n %s -c %d"
1087                 AC_MSG_RESULT([$ac_cv_ping6_command])
1089         elif $PATH_TO_PING6 ::1 -n 1 2>/dev/null | \
1090                 egrep -i "^round-trip|^rtt" >/dev/null
1091         then
1092                 ac_cv_ping6_command="$PATH_TO_PING6 %s -n %d"
1093                 AC_MSG_RESULT([$ac_cv_ping6_command])
1095         elif $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1096                 egrep -i "^round-trip|^rtt" >/dev/null
1097         then
1098                 ac_cv_ping6_command="$PATH_TO_PING6 -n -s %s 56 %d"
1099                 AC_MSG_RESULT([$ac_cv_ping6_command])
1101         elif $PATH_TO_PING6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1102                 egrep -i "^round-trip|^rtt" >/dev/null
1103         then
1104                 ac_cv_ping6_command="$PATH_TO_PING6 -n -h %s -s 56 -c %d"
1105                 AC_MSG_RESULT([$ac_cv_ping6_command])
1107         elif $PATH_TO_PING6 -n -s 56 -c 1 ::1 2>/dev/null | \
1108                 egrep -i "^round-trip|^rtt" >/dev/null
1109         then
1110                 ac_cv_ping6_command="$PATH_TO_PING6 -n -s 56 -c %d %s"
1111                 ac_cv_ping6_packets_first=yes
1112                 AC_MSG_RESULT([$ac_cv_ping_command])
1114         elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1115                 egrep -i "^round-trip|^rtt" >/dev/null
1116         then
1117                 ac_cv_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1118                 ac_cv_ping6_packets_first=yes
1119                 AC_MSG_RESULT([$ac_cv_ping6_command])
1121         fi
1123 elif test "x$PATH_TO_PING" != "x"; then
1124         if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1125                 $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1126                 egrep -i "^round-trip|^rtt" >/dev/null
1127         then
1128                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1129                 ac_cv_ping6_packets_first=yes
1130                 AC_MSG_RESULT([$ac_cv_ping6_command])
1132         elif $PATH_TO_PING -A inet6 -n -U -c 1 ::1 2>/dev/null | \
1133                 egrep -i "^round-trip|^rtt" >/dev/null
1134         then
1135                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1136                 ac_cv_ping6_packets_first=yes
1137                 AC_MSG_RESULT([$ac_cv_ping6_command])
1139         elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1140                 egrep -i "^round-trip|^rtt" >/dev/null
1141         then
1142                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1143                 ac_cv_ping6_packets_first=yes
1144                 AC_MSG_RESULT([$ac_cv_ping6_command])
1146         elif $PATH_TO_PING -A inet6 -n ::1 -c 1 2>/dev/null | \
1147                 egrep -i "^round-trip|^rtt" >/dev/null
1148         then
1149                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n %s -c %d"
1150                 AC_MSG_RESULT([$ac_cv_ping6_command])
1152         elif $PATH_TO_PING -A inet6 ::1 -n 1 2>/dev/null | \
1153                 egrep -i "^round-trip|^rtt" >/dev/null
1154         then
1155                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 %s -n %d"
1156                 AC_MSG_RESULT([$ac_cv_ping6_command])
1158         elif $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1159                 egrep -i "^round-trip|^rtt" >/dev/null
1160         then
1161                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -s %s 56 %d"
1162                 AC_MSG_RESULT([$ac_cv_ping6_command])
1164         elif $PATH_TO_PING -A inet6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1165                 egrep -i "^round-trip|^rtt" >/dev/null
1166         then
1167                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -h %s -s 56 -c %d"
1168                 AC_MSG_RESULT([$ac_cv_ping6_command])
1170         elif $PATH_TO_PING -A inet6 -n -s 56 -c 1 ::1 2>/dev/null | \
1171                 egrep -i "^round-trip|^rtt" >/dev/null
1172         then
1173                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -s 56 -c %d %s"
1174                 ac_cv_ping6_packets_first=yes
1175                 AC_MSG_RESULT([$ac_cv_ping_command])
1177         elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1178                 egrep -i "^round-trip|^rtt" >/dev/null
1179         then
1180                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1181                 ac_cv_ping6_packets_first=yes
1182                 AC_MSG_RESULT([$ac_cv_ping6_command])
1184         fi
1186 fi
1188 if test "x$ac_cv_ping6_command" != "x"; then
1189         AC_DEFINE_UNQUOTED(PING6_COMMAND,"$ac_cv_ping6_command",
1190                 [path and args for ICMPv6 ping command])
1191 else
1192         AC_MSG_RESULT([none])
1193 fi
1195 if test "x$ac_cv_ping6_packets_first" != "xno"; then
1196         AC_DEFINE(PING6_PACKETS_FIRST,1,
1197                 [Define if packet count must precede host])
1198 fi
1200 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
1202 AC_MSG_CHECKING(for nslookup syntax)
1203 if test -n "$PATH_TO_NSLOOKUP"
1204 then
1205         if $PATH_TO_NSLOOKUP -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
1206         then
1207                 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP"
1208                 AC_MSG_RESULT([$ac_cv_nslookup_command])
1210         else
1211                 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP -sil"
1212                 AC_MSG_RESULT([$ac_cv_nslookup_command])
1214         fi
1215         EXTRAS="$EXTRAS check_dns"
1217 else
1218         AC_MSG_WARN([nslookup command not found])
1219 fi
1221 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$ac_cv_nslookup_command",
1222         [path and args for nslookup])
1224 AC_PATH_PROG(PATH_TO_HOST,host)
1225 if test -n "$ac_cv_path_PATH_TO_HOST"
1226 then
1227         EXTRAS="$EXTRAS check_dns"
1228 fi
1230 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
1231 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
1233 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
1234 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
1236 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
1237 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
1238 AC_PATH_PROGS(PATH_TO_NTPQ,ntpq)
1239 if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPQ")
1240 then
1241         AC_DEFINE_UNQUOTED(PATH_TO_NTPQ,"$PATH_TO_NTPQ",[path to ntpq binary])
1242         AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary])
1243 else
1244         AC_MSG_WARN([Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization])
1245 fi
1247 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
1248 if test -x "$PATH_TO_LMSTAT"
1249 then
1250         AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
1251 else
1252         AC_MSG_WARN([Get lmstat from Globetrotter Software to monitor flexlm licenses])
1253 fi
1255 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
1256 if test -x "$PATH_TO_SMBCLIENT"
1257 then
1258         AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
1259 else
1260         AC_MSG_WARN([Get smbclient from Samba.org to monitor SMB shares])
1261 fi
1264 AC_PATH_PROG(PATH_TO_WHO,who)
1266 if [$PATH_TO_WHO -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
1267 then
1268         ac_cv_path_to_who="$PATH_TO_WHO -q"
1269 else
1270         ac_cv_path_to_who="$PATH_TO_WHO"
1271 fi
1273 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$ac_cv_path_to_who",
1274         [path and arguments for invoking 'who'])
1276 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
1277 if test -x "$PATH_TO_SNMPGET"
1278 then
1279         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
1280         EXTRAS="$EXTRAS check_hpjd check_snmp"
1281 else
1282         AC_MSG_WARN([Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins])
1283 fi
1285 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
1286 if test -x "$PATH_TO_SNMPGETNEXT"
1287 then
1288         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
1289 fi
1291 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null  )
1292 then
1293         AC_MSG_CHECKING(for Net::SNMP perl module)
1294         AC_MSG_RESULT([found])
1295 else
1296         AC_MSG_WARN([Tried $PERL - install Net::SNMP perl module if you want to use the perl snmp plugins])
1297 fi
1299 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
1300 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
1302 if test -x "$PATH_TO_QUAKESTAT"
1303 then
1304         ac_cv_path_to_qstat="$PATH_TO_QUAKESTAT"
1305         EXTRAS="$EXTRAS check_game"
1307 elif test -x "$PATH_TO_QSTAT"
1308 then
1309         ac_cv_path_to_qstat="$PATH_TO_QSTAT"
1310         EXTRAS="$EXTRAS check_game"
1311 else
1312         AC_MSG_WARN([Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin])
1313 fi
1315 if test $ac_cv_path_to_qstat 
1316 then
1317         AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$ac_cv_path_to_qstat",
1318                 [path to qstat/quakestat])
1319 fi
1321 AC_PATH_PROG(PATH_TO_FPING,fping)
1322 if test -x "$PATH_TO_FPING"
1323 then
1324         AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
1325         EXTRAS="$EXTRAS check_fping"
1326 else
1327         AC_MSG_WARN([Get fping from http://www.fping.com in order to make check_fping plugin])
1328 fi
1330 AC_PATH_PROG(PATH_TO_SSH,ssh)
1332 if test -x "$PATH_TO_SSH"
1333 then
1334         AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
1335         EXTRAS="$EXTRAS check_by_ssh"
1336 else
1337         AC_MSG_WARN([Get ssh in order to make check_by_ssh plugin])
1338 fi
1341 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
1342 if test -x "$PATH_TO_MAILQ"
1343 then
1344         AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
1345 else
1346         AC_MSG_WARN([Could not find mailq or eqivalent])
1347 fi
1349 dnl SWAP info required is amount allocated/available and amount free
1350 dnl The plugin works through all the swap devices and adds up the total swap
1351 dnl available.
1353 dnl dunno why this does not work below - use hack (kbd)
1354 dnl fine on linux, broken on solaris
1355 dnl if /bin/test -e "/proc/meminfo"
1357 AC_PATH_PROG(PATH_TO_SWAP,swap)
1358 AC_PATH_PROG(PATH_TO_SWAPINFO,swapinfo)
1360 AC_MSG_CHECKING(for how to check memory)
1361 if [cat /proc/meminfo > /dev/null 2>&1]
1362 then
1363         AC_MSG_RESULT([found /proc/meminfo])
1364         AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
1365         AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes])
1366         EXTRAS="$EXTRAS check_swap"
1368 elif [$PATH_TO_SWAP -l 2>&1 >/dev/null]
1369 then
1370         ac_cv_have_swap=yes
1371         ac_cv_swap_command="$PATH_TO_SWAP -l"
1372         if [$PATH_TO_SWAP -l 2>/dev/null | \
1373                 egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" \
1374                 >/dev/null]
1375         then
1376                 ac_cv_swap_format=[" %*d %*s %*d,%*d %*d %*d %d %d"]
1377                 AC_MSG_RESULT([using IRIX format swap])
1379         elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^swapfile +dev +swaplo +blocks +free" >/dev/null]
1380         then
1381                 ac_cv_swap_format=["%*s %*[[0-9,-]] %*d %d %d"]
1382                 AC_MSG_RESULT([using Solaris format swap])
1384         elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null]
1385         then
1386                 ac_cv_swap_format=["%*s %*[[0-9,-]] %*d %d %d"]
1387                 AC_MSG_RESULT([using Unixware format swap])
1389         fi
1390         EXTRAS="$EXTRAS check_swap"
1392 elif [$PATH_TO_SWAPINFO -k 2>&1 | egrep -i "^Device" >/dev/null]
1393 then
1394         ac_cv_have_swap=yes
1395         ac_cv_swap_command="$PATH_TO_SWAPINFO -k"
1397         if [$PATH_TO_SWAPINFO -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
1398         then
1399                 ac_cv_swap_format=["%*s %d %*d %d"]
1400                 AC_MSG_RESULT([using FreeBSD format swapinfo])
1401         fi
1402         EXTRAS="$EXTRAS check_swap"
1404 elif [$PATH_TO_SWAPINFO -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
1405 then
1406         ac_cv_have_swap=yes
1407         ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM",
1408         ac_cv_swap_format=["%*s %d %*d %d"]
1409         AC_MSG_RESULT([using HP-UX format swapinfo])
1410 fi
1412 if test x$ac_cv_have_swap != x 
1413 then
1414         AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
1415 fi
1416 AC_DEFINE_UNQUOTED(SWAP_FORMAT,"$ac_cv_swap_format",
1417         [Format string for parsing swap output])
1418 if test "x$ac_cv_swap_command" != "x" 
1419 then
1420         AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$ac_cv_swap_command",
1421                 [Path to swap/swapinfo binary, with any args])
1422 fi
1424 AC_PATH_PROG(PATH_TO_DIG,dig)
1425 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
1426 if test -n "$PATH_TO_DIG"; then
1427         EXTRAS="$EXTRAS check_dig"
1428 fi
1430 if test -f plugins/check_nt.c ; then
1431   EXTRAS="$EXTRAS check_nt"
1432 elif test -f ../plugins/check_nt.c ; then
1433   EXTRAS="$EXTRAS check_nt"
1434 fi
1436 AC_MSG_CHECKING(for va_list)
1437 AC_TRY_COMPILE([#ifdef __STDC__
1438                 #include <stdio.h>
1439                 #include <stdlib.h>
1440                 #include <stdarg.h>
1441                 #else
1442                 #include <sys/types.h>
1443                 #include <stdio.h>
1444                 #include <varargs.h>
1445                 #endif],
1446                 [va_list args;],
1447                 [AC_MSG_RESULT(yes)],
1448                 [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
1450 AC_SUBST(EXTRAS)
1451 AC_SUBST(DEPLIBS)
1453 AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"${VERSION}",[package version])
1455 AC_OUTPUT(Makefile subst lib/Makefile plugins/Makefile plugins-scripts/Makefile plugins-scripts/subst plugins-scripts/utils.pm plugins-scripts/utils.sh command.cfg test.pl,echo timestamp > plugins/stamp-h1;echo timestamp > plugins/stamp-h2;echo timestamp > plugins/stamp-h3;echo timestamp > plugins/stamp-h4;echo timestamp > plugins/stamp-h5;echo timestamp > plugins/stamp-h6;PATH=.:..:$PATH subst.sh command.cfg)