Code

ipv6 check requires unistd.h for Darwin
[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)
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 saved_srcdir=$srcdir
34 srcdir=$srcdir/lib
35 test -f $srcdir/getloadavg.c \
36   || AC_MSG_ERROR([getloadavg.c is not in $srcdir])
37 AC_FUNC_GETLOADAVG
38 srcdir=$saved_srcdir
40 ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD])
41 dnl AM_WITH_REGEX
42 AC_PROG_RANLIB
44 AC_PATH_PROG(ACLOCAL,aclocal)
45 AC_PATH_PROG(AUTOMAKE,automake)
46 AC_PATH_PROG(AUTOCONF,autoconf)
47 AC_PATH_PROG(AUTOHEADER,autoheader)
49 PLUGIN_TEST=`echo $srcdir/plugins/t/*.t|sed -e 's,\.*/plugins/,,g'`
50 AC_SUBST(PLUGIN_TEST)dnl
52 SCRIPT_TEST=`echo $srcdir/plugins-scripts/t/*.t|sed -e 's,\.*/plugins-scripts/,,g'`
53 AC_SUBST(SCRIPT_TEST)dnl
55 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"
56 AC_SUBST(WARRANTY)
58 SUPPORT="Send email to nagios-users@lists.sourceforge.net if you have questions\nregarding use of this software. To submit patches or suggest improvements,\nsend email to nagiosplug-devel@lists.sourceforge.net\nPlease include version information with all correspondence. (when possible, use output from the --version option of the plugin itself)."
59 AC_SUBST(SUPPORT)
61 dnl CGIURL has changed for Nagios with 1.0 beta
62 AC_ARG_WITH(cgiurl,
63         ACX_HELP_STRING([--with-cgiurl=DIR],
64                 [sets URL for cgi programs]),
65         with_cgiurl=$withval,
66         with_cgiurl=/nagios/cgi-bin)
67 CGIURL="$with_cgiurl"
68 AC_DEFINE_UNQUOTED(CGIURL,"$CGIURL",[URL of CGI programs])
70 AC_ARG_WITH(nagios_user,
71         ACX_HELP_STRING([--with-nagios-user=USER],
72                 [set user name to run nagios]),
73         with_nagios_user=$withval,
74         with_nagios_user=nagios)
75 AC_ARG_WITH(nagios_group,
76         ACX_HELP_STRING([--with-nagios-group=GROUP],
77                 [set group name to run nagios]),
78         with_nagios_group=$withval,
79         with_nagios_group=nagios)
80 AC_SUBST(with_nagios_user)
81 AC_SUBST(with_nagios_group)
82 INSTALL_OPTS="-o $with_nagios_user -g $with_nagios_group"
83 AC_SUBST(INSTALL_OPTS)
85 AC_ARG_WITH(trusted_path,
86         ACX_HELP_STRING([--with-trusted-path=PATH],
87                 [sets trusted path for executables called by scripts (default=/bin:/sbin:/usr/bin:/usr/sbin)]),
88         with_trusted_path=$withval,
89         with_trusted_path=/bin:/sbin:/usr/bin:/usr/sbin)
90 AC_SUBST(with_trusted_path)
92 EXTRAS=
93 dnl PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/etc:/usr/local/bin:/usr/local/sbin:$PATH
95 LDFLAGS="$LDFLAGS -L."
97 ac_cv_uname_m=`uname -m`
98 ac_cv_uname_s=`uname -s`
99 ac_cv_uname_r=`uname -r`
100 ac_cv_uname_v=`uname -v`
102 PKG_ARCH=`uname -p`
103 REV_DATESTAMP=`date '+%Y.%m.%d.%H.%M'`
104 REV_TIMESTAMP=`date '+%Y%m%d%H%M%S'`
106 AC_SUBST(PKG_ARCH)
107 AC_SUBST(REV_DATESTAMP)
108 AC_SUBST(REV_TIMESTAMP)
110 dnl Checks for programs.
111 AC_PATH_PROG(PYTHON,python)
112 AC_PATH_PROG(PERL,perl)
113 AC_PATH_PROG(SH,sh)
115 AC_PATH_PROG(HOSTNAME,hostname)
116 AC_PATH_PROG(BASENAME,basename)
118 dnl
119 dnl Check for miscellaneous stuff
120 dnl 
122 case $host_vender-$host_os in
123 sun*)
124         AC_DEFINE(__EXTENSIONS__,1,[Sun's netdb.h needs this for getaddrinfo])
125         ;;
126 osf*)
127         AC_DEFINE(_OSF_SOURCE,1,[OSF needs this for getaddrinfo])
128         ;;
129 esac
131 dnl
132 dnl Checks for libraries.
133 dnl
135 AC_CHECK_LIB(dce,main,SOCKETLIBS="$SOCKETLIBS -ldce")
136 AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
137 AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
138 AC_CHECK_LIB(resolv,main,SOCKETLIBS="$SOCKETLIBS -lresolv")
139 AC_SUBST(SOCKETLIBS)
141 dnl Check for PostgreSQL libraries
142 _SAVEDLIBS="$LIBS"
143 _SAVEDCPPFLAGS="$CPPFLAGS"
144 AC_ARG_WITH(pgsql,
145         ACX_HELP_STRING([--with-pgsql=DIR],
146                 [sets path to pgsql installation]),
147         PGSQL=$withval,)
148 AC_CHECK_LIB(crypt,main)
149 if test "$ac_cv_lib_crypt_main" = "yes"; then
150   if test -n "$PGSQL"; then
151     LDFLAGS="$LDFLAGS -L$PGSQL/lib"
152     CPPFLAGS="$CPPFLAGS -I$PGSQL/include"
153   fi
154   AC_CHECK_LIB(pq,PQsetdbLogin,,,-lcrypt)
155   if test "$ac_cv_lib_pq_PQsetdbLogin" = "yes"; then
156     AC_CHECK_HEADERS(pgsql/libpq-fe.h)
157     AC_CHECK_HEADERS(postgresql/libpq-fe.h)
158     AC_CHECK_HEADERS(libpq-fe.h)
159     if [[ -n "$PGSQL" -a "$ac_cv_header_libpq_fe_h" = "yes" ]]; then
160       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
161       PGINCLUDE="-I$PGSQL/include"
162     elif test  "$ac_cv_header_pgsql_libpq_fe_h" = "yes"; then
163       PGLIBS="-lpq -lcrypt"
164       PGINCLUDE="-I/usr/include/pgsql"
165     elif test  "$ac_cv_header_postgresql_libpq_fe_h" = "yes"; then
166       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
167       PGINCLUDE="-I/usr/include/postgresql"
168     elif test  "$ac_cv_header_libpq_fe_h" = "yes"; then
169       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
170       PGINCLUDE="-I$PGSQL/include"
171     fi
172     if test -z "$PGINCLUDE"; then
173       AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
174       AC_MSG_WARN([install PostgreSQL headers to compile this plugin (see REQUIREMENTS).])
175     else
176       AC_SUBST(PGLIBS)
177       AC_SUBST(PGINCLUDE)
178       EXTRAS="$EXTRAS check_pgsql"
179     fi
180   else
181     AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
182     AC_MSG_WARN([LIBS="$LIBS" CPPFLAGS="$CPPFLAGS"])
183     AC_MSG_WARN([install PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
184   fi
185 else
186   AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
187   AC_MSG_WARN([install lib crypt and PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
188 fi
189 LIBS="$_SAVEDLIBS"
190 CPPFLAGS="$_SAVEDCPPFLAGS"
192 dnl Check for radius libraries
193 _SAVEDLIBS="$LIBS"
194 AC_CHECK_LIB(radiusclient,rc_read_config)
195 if test "$ac_cv_lib_radiusclient_rc_read_config" = "yes"; then
196   EXTRAS="$EXTRAS check_radius"
197         RADIUSLIBS="-lradiusclient"
198   AC_SUBST(RADIUSLIBS)
199 else
200   AC_MSG_WARN([Skipping radius plugin])
201   AC_MSG_WARN([install radius libs to compile this plugin (see REQUIREMENTS).])
202 fi
203 LIBS="$_SAVEDLIBS"
205 dnl Check for LDAP libraries
206 _SAVEDLIBS="$LIBS"
207 AC_CHECK_LIB(ldap,main,,,-llber)
208 if test "$ac_cv_lib_ldap_main" = "yes"; then
209   LDAPLIBS="-lldap -llber"\
210   LDAPINCLUDE="-I/usr/include/ldap"
211   AC_SUBST(LDAPLIBS)
212   AC_SUBST(LDAPINCLUDE)
213   EXTRAS="$EXTRAS check_ldap"
214 else
215   AC_MSG_WARN([Skipping LDAP plugin])
216   AC_MSG_WARN([install LDAP libs to compile this plugin (see REQUIREMENTS).])
217 fi
218 LIBS="$_SAVEDLIBS"
221 dnl Check for mysql libraries
222 _SAVEDLIBS="$LIBS"
223 _SAVEDCPPFLAGS="$CPPFLAGS"
224 AC_ARG_WITH(mysql,
225         ACX_HELP_STRING([--with-mysql=DIR],
226                 [sets path to mysql installation (assumes lib/mysql and include subdirs]),
227         MYSQL=$withval,)
228 if test -n "$MYSQL"; then
229   MYSQLLIBDIR=$MYSQL/lib/mysql
230   CPPFLAGS="-I$MYSQL/include"
231   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L$MYSQLLIBDIR ",,-L$MYSQLLIBDIR -lz)
232   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
233 elif test -f /usr/lib/libmysqlclient.so; then
234   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
235   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
236 elif test -f /usr/lib/libmysqlclient.a; then
237   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
238   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
239 elif test -f /usr/lib/mysql/libmysqlclient.so; then
240   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
241   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
242 elif test -f /usr/lib/mysql/libmysqlclient.a; then
243   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
244   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
245 fi
246 if test "$ac_cv_lib_mysqlclient_mysql_init" = "yes" -o "$ac_cv_lib_mysqlclient_mysql_close" = "yes"; then
247   AC_CHECK_HEADERS(mysql/mysql.h mysql/errmsg.h, MYSQLINCLUDE="-I$MYSQL/include" )
248   if test "$ac_cv_header_mysql_mysql_h" = "yes" -a "$ac_cv_header_mysql_errmsg_h" = "yes"; then
249     EXTRAS="$EXTRAS check_mysql"
250     AC_SUBST(MYSQLINCLUDE)
251     AC_SUBST(MYSQLLIBS)
252     AC_SUBST(check_mysql_LDFLAGS)
253   else
254     AC_MSG_WARN([Skipping mysql plugin])
255     AC_MSG_WARN([install mysql client headers to compile this plugin (see REQUIREMENTS).])
256   fi
257 else
258   AC_MSG_WARN([Skipping mysql plugin])
259   AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).])
260 fi
261 CPPFLAGS="$_SAVEDCPPFLAGS"
262 LIBS="$_SAVEDLIBS"
264 dnl Check for OpenSSL location
265 AC_PATH_PROG(OPENSSL,openssl)
266 if test "$OPENSSL" = "/usr/bin/openssl"; then
267   OPENSSL=/usr
268 elif test "$OPENSSL" = "/usr/sbin/openssl"; then
269   OPENSSL=/usr
270 elif test "$OPENSSL" = "/opt/bin/openssl"; then
271   OPENSSL=/opt
272 elif test "$OPENSSL" = "/opt/openssl/bin/openssl"; then
273   OPENSSL=/opt/openssl
274 elif test "$OPENSSL" = "/usr/slocal/bin/openssl"; then
275   OPENSSL=/usr/slocal
276 elif test "$OPENSSL" = "/usr/local/bin/openssl"; then
277   OPENSSL=/usr/local
278 elif test "$OPENSSL" = "/usr/local/ssl/bin/openssl"; then
279   OPENSSL=/usr/local/ssl
280 fi
281 AC_ARG_WITH(openssl,
282         ACX_HELP_STRING([--with-openssl=DIR],
283                 [sets path to openssl installation]),
284         OPENSSL=$withval,)
286 AC_CHECK_HEADERS(unistd.h)
288 dnl Check for AF_INET6 support - unistd.h required for Darwin
289 AC_CACHE_CHECK([for IPv6 support], with_ipv6, [
290         AC_TRY_COMPILE([#ifdef HAVE_UNISTD_H
291                         #include <unistd.h>
292                         #endif
293                         #include <netinet/in.h>
294                         #include <sys/socket.h>],
295                         [struct sockaddr_in6 sin6;
296                         void *p;
298                         sin6.sin6_family = AF_INET6;
299                         sin6.sin6_port = 587;
300                         p = &sin6.sin6_addr;],
301                         [with_ipv6=yes], 
302                         [with_ipv6=no])
303         ])
305 if test x"$with_ipv6" != xno ; then
306         AC_DEFINE(USE_IPV6,1,[Enable IPv6 support])
307 fi
309 dnl #########################################################################
310 dnl Check if Posix getaddrinfo() is available.  It is also possible to use
311 dnl the version from the lwres library distributed with BIND.
312 dnl #########################################################################
313 AC_ARG_ENABLE([emulate-getaddrinfo],
314               ACX_HELP_STRING([--enable-emulate-getaddrinfo],
315                              [enable getaddrinfo emulation (default=no)]),
316               ,
317               enable_emulate_getaddrinfo=no)
319 AC_ARG_WITH(lwres,
320             ACX_HELP_STRING([--with-lwres=DIR],
321                            [use lwres library for getaddrinfo (default=no)]),
322             ,
323             with_lwres=no)
325 dnl ## enable force to test getaddrinfo.c
326 if test x$enable_emulate_getaddrinfo = xforce ; then
327         enable_emulate_getaddrinfo=yes
328         have_getaddrinfo=no
329 else
331 have_getaddrinfo=no
332 if test x$with_lwres != xno ; then
333         if test "$with_lwres" != yes ; then
334                    CPPFLAGS="-I${with_lwres}/include $CPPFLAGS"
335                    LDFLAGS="-L${with_lwres}/lib $LDFLAGS"
336         fi
337         AC_CHECK_HEADERS(lwres/netdb.h, ,
338                         [AC_MSG_ERROR([cannot find <lwres/netdb.h>])])
339         AC_CHECK_LIB(lwres, lwres_getaddrinfo, ,
340                      [AC_MSG_ERROR([cannot find the lwres library])],
341                      -lnsl -lpthread)
342         have_getaddrinfo=yes
343 fi
345 if test x$have_getaddrinfo != xyes ; then
346         AC_SEARCH_LIBS(getaddrinfo, socket resolv bind nsl c_r cr, have_getaddrinfo=yes)
347 fi
349 dnl # Special nonsense for systems that actually have getaddrinfo but
350 dnl # redefine the name to something else, e.g. OSF
351 if test x$have_getaddrinfo != xyes ; then
352         AC_MSG_CHECKING(if getaddrinfo is redefined in netdb.h)
353         AC_TRY_LINK([
354 #               include <netdb.h>
355         ], [
356                 struct addrinfo hints, *res;
357                 int err;
359                 err = getaddrinfo ("host", "service", &hints, &res);
360         ], [
361                 have_getaddrinfo=yes
362                 AC_MSG_RESULT(yes)
363         ], [AC_MSG_RESULT(no)])
364 fi
366 fi
368 if test x$have_getaddrinfo != xno ; then
369         if test x$enable_emulate_getaddrinfo != xno ; then
370                 AC_MSG_ERROR([getaddrinfo found but emulate-getaddrinfo was enabled])
371         fi
372         AC_DEFINE(HAVE_GETADDRINFO, 1,
373                   [Does system provide RFC 2553/Posix getaddrinfo?])
374 else
375         if test x$enable_emulate_getaddrinfo != xyes ; then
376 dnl                AC_MSG_ERROR([getaddrinfo not found: try --with-lwres or --enable-emulate-getaddrinfo])
377                enable_emulate_getaddrinfo=yes
378                AC_MSG_WARN([enabling getaddrinfo emulation])
379         fi
380         EXTRA_NETOBJS="$EXTRA_NETOBJS getaddrinfo.o"
381 fi
383 if test x"$enable_emulate_getaddrinfo" != xno ; then
384     have_resolver=no
386   dnl  Try for getipnodebyname
387     AC_SEARCH_LIBS(getipnodebyname, resolv bind nsl c_r cr, have_resolver=yes)
388     if test x"$have_resolver" != xno ; then
389          AC_DEFINE(HAVE_GETIPNODEBYNAME, 1,
390                    [Set when getipnodebyname is available])
391     fi
393   dnl  Try for gethostbyname_r
394     if test x"$have_resolver" = xno ; then
395         AC_SEARCH_LIBS(gethostbyname_r, resolv bind nsl c_r cr,
396                        [have_resolver=yes
397                         ACX_WHICH_GETHOSTBYNAME_R])
398     fi
400   dnl  Try for gethostbyname
401     if test x"$have_resolver" = xno ; then
402         if test x"$enable_pthreads" != xno ; then
403             AC_MSG_WARN([using threads but cannot find gethostbyname_r or getipnodebyname])
404         fi
405         AC_SEARCH_LIBS(gethostbyname, resolv bind nsl, ,
406                        [AC_MSG_ERROR([cannot find gethostbyname])])
407     fi
408     EXTRA_NETOBJS="$EXTRA_NETOBJS gethostbyname.o"
410 fi
412 AC_CHECK_HEADERS(krb5.h,FOUNDINCLUDE=yes,FOUNDINCLUDE=no)
413 if test "$FOUNDINCLUDE" = "no"; then
414   _SAVEDCPPFLAGS="$CPPFLAGS"
415   CPPFLAGS="$_SAVEDCPPFLAGS -I/usr/kerberos/include"
416   unset ac_cv_header_krb5_h
417   AC_CHECK_HEADERS(krb5.h,
418                    KRB5INCLUDE="-I/usr/kerberos/include"
419                    FOUNDINCLUDE=yes,
420                    FOUNDINCLUDE=no)
421 fi
422 AC_SUBST(KRBINCLUDE)
423 if test "$FOUNDINCLUDE" = "no"; then
424   CPPFLAGS="$_SAVEDCPPFLAGS"
425 fi
427 dnl Check for OpenSSL header files
428 unset FOUNDINCLUDE
429 _SAVEDCPPFLAGS="$CPPFLAGS"
430 CPPFLAGS="$CPPFLAGS -I$OPENSSL/include"
431 AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h,
432                  SSLINCLUDE="-I$OPENSSL/include"
433                  FOUNDINCLUDE=yes,
434                  FOUNDINCLUDE=no)
435 if test "$FOUNDINCLUDE" = "no"; then
436   AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h,
437                    SSLINCLUDE="-I$OPENSSL/include"
438                    FOUNDINCLUDE=yes,
439                    FOUNDINCLUDE=no)
440 fi
441 AC_SUBST(SSLINCLUDE)
442 if test "$FOUNDINCLUDE" = "no"; then
443   CPPFLAGS="$_SAVEDCPPFLAGS"
444 fi
446 dnl Check for crypto lib
447 _SAVEDLIBS="$LIBS"
448 AC_CHECK_LIB(crypto,CRYPTO_lock,,,-L$OPENSSL/lib)
449 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
450   dnl Check for SSL lib
451   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)
452 fi
453 LIBS="$_SAVEDLIBS"
455 dnl test headers and libs to decide whether check_http should use SSL
456 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
457   if test "$ac_cv_lib_ssl_main" = "yes"; then
458     if test "$FOUNDINCLUDE" = "yes"; then
459       AC_SUBST(SSLLIBS)
460       AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
461     fi
462   fi
463 fi
464 CPPFLAGS="$_SAVEDCPPFLAGS"
466 dnl
467 dnl Checks for header files.
468 dnl
470 AC_HEADER_STDC
471 AC_HEADER_TIME
472 AC_HEADER_SYS_WAIT
473 AC_CHECK_HEADERS(signal.h strings.h string.h syslog.h uio.h errno.h regex.h sys/types.h sys/time.h sys/socket.h sys/loadavg.h)
474 AC_CHECK_HEADERS(stdarg.h sys/unistd.h ctype.h stdlib.h)
475 AC_CHECK_HEADERS(limits.h sys/param.h sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h fcntl.h sys/statfs.h sys/dustat.h sys/statvfs.h)
477 # Define HAVE_INTTYPES_H if <inttypes.h> exists,
478 # doesn't clash with <sys/types.h>, and declares uintmax_t.
480 AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
481 [AC_TRY_COMPILE(
482   [#include <sys/types.h>
483 #include <inttypes.h>],
484   [uintmax_t i = (uintmax_t) -1;],
485   jm_ac_cv_header_inttypes_h=yes,
486   jm_ac_cv_header_inttypes_h=no)])
488 if test $jm_ac_cv_header_inttypes_h = yes; then
489   AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
490 [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
491    and declares uintmax_t. ])
492 fi
494 # Check for SunOS statfs brokenness wrt partitions 2GB and larger.
495 # If <sys/vfs.h> exists and struct statfs has a member named f_spare,
496 # enable the work-around code in fsusage.c.
497 AC_MSG_CHECKING([for statfs that truncates block counts])
498 AC_CACHE_VAL(fu_cv_sys_truncating_statfs,
499 [AC_TRY_COMPILE([
500 #if !defined(sun) && !defined(__sun)
501 choke -- this is a workaround for a Sun-specific problem
502 #endif
503 #include <sys/types.h>
504 #include <sys/vfs.h>],
505 [struct statfs t; long c = *(t.f_spare);],
506 fu_cv_sys_truncating_statfs=yes
507 AC_MSG_RESULT(yes),
508 fu_cv_sys_truncating_statfs=no
509 AC_MSG_RESULT(no),
510 )])
511 if test $fu_cv_sys_truncating_statfs = yes; then
512   AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS, 1,
513 [  Define if the block counts reported by statfs may be truncated to 2GB
514    and the correct values may be stored in the f_spare array.
515    (SunOS 4.1.2, 4.1.3, and 4.1.3_U1 are reported to have this problem.
516    SunOS 4.1.1 seems not to be affected.)])
517 fi
519 dnl Checks for typedefs, structures, and compiler characteristics.
520 AC_C_CONST
521 AC_STRUCT_TM
522 AC_TYPE_PID_T
523 AC_TYPE_SIZE_T
524 AC_TYPE_SIGNAL
526 AC_CHECK_SIZEOF(int,cross)
527 AC_CHECK_SIZEOF(long,cross)
528 AC_CHECK_SIZEOF(short,cross)
530 AC_CACHE_CHECK([for long long],ac_cv_have_longlong,[
531 AC_TRY_RUN([#include <stdio.h>
532 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
533 ac_cv_have_longlong=yes,ac_cv_have_longlong=no,ac_cv_have_longlong=cross)])
534 if test x"$ac_cv_have_longlong" = x"yes"; then
535     AC_DEFINE(HAVE_LONGLONG,1,[Define if system has long long type])
536 fi
539 # Check if the compiler supports the LL prefix on long long integers.
540 # AIX needs this.
542 AC_CACHE_CHECK([for LL suffix on long long integers],ac_cv_compiler_supports_ll, [
543     AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
544         ac_cv_compiler_supports_ll=yes,ac_cv_compiler_supports_ll=no)])
545 if test x"$ac_cv_compiler_supports_ll" = x"yes"; then
546    AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Define if compiler support long long])
547 fi
549 AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE_VA_COPY,[
550 AC_TRY_LINK([#include <stdarg.h>
551 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
552 ac_cv_HAVE_VA_COPY=yes,ac_cv_HAVE_VA_COPY=no)])
553 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
554     AC_DEFINE(HAVE_VA_COPY,1,[Define if system has va_copy])
555 fi
557 AC_CHECK_FUNCS(vsnprintf snprintf asprintf vasprintf)
558 AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
559 AC_TRY_RUN([
560 #include <sys/types.h>
561 #include <stdarg.h>
562 void foo(const char *format, ...) { 
563        va_list ap;
564        int len;
565        char buf[5];
567        va_start(ap, format);
568        len = vsnprintf(buf, 0, format, ap);
569        va_end(ap);
570        if (len != 5) exit(1);
572        va_start(ap, format);
573        len = vsnprintf(0, 0, format, ap);
574        va_end(ap);
575        if (len != 5) exit(1);
577        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
579        exit(0);
581 main() { foo("hello"); }
582 ],
583 ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
584 if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
585     AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
586 fi
588 AC_TRY_COMPILE([#include <sys/time.h>],
589                [struct timeval *tv;
590                 struct timezone *tz;],
591                AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
592                AC_TRY_COMPILE([#include <sys/time.h>],
593                               [struct timeval *tv;
594                                struct timezone *tz;
595                                gettimeofday(tv, tz);],
596                               AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
597                               AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
599 dnl Checks for library functions.
600 AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul)
602 AC_MSG_CHECKING(return type of socket size)
603 AC_TRY_COMPILE([#include <stdlib.h>
604                 #include <sys/types.h>
605                 #include <sys/socket.h>],
606                [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
607                ac_cv_socket_size_type=["size_t"]
608                 AC_MSG_RESULT(size_t),
609                ac_cv_socket_size_type=["int"]
610                 AC_MSG_RESULT(int))
612 AC_DEFINE_UNQUOTED(SOCKET_SIZE_TYPE, $ac_cv_socket_size_type ,
613         [Define type of socket size])
615 if test -f "/proc/loadavg"
616 then
617   AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
618   AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg])
619 fi
621 dnl #### Process table test
623 AC_PATH_PROG(PATH_TO_PS,ps)
625 AC_MSG_CHECKING(for ps syntax)
626 dnl  STAT UCOMM              VSZ   RSS USER       UID  PPID COMMAND
627 if ps -weo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
628         egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
629 then
630         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
631         ac_cv_ps_command="$PATH_TO_PS -weo 'stat uid ppid comm args'"
632         ac_cv_ps_format="%s %d %d %s %n"
633         ac_cv_vsz_command="$PATH_TO_PS -weo 'vsz comm'"
634         ac_cv_vsz_format="%d %s"
635         ac_cv_rss_command="$PATH_TO_PS -weo 'rss comm'"
636         ac_cv_rss_format="%d %s"
637         EXTRAS="$EXTRAS check_nagios"
638         AC_MSG_RESULT([$ac_cv_ps_command])
640 dnl FreeBSD
641 elif ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | \
642         egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PPID"] >/dev/null
643 then
644         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
645         ac_cv_ps_command="$PATH_TO_PS waxco 'state uid ppid command command'"
646         ac_cv_ps_format="%s %d %d %s %n"
647         ac_cv_vsz_command="$PATH_TO_PS waxco 'vsz command'"
648         ac_cv_vsz_format="%d %s"
649         ac_cv_rss_command="$PATH_TO_PS waxco 'rss command'"
650         ac_cv_rss_format="%d %s"
651         EXTRAS="$EXTRAS check_nagios"
652         AC_MSG_RESULT([$ac_cv_ps_command])
654 dnl BSD-like mode in RH 6.1
655 elif ps waxno 'state comm vsz rss uid user ppid args' 2>/dev/null | \
656         egrep -i ["^S +COMMAND +VSZ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
657 then
658         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
659         ac_cv_ps_command="$PATH_TO_PS waxno 'state uid ppid comm args'"
660         ac_cv_ps_format="%s %d %d %s %n"
661         ac_cv_vsz_command="$PATH_TO_PS waxno 'vsz comm'"
662         ac_cv_vsz_format="%d %s"
663         ac_cv_rss_command="$PATH_TO_PS waxno 'rss comm'"
664         ac_cv_rss_format="%d %s"
665         EXTRAS="$EXTRAS check_nagios"
666         AC_MSG_RESULT([$ac_cv_ps_command])
668 dnl SunOS 4.1.3:
669 dnl  F  UID  PID  PPID  CP  PRI  NI  SZ  RSS  WCHAN  STAT  TT  TIME  COMMAND
670 elif ps -laxnwww 2>/dev/null | \
671         egrep -i ["^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND"] >/dev/null
672 then
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 %*s %n%s"
676         ac_cv_vsz_command="$PATH_TO_PS laxnwww"
677         ac_cv_vsz_format="%*s %*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 %*s %d"
680         EXTRAS="$EXTRAS check_nagios"
681         AC_MSG_RESULT([$ac_cv_ps_command])
683 dnl Debian Linux / procps v1.2.9:
684 dnl  FLAGS   UID   PID  PPID PRI  NI   SIZE   RSS WCHAN       STA TTY TIME COMMAND
685 dnl    100     0     1     0   0   0    776    76  c0131c8c   S  ffff  0:11 init [2]
686 dnl
687 elif ps laxnwww 2>/dev/null | \
688         egrep -i ["^ *F(LAGS)? +UID +PID +PPID +PRI +NI +(VSZ)|(SIZE) +RSS +WCHAN +STAT? TTY +TIME +COMMAND"] >/dev/null
689 then
690         ac_cv_ps_varlist="[&procuid,&procppid,procstat,&pos,procprog]"
691         ac_cv_ps_command="$PATH_TO_PS laxnwww"
692         ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s"
693         ac_cv_vsz_command="$PATH_TO_PS laxnwww"
694         ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %d"
695         ac_cv_rss_command="$PATH_TO_PS laxnwww"
696         ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %d"
697         EXTRAS="$EXTRAS check_nagios"
698         AC_MSG_RESULT([$ac_cv_ps_command])
700 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
701 elif ps -axo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
702         egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
703 then
704         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
705         ac_cv_ps_command="$PATH_TO_PS -axo 'stat uid ppid comm args'"
706         ac_cv_ps_format="%s %d %d %s %n"
707         ac_cv_vsz_command="$PATH_TO_PS -axo 'vsz comm'"
708         ac_cv_vsz_format="%d %s"
709         ac_cv_rss_command="$PATH_TO_PS -axo 'rss comm'"
710         ac_cv_rss_format="%d %s"
711         EXTRAS="$EXTRAS check_nagios"
712         AC_MSG_RESULT([$ac_cv_ps_command])
714 dnl AIX 4.3.3 - needs verification. This works for Tru64 - needs %*[ +] in PS_FORMAT
715 elif ps -ao 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
716         egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
717 then
718         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
719         ac_cv_ps_command="$PATH_TO_PS -ao 'stat uid ppid comm args'"
720         ac_cv_ps_format="[["%s%*[ +] %d %d %s %n"]]"
721         ac_cv_vsz_command="$PATH_TO_PS -ao 'vsz comm'"
722         ac_cv_vsz_format="%d %s"
723         ac_cv_rss_command="$PATH_TO_PS -ao 'rss comm'"
724         ac_cv_rss_format="%d %s"
725         EXTRAS="$EXTRAS check_nagios"
726         AC_MSG_RESULT([$ac_cv_ps_command])
728 elif ps -eo 's comm vsz rss user uid ppid args' 2>/dev/null | \
729         egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
730 then
731         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
732         ac_cv_ps_command="$PATH_TO_PS -eo 's uid ppid comm args'"
733         ac_cv_ps_format="%s %d %d %s %n"
734         ac_cv_vsz_command="$PATH_TO_PS -eo 'vsz comm'"
735         ac_cv_vsz_format="%d %s"
736         ac_cv_rss_command="$PATH_TO_PS -eo 'rss comm'"
737         ac_cv_rss_format="%d %s"
738         EXTRAS="$EXTRAS check_nagios"
739         AC_MSG_RESULT([$ac_cv_ps_command])
741 elif ps -Ao 's comm vsz rss uid user ppid args' 2>/dev/null | \
742         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
743 then
744         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
745         ac_cv_ps_command="$PATH_TO_PS -Ao 's uid ppid comm args'"
746         ac_cv_ps_format="%s %d %d %s %n"
747         ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
748         ac_cv_vsz_format="%d %s"
749         ac_cv_rss_command="$PATH_TO_PS -Ao 'rss comm'"
750         ac_cv_rss_format="%d %s"
751         EXTRAS="$EXTRAS check_nagios"
752         AC_MSG_RESULT([$ac_cv_ps_command])
754 elif ps -Ao 'status comm vsz rss uid user ppid args' 2>/dev/null | \
755         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
756 then
757         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
758         ac_cv_ps_command="$PATH_TO_PS -Ao 'status uid ppid comm args'"
759         ac_cv_ps_format="%s %d %d %s %n"
760         ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
761         ac_cv_vsz_format="%d %s"
762         ac_cv_rss_command="$PATH_TO_PS -Ao 'rss comm'"
763         ac_cv_rss_format="%d %s"
764         EXTRAS="$EXTRAS check_nagios"
765         AC_MSG_RESULT([$ac_cv_ps_command])
767 elif ps -Ao 'state comm vsz rss uid user ppid args' 2>/dev/null | \
768         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
769 then
770         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
771         ac_cv_ps_command="$PATH_TO_PS -Ao 'state uid ppid comm args'"
772         ac_cv_ps_format="%s %d %d %s %n"
773         ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
774         ac_cv_vsz_format="%d %s"
775         ac_cv_rss_command="$PATH_TO_PS -Ao 'rss comm'"
776         ac_cv_rss_format="%d %s"
777         EXTRAS="$EXTRAS check_nagios"
778         AC_MSG_RESULT([$ac_cv_ps_command])
780 dnl wonder who takes state instead of stat
781 elif ps -ao 'state command vsz rss user ppid args' 2>/dev/null | \
782         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
783 then
784         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
785         ac_cv_ps_command="$PATH_TO_PS -ao 'state uid ppid command args'"
786         ac_cv_ps_format="%s %d %d %s %n"
787         ac_cv_vsz_command="$PATH_TO_PS -ao 'vsz command'"
788         ac_cv_vsz_format="%d %s"
789         ac_cv_rss_command="$PATH_TO_PS -ao 'rss command'"
790         ac_cv_rss_format="%d %s"
791         EXTRAS="$EXTRAS check_nagios"
792         AC_MSG_RESULT([$ac_cv_ps_command])
794 dnl IRIX 53
795 elif ps -el 2>/dev/null | \
796         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
797 then
798         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
799         ac_cv_ps_command="$PATH_TO_PS -el"
800         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
801         ac_cv_vsz_command="$PATH_TO_PS -el"
802         ac_cv_vsz_format="%*s %*s %*s %*s %d"
803         ac_cv_rss_command="$PATH_TO_PS -el"
804         ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
805         AC_MSG_RESULT([$ac_cv_ps_command])
807 dnl IRIX 63
808 elif ps -el 2>/dev/null | \
809         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +ADDR +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
810 then
811         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
812         ac_cv_ps_command="$PATH_TO_PS -el"
813         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
814         ac_cv_vsz_command="$PATH_TO_PS -el"
815         ac_cv_vsz_format="%*s %*s %*s %*s %d"
816         ac_cv_rss_command="$PATH_TO_PS -el"
817         ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d"
818         AC_MSG_RESULT([$ac_cv_ps_command])
820 dnl AIX 4.1:
821 dnl     F S      UID   PID  PPID   C PRI NI ADDR  SZ  RSS   WCHAN    TTY  TIME CMD
822 dnl    303 A        0     0     0 120  16 -- 1c07  20   24              -  0:45 swapper
823 elif ps -el 2>/dev/null | \
824         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
825 then
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_ps_varlist="[&procuid,&procppid,procstat,&pos,procprog]"
840         ac_cv_ps_command="$PATH_TO_PS glaxen"
841         ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s"
842         ac_cv_vsz_command="$PATH_TO_PS glaxen"
843         ac_cv_vsz_format="%*s %*s %*s %*s %*s %*s %d"
844         ac_cv_rss_command="$PATH_TO_PS glaxen"
845         ac_cv_rss_format="%*s %*s %*s %*s %*s %*s %*s %d"
846         AC_MSG_RESULT([$ac_cv_ps_command])
848 dnl MacOSX / Darwin
849 dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
850 dnl STAT      VSZ    RSS   UID USER     PPID UCOMM            COMMAND
851 dnl Ss       1308    272     0 root        0 init             /sbin/init
852 elif ps waxo 'state vsz rss uid user ppid ucomm command' 2>/dev/null | \
853         egrep -i ["^STAT +VSZ +RSS +UID +USER +PPID +UCOMM +COMMAND"] >/dev/null
854 then
855         ac_cv_ps_varlist="[procstat,&procuid,&procppid,procprog,&pos]"
856         ac_cv_ps_command="$PATH_TO_PS waxo 'state uid ppid ucomm command'"
857         ac_cv_ps_format="%s %d %d %s %n"
858         ac_cv_vsz_command="$PATH_TO_PS waxco 'vsz command'"
859         ac_cv_vsz_format="%d %s"
860         ac_cv_rss_command="$PATH_TO_PS waxco 'rss command'"
861         ac_cv_rss_format="%d %s"
862         EXTRAS="$EXTRAS check_nagios"
863         AC_MSG_RESULT([$ac_cv_ps_command])
865 dnl UnixWare 
866 elif ps -Al 2>/dev/null | \
867         egrep -i ["^ *F +S +UID +PID +PPID +CLS +PRI +NI +C +ADDR +SZ +WCHAN +TTY +TIME +COMD"] >/dev/null
868 then
869         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
870         ac_cv_ps_command="$PATH_TO_PS -Al"
871         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
872         if ps -Ao 'vsz comm' 2>/dev/null | \
873                 egrep -i ["^ *VSZ +COMMAND"] >/dev/null
874         then
875                 ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
876                 ac_cv_vsz_format="%*s %d"
877         fi
878         AC_MSG_RESULT([$ac_cv_ps_command])
880 else
881         AC_MSG_WARN([unable to find usable ps syntax])
882 fi
884 AC_DEFINE_UNQUOTED(PS_VARLIST,$ac_cv_ps_varlist,
885         [Variable list for sscanf of 'ps' output])
886 AC_DEFINE_UNQUOTED(PS_COMMAND,"$ac_cv_ps_command",
887         [Verbatim command to execute for ps in check_procs])
888 AC_DEFINE_UNQUOTED(PS_FORMAT,"$ac_cv_ps_format",
889         [Format string for scanning ps output in check_procs])
890 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$ac_cv_vsz_command",
891         [Verbatim command to execute for ps in check_vsz])
892 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"$ac_cv_vsz_format",
893         [Format string for scanning ps output in check_vsz])
894 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$ac_cv_rss_command",
895         [Verbatim command to execute for ps in check_rss])
896 AC_DEFINE_UNQUOTED(RSS_FORMAT,"$ac_cv_rss_format",
897         [Format string for scanning ps output in check_rss])
899 AC_PATH_PROG(PATH_TO_DF,df)
900 AC_PATH_PROG(PATH_TO_BDF,bdf)
902 AC_ARG_WITH(df_command,
903         ACX_HELP_STRING([--with-df-command=SYNTAX],
904                 [sets syntax for df]),
905         with_df_command=$withval,)
907 AC_MSG_CHECKING(for df syntax)
908 if test -n "$with_df_command"
909 then
910         AC_MSG_RESULT([$with_df_command])
912 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
913 then
914         with_df_command="$PATH_TO_DF -Pk"
915         AC_MSG_RESULT([$with_df_command])
917 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
918 then
919         with_df_command="$PATH_TO_DF -k"
920         AC_MSG_RESULT([$with_df_command])
922 elif df 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
923 then
924         with_df_command="$PATH_TO_DF"
925         AC_MSG_RESULT([$with_df_command])
927 elif bdf 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         with_df_command="$PATH_TO_BDF"
930         AC_MSG_RESULT([$with_df_command])
932 else
933         AC_MSG_WARN([unable to find usable df syntax])
934 fi
936 AC_DEFINE_UNQUOTED(DF_COMMAND,"$with_df_command",[path and args for df command])
938 dnl jm_AFS
939 jm_LIST_MOUNTED_FILESYSTEMS([list_mounted_fs=yes], [list_mounted_fs=no])
940 jm_FSTYPENAME
941 jm_FILE_SYSTEM_USAGE([space=yes], [space=no])
943 AC_PATH_PROG(PATH_TO_PING,ping)
944 AC_PATH_PROG(PATH_TO_PING6,ping6)
946 AC_ARG_WITH(ping_command,
947         ACX_HELP_STRING([--with-ping-command=SYNTAX],
948                 [sets syntax for ICMP ping]),
949         with_ping_command=$withval,)
951 AC_MSG_CHECKING(for ICMP ping syntax)
952 ac_cv_ping_packets_first=no
953 if test -n "$with_ping_command"
954 then
955         AC_MSG_RESULT([(command-line) $with_ping_command])
956         if test -n "$ac_cv_ping_packets_first"
957         then
958                 ac_cv_ping_packets_first=yes
959         fi
961 elif [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
962         $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
963         egrep -i "^round-trip|^rtt" >/dev/null
964 then
965         with_ping_command="$PATH_TO_PING -n -U -c %d %s"
966         ac_cv_ping_packets_first=yes
967         AC_MSG_RESULT([$with_ping_command])
969 elif $PATH_TO_PING -n -U -c 1 127.0.0.1 2>/dev/null | \
970         egrep -i "^round-trip|^rtt" >/dev/null
971 then
972         with_ping_command="$PATH_TO_PING -n -U -c %d %s"
973         ac_cv_ping_packets_first=yes
974         AC_MSG_RESULT([$with_ping_command])
976 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
977         egrep -i "^round-trip|^rtt" >/dev/null
978 then
979         with_ping_command="$PATH_TO_PING -n -c %d %s"
980         ac_cv_ping_packets_first=yes
981         AC_MSG_RESULT([$with_ping_command])
983 elif $PATH_TO_PING -n 127.0.0.1 -c 1 2>/dev/null | \
984         egrep -i "^round-trip|^rtt" >/dev/null
985 then
986         with_ping_command="$PATH_TO_PING -n %s -c %d"
987         AC_MSG_RESULT([$with_ping_command])
989 elif $PATH_TO_PING 127.0.0.1 -n 1 2>/dev/null | \
990         egrep -i "^round-trip|^rtt" >/dev/null
991 then
992         with_ping_command="$PATH_TO_PING %s -n %d"
993         AC_MSG_RESULT([$with_ping_command])
995 elif $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
996         egrep -i "^round-trip|^rtt" >/dev/null
997 then
998         with_ping_command="$PATH_TO_PING -n -s %s 56 %d"
999         AC_MSG_RESULT([$with_ping_command])
1001 elif $PATH_TO_PING -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | \
1002         egrep -i "^round-trip|^rtt" >/dev/null
1003 then
1004         with_ping_command="$PATH_TO_PING -n -h %s -s 56 -c %d"
1005         AC_MSG_RESULT([$with_ping_command])
1007 elif $PATH_TO_PING -n -s 56 -c 1 127.0.0.1 2>/dev/null | \
1008         egrep -i "^round-trip|^rtt" >/dev/null
1009 then
1010         with_ping_command="$PATH_TO_PING -n -s 56 -c %d %s"
1011         ac_cv_ping_packets_first=yes
1012         AC_MSG_RESULT([$with_ping_command])
1014 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
1015         egrep -i "^round-trip|^rtt" >/dev/null
1016 then
1017         with_ping_command="$PATH_TO_PING -n -c %d %s"
1018         ac_cv_ping_packets_first=yes
1019         AC_MSG_RESULT([$with_ping_command])
1021 else
1022         AC_MSG_WARN([unable to find usable ping syntax])
1023 fi
1025 AC_DEFINE_UNQUOTED(PING_COMMAND,"$with_ping_command",
1026         [path and args for ICMP ping command])
1028 if test "x$ac_cv_ping_packets_first" != "xno"
1029 then
1030         AC_DEFINE(PING_PACKETS_FIRST,1,
1031                 [Define if packet count must precede host])
1032 fi
1034 AC_ARG_WITH(ping6_command,
1035         ACX_HELP_STRING([--with-ping6-command=SYNTAX],
1036                 [sets syntax for ICMPv6 ping]),
1037         with_ping6_command=$withval,)
1039 if test x"$with_ipv6" != xno ; then
1040 AC_MSG_CHECKING(for ICMPv6 ping syntax)
1041 ac_cv_ping6_packets_first=no
1042 if test -n "$with_ping6_command"
1043 then
1044         AC_MSG_RESULT([(command-line) $with_ping6_command])
1045         if test -n "$ac_cv_ping6_packets_first"
1046         then
1047                 ac_cv_ping6_packets_first=yes
1048         fi
1050 elif test "x$PATH_TO_PING6" != "x"; then
1051         if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1052                 $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1053                 egrep -i "^round-trip|^rtt" >/dev/null
1054         then
1055                 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1056                 ac_cv_ping6_packets_first=yes
1057                 AC_MSG_RESULT([$with_ping6_command])
1059         elif $PATH_TO_PING6 -n -U -c 1 ::1 2>/dev/null | \
1060                 egrep -i "^round-trip|^rtt" >/dev/null
1061         then
1062                 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1063                 ac_cv_ping6_packets_first=yes
1064                 AC_MSG_RESULT([$with_ping6_command])
1066         elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1067                 egrep -i "^round-trip|^rtt" >/dev/null
1068         then
1069                 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1070                 ac_cv_ping6_packets_first=yes
1071                 AC_MSG_RESULT([$with_ping6_command])
1073         elif $PATH_TO_PING6 -n ::1 -c 1 2>/dev/null | \
1074                 egrep -i "^round-trip|^rtt" >/dev/null
1075         then
1076                 with_ping6_command="$PATH_TO_PING6 -n %s -c %d"
1077                 AC_MSG_RESULT([$with_ping6_command])
1079         elif $PATH_TO_PING6 ::1 -n 1 2>/dev/null | \
1080                 egrep -i "^round-trip|^rtt" >/dev/null
1081         then
1082                 with_ping6_command="$PATH_TO_PING6 %s -n %d"
1083                 AC_MSG_RESULT([$with_ping6_command])
1085         elif $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1086                 egrep -i "^round-trip|^rtt" >/dev/null
1087         then
1088                 with_ping6_command="$PATH_TO_PING6 -n -s %s 56 %d"
1089                 AC_MSG_RESULT([$with_ping6_command])
1091         elif $PATH_TO_PING6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1092                 egrep -i "^round-trip|^rtt" >/dev/null
1093         then
1094                 with_ping6_command="$PATH_TO_PING6 -n -h %s -s 56 -c %d"
1095                 AC_MSG_RESULT([$with_ping6_command])
1097         elif $PATH_TO_PING6 -n -s 56 -c 1 ::1 2>/dev/null | \
1098                 egrep -i "^round-trip|^rtt" >/dev/null
1099         then
1100                 with_ping6_command="$PATH_TO_PING6 -n -s 56 -c %d %s"
1101                 ac_cv_ping6_packets_first=yes
1102                 AC_MSG_RESULT([$with_ping_command])
1104         elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1105                 egrep -i "^round-trip|^rtt" >/dev/null
1106         then
1107                 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1108                 ac_cv_ping6_packets_first=yes
1109                 AC_MSG_RESULT([$with_ping6_command])
1111         fi
1113 elif test "x$PATH_TO_PING" != "x"; then
1114         if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1115                 $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1116                 egrep -i "^round-trip|^rtt" >/dev/null
1117         then
1118                 with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1119                 ac_cv_ping6_packets_first=yes
1120                 AC_MSG_RESULT([$with_ping6_command])
1122         elif $PATH_TO_PING -A inet6 -n -U -c 1 ::1 2>/dev/null | \
1123                 egrep -i "^round-trip|^rtt" >/dev/null
1124         then
1125                 with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1126                 ac_cv_ping6_packets_first=yes
1127                 AC_MSG_RESULT([$with_ping6_command])
1129         elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1130                 egrep -i "^round-trip|^rtt" >/dev/null
1131         then
1132                 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1133                 ac_cv_ping6_packets_first=yes
1134                 AC_MSG_RESULT([$with_ping6_command])
1136         elif $PATH_TO_PING -A inet6 -n ::1 -c 1 2>/dev/null | \
1137                 egrep -i "^round-trip|^rtt" >/dev/null
1138         then
1139                 with_ping6_command="$PATH_TO_PING -A inet6 -n %s -c %d"
1140                 AC_MSG_RESULT([$with_ping6_command])
1142         elif $PATH_TO_PING -A inet6 ::1 -n 1 2>/dev/null | \
1143                 egrep -i "^round-trip|^rtt" >/dev/null
1144         then
1145                 with_ping6_command="$PATH_TO_PING -A inet6 %s -n %d"
1146                 AC_MSG_RESULT([$with_ping6_command])
1148         elif $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1149                 egrep -i "^round-trip|^rtt" >/dev/null
1150         then
1151                 with_ping6_command="$PATH_TO_PING -A inet6 -n -s %s 56 %d"
1152                 AC_MSG_RESULT([$with_ping6_command])
1154         elif $PATH_TO_PING -A inet6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1155                 egrep -i "^round-trip|^rtt" >/dev/null
1156         then
1157                 with_ping6_command="$PATH_TO_PING -A inet6 -n -h %s -s 56 -c %d"
1158                 AC_MSG_RESULT([$with_ping6_command])
1160         elif $PATH_TO_PING -A inet6 -n -s 56 -c 1 ::1 2>/dev/null | \
1161                 egrep -i "^round-trip|^rtt" >/dev/null
1162         then
1163                 with_ping6_command="$PATH_TO_PING -A inet6 -n -s 56 -c %d %s"
1164                 ac_cv_ping6_packets_first=yes
1165                 AC_MSG_RESULT([$with_ping_command])
1167         elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1168                 egrep -i "^round-trip|^rtt" >/dev/null
1169         then
1170                 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1171                 ac_cv_ping6_packets_first=yes
1172                 AC_MSG_RESULT([$with_ping6_command])
1174         fi
1176 fi
1178 if test "x$with_ping6_command" != "x"; then
1179         AC_DEFINE_UNQUOTED(PING6_COMMAND,"$with_ping6_command",
1180                 [path and args for ICMPv6 ping command])
1181 else
1182         AC_MSG_RESULT([none])
1183 fi
1185 if test "x$ac_cv_ping6_packets_first" != "xno"; then
1186         AC_DEFINE(PING6_PACKETS_FIRST,1,
1187                 [Define if packet count must precede host])
1188 fi
1189 fi
1191 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
1193 AC_MSG_CHECKING(for nslookup syntax)
1194 if test -n "$PATH_TO_NSLOOKUP"
1195 then
1196         if $PATH_TO_NSLOOKUP -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
1197         then
1198                 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP"
1199                 AC_MSG_RESULT([$ac_cv_nslookup_command])
1201         else
1202                 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP -sil"
1203                 AC_MSG_RESULT([$ac_cv_nslookup_command])
1205         fi
1206         EXTRAS="$EXTRAS check_dns"
1208 else
1209         AC_MSG_WARN([nslookup command not found])
1210 fi
1212 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$ac_cv_nslookup_command",
1213         [path and args for nslookup])
1215 AC_PATH_PROG(PATH_TO_HOST,host)
1216 if test -n "$ac_cv_path_PATH_TO_HOST"
1217 then
1218         EXTRAS="$EXTRAS check_dns"
1219 fi
1221 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
1222 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
1224 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
1225 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
1227 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
1228 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
1229 AC_PATH_PROGS(PATH_TO_NTPQ,ntpq)
1230 if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPQ")
1231 then
1232         AC_DEFINE_UNQUOTED(PATH_TO_NTPQ,"$PATH_TO_NTPQ",[path to ntpq binary])
1233         AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary])
1234 else
1235         AC_MSG_WARN([Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization])
1236 fi
1238 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
1239 if test -x "$PATH_TO_LMSTAT"
1240 then
1241         AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
1242 else
1243         AC_MSG_WARN([Get lmstat from Globetrotter Software to monitor flexlm licenses])
1244 fi
1246 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
1247 if test -x "$PATH_TO_SMBCLIENT"
1248 then
1249         AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
1250 else
1251         AC_MSG_WARN([Get smbclient from Samba.org to monitor SMB shares])
1252 fi
1255 AC_PATH_PROG(PATH_TO_WHO,who)
1257 if [$PATH_TO_WHO -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
1258 then
1259         ac_cv_path_to_who="$PATH_TO_WHO -q"
1260 else
1261         ac_cv_path_to_who="$PATH_TO_WHO"
1262 fi
1264 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$ac_cv_path_to_who",
1265         [path and arguments for invoking 'who'])
1267 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
1268 if test -x "$PATH_TO_SNMPGET"
1269 then
1270         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
1271         EXTRAS="$EXTRAS check_hpjd check_snmp"
1272 else
1273         AC_MSG_WARN([Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins])
1274 fi
1276 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
1277 if test -x "$PATH_TO_SNMPGETNEXT"
1278 then
1279         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
1280 fi
1282 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null  )
1283 then
1284         AC_MSG_CHECKING(for Net::SNMP perl module)
1285         AC_MSG_RESULT([found])
1286 else
1287         AC_MSG_WARN([Tried $PERL - install Net::SNMP perl module if you want to use the perl snmp plugins])
1288 fi
1290 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
1291 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
1293 if test -x "$PATH_TO_QUAKESTAT"
1294 then
1295         ac_cv_path_to_qstat="$PATH_TO_QUAKESTAT"
1296         EXTRAS="$EXTRAS check_game"
1298 elif test -x "$PATH_TO_QSTAT"
1299 then
1300         ac_cv_path_to_qstat="$PATH_TO_QSTAT"
1301         EXTRAS="$EXTRAS check_game"
1302 else
1303         AC_MSG_WARN([Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin])
1304 fi
1306 if test $ac_cv_path_to_qstat 
1307 then
1308         AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$ac_cv_path_to_qstat",
1309                 [path to qstat/quakestat])
1310 fi
1312 AC_PATH_PROG(PATH_TO_FPING,fping)
1313 if test -x "$PATH_TO_FPING"
1314 then
1315         AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
1316         EXTRAS="$EXTRAS check_fping"
1317 else
1318         AC_MSG_WARN([Get fping from http://www.fping.com in order to make check_fping plugin])
1319 fi
1321 AC_PATH_PROG(PATH_TO_SSH,ssh)
1323 if test -x "$PATH_TO_SSH"
1324 then
1325         AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
1326         EXTRAS="$EXTRAS check_by_ssh"
1327 else
1328         AC_MSG_WARN([Get ssh in order to make check_by_ssh plugin])
1329 fi
1332 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
1333 if test -x "$PATH_TO_MAILQ"
1334 then
1335         AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
1336 else
1337         AC_MSG_WARN([Could not find mailq or eqivalent])
1338 fi
1340 dnl SWAP info required is amount allocated/available and amount free
1341 dnl The plugin works through all the swap devices and adds up the total swap
1342 dnl available.
1344 dnl dunno why this does not work below - use hack (kbd)
1345 dnl fine on linux, broken on solaris
1346 dnl if /bin/test -e "/proc/meminfo"
1348 AC_PATH_PROG(PATH_TO_SWAP,swap)
1349 AC_PATH_PROG(PATH_TO_SWAPINFO,swapinfo)
1351 AC_MSG_CHECKING(for how to check memory)
1352 if [cat /proc/meminfo > /dev/null 2>&1]
1353 then
1354         AC_MSG_RESULT([found /proc/meminfo])
1355         AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
1356         AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes])
1357         EXTRAS="$EXTRAS check_swap"
1359 elif [$PATH_TO_SWAP -l 2>&1 >/dev/null]
1360 then
1361         ac_cv_have_swap=yes
1362         ac_cv_swap_command="$PATH_TO_SWAP -l"
1363         if [$PATH_TO_SWAP -l 2>/dev/null | \
1364                 egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" \
1365                 >/dev/null]
1366         then
1367                 ac_cv_swap_format=[" %*d %*s %*d,%*d %*d %*d %d %d"]
1368                 AC_MSG_RESULT([using IRIX format swap])
1370         elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^swapfile +dev +swaplo +blocks +free" >/dev/null]
1371         then
1372                 ac_cv_swap_format=["%*s %*[[0-9,-]] %*d %d %d"]
1373                 AC_MSG_RESULT([using Solaris format swap])
1375         elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null]
1376         then
1377                 ac_cv_swap_format=["%*s %*[[0-9,-]] %*d %d %d"]
1378                 AC_MSG_RESULT([using Unixware format swap])
1380         fi
1381         EXTRAS="$EXTRAS check_swap"
1383 elif [$PATH_TO_SWAPINFO -k 2>&1 | egrep -i "^Device" >/dev/null]
1384 then
1385         ac_cv_have_swap=yes
1386         ac_cv_swap_command="$PATH_TO_SWAPINFO -k"
1388         if [$PATH_TO_SWAPINFO -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
1389         then
1390                 ac_cv_swap_format=["%*s %d %*d %d"]
1391                 AC_MSG_RESULT([using FreeBSD format swapinfo])
1392         fi
1393         EXTRAS="$EXTRAS check_swap"
1395 elif [$PATH_TO_SWAPINFO -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
1396 then
1397         ac_cv_have_swap=yes
1398         ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM",
1399         ac_cv_swap_format=["%*s %d %*d %d"]
1400         AC_MSG_RESULT([using HP-UX format swapinfo])
1401 fi
1403 if test x$ac_cv_have_swap != x 
1404 then
1405         AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
1406 fi
1407 AC_DEFINE_UNQUOTED(SWAP_FORMAT,"$ac_cv_swap_format",
1408         [Format string for parsing swap output])
1409 if test "x$ac_cv_swap_command" != "x" 
1410 then
1411         AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$ac_cv_swap_command",
1412                 [Path to swap/swapinfo binary, with any args])
1413 fi
1415 AC_PATH_PROG(PATH_TO_DIG,dig)
1416 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
1417 if test -n "$PATH_TO_DIG"; then
1418         EXTRAS="$EXTRAS check_dig"
1419 fi
1421 if test -f plugins/check_nt.c ; then
1422   EXTRAS="$EXTRAS check_nt"
1423 elif test -f ../plugins/check_nt.c ; then
1424   EXTRAS="$EXTRAS check_nt"
1425 fi
1427 AC_MSG_CHECKING(for va_list)
1428 AC_TRY_COMPILE([#ifdef __STDC__
1429                 #include <stdio.h>
1430                 #include <stdlib.h>
1431                 #include <stdarg.h>
1432                 #else
1433                 #include <sys/types.h>
1434                 #include <stdio.h>
1435                 #include <varargs.h>
1436                 #endif],
1437                 [va_list args;],
1438                 [AC_MSG_RESULT(yes)],
1439                 [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
1441 AC_SUBST(EXTRAS)
1442 AC_SUBST(EXTRA_NETOBJS)
1443 AC_SUBST(DEPLIBS)
1445 AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"${VERSION}",[package version])
1447 AC_OUTPUT(Makefile lib/Makefile plugins/Makefile plugins-scripts/Makefile plugins-scripts/subst plugins-scripts/utils.pm plugins-scripts/utils.sh command.cfg test.pl pkg/solaris/pkginfo)
1449 ACX_FEATURE([with],[cgiurl])
1450 ACX_FEATURE([with],[nagios-user])
1451 ACX_FEATURE([with],[nagios-group])
1452 ACX_FEATURE([with],[trusted-path])
1453 ACX_FEATURE([with],[df-command])
1454 ACX_FEATURE([with],[ping-command])
1455 ACX_FEATURE([with],[ping6-command])
1456 ACX_FEATURE([with],[lwres])
1457 ACX_FEATURE([with],[ipv6])
1458 ACX_FEATURE([enable],[emulate-getaddrinfo])