Code

Fixed va_copy problem on AIX by copying samba's configure.in
[nagiosplug.git] / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 AC_REVISION ($Revision$)
3 AC_PREREQ(2.50)
4 AC_INIT(nagios-plugins,1.4.0alpha2)
5 AC_CONFIG_SRCDIR(Helper.pm)
6 AM_INIT_AUTOMAKE
7 AM_CONFIG_HEADER(config.h)
8 AC_CANONICAL_HOST
10 RELEASE=1
11 AC_SUBST(RELEASE)
13 AC_PREFIX_DEFAULT(/usr/local/nagios)
15 dnl Figure out how to invoke "install" and what install options to use.
16 AC_PROG_INSTALL
17 AC_SUBST(INSTALL)
19 AC_GNU_SOURCE
20 AC_PROG_CC
21 AC_PROG_CPP
22 AC_PROG_GCC_TRADITIONAL
23 AC_PROG_RANLIB
24 AC_AIX
25 AC_MINIX
27 AC_PROG_MAKE_SET
28 AC_PROG_AWK
30 AC_FUNC_MALLOC
31 AC_FUNC_REALLOC
32 jm_PREREQ_ERROR
33 AC_FUNC_ERROR_AT_LINE
35 AC_CONFIG_LIBOBJ_DIR(lib)
36 AC_FUNC_GETLOADAVG([lib])
38 ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD])
39 dnl AM_WITH_REGEX
41 PLUGIN_TEST=`echo $srcdir/plugins/t/*.t|sed -e 's,\.*/plugins/,,g'`
42 AC_SUBST(PLUGIN_TEST)dnl
44 SCRIPT_TEST=`echo $srcdir/plugins-scripts/t/*.t|sed -e 's,\.*/plugins-scripts/,,g'`
45 AC_SUBST(SCRIPT_TEST)dnl
47 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"
48 AC_SUBST(WARRANTY)
50 SUPPORT="Send email to nagios-users@lists.sourceforge.net if you have questions\nregarding use of this software. To submit patches or suggest improvements,\nsend email to nagiosplug-devel@lists.sourceforge.net.\nPlease include version information with all correspondence (when possible,\nuse output from the --version option of the plugin itself).\n"
51 AC_SUBST(SUPPORT)
53 dnl CGIURL has changed for Nagios with 1.0 beta
54 AC_ARG_WITH(cgiurl,
55         ACX_HELP_STRING([--with-cgiurl=DIR],
56                 [sets URL for cgi programs]),
57         with_cgiurl=$withval,
58         with_cgiurl=/nagios/cgi-bin)
59 CGIURL="$with_cgiurl"
60 AC_DEFINE_UNQUOTED(CGIURL,"$CGIURL",[URL of CGI programs])
62 AC_ARG_WITH(nagios_user,
63         ACX_HELP_STRING([--with-nagios-user=USER],
64                 [set user name to run nagios]),
65         with_nagios_user=$withval,
66         with_nagios_user=nagios)
67 AC_ARG_WITH(nagios_group,
68         ACX_HELP_STRING([--with-nagios-group=GROUP],
69                 [set group name to run nagios]),
70         with_nagios_group=$withval,
71         with_nagios_group=nagios)
72 AC_SUBST(with_nagios_user)
73 AC_SUBST(with_nagios_group)
74 INSTALL_OPTS="-o $with_nagios_user -g $with_nagios_group"
75 AC_SUBST(INSTALL_OPTS)
77 AC_ARG_WITH(trusted_path,
78         ACX_HELP_STRING([--with-trusted-path=PATH],
79                 [sets trusted path for executables called by scripts (default=/bin:/sbin:/usr/bin:/usr/sbin)]),
80         with_trusted_path=$withval,
81         with_trusted_path=/bin:/sbin:/usr/bin:/usr/sbin)
82 AC_SUBST(with_trusted_path)
84 EXTRAS=
85 dnl PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/etc:/usr/local/bin:/usr/local/sbin:$PATH
87 LDFLAGS="$LDFLAGS -L."
89 ac_cv_uname_m=`uname -m`
90 ac_cv_uname_s=`uname -s`
91 ac_cv_uname_r=`uname -r`
92 ac_cv_uname_v=`uname -v`
94 PKG_ARCH=`uname -p`
95 REV_DATESTAMP=`date '+%Y.%m.%d.%H.%M'`
96 REV_TIMESTAMP=`date '+%Y%m%d%H%M%S'`
98 AC_SUBST(PKG_ARCH)
99 AC_SUBST(REV_DATESTAMP)
100 AC_SUBST(REV_TIMESTAMP)
102 dnl Checks for programs.
103 AC_PATH_PROG(PYTHON,python)
104 AC_PATH_PROG(PERL,perl)
105 AC_PATH_PROG(SH,sh)
107 AC_PATH_PROG(HOSTNAME,hostname)
108 AC_PATH_PROG(BASENAME,basename)
110 dnl
111 dnl Check for miscellaneous stuff
112 dnl 
114 case $host_vender-$host_os in
115 sun*)
116         AC_DEFINE(__EXTENSIONS__,1,[Sun's netdb.h needs this for getaddrinfo])
117         ;;
118 osf*)
119         AC_DEFINE(_OSF_SOURCE,1,[OSF needs this for getaddrinfo])
120         ;;
121 esac
123 dnl
124 dnl Checks for libraries.
125 dnl
127 AC_CHECK_LIB(dce,main,SOCKETLIBS="$SOCKETLIBS -ldce")
128 AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
129 AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
130 AC_CHECK_LIB(resolv,main,SOCKETLIBS="$SOCKETLIBS -lresolv")
131 AC_SUBST(SOCKETLIBS)
133 dnl Check for PostgreSQL libraries
134 _SAVEDLIBS="$LIBS"
135 _SAVEDCPPFLAGS="$CPPFLAGS"
136 AC_ARG_WITH(pgsql,
137         ACX_HELP_STRING([--with-pgsql=DIR],
138                 [sets path to pgsql installation]),
139         PGSQL=$withval,)
140 AC_CHECK_LIB(crypt,main)
141 if test "$ac_cv_lib_crypt_main" = "yes"; then
142   if test -n "$PGSQL"; then
143     LDFLAGS="$LDFLAGS -L$PGSQL/lib"
144     CPPFLAGS="$CPPFLAGS -I$PGSQL/include"
145   fi
146   AC_CHECK_LIB(pq,PQsetdbLogin,,,-lcrypt)
147   if test "$ac_cv_lib_pq_PQsetdbLogin" = "yes"; then
148     AC_CHECK_HEADERS(pgsql/libpq-fe.h)
149     AC_CHECK_HEADERS(postgresql/libpq-fe.h)
150     AC_CHECK_HEADERS(libpq-fe.h)
151     if [[ -n "$PGSQL" -a "$ac_cv_header_libpq_fe_h" = "yes" ]]; then
152       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
153       PGINCLUDE="-I$PGSQL/include"
154     elif test  "$ac_cv_header_pgsql_libpq_fe_h" = "yes"; then
155       PGLIBS="-lpq -lcrypt"
156       PGINCLUDE="-I/usr/include/pgsql"
157     elif test  "$ac_cv_header_postgresql_libpq_fe_h" = "yes"; then
158       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
159       PGINCLUDE="-I/usr/include/postgresql"
160     elif test  "$ac_cv_header_libpq_fe_h" = "yes"; then
161       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
162       PGINCLUDE="-I$PGSQL/include"
163     fi
164     if test -z "$PGINCLUDE"; then
165       AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
166       AC_MSG_WARN([install PostgreSQL headers to compile this plugin (see REQUIREMENTS).])
167     else
168       AC_SUBST(PGLIBS)
169       AC_SUBST(PGINCLUDE)
170       EXTRAS="$EXTRAS check_pgsql"
171     fi
172   else
173     AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
174     AC_MSG_WARN([LIBS="$LIBS" CPPFLAGS="$CPPFLAGS"])
175     AC_MSG_WARN([install PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
176   fi
177 else
178   AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
179   AC_MSG_WARN([install lib crypt and PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
180 fi
181 LIBS="$_SAVEDLIBS"
182 CPPFLAGS="$_SAVEDCPPFLAGS"
184 dnl Check for radius libraries
185 _SAVEDLIBS="$LIBS"
186 AC_CHECK_LIB(radiusclient,rc_read_config)
187 if test "$ac_cv_lib_radiusclient_rc_read_config" = "yes"; then
188   EXTRAS="$EXTRAS check_radius"
189         RADIUSLIBS="-lradiusclient"
190   AC_SUBST(RADIUSLIBS)
191 else
192   AC_MSG_WARN([Skipping radius plugin])
193   AC_MSG_WARN([install radius libs to compile this plugin (see REQUIREMENTS).])
194 fi
195 LIBS="$_SAVEDLIBS"
197 dnl Check for LDAP libraries
198 _SAVEDLIBS="$LIBS"
199 AC_CHECK_LIB(ldap,main,,,-llber)
200 if test "$ac_cv_lib_ldap_main" = "yes"; then
201   LDAPLIBS="-lldap -llber"\
202   LDAPINCLUDE="-I/usr/include/ldap"
203   AC_SUBST(LDAPLIBS)
204   AC_SUBST(LDAPINCLUDE)
205   AC_CHECK_FUNCS(ldap_set_option)
206   EXTRAS="$EXTRAS check_ldap"
207 else
208   AC_MSG_WARN([Skipping LDAP plugin])
209   AC_MSG_WARN([install LDAP libs to compile this plugin (see REQUIREMENTS).])
210 fi
211 LIBS="$_SAVEDLIBS"
214 dnl Check for mysql libraries
215 _SAVEDLIBS="$LIBS"
216 _SAVEDCPPFLAGS="$CPPFLAGS"
217 AC_ARG_WITH(mysql,
218         ACX_HELP_STRING([--with-mysql=DIR],
219                 [sets path to mysql installation (assumes lib/mysql and include subdirs]),
220         MYSQL=$withval,)
221 if test -n "$MYSQL"; then
222   MYSQLLIBDIR=$MYSQL/lib/mysql
223   CPPFLAGS="-I$MYSQL/include"
224   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L$MYSQLLIBDIR ",,-L$MYSQLLIBDIR -lz)
225   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
226 elif test -f /usr/lib/libmysqlclient.so; then
227   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
228   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
229 elif test -f /usr/lib/libmysqlclient.a; then
230   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
231   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
232 elif test -f /usr/lib/mysql/libmysqlclient.so; then
233   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
234   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
235 elif test -f /usr/lib/mysql/libmysqlclient.a; then
236   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
237   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
238 fi
239 if test "$ac_cv_lib_mysqlclient_mysql_init" = "yes" -o "$ac_cv_lib_mysqlclient_mysql_close" = "yes"; then
240   AC_CHECK_HEADERS(mysql/mysql.h mysql/errmsg.h, MYSQLINCLUDE="-I$MYSQL/include" )
241   if test "$ac_cv_header_mysql_mysql_h" = "yes" -a "$ac_cv_header_mysql_errmsg_h" = "yes"; then
242     EXTRAS="$EXTRAS check_mysql"
243     AC_SUBST(MYSQLINCLUDE)
244     AC_SUBST(MYSQLLIBS)
245     AC_SUBST(check_mysql_LDFLAGS)
246   else
247     AC_MSG_WARN([Skipping mysql plugin])
248     AC_MSG_WARN([install mysql client headers to compile this plugin (see REQUIREMENTS).])
249   fi
250 else
251   AC_MSG_WARN([Skipping mysql plugin])
252   AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).])
253 fi
254 CPPFLAGS="$_SAVEDCPPFLAGS $MYSQLINCLUDE"
255 LIBS="$_SAVEDLIBS"
257 dnl Check for OpenSSL location
258 AC_PATH_PROG(OPENSSL,openssl)
259 if test "$OPENSSL" = "/usr/bin/openssl"; then
260   OPENSSL=/usr
261 elif test "$OPENSSL" = "/usr/sbin/openssl"; then
262   OPENSSL=/usr
263 elif test "$OPENSSL" = "/opt/bin/openssl"; then
264   OPENSSL=/opt
265 elif test "$OPENSSL" = "/opt/openssl/bin/openssl"; then
266   OPENSSL=/opt/openssl
267 elif test "$OPENSSL" = "/usr/slocal/bin/openssl"; then
268   OPENSSL=/usr/slocal
269 elif test "$OPENSSL" = "/usr/local/bin/openssl"; then
270   OPENSSL=/usr/local
271 elif test "$OPENSSL" = "/usr/local/ssl/bin/openssl"; then
272   OPENSSL=/usr/local/ssl
273 fi
274 AC_ARG_WITH(openssl,
275         ACX_HELP_STRING([--with-openssl=DIR],
276                 [sets path to openssl installation]),
277         OPENSSL=$withval,)
279 AC_CHECK_HEADERS(unistd.h)
281 dnl Check for AF_INET6 support - unistd.h required for Darwin
282 AC_CACHE_CHECK([for IPv6 support], with_ipv6, [
283         AC_TRY_COMPILE([#ifdef HAVE_UNISTD_H
284                         #include <unistd.h>
285                         #endif
286                         #include <netinet/in.h>
287                         #include <sys/socket.h>],
288                         [struct sockaddr_in6 sin6;
289                         void *p;
291                         sin6.sin6_family = AF_INET6;
292                         sin6.sin6_port = 587;
293                         p = &sin6.sin6_addr;],
294                         [with_ipv6=yes], 
295                         [with_ipv6=no])
296         ])
298 if test x"$with_ipv6" != xno ; then
299         AC_DEFINE(USE_IPV6,1,[Enable IPv6 support])
300 fi
302 dnl #########################################################################
303 dnl Check if Posix getaddrinfo() is available.  It is also possible to use
304 dnl the version from the lwres library distributed with BIND.
305 dnl #########################################################################
306 AC_ARG_ENABLE([emulate-getaddrinfo],
307               ACX_HELP_STRING([--enable-emulate-getaddrinfo],
308                              [enable getaddrinfo emulation (default=no)]),
309               ,
310               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 dnl                AC_MSG_ERROR([getaddrinfo not found: try --with-lwres or --enable-emulate-getaddrinfo])
370                enable_emulate_getaddrinfo=yes
371                AC_MSG_WARN([enabling getaddrinfo emulation])
372         fi
373         EXTRA_NETOBJS="$EXTRA_NETOBJS getaddrinfo.o"
374 fi
376 if test x"$enable_emulate_getaddrinfo" != xno ; then
377     have_resolver=no
379   dnl  Try for getipnodebyname
380     AC_SEARCH_LIBS(getipnodebyname, resolv bind nsl c_r cr, have_resolver=yes)
381     if test x"$have_resolver" != xno ; then
382          AC_DEFINE(HAVE_GETIPNODEBYNAME, 1,
383                    [Set when getipnodebyname is available])
384     fi
386   dnl  Try for gethostbyname_r
387     if test x"$have_resolver" = xno ; then
388         AC_SEARCH_LIBS(gethostbyname_r, resolv bind nsl c_r cr,
389                        [have_resolver=yes
390                         ACX_WHICH_GETHOSTBYNAME_R])
391     fi
393   dnl  Try for gethostbyname
394     if test x"$have_resolver" = xno ; then
395         if test x"$enable_pthreads" != xno ; then
396             AC_MSG_WARN([using threads but cannot find gethostbyname_r or getipnodebyname])
397         fi
398         AC_SEARCH_LIBS(gethostbyname, resolv bind nsl, ,
399                        [AC_MSG_ERROR([cannot find gethostbyname])])
400     fi
401     EXTRA_NETOBJS="$EXTRA_NETOBJS gethostbyname.o"
403 fi
405 AC_CHECK_HEADERS(krb5.h,FOUNDINCLUDE=yes,FOUNDINCLUDE=no)
406 if test "$FOUNDINCLUDE" = "no"; then
407   _SAVEDCPPFLAGS="$CPPFLAGS"
408   CPPFLAGS="$_SAVEDCPPFLAGS -I/usr/kerberos/include"
409   unset ac_cv_header_krb5_h
410   AC_CHECK_HEADERS(krb5.h,
411                    KRB5INCLUDE="-I/usr/kerberos/include"
412                    FOUNDINCLUDE=yes,
413                    FOUNDINCLUDE=no)
414 fi
415 AC_SUBST(KRBINCLUDE)
416 if test "$FOUNDINCLUDE" = "no"; then
417   CPPFLAGS="$_SAVEDCPPFLAGS"
418 fi
420 dnl Check for OpenSSL header files
421 unset FOUNDINCLUDE
422 _SAVEDCPPFLAGS="$CPPFLAGS"
423 if test "$OPENSSL" != "/usr"; then
424   CPPFLAGS="$CPPFLAGS -I$OPENSSL/include"
425 fi
426 AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h,
427                  SSLINCLUDE="-I$OPENSSL/include"
428                  FOUNDINCLUDE=yes,
429                  FOUNDINCLUDE=no)
430 if test "$FOUNDINCLUDE" = "no"; then
431   AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h,
432                    SSLINCLUDE="-I$OPENSSL/include"
433                    FOUNDINCLUDE=yes,
434                    FOUNDINCLUDE=no)
435 fi
436 AC_SUBST(SSLINCLUDE)
437 if test "$FOUNDINCLUDE" = "no"; then
438   CPPFLAGS="$_SAVEDCPPFLAGS"
439 fi
441 dnl Check for crypto lib
442 _SAVEDLIBS="$LIBS"
443 AC_CHECK_LIB(crypto,CRYPTO_lock,,,-L$OPENSSL/lib)
444 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
445   dnl Check for SSL lib
446   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)
447 fi
448 LIBS="$_SAVEDLIBS"
450 dnl test headers and libs to decide whether check_http should use SSL
451 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
452   if test "$ac_cv_lib_ssl_main" = "yes"; then
453     if test "$FOUNDINCLUDE" = "yes"; then
454       check_tcp_ssl="check_simap check_spop"
455       AC_SUBST(check_tcp_ssl)
456       AC_SUBST(SSLLIBS)
457       AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
458     fi
459   fi
460 fi
461 CPPFLAGS="$_SAVEDCPPFLAGS"
463 dnl
464 dnl Checks for header files.
465 dnl
467 AC_HEADER_STDC
468 AC_HEADER_TIME
469 AC_HEADER_SYS_WAIT
470 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)
471 AC_CHECK_HEADERS(features.h stdarg.h sys/unistd.h ctype.h stdlib.h)
472 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)
474 # glibc 2.3.2 stdlib.h does not define HUGE_VAL (see man strtod)
475 AC_MSG_CHECKING([for HUGE_VAL in <stdlib.h>])
476 AC_TRY_COMPILE([#include <stdlib.h>],
477                [double x = HUGE_VAL;],
478                [AC_MSG_RESULT(yes)],
479                [AC_MSG_RESULT(no)
480                 AC_MSG_CHECKING([for HUGE_VAL in <math.h>])
481                 AC_TRY_COMPILE([#include <math.h>],
482                                [double x = HUGE_VAL;],
483                                [AC_MSG_RESULT(yes)
484                                 AC_DEFINE_UNQUOTED(HUGE_VAL_NEEDS_MATH_H, 1,
485                                                   [Define if <math.h> is required for HUGE_VAL])],
486                                [AC_MSG_RESULT(no)])])
488 # Define HAVE_INTTYPES_H if <inttypes.h> exists,
489 # doesn't clash with <sys/types.h>, and declares uintmax_t.
491 AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
492 [AC_TRY_COMPILE(
493   [#include <sys/types.h>
494 #include <inttypes.h>],
495   [uintmax_t i = (uintmax_t) -1;],
496   jm_ac_cv_header_inttypes_h=yes,
497   jm_ac_cv_header_inttypes_h=no)])
499 if test $jm_ac_cv_header_inttypes_h = yes; then
500   AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
501 [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
502    and declares uintmax_t. ])
503 fi
505 # Check for SunOS statfs brokenness wrt partitions 2GB and larger.
506 # If <sys/vfs.h> exists and struct statfs has a member named f_spare,
507 # enable the work-around code in fsusage.c.
508 AC_MSG_CHECKING([for statfs that truncates block counts])
509 AC_CACHE_VAL(fu_cv_sys_truncating_statfs,
510 [AC_TRY_COMPILE([
511 #if !defined(sun) && !defined(__sun)
512 choke -- this is a workaround for a Sun-specific problem
513 #endif
514 #include <sys/types.h>
515 #include <sys/vfs.h>],
516 [struct statfs t; long c = *(t.f_spare);],
517 fu_cv_sys_truncating_statfs=yes
518 AC_MSG_RESULT(yes),
519 fu_cv_sys_truncating_statfs=no
520 AC_MSG_RESULT(no),
521 )])
522 if test $fu_cv_sys_truncating_statfs = yes; then
523   AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS, 1,
524 [  Define if the block counts reported by statfs may be truncated to 2GB
525    and the correct values may be stored in the f_spare array.
526    (SunOS 4.1.2, 4.1.3, and 4.1.3_U1 are reported to have this problem.
527    SunOS 4.1.1 seems not to be affected.)])
528 fi
530 dnl Checks for typedefs, structures, and compiler characteristics.
531 AC_C_CONST
532 AC_STRUCT_TM
533 AC_TYPE_PID_T
534 AC_TYPE_SIZE_T
535 AC_TYPE_SIGNAL
537 AC_CHECK_SIZEOF(int,cross)
538 AC_CHECK_SIZEOF(long,cross)
539 AC_CHECK_SIZEOF(short,cross)
541 AC_CACHE_CHECK([for long long],ac_cv_have_longlong,[
542 AC_TRY_RUN([#include <stdio.h>
543 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
544 ac_cv_have_longlong=yes,ac_cv_have_longlong=no,ac_cv_have_longlong=cross)])
545 if test x"$ac_cv_have_longlong" = x"yes"; then
546     AC_DEFINE(HAVE_LONGLONG,1,[Define if system has long long type])
547 fi
550 # Check if the compiler supports the LL prefix on long long integers.
551 # AIX needs this.
553 AC_CACHE_CHECK([for LL suffix on long long integers],ac_cv_compiler_supports_ll, [
554     AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
555         ac_cv_compiler_supports_ll=yes,ac_cv_compiler_supports_ll=no)])
556 if test x"$ac_cv_compiler_supports_ll" = x"yes"; then
557    AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Define if compiler support long long])
558 fi
560 AC_CACHE_CHECK([for va_copy],ac_cv_HAVE_VA_COPY,[
561 AC_TRY_LINK([#include <stdarg.h>
562 va_list ap1,ap2;], [va_copy(ap1,ap2);],
563 ac_cv_HAVE_VA_COPY=yes,
564 ac_cv_HAVE_VA_COPY=no)])
565 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
566     AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
567 else    
568     AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE___VA_COPY,[
569     AC_TRY_LINK([#include <stdarg.h>
570     va_list ap1,ap2;], [__va_copy(ap1,ap2);],
571     ac_cv_HAVE___VA_COPY=yes,
572     ac_cv_HAVE___VA_COPY=no)])
573     if test x"$ac_cv_HAVE___VA_COPY" = x"yes"; then
574         AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
575     fi
576 fi
578 AC_CHECK_FUNCS(vsnprintf snprintf asprintf vasprintf)
579 AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
580 AC_TRY_RUN([
581 #include <sys/types.h>
582 #include <stdarg.h>
583 void foo(const char *format, ...) { 
584        va_list ap;
585        int len;
586        char buf[5];
588        va_start(ap, format);
589        len = vsnprintf(buf, 0, format, ap);
590        va_end(ap);
591        if (len != 5) exit(1);
593        va_start(ap, format);
594        len = vsnprintf(0, 0, format, ap);
595        va_end(ap);
596        if (len != 5) exit(1);
598        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
600        exit(0);
602 main() { foo("hello"); }
603 ],
604 ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
605 if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
606     AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
607 fi
609 AC_TRY_COMPILE([#include <sys/time.h>],
610                [struct timeval *tv;
611                 struct timezone *tz;],
612                AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
613                AC_TRY_COMPILE([#include <sys/time.h>],
614                               [struct timeval *tv;
615                                struct timezone *tz;
616                                gettimeofday(tv, tz);],
617                               AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
618                               AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
620 dnl Checks for library functions.
621 AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul)
623 AC_MSG_CHECKING(return type of socket size)
624 AC_TRY_COMPILE([#include <stdlib.h>
625                 #include <sys/types.h>
626                 #include <sys/socket.h>],
627                [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
628                ac_cv_socket_size_type=["size_t"]
629                 AC_MSG_RESULT(size_t),
630                ac_cv_socket_size_type=["int"]
631                 AC_MSG_RESULT(int))
633 AC_DEFINE_UNQUOTED(SOCKET_SIZE_TYPE, $ac_cv_socket_size_type ,
634         [Define type of socket size])
636 if test -f "/proc/loadavg"
637 then
638   AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
639   AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg])
640 fi
642 dnl #### Process table test
644 AC_PATH_PROG(PATH_TO_PS,ps)
646 AC_MSG_CHECKING(for ps syntax)
647 dnl For OpenBSD 3.2 & 3.3. Must come before ps -weo
648 dnl  STAT UCOMM              VSZ   RSS USER      PPID COMMAND
649 if ps -axwo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
650         egrep -i ["^ *STAT +UCOMM +VSZ +RSS +USER +UID +PPID +COMMAND"] > /dev/null
651 then
652         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
653         ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid ppid vsz rss pcpu comm args'"
654         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
655         ac_cv_ps_cols=8
656         AC_MSG_RESULT([$ac_cv_ps_command])
658 dnl  STAT UCOMM              VSZ   RSS USER       UID  PPID COMMAND
659 elif ps -weo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
660         egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
661 then
662         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
663         ac_cv_ps_command="$PATH_TO_PS -weo 'stat uid ppid vsz rss pcpu comm args'"
664         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
665         ac_cv_ps_cols=8
666         AC_MSG_RESULT([$ac_cv_ps_command])
668 dnl FreeBSD
669 elif ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | \
670         egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PPID"] >/dev/null
671 then
672         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
673         ac_cv_ps_command="$PATH_TO_PS waxco 'state uid ppid vsz rss pcpu command command'"
674         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
675         ac_cv_ps_cols=8
676         AC_MSG_RESULT([$ac_cv_ps_command])
678 dnl BSD-like mode in RH 6.1
679 elif ps waxno 'state comm vsz rss uid user ppid args' 2>/dev/null | \
680         egrep -i ["^S +COMMAND +VSZ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
681 then
682         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
683         ac_cv_ps_command="$PATH_TO_PS waxno 'state uid ppid vsz rss pcpu comm args'"
684         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
685         ac_cv_ps_cols=8
686         AC_MSG_RESULT([$ac_cv_ps_command])
688 dnl SunOS 4.1.3:
689 dnl  F  UID  PID  PPID  CP  PRI  NI  SZ  RSS  WCHAN  STAT  TT  TIME  COMMAND
690 dnl Need the head -1 otherwise test will work because arguments are found
691 elif ps -laxnwww 2>/dev/null | head -1 | \
692         egrep -i ["^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND"] >/dev/null
693 then
694         ac_cv_ps_varlist="[&procuid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
695         ac_cv_ps_command="$PATH_TO_PS -laxnwww"
696         ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %d %d %*s %s %*s %*s %n%s"
697         ac_cv_ps_cols=8
698         AC_MSG_RESULT([$ac_cv_ps_command])
700 dnl Debian Linux / procps v1.2.9:
701 dnl  FLAGS   UID   PID  PPID PRI  NI   SIZE   RSS WCHAN       STA TTY TIME COMMAND
702 dnl    100     0     1     0   0   0    776    76  c0131c8c   S  ffff  0:11 init [2]
703 dnl
704 elif ps laxnwww 2>/dev/null | \
705         egrep -i ["^ *F(LAGS)? +UID +PID +PPID +PRI +NI +(VSZ)|(SIZE) +RSS +WCHAN +STAT? TTY +TIME +COMMAND"] >/dev/null
706 then
707         ac_cv_ps_varlist="[&procuid,&procppid,procstat,&procvsz,&procrss,&pos,procprog]"
708         ac_cv_ps_command="$PATH_TO_PS laxnwww"
709         ac_cv_ps_format="%*s %d %*s %d %*s %*s %d %d %*s %s %*s %*s %n%s"
710         ac_cv_ps_cols=8
711         AC_MSG_RESULT([$ac_cv_ps_command])
713 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
714 elif ps -axo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
715         egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
716 then
717         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
718         ac_cv_ps_command="$PATH_TO_PS -axo 'stat uid ppid vsz rss pcpu comm args'"
719         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
720         ac_cv_ps_cols=8
721         AC_MSG_RESULT([$ac_cv_ps_command])
723 dnl Tru64 - needs %*[ +] in PS_FORMAT
724 elif ps -ao 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
725         egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
726 then
727         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
728         ac_cv_ps_command="$PATH_TO_PS -ao 'stat uid ppid vsz rss pcpu comm args'"
729         ac_cv_ps_format=["%s%*[ +] %d %d %d %d %f %s %n"]
730         ac_cv_ps_cols=8
731         AC_MSG_RESULT([$ac_cv_ps_command])
733 elif ps -eo 's comm vsz rss user uid ppid args' 2>/dev/null | \
734         egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
735 then
736         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
737         ac_cv_ps_command="$PATH_TO_PS -eo 's uid ppid vsz rss pcpu comm args'"
738         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
739         ac_cv_ps_cols=8
740         AC_MSG_RESULT([$ac_cv_ps_command])
742 dnl AIX 4.3.3 and 5.1 do not have an rss field
743 elif ps -eo 'stat uid ppid vsz pcpu comm args' 2>/dev/null | \
744         egrep -i ["^ *S[TAUES]* +UID +PPID +VSZ +%CPU +COMMAND +COMMAND"] >/dev/null
745 then
746         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procpcpu,procprog,&pos]"
747         ac_cv_ps_command="$PATH_TO_PS -eo 'stat uid ppid vsz pcpu comm args'"
748         ac_cv_ps_format="%s %d %d %d %f %s %n"
749         ac_cv_ps_cols=7
750         AC_MSG_RESULT([$ac_cv_ps_command - with no RSS])
752 dnl Solaris 2.6
753 elif ps -Ao 's comm vsz rss uid user ppid args' 2>/dev/null | \
754         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
755 then
756         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
757         ac_cv_ps_command="$PATH_TO_PS -Ao 's uid ppid vsz rss pcpu comm args'"
758         # There must be no space between the %s and %n due to a wierd problem in sscanf where
759         # it will return %n as longer than the line length
760         ac_cv_ps_format="%s %d %d %d %d %f %s%n"
761         ac_cv_ps_cols=8
762         AC_MSG_RESULT([$ac_cv_ps_command])
764 elif ps -Ao 'status comm vsz rss uid user ppid args' 2>/dev/null | \
765         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
766 then
767         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
768         ac_cv_ps_command="$PATH_TO_PS -Ao 'status uid ppid vsz rss pcpu comm args'"
769         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
770         ac_cv_ps_cols=8
771         AC_MSG_RESULT([$ac_cv_ps_command])
773 elif ps -Ao 'state comm vsz rss uid user ppid args' 2>/dev/null | \
774         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
775 then
776         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
777         ac_cv_ps_command="$PATH_TO_PS -Ao 'state uid ppid vsz rss pcpu comm args'"
778         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
779         ac_cv_ps_cols=8
780         AC_MSG_RESULT([$ac_cv_ps_command])
782 dnl wonder who takes state instead of stat
783 elif ps -ao 'state command vsz rss user ppid args' 2>/dev/null | \
784         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
785 then
786         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
787         ac_cv_ps_command="$PATH_TO_PS -ao 'state uid ppid vsz rss pcpu command args'"
788         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
789         ac_cv_ps_cols=7
790         AC_MSG_RESULT([$ac_cv_ps_command])
792 dnl IRIX 53
793 elif ps -el 2>/dev/null | \
794         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
795 then
796         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&pos,procprog]"
797         ac_cv_ps_command="$PATH_TO_PS -el (IRIX 53)"
798         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %d %d %*s %*s %*s %n%s"
799         ac_cv_ps_cols=7
800         AC_MSG_RESULT([$ac_cv_ps_command])
802 dnl IRIX 63
803 elif ps -el 2>/dev/null | \
804         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +ADDR +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
805 then
806         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
807         ac_cv_ps_command="$PATH_TO_PS -el (IRIX 63)"
808         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
809         ac_cv_ps_cols=5
810         AC_MSG_RESULT([$ac_cv_ps_command])
812 dnl AIX 4.1:
813 dnl     F S      UID   PID  PPID   C PRI NI ADDR  SZ  RSS   WCHAN    TTY  TIME CMD
814 dnl    303 A        0     0     0 120  16 -- 1c07  20   24              -  0:45 swapper
815 elif ps -el 2>/dev/null | \
816         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
817 then
818         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
819         ac_cv_ps_command="$PATH_TO_PS -el (AIX 4.1 and HP-UX)"
820         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
821         ac_cv_ps_cols=5
822         AC_MSG_RESULT([$ac_cv_ps_command])
824 dnl AIX?
825 elif ps glaxen 2>/dev/null | \
826         egrep -i ["^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND"] >/dev/null
827 then
828         ac_cv_ps_varlist="[&procuid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
829         ac_cv_ps_command="$PATH_TO_PS glaxen"
830         ac_cv_ps_format="%*s %d %*s %d %*s %*s %d %d %*s %s %*s %*s %n%s"
831         ac_cv_ps_cols=7
832         AC_MSG_RESULT([$ac_cv_ps_command])
834 dnl MacOSX / Darwin
835 dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
836 dnl Some truncation will happen in UCOMM column
837 dnl STAT      VSZ    RSS   UID  PPID %CPU UCOMM            COMMAND
838 dnl Ss      52756  22496   501     1   6.9 Window Manager   /System/Library/CoreServices/WindowServer -daemon
839 elif ps wwaxo 'state vsz rss uid ppid pcpu ucomm command' 2>/dev/null | \
840         egrep -i ["^STAT +VSZ +RSS +UID +PPID +%CPU +UCOMM +COMMAND"] >/dev/null
841 then
842         ac_cv_ps_command="$PATH_TO_PS wwaxo 'state vsz rss uid ppid pcpu ucomm command'"
843         ac_cv_ps_varlist="[procstat,&procvsz,&procrss,&procuid,&procppid,&procpcpu,procprog,&pos]"
844         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
845         ac_cv_ps_cols=7
846         AC_MSG_RESULT([$ac_cv_ps_command])
848 dnl UnixWare 
849 elif ps -Al 2>/dev/null | \
850         egrep -i ["^ *F +S +UID +PID +PPID +CLS +PRI +NI +C +ADDR +SZ +WCHAN +TTY +TIME +COMD"] >/dev/null
851 then
852         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
853         ac_cv_ps_command="$PATH_TO_PS -Al"
854         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
855         ac_cv_ps_cols=7
856         AC_MSG_RESULT([$ac_cv_ps_command])
858 else
859         AC_MSG_WARN([unable to find usable ps syntax - check_procs and check_nagios will not be compiled])
860 fi
862 if test -n "$ac_cv_ps_varlist" ; then
863         AC_DEFINE_UNQUOTED(PS_VARLIST,$ac_cv_ps_varlist,
864                 [Variable list for sscanf of 'ps' output])
865         AC_DEFINE_UNQUOTED(PS_COMMAND,"$ac_cv_ps_command",
866                 [Verbatim command to execute for ps in check_procs])
867         AC_DEFINE_UNQUOTED(PS_FORMAT,"$ac_cv_ps_format",
868                 [Format string for scanning ps output in check_procs])
869         AC_DEFINE_UNQUOTED(PS_COLS,$ac_cv_ps_cols,
870                 [Number of columns in ps command])
871         EXTRAS="$EXTRAS check_procs check_nagios"
872 fi
874 dnl jm_AFS
875 jm_LIST_MOUNTED_FILESYSTEMS([list_mounted_fs=yes], [list_mounted_fs=no])
876 jm_FSTYPENAME
877 jm_FILE_SYSTEM_USAGE([space=yes], [space=no])
879 AC_PATH_PROG(PATH_TO_PING,ping)
880 AC_PATH_PROG(PATH_TO_PING6,ping6)
882 AC_ARG_WITH(ping_command,
883         ACX_HELP_STRING([--with-ping-command=SYNTAX],
884                 [sets syntax for ICMP ping]),
885         with_ping_command=$withval,)
887 AC_MSG_CHECKING(for ICMP ping syntax)
888 ac_cv_ping_packets_first=no
889 ac_cv_ping_has_timeout=no
890 if test -n "$with_ping_command"
891 then
892         AC_MSG_RESULT([(command-line) $with_ping_command])
893         if test -n "$ac_cv_ping_packets_first"
894         then
895                 ac_cv_ping_packets_first=yes
896         fi
898 elif [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
899         $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
900         egrep -i "^round-trip|^rtt" >/dev/null
901 then
902         with_ping_command="$PATH_TO_PING -n -U -c %d %s"
903         ac_cv_ping_packets_first=yes
904         AC_MSG_RESULT([$with_ping_command])
906 elif $PATH_TO_PING -n -U -w 10 -c 1 127.0.0.1 2>/dev/null | \
907         egrep -i "^round-trip|^rtt" >/dev/null
908 then
909         with_ping_command="$PATH_TO_PING -n -U -w %d -c %d %s"
910         ac_cv_ping_packets_first=yes
911   ac_cv_ping_has_timeout=yes
912         AC_MSG_RESULT([$with_ping_command])
914 elif $PATH_TO_PING -n -U -c 1 127.0.0.1 2>/dev/null | \
915         egrep -i "^round-trip|^rtt" >/dev/null
916 then
917         with_ping_command="$PATH_TO_PING -n -U -c %d %s"
918         ac_cv_ping_packets_first=yes
919         AC_MSG_RESULT([$with_ping_command])
921 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
922         egrep -i "^round-trip|^rtt" >/dev/null
923 then
924         with_ping_command="$PATH_TO_PING -n -c %d %s"
925         ac_cv_ping_packets_first=yes
926         AC_MSG_RESULT([$with_ping_command])
928 elif $PATH_TO_PING -n 127.0.0.1 -c 1 2>/dev/null | \
929         egrep -i "^round-trip|^rtt" >/dev/null
930 then
931         with_ping_command="$PATH_TO_PING -n %s -c %d"
932         AC_MSG_RESULT([$with_ping_command])
934 elif $PATH_TO_PING 127.0.0.1 -n 1 2>/dev/null | \
935         egrep -i "^round-trip|^rtt" >/dev/null
936 then
937         with_ping_command="$PATH_TO_PING %s -n %d"
938         AC_MSG_RESULT([$with_ping_command])
940 elif $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
941         egrep -i "^round-trip|^rtt" >/dev/null
942 then
943         with_ping_command="$PATH_TO_PING -n -s %s 56 %d"
944         AC_MSG_RESULT([$with_ping_command])
946 elif $PATH_TO_PING -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | \
947         egrep -i "^round-trip|^rtt" >/dev/null
948 then
949         with_ping_command="$PATH_TO_PING -n -h %s -s 56 -c %d"
950         AC_MSG_RESULT([$with_ping_command])
952 elif $PATH_TO_PING -n -s 56 -c 1 127.0.0.1 2>/dev/null | \
953         egrep -i "^round-trip|^rtt" >/dev/null
954 then
955         with_ping_command="$PATH_TO_PING -n -s 56 -c %d %s"
956         ac_cv_ping_packets_first=yes
957         AC_MSG_RESULT([$with_ping_command])
959 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
960         egrep -i "^round-trip|^rtt" >/dev/null
961 then
962         with_ping_command="$PATH_TO_PING -n -c %d %s"
963         ac_cv_ping_packets_first=yes
964         AC_MSG_RESULT([$with_ping_command])
966 else
967         AC_MSG_WARN([unable to find usable ping syntax])
968 fi
970 AC_DEFINE_UNQUOTED(PING_COMMAND,"$with_ping_command",
971         [path and args for ICMP ping command])
973 if test "x$ac_cv_ping_packets_first" != "xno"
974 then
975         AC_DEFINE(PING_PACKETS_FIRST,1,
976                 [Define if packet count must precede host])
977 fi
979 if test "x$ac_cv_ping_has_timeout" != "xno"
980 then
981         AC_DEFINE(PING_HAS_TIMEOUT,1,
982                 [Define if ping has its own timeout option that should be set])
983 fi
985 AC_ARG_WITH(ping6_command,
986         ACX_HELP_STRING([--with-ping6-command=SYNTAX],
987                 [sets syntax for ICMPv6 ping]),
988         with_ping6_command=$withval,)
990 if test x"$with_ipv6" != xno ; then
991 AC_MSG_CHECKING(for ICMPv6 ping syntax)
992 ac_cv_ping6_packets_first=no
993 if test -n "$with_ping6_command"
994 then
995         AC_MSG_RESULT([(command-line) $with_ping6_command])
996         if test -n "$ac_cv_ping6_packets_first"
997         then
998                 ac_cv_ping6_packets_first=yes
999         fi
1001 elif test "x$PATH_TO_PING6" != "x"; then
1002         if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1003                 $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1004                 egrep -i "^round-trip|^rtt" >/dev/null
1005         then
1006                 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1007                 ac_cv_ping6_packets_first=yes
1008                 AC_MSG_RESULT([$with_ping6_command])
1010         elif $PATH_TO_PING6 -n -U -c 1 ::1 2>/dev/null | \
1011                 egrep -i "^round-trip|^rtt" >/dev/null
1012         then
1013                 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1014                 ac_cv_ping6_packets_first=yes
1015                 AC_MSG_RESULT([$with_ping6_command])
1017         elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1018                 egrep -i "^round-trip|^rtt" >/dev/null
1019         then
1020                 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1021                 ac_cv_ping6_packets_first=yes
1022                 AC_MSG_RESULT([$with_ping6_command])
1024         elif $PATH_TO_PING6 -n ::1 -c 1 2>/dev/null | \
1025                 egrep -i "^round-trip|^rtt" >/dev/null
1026         then
1027                 with_ping6_command="$PATH_TO_PING6 -n %s -c %d"
1028                 AC_MSG_RESULT([$with_ping6_command])
1030         elif $PATH_TO_PING6 ::1 -n 1 2>/dev/null | \
1031                 egrep -i "^round-trip|^rtt" >/dev/null
1032         then
1033                 with_ping6_command="$PATH_TO_PING6 %s -n %d"
1034                 AC_MSG_RESULT([$with_ping6_command])
1036         elif $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1037                 egrep -i "^round-trip|^rtt" >/dev/null
1038         then
1039                 with_ping6_command="$PATH_TO_PING6 -n -s %s 56 %d"
1040                 AC_MSG_RESULT([$with_ping6_command])
1042         elif $PATH_TO_PING6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1043                 egrep -i "^round-trip|^rtt" >/dev/null
1044         then
1045                 with_ping6_command="$PATH_TO_PING6 -n -h %s -s 56 -c %d"
1046                 AC_MSG_RESULT([$with_ping6_command])
1048         elif $PATH_TO_PING6 -n -s 56 -c 1 ::1 2>/dev/null | \
1049                 egrep -i "^round-trip|^rtt" >/dev/null
1050         then
1051                 with_ping6_command="$PATH_TO_PING6 -n -s 56 -c %d %s"
1052                 ac_cv_ping6_packets_first=yes
1053                 AC_MSG_RESULT([$with_ping_command])
1055         elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1056                 egrep -i "^round-trip|^rtt" >/dev/null
1057         then
1058                 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1059                 ac_cv_ping6_packets_first=yes
1060                 AC_MSG_RESULT([$with_ping6_command])
1062         fi
1064 elif test "x$PATH_TO_PING" != "x"; then
1065         if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1066                 $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1067                 egrep -i "^round-trip|^rtt" >/dev/null
1068         then
1069                 with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1070                 ac_cv_ping6_packets_first=yes
1071                 AC_MSG_RESULT([$with_ping6_command])
1073         elif $PATH_TO_PING -A inet6 -n -U -c 1 ::1 2>/dev/null | \
1074                 egrep -i "^round-trip|^rtt" >/dev/null
1075         then
1076                 with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1077                 ac_cv_ping6_packets_first=yes
1078                 AC_MSG_RESULT([$with_ping6_command])
1080         elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1081                 egrep -i "^round-trip|^rtt" >/dev/null
1082         then
1083                 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1084                 ac_cv_ping6_packets_first=yes
1085                 AC_MSG_RESULT([$with_ping6_command])
1087         elif $PATH_TO_PING -A inet6 -n ::1 -c 1 2>/dev/null | \
1088                 egrep -i "^round-trip|^rtt" >/dev/null
1089         then
1090                 with_ping6_command="$PATH_TO_PING -A inet6 -n %s -c %d"
1091                 AC_MSG_RESULT([$with_ping6_command])
1093         elif $PATH_TO_PING -A inet6 ::1 -n 1 2>/dev/null | \
1094                 egrep -i "^round-trip|^rtt" >/dev/null
1095         then
1096                 with_ping6_command="$PATH_TO_PING -A inet6 %s -n %d"
1097                 AC_MSG_RESULT([$with_ping6_command])
1099         elif $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1100                 egrep -i "^round-trip|^rtt" >/dev/null
1101         then
1102                 with_ping6_command="$PATH_TO_PING -A inet6 -n -s %s 56 %d"
1103                 AC_MSG_RESULT([$with_ping6_command])
1105         elif $PATH_TO_PING -A inet6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1106                 egrep -i "^round-trip|^rtt" >/dev/null
1107         then
1108                 with_ping6_command="$PATH_TO_PING -A inet6 -n -h %s -s 56 -c %d"
1109                 AC_MSG_RESULT([$with_ping6_command])
1111         elif $PATH_TO_PING -A inet6 -n -s 56 -c 1 ::1 2>/dev/null | \
1112                 egrep -i "^round-trip|^rtt" >/dev/null
1113         then
1114                 with_ping6_command="$PATH_TO_PING -A inet6 -n -s 56 -c %d %s"
1115                 ac_cv_ping6_packets_first=yes
1116                 AC_MSG_RESULT([$with_ping_command])
1118         elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1119                 egrep -i "^round-trip|^rtt" >/dev/null
1120         then
1121                 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1122                 ac_cv_ping6_packets_first=yes
1123                 AC_MSG_RESULT([$with_ping6_command])
1125         fi
1127 fi
1129 if test "x$with_ping6_command" != "x"; then
1130         AC_DEFINE_UNQUOTED(PING6_COMMAND,"$with_ping6_command",
1131                 [path and args for ICMPv6 ping command])
1132 else
1133         AC_MSG_RESULT([none])
1134 fi
1136 if test "x$ac_cv_ping6_packets_first" != "xno"; then
1137         AC_DEFINE(PING6_PACKETS_FIRST,1,
1138                 [Define if packet count must precede host])
1139 fi
1140 fi
1142 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
1144 AC_MSG_CHECKING(for nslookup syntax)
1145 if test -n "$PATH_TO_NSLOOKUP"
1146 then
1147         if $PATH_TO_NSLOOKUP -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
1148         then
1149                 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP"
1150                 AC_MSG_RESULT([$ac_cv_nslookup_command])
1152         else
1153                 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP -sil"
1154                 AC_MSG_RESULT([$ac_cv_nslookup_command])
1156         fi
1157         EXTRAS="$EXTRAS check_dns"
1159 else
1160         AC_MSG_WARN([nslookup command not found])
1161 fi
1163 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$ac_cv_nslookup_command",
1164         [path and args for nslookup])
1166 AC_PATH_PROG(PATH_TO_HOST,host)
1167 if test -n "$ac_cv_path_PATH_TO_HOST"
1168 then
1169         EXTRAS="$EXTRAS check_dns"
1170 fi
1172 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
1173 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
1175 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
1176 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
1178 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
1179 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
1180 AC_PATH_PROGS(PATH_TO_NTPQ,ntpq)
1181 if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPQ")
1182 then
1183         AC_DEFINE_UNQUOTED(PATH_TO_NTPQ,"$PATH_TO_NTPQ",[path to ntpq binary])
1184         AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary])
1185 else
1186         AC_MSG_WARN([Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization])
1187 fi
1189 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
1190 if test -x "$PATH_TO_LMSTAT"
1191 then
1192         AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
1193 else
1194         AC_MSG_WARN([Get lmstat from Globetrotter Software to monitor flexlm licenses])
1195 fi
1197 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
1198 if test -x "$PATH_TO_SMBCLIENT"
1199 then
1200         AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
1201 else
1202         AC_MSG_WARN([Get smbclient from Samba.org to monitor SMB shares])
1203 fi
1206 AC_PATH_PROG(PATH_TO_WHO,who)
1208 if [$PATH_TO_WHO -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
1209 then
1210         ac_cv_path_to_who="$PATH_TO_WHO -q"
1211 else
1212         ac_cv_path_to_who="$PATH_TO_WHO"
1213 fi
1215 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$ac_cv_path_to_who",
1216         [path and arguments for invoking 'who'])
1218 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
1219 if test -x "$PATH_TO_SNMPGET"
1220 then
1221         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
1222         EXTRAS="$EXTRAS check_hpjd check_snmp"
1223 else
1224         AC_MSG_WARN([Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins])
1225 fi
1227 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
1228 if test -x "$PATH_TO_SNMPGETNEXT"
1229 then
1230         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
1231 fi
1233 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null  )
1234 then
1235         AC_MSG_CHECKING(for Net::SNMP perl module)
1236         AC_MSG_RESULT([found])
1237 else
1238         AC_MSG_WARN([Tried $PERL - install Net::SNMP perl module if you want to use the perl snmp plugins])
1239 fi
1241 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
1242 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
1244 if test -x "$PATH_TO_QUAKESTAT"
1245 then
1246         ac_cv_path_to_qstat="$PATH_TO_QUAKESTAT"
1247         EXTRAS="$EXTRAS check_game"
1249 elif test -x "$PATH_TO_QSTAT"
1250 then
1251         ac_cv_path_to_qstat="$PATH_TO_QSTAT"
1252         EXTRAS="$EXTRAS check_game"
1253 else
1254         AC_MSG_WARN([Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin])
1255 fi
1257 if test $ac_cv_path_to_qstat 
1258 then
1259         AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$ac_cv_path_to_qstat",
1260                 [path to qstat/quakestat])
1261 fi
1263 AC_PATH_PROG(PATH_TO_FPING,fping)
1264 if test -x "$PATH_TO_FPING"
1265 then
1266         AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
1267         EXTRAS="$EXTRAS check_fping"
1268 else
1269         AC_MSG_WARN([Get fping from http://www.fping.com in order to make check_fping plugin])
1270 fi
1272 AC_PATH_PROG(PATH_TO_SSH,ssh)
1274 if test -x "$PATH_TO_SSH"
1275 then
1276         AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
1277         EXTRAS="$EXTRAS check_by_ssh"
1278 else
1279         AC_MSG_WARN([Get ssh in order to make check_by_ssh plugin])
1280 fi
1283 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
1284 if test -x "$PATH_TO_MAILQ"
1285 then
1286         AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
1287 else
1288         AC_MSG_WARN([Could not find mailq or eqivalent])
1289 fi
1291 AC_PATH_PROG(PATH_TO_QMAIL_QSTAT,qmail-qstat)
1292 if test -x "$PATH_TO_QMAIL_QSTAT"
1293 then
1294         AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_QMAIL_QSTAT",[path to qmail-qstat])
1295 else
1296         AC_MSG_WARN([Could not find qmail-qstat or eqivalent])
1297 fi
1299 dnl SWAP info required is amount allocated/available and amount free
1300 dnl The plugin works through all the swap devices and adds up the total swap
1301 dnl available.
1302 AC_PATH_PROG(PATH_TO_SWAP,swap)
1303 if (test -n "$PATH_TO_SWAP")
1304 then
1305 AC_MSG_CHECKING([for $PATH_TO_SWAP format])
1306 if [$PATH_TO_SWAP -l 2>&1 >/dev/null]
1307 then
1308         ac_cv_have_swap=yes
1309         ac_cv_swap_command="$PATH_TO_SWAP -l"
1310         if [$PATH_TO_SWAP -l 2>/dev/null | \
1311                 egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" \
1312                 >/dev/null]
1313         then
1314                 ac_cv_swap_format=[" %*d %*s %*d,%*d %*d %*d %d %d"]
1315                 ac_cv_swap_conv=2048
1316                 AC_MSG_RESULT([using IRIX format swap])
1318         elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null]
1319         then
1320                 ac_cv_swap_format=["%*s %*[0-9,-] %*d %d %d"]
1321                 ac_cv_swap_conv=2048
1322                 AC_MSG_RESULT([using Unixware format swap])
1323         else
1324                 dnl if we don't know what format swap's output is
1325                 dnl we might as well pretend we didn't see it
1326                 ac_cv_have_swap=""
1327                 ac_cv_swap_command=""
1328         fi
1329 fi
1330 dnl end if for PATH_TO_SWAP
1331 fi
1333 AC_PATH_PROG(PATH_TO_SWAPINFO,swapinfo)
1334 if (test -n "$PATH_TO_SWAPINFO")
1335 then
1336 AC_MSG_CHECKING([for $PATH_TO_SWAPINFO format])
1337 if [$PATH_TO_SWAPINFO -k 2>&1 | egrep -i "^Device" >/dev/null]
1338 then
1339         ac_cv_have_swap=yes
1340         ac_cv_swap_command="$PATH_TO_SWAPINFO -k"
1342         if [$PATH_TO_SWAPINFO -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
1343         then
1344                 ac_cv_swap_format=["%*s %d %*d %d"]
1345                 ac_cv_swap_conv=1024
1346                 AC_MSG_RESULT([using FreeBSD format swapinfo])
1347         fi
1349 elif [$PATH_TO_SWAPINFO -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
1350 then
1351         ac_cv_have_swap=yes
1352         ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM",
1353         ac_cv_swap_format=["%*s %d %*d %d"]
1354         ac_cv_swap_conv=1024
1355         AC_MSG_RESULT([using HP-UX format swapinfo])
1356 fi
1357 dnl end if for PATH_TO_SWAPINFO
1358 fi
1360 AC_PATH_PROG(PATH_TO_LSPS,lsps)
1361 if (test -n "$PATH_TO_LSPS")
1362 then
1363 AC_MSG_CHECKING([for $PATH_TO_LSPS format])
1364 if [$PATH_TO_LSPS -a 2>/dev/null | egrep -i "^Page Space" > /dev/null]
1365 then
1366         ac_cv_have_swap=yes
1367         ac_cv_swap_command="$PATH_TO_LSPS -a"
1368         ac_cv_swap_format=["%*s %*s %*s %d%*s %d %*s"]
1369         ac_cv_swap_conv=1
1370         AC_MSG_RESULT([using AIX lsps])
1371 fi
1372 dnl end if for PATH_TO_SWAPINFO
1373 fi
1375 dnl
1376 dnl test for swapctl system call, both the 2-arg and 3-arg variants
1377 dnl fwict, the 2-arg is an SVR4 standard, whereas the 3-arg is shared
1378 dnl in the various BSD's
1379 dnl
1381 AC_CHECK_HEADERS([sys/swap.h sys/stat.h sys/param.h])
1382 AC_CHECK_DECLS([swapctl],,,[
1383                #include <unistd.h>
1384                #include <sys/types.h>
1385                #include <sys/stat.h>
1386                #include <sys/swap.h>
1387                ])
1388 AC_CHECK_TYPES([swaptbl_t, swapent_t],,,[
1389                #include <sys/types.h>
1390                #include <sys/stat.h>
1391                #include <sys/swap.h>
1392                ])
1393 AC_CHECK_MEMBERS([struct swapent.se_nblks],,,[
1394                #include <unistd.h>
1395                #include <sys/types.h>
1396                #include <sys/stat.h>
1397                #include <sys/swap.h>
1398                ])
1400 if test "$ac_cv_have_decl_swapctl" = "yes"; 
1401 then
1402         EXTRAS="$EXTRAS check_swap"
1403         AC_MSG_CHECKING([for 2-arg (SVR4) swapctl])
1404         if test "$ac_cv_type_swaptbl_t" = "yes" -a \
1405                 "$ac_cv_type_swapent_t" = "yes"; 
1406         then
1407                 AC_MSG_RESULT([yes])
1408                 ac_cv_check_swap_swapctl_svr4="1";
1409                 AC_DEFINE([CHECK_SWAP_SWAPCTL_SVR4],1,
1410                           [Define if 2-argument SVR4 swapctl exists])
1411         else
1412                 AC_MSG_RESULT([no])
1413                 AC_MSG_CHECKING([for 3-arg (*BSD) swapctl])
1414                 if test "$ac_cv_member_struct_swapent_se_nblks" = "yes"; 
1415                 then
1416                         AC_MSG_RESULT([yes])
1417                         AC_DEFINE([CHECK_SWAP_SWAPCTL_BSD],1,
1418                                   [Define if 3-argument BSD swapctl exists])
1419                 else
1420                         AC_MSG_RESULT([no])
1421                 fi
1422         fi
1423         AC_MSG_CHECKING([for whether swapctl uses blocks or pages])
1424         if test "$ac_cv_check_swap_swapctl_svr4" = "1";
1425         then
1426                 dnl
1427                 dnl the SVR4 spec returns values in pages
1428                 dnl
1429                 AC_MSG_RESULT([page])
1430                 AC_CHECK_DECLS([sysconf])
1431                 AC_MSG_CHECKING([for system page size])
1432                 if test "$ac_cv_have_decl_sysconf" = "yes";
1433                 then
1434                         AC_MSG_RESULT([determined by sysconf(3)])
1435                         ac_cv_swap_conv="(1048576/sysconf(_SC_PAGESIZE))"
1436                 else
1437                         AC_MSG_WARN([don't know. guessing 4096k])
1438                         ac_cv_swap_conv=256
1439                 fi
1440         else
1441                 dnl
1442                 dnl the BSD spec returns values in blocks
1443                 dnl
1444                 AC_MSG_RESULT([blocks (assuming 512b)])
1445                 ac_cv_swap_conv=2048
1446         fi
1447         AC_DEFINE_UNQUOTED(SWAP_CONVERSION,$ac_cv_swap_conv,
1448                 [Conversion factor to MB])
1449 fi
1450 dnl
1451 dnl end tests for the swapctl system calls
1452 dnl
1455 if test "x$ac_cv_have_swap" != "x" 
1456 then
1457         AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
1458         EXTRAS="$EXTRAS check_swap"
1459 fi
1460 if test "x$ac_cv_swap_command" != "x" 
1461 then
1462         AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$ac_cv_swap_command",
1463                 [Path to swap/swapinfo binary, with any args])
1464         AC_DEFINE_UNQUOTED(SWAP_FORMAT,"$ac_cv_swap_format",
1465                 [Format string for parsing swap output])
1466         AC_DEFINE_UNQUOTED(SWAP_CONVERSION,$ac_cv_swap_conv,
1467                 [Conversion factor to MB])
1468 fi
1470 dnl dunno why this does not work below - use hack (kbd)
1471 dnl fine on linux, broken on solaris
1472 dnl if /bin/test -e "/proc/meminfo"
1473 AC_MSG_CHECKING([for /proc/meminfo])
1474 if [cat /proc/meminfo > /dev/null 2>&1]
1475 then
1476         AC_MSG_RESULT([found /proc/meminfo])
1477         AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
1478         AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes])
1479         EXTRAS="$EXTRAS check_swap"
1480 else
1481         AC_MSG_RESULT([no])
1482 fi
1484 AC_PATH_PROG(PATH_TO_DIG,dig)
1485 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
1486 if test -n "$PATH_TO_DIG"; then
1487         EXTRAS="$EXTRAS check_dig"
1488 fi
1490 if test -f plugins/check_nt.c ; then
1491   EXTRAS="$EXTRAS check_nt"
1492 elif test -f ../plugins/check_nt.c ; then
1493   EXTRAS="$EXTRAS check_nt"
1494 fi
1496 AC_MSG_CHECKING(for va_list)
1497 AC_TRY_COMPILE([#ifdef __STDC__
1498                 #include <stdio.h>
1499                 #include <stdlib.h>
1500                 #include <stdarg.h>
1501                 #else
1502                 #include <sys/types.h>
1503                 #include <stdio.h>
1504                 #include <varargs.h>
1505                 #endif],
1506                 [va_list args;],
1507                 [AC_MSG_RESULT(yes)],
1508                 [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
1510 AC_SUBST(EXTRAS)
1511 AC_SUBST(EXTRA_NETOBJS)
1512 AC_SUBST(DEPLIBS)
1514 AM_GNU_GETTEXT_VERSION(0.11.5)
1515 AM_GNU_GETTEXT([no-libtool], [need-ngettext])
1517 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 intl/Makefile po/Makefile.in )
1519 ACX_FEATURE([with],[cgiurl])
1520 ACX_FEATURE([with],[nagios-user])
1521 ACX_FEATURE([with],[nagios-group])
1522 ACX_FEATURE([with],[trusted-path])
1523 ACX_FEATURE([with],[ping-command])
1524 ACX_FEATURE([with],[ping6-command])
1525 ACX_FEATURE([with],[lwres])
1526 ACX_FEATURE([with],[ipv6])
1527 ACX_FEATURE([enable],[emulate-getaddrinfo])