Code

Fixed some ping6 variables
[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.0
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)
481 AC_CHECK_HEADERS(sys/vfs.h,
482                  [AC_TRY_COMPILE([#include <sys/vfs.h>],
483                                  [struct statfs *buf],
484                                  [AC_DEFINE(HAVE_STRUCT_STATFS,1,[Define if statfs struct can be found])])])
485 AC_CHECK_HEADERS(sys/param.h sys/mount.h,
486                  [AC_TRY_COMPILE([#include <sys/param.h>
487 #include <sys/mount.h>],
488                                  [struct statfs *buf],
489                                  [AC_DEFINE(HAVE_STRUCT_STATFS,1,[Define if statfs struct can be found])])])
491 dnl Checks for typedefs, structures, and compiler characteristics.
492 AC_C_CONST
493 AC_STRUCT_TM
494 AC_TYPE_PID_T
495 AC_TYPE_SIZE_T
496 AC_TYPE_SIGNAL
498 AC_CHECK_SIZEOF(int,cross)
499 AC_CHECK_SIZEOF(long,cross)
500 AC_CHECK_SIZEOF(short,cross)
502 AC_CACHE_CHECK([for long long],ac_cv_have_longlong,[
503 AC_TRY_RUN([#include <stdio.h>
504 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
505 ac_cv_have_longlong=yes,ac_cv_have_longlong=no,ac_cv_have_longlong=cross)])
506 if test x"$ac_cv_have_longlong" = x"yes"; then
507     AC_DEFINE(HAVE_LONGLONG,1,[Define if system has long long type])
508 fi
511 # Check if the compiler supports the LL prefix on long long integers.
512 # AIX needs this.
514 AC_CACHE_CHECK([for LL suffix on long long integers],ac_cv_compiler_supports_ll, [
515     AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
516         ac_cv_compiler_supports_ll=yes,ac_cv_compiler_supports_ll=no)])
517 if test x"$ac_cv_compiler_supports_ll" = x"yes"; then
518    AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Define if compiler support long long])
519 fi
521 AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE_VA_COPY,[
522 AC_TRY_LINK([#include <stdarg.h>
523 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
524 ac_cv_HAVE_VA_COPY=yes,ac_cv_HAVE_VA_COPY=no)])
525 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
526     AC_DEFINE(HAVE_VA_COPY,1,[Define if system has va_copy])
527 fi
529 AC_CHECK_FUNCS(vsnprintf snprintf asprintf vasprintf)
530 AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
531 AC_TRY_RUN([
532 #include <sys/types.h>
533 #include <stdarg.h>
534 void foo(const char *format, ...) { 
535        va_list ap;
536        int len;
537        char buf[5];
539        va_start(ap, format);
540        len = vsnprintf(buf, 0, format, ap);
541        va_end(ap);
542        if (len != 5) exit(1);
544        va_start(ap, format);
545        len = vsnprintf(0, 0, format, ap);
546        va_end(ap);
547        if (len != 5) exit(1);
549        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
551        exit(0);
553 main() { foo("hello"); }
554 ],
555 ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
556 if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
557     AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
558 fi
560 AC_TRY_COMPILE([#include <sys/time.h>],
561                [struct timeval *tv;
562                 struct timezone *tz;],
563                AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
564                AC_TRY_COMPILE([#include <sys/time.h>],
565                               [struct timeval *tv;
566                                struct timezone *tz;
567                                gettimeofday(tv, tz);],
568                               AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
569                               AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
571 dnl Checks for library functions.
572 AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul)
574 AC_MSG_CHECKING(return type of socket size)
575 AC_TRY_COMPILE([#include <stdlib.h>
576                 #include <sys/types.h>
577                 #include <sys/socket.h>],
578                [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
579                ac_cv_socket_size_type=["size_t"]
580                 AC_MSG_RESULT(size_t),
581                ac_cv_socket_size_type=["int"]
582                 AC_MSG_RESULT(int))
584 AC_DEFINE_UNQUOTED(SOCKET_SIZE_TYPE, $ac_cv_socket_size_type ,
585         [Define type of socket size])
587 if test -f "/proc/loadavg"
588 then
589   AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
590   AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg])
591 fi
593 dnl #### Process table test
595 AC_PATH_PROG(PATH_TO_PS,ps)
596 ac_cv_use_ps_vars=no
598 AC_MSG_CHECKING(for ps syntax)
599 dnl  STAT UCOMM              VSZ   RSS USER       UID  PPID COMMAND
600 if ps -weo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
601         egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
602 then
603         ac_cv_use_ps_vars=yes
604         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
605         ac_cv_ps_raw_command="$PATH_TO_PS -weo 'stat user ppid args'"
606         ac_cv_ps_command="$PATH_TO_PS -weo 'stat uid ppid comm args'"
607         ac_cv_ps_format="%s %d %d %s %n"
608         ac_cv_vsz_command="$PATH_TO_PS -weo 'vsz comm'"
609         ac_cv_vsz_format="%d %s"
610         ac_cv_rss_command="$PATH_TO_PS -weo 'rss comm'"
611         ac_cv_rss_format="%d %s"
612         EXTRAS="$EXTRAS check_nagios"
613         AC_MSG_RESULT([$ac_cv_ps_command])
615 dnl FreeBSD
616 elif ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | \
617         egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PPID"] >/dev/null
618 then
619         ac_cv_use_ps_vars=yes
620         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
621         ac_cv_ps_raw_command="$PATH_TO_PS waxo 'state uid ppid command'"
622         ac_cv_ps_command="$PATH_TO_PS waxco 'state uid ppid command command'"
623         ac_cv_ps_format="%s %d %d %s %n"
624         ac_cv_vsz_command="$PATH_TO_PS waxco 'vsz command'"
625         ac_cv_vsz_format="%d %s"
626         ac_cv_rss_command="$PATH_TO_PS waxco 'rss command'"
627         ac_cv_rss_format="%d %s"
628         EXTRAS="$EXTRAS check_nagios"
629         AC_MSG_RESULT([$ac_cv_ps_command])
631 dnl BSD-like mode in RH 6.1
632 elif ps waxno 'state comm vsz rss uid user ppid args' 2>/dev/null | \
633         egrep -i ["^S +COMMAND +VSZ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
634 then
635         ac_cv_use_ps_vars=yes
636         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
637         ac_cv_ps_raw_command="$PATH_TO_PS waxno 'state user ppid comm'"
638         ac_cv_ps_command="$PATH_TO_PS waxno 'state uid ppid comm args'"
639         ac_cv_ps_format="%s %d %d %s %n"
640         ac_cv_vsz_command="$PATH_TO_PS waxno 'vsz comm'"
641         ac_cv_vsz_format="%d %s"
642         ac_cv_rss_command="$PATH_TO_PS waxno 'rss comm'"
643         ac_cv_rss_format="%d %s"
644         EXTRAS="$EXTRAS check_nagios"
645         AC_MSG_RESULT([$ac_cv_ps_command])
647 dnl SunOS 4.1.3:
648 dnl  F  UID  PID  PPID  CP  PRI  NI  SZ  RSS  WCHAN  STAT  TT  TIME  COMMAND
649 elif ps -laxnwww 2>/dev/null | \
650         egrep -i ["^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND"] >/dev/null
651 then
652         ac_cv_use_ps_vars=yes
653         ac_cv_ps_raw_command="$PATH_TO_PS laxnwww"
654         ac_cv_ps_varlist="[&procuid,&procppid,procstat,&pos,procprog]"
655         ac_cv_ps_command="$PATH_TO_PS -laxnwww"
656         ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %*s %*s %*s %s %*s %*s %n%s"
657         ac_cv_vsz_command="$PATH_TO_PS laxnwww"
658         ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %*s %d"
659         ac_cv_rss_command="$PATH_TO_PS laxnwww"
660         ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %d"
661         EXTRAS="$EXTRAS check_nagios"
662         AC_MSG_RESULT([$ac_cv_ps_command])
664 dnl Debian Linux / procps v1.2.9:
665 dnl  FLAGS   UID   PID  PPID PRI  NI   SIZE   RSS WCHAN       STA TTY TIME COMMAND
666 dnl    100     0     1     0   0   0    776    76  c0131c8c   S  ffff  0:11 init [2]
667 dnl
668 elif ps laxnwww 2>/dev/null | \
669         egrep -i ["^ *F(LAGS)? +UID +PID +PPID +PRI +NI +(VSZ)|(SIZE) +RSS +WCHAN +STAT? TTY +TIME +COMMAND"] >/dev/null
670 then
671         ac_cv_use_ps_vars=yes
672         ac_cv_ps_raw_command="$PATH_TO_PS laxnwww"
673         ac_cv_ps_varlist="[&procuid,&procppid,procstat,&pos,procprog]"
674         ac_cv_ps_command="$PATH_TO_PS laxnwww"
675         ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s"
676         ac_cv_vsz_command="$PATH_TO_PS laxnwww"
677         ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %d"
678         ac_cv_rss_command="$PATH_TO_PS laxnwww"
679         ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %d"
680         EXTRAS="$EXTRAS check_nagios"
681         AC_MSG_RESULT([$ac_cv_ps_command])
683 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
684 elif ps -axo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
685         egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
686 then
687         ac_cv_use_ps_vars=yes
688         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
689         ac_cv_ps_raw_command="$PATH_TO_PS -axo 'stat user ppid args'"
690         ac_cv_ps_command="$PATH_TO_PS -axo 'stat uid ppid comm args'"
691         ac_cv_ps_format="%s %d %d %s %n"
692         ac_cv_vsz_command="$PATH_TO_PS -axo 'vsz comm'"
693         ac_cv_vsz_format="%d %s"
694         ac_cv_rss_command="$PATH_TO_PS -axo 'rss comm'"
695         ac_cv_rss_format="%d %s"
696         EXTRAS="$EXTRAS check_nagios"
697         AC_MSG_RESULT([$ac_cv_ps_command])
699 dnl AIX 4.3.3 - needs verification. This works for Tru64 - needs %*[ +] in PS_FORMAT
700 elif ps -ao 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
701         egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
702 then
703         ac_cv_use_ps_vars=yes
704         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
705         ac_cv_ps_raw_command="$PATH_TO_PS -ao 'stat user ppid args'"
706         ac_cv_ps_command="$PATH_TO_PS -ao 'stat uid ppid comm args'"
707         ac_cv_ps_format="[["%s%*[ +] %d %d %s %n"]]"
708         ac_cv_vsz_command="$PATH_TO_PS -ao 'vsz comm'"
709         ac_cv_vsz_format="%d %s"
710         ac_cv_rss_command="$PATH_TO_PS -ao 'rss comm'"
711         ac_cv_rss_format="%d %s"
712         EXTRAS="$EXTRAS check_nagios"
713         AC_MSG_RESULT([$ac_cv_ps_command])
715 elif ps -eo 's comm vsz rss user uid ppid args' 2>/dev/null | \
716         egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
717 then
718         ac_cv_use_ps_vars=yes
719         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
720         ac_cv_ps_raw_command="$PATH_TO_PS -eo 's user ppid args'"
721         ac_cv_ps_command="$PATH_TO_PS -eo 's uid ppid comm args'"
722         ac_cv_ps_format="%s %d %d %s %n"
723         ac_cv_vsz_command="$PATH_TO_PS -eo 'vsz comm'"
724         ac_cv_vsz_format="%d %s"
725         ac_cv_rss_command="$PATH_TO_PS -eo 'rss comm'"
726         ac_cv_rss_format="%d %s"
727         EXTRAS="$EXTRAS check_nagios"
728         AC_MSG_RESULT([$ac_cv_ps_command])
730 elif ps -Ao 's comm vsz rss uid user ppid args' 2>/dev/null | \
731         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
732 then
733         ac_cv_use_ps_vars=yes
734         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
735         ac_cv_ps_raw_command="$PATH_TO_PS -Ao 's user ppid args'"
736         ac_cv_ps_command="$PATH_TO_PS -Ao 's uid ppid comm args'"
737         ac_cv_ps_format="%s %d %d %s %n"
738         ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
739         ac_cv_vsz_format="%d %s"
740         ac_cv_rss_command="$PATH_TO_PS -Ao 'rss comm'"
741         ac_cv_rss_format="%d %s"
742         EXTRAS="$EXTRAS check_nagios"
743         AC_MSG_RESULT([$ac_cv_ps_command])
745 elif ps -Ao 'status comm vsz rss uid user ppid args' 2>/dev/null | \
746         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
747 then
748         ac_cv_use_ps_vars=yes
749         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
750         ac_cv_ps_raw_command="$PATH_TO_PS -Ao 'status user ppid args'"
751         ac_cv_ps_command="$PATH_TO_PS -Ao 'status uid ppid comm args'"
752         ac_cv_ps_format="%s %d %d %s %n"
753         ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
754         ac_cv_vsz_format="%d %s"
755         ac_cv_rss_command="$PATH_TO_PS -Ao 'rss comm'"
756         ac_cv_rss_format="%d %s"
757         EXTRAS="$EXTRAS check_nagios"
758         AC_MSG_RESULT([$ac_cv_ps_command])
760 elif ps -Ao 'state comm vsz rss uid user ppid args' 2>/dev/null | \
761         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
762 then
763         ac_cv_use_ps_vars=yes
764         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
765         ac_cv_ps_raw_command="$PATH_TO_PS -Ao 'state user ppid args'"
766         ac_cv_ps_command="$PATH_TO_PS -Ao 'state uid ppid comm args'"
767         ac_cv_ps_format="%s %d %d %s %n"
768         ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
769         ac_cv_vsz_format="%d %s"
770         ac_cv_rss_command="$PATH_TO_PS -Ao 'rss comm'"
771         ac_cv_rss_format="%d %s"
772         EXTRAS="$EXTRAS check_nagios"
773         AC_MSG_RESULT([$ac_cv_ps_command])
775 dnl wonder who takes state instead of stat
776 elif ps -ao 'state command vsz rss user ppid args' 2>/dev/null | \
777         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
778 then
779         ac_cv_use_ps_vars=yes
780         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
781         ac_cv_ps_raw_command="$PATH_TO_PS -ao 'state user ppid args'"
782         ac_cv_ps_command="$PATH_TO_PS -ao 'state uid ppid command args'"
783         ac_cv_ps_format="%s %d %d %s %n"
784         ac_cv_vsz_command="$PATH_TO_PS -ao 'vsz command'"
785         ac_cv_vsz_format="%d %s"
786         ac_cv_rss_command="$PATH_TO_PS -ao 'rss command'"
787         ac_cv_rss_format="%d %s"
788         EXTRAS="$EXTRAS check_nagios"
789         AC_MSG_RESULT([$ac_cv_ps_command])
791 dnl IRIX 53
792 elif ps -el 2>/dev/null | \
793         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
794 then
795         ac_cv_use_ps_vars=yes
796         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
797         ac_cv_ps_command="$PATH_TO_PS -el"
798         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
799         ac_cv_vsz_command="$PATH_TO_PS -el"
800         ac_cv_vsz_format="%*s %*s %*s %*s %d"
801         ac_cv_rss_command="$PATH_TO_PS -el"
802         ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
803         AC_MSG_RESULT([$ac_cv_ps_command])
805 dnl IRIX 63
806 elif ps -el 2>/dev/null | \
807         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +ADDR +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
808 then
809         ac_cv_use_ps_vars=yes
810         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
811         ac_cv_ps_command="$PATH_TO_PS -el"
812         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
813         ac_cv_vsz_command="$PATH_TO_PS -el"
814         ac_cv_vsz_format="%*s %*s %*s %*s %d"
815         ac_cv_rss_command="$PATH_TO_PS -el"
816         ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
817         AC_MSG_RESULT([$ac_cv_ps_command])
819 dnl AIX 4.1:
820 dnl     F S      UID   PID  PPID   C PRI NI ADDR  SZ  RSS   WCHAN    TTY  TIME CMD
821 dnl    303 A        0     0     0 120  16 -- 1c07  20   24              -  0:45 swapper
822 elif ps -el 2>/dev/null | \
823         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
824 then
825         ac_cv_use_ps_vars=yes
826         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
827         ac_cv_ps_command="$PATH_TO_PS -el"
828         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
829         ac_cv_vsz_command="$PATH_TO_PS -el"
830         ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
831         ac_cv_rss_command="$PATH_TO_PS -el"
832         ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
833         AC_MSG_RESULT([$ac_cv_ps_command])
835 dnl AIX?
836 elif ps glaxen 2>/dev/null | \
837         egrep -i ["^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND"] >/dev/null
838 then
839         ac_cv_use_ps_vars=yes
840         ac_cv_ps_varlist="[&procuid,&procppid,procstat,&pos,procprog]"
841         ac_cv_ps_command="$PATH_TO_PS glaxen"
842         ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s"
843         ac_cv_vsz_command="$PATH_TO_PS glaxen"
844         ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %d"
845         ac_cv_rss_command="$PATH_TO_PS glaxen"
846         ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %d"
847         AC_MSG_RESULT([$ac_cv_ps_command])
849 dnl MacOSX / Darwin
850 dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
851 dnl STAT      VSZ    RSS   UID USER     PPID UCOMM            COMMAND
852 dnl Ss       1308    272     0 root        0 init             /sbin/init
853 elif ps waxo 'state vsz rss uid user ppid ucomm command' 2>/dev/null | \
854         egrep -i ["^STAT +VSZ +RSS +UID +USER +PPID +UCOMM +COMMAND"] >/dev/null
855 then
856         ac_cv_use_ps_vars=yes
857         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
858         ac_cv_ps_raw_command="$PATH_TO_PS waxo 'state uid ppid command'"
859         ac_cv_ps_command="$PATH_TO_PS waxo 'state uid ppid ucomm command'"
860         ac_cv_ps_format="%s %d %d %s %n"
861         ac_cv_vsz_command="$PATH_TO_PS waxco 'vsz command'"
862         ac_cv_vsz_format="%d %s"
863         ac_cv_rss_command="$PATH_TO_PS waxco 'rss command'"
864         ac_cv_rss_format="%d %s"
865         EXTRAS="$EXTRAS check_nagios"
866         AC_MSG_RESULT([$ac_cv_ps_command])
868 dnl UnixWare 
869 elif ps -Al 2>/dev/null | \
870         egrep -i ["^ *F +S +UID +PID +PPID +CLS +PRI +NI +C +ADDR +SZ +WCHAN +TTY +TIME +COMD"] >/dev/null
871 then
872         ac_cv_use_ps_vars=yes
873         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
874         ac_cv_ps_command="$PATH_TO_PS -Al"
875         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
876         if ps -Ao 'vsz comm' 2>/dev/null | \
877                 egrep -i ["^ *VSZ +COMMAND"] >/dev/null
878         then
879                 ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
880                 ac_cv_vsz_format="%*s %d"
881         fi
882         AC_MSG_RESULT([$ac_cv_ps_command])
884 else
885         AC_MSG_WARN([unable to find usable ps syntax])
886 fi
888 if test "x$ac_cv_use_ps_vars" != "xno"
889 then
890         AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
891 fi
892 AC_DEFINE_UNQUOTED(PS_VARLIST,$ac_cv_ps_varlist,
893         [Variable list for sscanf of 'ps' output])
894 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$ac_cv_ps_raw_command",
895         [Verbatim command to execute for ps in check_netsaint])
896 AC_DEFINE_UNQUOTED(PS_COMMAND,"$ac_cv_ps_command",
897         [Verbatim command to execute for ps in check_procs])
898 AC_DEFINE_UNQUOTED(PS_FORMAT,"$ac_cv_ps_format",
899         [Format string for scanning ps output in check_procs])
900 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$ac_cv_vsz_command",
901         [Verbatim command to execute for ps in check_vsz])
902 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"$ac_cv_vsz_format",
903         [Format string for scanning ps output in check_vsz])
904 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$ac_cv_rss_command",
905         [Verbatim command to execute for ps in check_rss])
906 AC_DEFINE_UNQUOTED(RSS_FORMAT,"$ac_cv_rss_format",
907         [Format string for scanning ps output in check_rss])
909 AC_PATH_PROG(PATH_TO_DF,df)
910 AC_PATH_PROG(PATH_TO_BDF,bdf)
912 AC_ARG_WITH(df_command,
913         ACX_HELP_STRING([--with-df-command=SYNTAX],
914                 [sets syntax for df]),
915         ac_cv_df_command=$withval,)
917 AC_MSG_CHECKING(for df syntax)
918 if test -n "$ac_cv_df_command"
919 then
920         AC_MSG_RESULT([$ac_cv_df_command])
922 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
923 then
924         ac_cv_df_command="$PATH_TO_DF -Pk"
925         AC_MSG_RESULT([$ac_cv_df_command])
927 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
928 then
929         ac_cv_df_command="$PATH_TO_DF -k"
930         AC_MSG_RESULT([$ac_cv_df_command])
932 elif df 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
933 then
934         ac_cv_df_command="$PATH_TO_DF"
935         AC_MSG_RESULT([$ac_cv_df_command])
937 elif bdf 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
938 then
939         ac_cv_df_command="$PATH_TO_BDF"
940         AC_MSG_RESULT([$ac_cv_df_command])
942 else
943         AC_MSG_WARN([unable to find usable df syntax])
944 fi
946 AC_DEFINE_UNQUOTED(DF_COMMAND,"$ac_cv_df_command",[path and args for df command])
948 AC_PATH_PROG(PATH_TO_PING,ping)
949 AC_PATH_PROG(PATH_TO_PING6,ping6)
951 AC_ARG_WITH(ping_command,
952         ACX_HELP_STRING([--with-ping-command=SYNTAX],
953                 [sets syntax for ICMP ping]),
954         ac_cv_ping_command=$withval,)
956 AC_MSG_CHECKING(for ICMP ping syntax)
957 ac_cv_ping_packets_first=no
958 if test -n "$ac_cv_ping_command"
959 then
960         AC_MSG_RESULT([(command-line) $ac_cv_ping_command])
961         if test -n "$ac_cv_ping_packets_first"
962         then
963                 ac_cv_ping_packets_first=yes
964                 dnl AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$ac_cv_ping_command",
965                 dnl     [Define if packet count must precede host])
966         fi
968 elif [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
969         $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
970         egrep -i "^round-trip|^rtt" >/dev/null
971 then
972         ac_cv_ping_command="$PATH_TO_PING -n -U -c %d %s"
973         ac_cv_ping_packets_first=yes
974         AC_MSG_RESULT([$ac_cv_ping_command])
976 elif $PATH_TO_PING -n -U -c 1 127.0.0.1 2>/dev/null | \
977         egrep -i "^round-trip|^rtt" >/dev/null
978 then
979         ac_cv_ping_command="$PATH_TO_PING -n -U -c %d %s"
980         ac_cv_ping_packets_first=yes
981         AC_MSG_RESULT([$ac_cv_ping_command])
983 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
984         egrep -i "^round-trip|^rtt" >/dev/null
985 then
986         ac_cv_ping_command="$PATH_TO_PING -n -c %d %s"
987         ac_cv_ping_packets_first=yes
988         AC_MSG_RESULT([$ac_cv_ping_command])
990 elif $PATH_TO_PING -n 127.0.0.1 -c 1 2>/dev/null | \
991         egrep -i "^round-trip|^rtt" >/dev/null
992 then
993         ac_cv_ping_command="$PATH_TO_PING -n %s -c %d"
994         AC_MSG_RESULT([$ac_cv_ping_command])
996 elif $PATH_TO_PING 127.0.0.1 -n 1 2>/dev/null | \
997         egrep -i "^round-trip|^rtt" >/dev/null
998 then
999         ac_cv_ping_command="$PATH_TO_PING %s -n %d"
1000         AC_MSG_RESULT([$ac_cv_ping_command])
1002 elif $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
1003         egrep -i "^round-trip|^rtt" >/dev/null
1004 then
1005         ac_cv_ping_command="$PATH_TO_PING -n -s %s 56 %d"
1006         AC_MSG_RESULT([$ac_cv_ping_command])
1008 elif $PATH_TO_PING -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | \
1009         egrep -i "^round-trip|^rtt" >/dev/null
1010 then
1011         ac_cv_ping_command="$PATH_TO_PING -n -h %s -s 56 -c %d"
1012         AC_MSG_RESULT([$ac_cv_ping_command])
1014 elif $PATH_TO_PING -n -s 56 -c 1 127.0.0.1 2>/dev/null | \
1015         egrep -i "^round-trip|^rtt" >/dev/null
1016 then
1017         ac_cv_ping_command="$PATH_TO_PING -n -s 56 -c %d %s"
1018         ac_cv_ping_packets_first=yes
1019         AC_MSG_RESULT([$ac_cv_ping_command])
1021 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
1022         egrep -i "^round-trip|^rtt" >/dev/null
1023 then
1024         ac_cv_ping_command="$PATH_TO_PING -n -c %d %s"
1025         ac_cv_ping_packets_first=yes
1026         AC_MSG_RESULT([$ac_cv_ping_command])
1028 else
1029         AC_MSG_WARN([unable to find usable ping syntax])
1030 fi
1032 AC_DEFINE_UNQUOTED(PING_COMMAND,"$ac_cv_ping_command",
1033         [path and args for ICMP ping command])
1035 if test "x$ac_cv_ping_packets_first" != "xno"
1036 then
1037         AC_DEFINE(PING_PACKETS_FIRST,1,
1038                 [Define if packet count must precede host])
1039 fi
1041 AC_ARG_WITH(ping6_command,
1042         ACX_HELP_STRING([--with-ping6-command=SYNTAX],
1043                 [sets syntax for ICMPv6 ping]),
1044         ac_cv_ping6_command=$withval,)
1046 AC_MSG_CHECKING(for ICMPv6 ping syntax)
1047 ac_cv_ping6_packets_first=no
1048 if test -n "$ac_cv_ping6_command"
1049 then
1050         AC_MSG_RESULT([(command-line) $ac_cv_ping6_command])
1051         if test -n "$ac_cv_ping6_packets_first"
1052         then
1053                 ac_cv_ping6_packets_first=yes
1054         fi
1056 elif test "x$PATH_TO_PING6" != "x"; then
1057         if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1058                 $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1059                 egrep -i "^round-trip|^rtt" >/dev/null
1060         then
1061                 ac_cv_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1062                 ac_cv_ping6_packets_first=yes
1063                 AC_MSG_RESULT([$ac_cv_ping6_command])
1065         elif $PATH_TO_PING6 -n -U -c 1 ::1 2>/dev/null | \
1066                 egrep -i "^round-trip|^rtt" >/dev/null
1067         then
1068                 ac_cv_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1069                 ac_cv_ping6_packets_first=yes
1070                 AC_MSG_RESULT([$ac_cv_ping6_command])
1072         elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1073                 egrep -i "^round-trip|^rtt" >/dev/null
1074         then
1075                 ac_cv_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1076                 ac_cv_ping6_packets_first=yes
1077                 AC_MSG_RESULT([$ac_cv_ping6_command])
1079         elif $PATH_TO_PING6 -n ::1 -c 1 2>/dev/null | \
1080                 egrep -i "^round-trip|^rtt" >/dev/null
1081         then
1082                 ac_cv_ping6_command="$PATH_TO_PING6 -n %s -c %d"
1083                 AC_MSG_RESULT([$ac_cv_ping6_command])
1085         elif $PATH_TO_PING6 ::1 -n 1 2>/dev/null | \
1086                 egrep -i "^round-trip|^rtt" >/dev/null
1087         then
1088                 ac_cv_ping6_command="$PATH_TO_PING6 %s -n %d"
1089                 AC_MSG_RESULT([$ac_cv_ping6_command])
1091         elif $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1092                 egrep -i "^round-trip|^rtt" >/dev/null
1093         then
1094                 ac_cv_ping6_command="$PATH_TO_PING6 -n -s %s 56 %d"
1095                 AC_MSG_RESULT([$ac_cv_ping6_command])
1097         elif $PATH_TO_PING6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1098                 egrep -i "^round-trip|^rtt" >/dev/null
1099         then
1100                 ac_cv_ping6_command="$PATH_TO_PING6 -n -h %s -s 56 -c %d"
1101                 AC_MSG_RESULT([$ac_cv_ping6_command])
1103         elif $PATH_TO_PING6 -n -s 56 -c 1 ::1 2>/dev/null | \
1104                 egrep -i "^round-trip|^rtt" >/dev/null
1105         then
1106                 ac_cv_ping6_command="$PATH_TO_PING6 -n -s 56 -c %d %s"
1107                 ac_cv_ping6_packets_first=yes
1108                 AC_MSG_RESULT([$ac_cv_ping_command])
1110         elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1111                 egrep -i "^round-trip|^rtt" >/dev/null
1112         then
1113                 ac_cv_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1114                 ac_cv_ping6_packets_first=yes
1115                 AC_MSG_RESULT([$ac_cv_ping6_command])
1117         fi
1119 elif test "x$PATH_TO_PING" != "x"; then
1120         if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1121                 $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1122                 egrep -i "^round-trip|^rtt" >/dev/null
1123         then
1124                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1125                 ac_cv_ping6_packets_first=yes
1126                 AC_MSG_RESULT([$ac_cv_ping6_command])
1128         elif $PATH_TO_PING -A inet6 -n -U -c 1 ::1 2>/dev/null | \
1129                 egrep -i "^round-trip|^rtt" >/dev/null
1130         then
1131                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1132                 ac_cv_ping6_packets_first=yes
1133                 AC_MSG_RESULT([$ac_cv_ping6_command])
1135         elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1136                 egrep -i "^round-trip|^rtt" >/dev/null
1137         then
1138                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1139                 ac_cv_ping6_packets_first=yes
1140                 AC_MSG_RESULT([$ac_cv_ping6_command])
1142         elif $PATH_TO_PING -A inet6 -n ::1 -c 1 2>/dev/null | \
1143                 egrep -i "^round-trip|^rtt" >/dev/null
1144         then
1145                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n %s -c %d"
1146                 AC_MSG_RESULT([$ac_cv_ping6_command])
1148         elif $PATH_TO_PING -A inet6 ::1 -n 1 2>/dev/null | \
1149                 egrep -i "^round-trip|^rtt" >/dev/null
1150         then
1151                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 %s -n %d"
1152                 AC_MSG_RESULT([$ac_cv_ping6_command])
1154         elif $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1155                 egrep -i "^round-trip|^rtt" >/dev/null
1156         then
1157                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -s %s 56 %d"
1158                 AC_MSG_RESULT([$ac_cv_ping6_command])
1160         elif $PATH_TO_PING -A inet6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1161                 egrep -i "^round-trip|^rtt" >/dev/null
1162         then
1163                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -h %s -s 56 -c %d"
1164                 AC_MSG_RESULT([$ac_cv_ping6_command])
1166         elif $PATH_TO_PING -A inet6 -n -s 56 -c 1 ::1 2>/dev/null | \
1167                 egrep -i "^round-trip|^rtt" >/dev/null
1168         then
1169                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -s 56 -c %d %s"
1170                 ac_cv_ping6_packets_first=yes
1171                 AC_MSG_RESULT([$ac_cv_ping_command])
1173         elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1174                 egrep -i "^round-trip|^rtt" >/dev/null
1175         then
1176                 ac_cv_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1177                 ac_cv_ping6_packets_first=yes
1178                 AC_MSG_RESULT([$ac_cv_ping6_command])
1180         fi
1182 fi
1184 if test "x$ac_cv_ping6_command" != "x"; then
1185         AC_DEFINE_UNQUOTED(PING6_COMMAND,"$ac_cv_ping6_command",
1186                 [path and args for ICMPv6 ping command])
1187 else
1188         AC_MSG_RESULT([none])
1189 fi
1191 if test "x$ac_cv_ping6_packets_first" != "xno"; then
1192         AC_DEFINE(PING6_PACKETS_FIRST,1,
1193                 [Define if packet count must precede host])
1194 fi
1196 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
1198 AC_MSG_CHECKING(for nslookup syntax)
1199 if test -n "$PATH_TO_NSLOOKUP"
1200 then
1201         if $PATH_TO_NSLOOKUP -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
1202         then
1203                 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP"
1204                 AC_MSG_RESULT([$ac_cv_nslookup_command])
1206         else
1207                 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP -sil"
1208                 AC_MSG_RESULT([$ac_cv_nslookup_command])
1210         fi
1211         EXTRAS="$EXTRAS check_dns"
1213 else
1214         AC_MSG_WARN([nslookup command not found])
1215 fi
1217 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$ac_cv_nslookup_command",
1218         [path and args for nslookup])
1220 AC_PATH_PROG(PATH_TO_HOST,host)
1221 if test -n "$ac_cv_path_PATH_TO_HOST"
1222 then
1223         EXTRAS="$EXTRAS check_dns"
1224 fi
1226 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
1227 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
1229 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
1230 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
1232 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
1233 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
1234 AC_PATH_PROGS(PATH_TO_NTPQ,ntpq)
1235 if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPQ")
1236 then
1237         AC_DEFINE_UNQUOTED(PATH_TO_NTPQ,"$PATH_TO_NTPQ",[path to ntpq binary])
1238         AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary])
1239 else
1240         AC_MSG_WARN([Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization])
1241 fi
1243 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
1244 if test -x "$PATH_TO_LMSTAT"
1245 then
1246         AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
1247 else
1248         AC_MSG_WARN([Get lmstat from Globetrotter Software to monitor flexlm licenses])
1249 fi
1251 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
1252 if test -x "$PATH_TO_SMBCLIENT"
1253 then
1254         AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
1255 else
1256         AC_MSG_WARN([Get smbclient from Samba.org to monitor SMB shares])
1257 fi
1260 AC_PATH_PROG(PATH_TO_WHO,who)
1262 if [$PATH_TO_WHO -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
1263 then
1264         ac_cv_path_to_who="$PATH_TO_WHO -q"
1265 else
1266         ac_cv_path_to_who="$PATH_TO_WHO"
1267 fi
1269 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$ac_cv_path_to_who",
1270         [path and arguments for invoking 'who'])
1272 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
1273 if test -x "$PATH_TO_SNMPGET"
1274 then
1275         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
1276         EXTRAS="$EXTRAS check_hpjd check_snmp"
1277 else
1278         AC_MSG_WARN([Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins])
1279 fi
1281 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
1282 if test -x "$PATH_TO_SNMPGETNEXT"
1283 then
1284         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
1285 fi
1287 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null  )
1288 then
1289         AC_MSG_CHECKING(for Net::SNMP perl module)
1290         AC_MSG_RESULT([found])
1291 else
1292         AC_MSG_WARN([Tried $PERL - install Net::SNMP perl module if you want to use the perl snmp plugins])
1293 fi
1295 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
1296 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
1298 if test -x "$PATH_TO_QUAKESTAT"
1299 then
1300         ac_cv_path_to_qstat="$PATH_TO_QUAKESTAT"
1301         EXTRAS="$EXTRAS check_game"
1303 elif test -x "$PATH_TO_QSTAT"
1304 then
1305         ac_cv_path_to_qstat="$PATH_TO_QSTAT"
1306         EXTRAS="$EXTRAS check_game"
1307 else
1308         AC_MSG_WARN([Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin])
1309 fi
1311 if test $ac_cv_path_to_qstat 
1312 then
1313         AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$ac_cv_path_to_qstat",
1314                 [path to qstat/quakestat])
1315 fi
1317 AC_PATH_PROG(PATH_TO_FPING,fping)
1318 if test -x "$PATH_TO_FPING"
1319 then
1320         AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
1321         EXTRAS="$EXTRAS check_fping"
1322 else
1323         AC_MSG_WARN([Get fping from http://www.fping.com in order to make check_fping plugin])
1324 fi
1326 AC_PATH_PROG(PATH_TO_SSH,ssh)
1328 if test -x "$PATH_TO_SSH"
1329 then
1330         AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
1331         EXTRAS="$EXTRAS check_by_ssh"
1332 else
1333         AC_MSG_WARN([Get ssh in order to make check_by_ssh plugin])
1334 fi
1337 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
1338 if test -x "$PATH_TO_MAILQ"
1339 then
1340         AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
1341 else
1342         AC_MSG_WARN([Could not find mailq or eqivalent])
1343 fi
1345 dnl SWAP info required is amount allocated/available and amount free
1346 dnl The plugin works through all the swap devices and adds up the total swap
1347 dnl available.
1349 dnl dunno why this does not work below - use hack (kbd)
1350 dnl fine on linux, broken on solaris
1351 dnl if /bin/test -e "/proc/meminfo"
1353 AC_PATH_PROG(PATH_TO_SWAP,swap)
1354 AC_PATH_PROG(PATH_TO_SWAPINFO,swapinfo)
1356 AC_MSG_CHECKING(for how to check memory)
1357 if [cat /proc/meminfo > /dev/null 2>&1]
1358 then
1359         AC_MSG_RESULT([found /proc/meminfo])
1360         AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
1361         AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes])
1362         EXTRAS="$EXTRAS check_swap"
1364 elif [$PATH_TO_SWAP -l 2>&1 >/dev/null]
1365 then
1366         ac_cv_have_swap=yes
1367         ac_cv_swap_command="$PATH_TO_SWAP -l"
1368         if [$PATH_TO_SWAP -l 2>/dev/null | \
1369                 egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" \
1370                 >/dev/null]
1371         then
1372                 ac_cv_swap_format=[" %*d %*s %*d,%*d %*d %*d %d %d"]
1373                 AC_MSG_RESULT([using IRIX format swap])
1375         elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^swapfile +dev +swaplo +blocks +free" >/dev/null]
1376         then
1377                 ac_cv_swap_format=["%*s %*[[0-9,-]] %*d %d %d"]
1378                 AC_MSG_RESULT([using Solaris format swap])
1380         elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null]
1381         then
1382                 ac_cv_swap_format=["%*s %*[[0-9,-]] %*d %d %d"]
1383                 AC_MSG_RESULT([using Unixware format swap])
1385         fi
1386         EXTRAS="$EXTRAS check_swap"
1388 elif [$PATH_TO_SWAPINFO -k 2>&1 | egrep -i "^Device" >/dev/null]
1389 then
1390         ac_cv_have_swap=yes
1391         ac_cv_swap_command="$PATH_TO_SWAPINFO -k"
1393         if [$PATH_TO_SWAPINFO -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
1394         then
1395                 ac_cv_swap_format=["%*s %d %*d %d"]
1396                 AC_MSG_RESULT([using FreeBSD format swapinfo])
1397         fi
1398         EXTRAS="$EXTRAS check_swap"
1400 elif [$PATH_TO_SWAPINFO -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
1401 then
1402         ac_cv_have_swap=yes
1403         ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM",
1404         ac_cv_swap_format=["%*s %d %*d %d"]
1405         AC_MSG_RESULT([using HP-UX format swapinfo])
1406 fi
1408 if test x$ac_cv_have_swap != x 
1409 then
1410         AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
1411 fi
1412 AC_DEFINE_UNQUOTED(SWAP_FORMAT,"$ac_cv_swap_format",
1413         [Format string for parsing swap output])
1414 if test "x$ac_cv_swap_command" != "x" 
1415 then
1416         AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$ac_cv_swap_command",
1417                 [Path to swap/swapinfo binary, with any args])
1418 fi
1420 AC_PATH_PROG(PATH_TO_DIG,dig)
1421 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
1422 if test -n "$PATH_TO_DIG"; then
1423         EXTRAS="$EXTRAS check_dig"
1424 fi
1426 if test -f plugins/check_nt.c ; then
1427   EXTRAS="$EXTRAS check_nt"
1428 elif test -f ../plugins/check_nt.c ; then
1429   EXTRAS="$EXTRAS check_nt"
1430 fi
1432 AC_MSG_CHECKING(for va_list)
1433 AC_TRY_COMPILE([#ifdef __STDC__
1434                 #include <stdio.h>
1435                 #include <stdlib.h>
1436                 #include <stdarg.h>
1437                 #else
1438                 #include <sys/types.h>
1439                 #include <stdio.h>
1440                 #include <varargs.h>
1441                 #endif],
1442                 [va_list args;],
1443                 [AC_MSG_RESULT(yes)],
1444                 [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
1446 AC_SUBST(EXTRAS)
1447 AC_SUBST(DEPLIBS)
1449 AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"${VERSION}",[package version])
1451 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)