Code

Remove unnecessary CPPFLAGS for openssl (Lutz Behnke - 686476)
[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($topdir/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,ac_cv_HAVE_VA_COPY=no)])
564 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
565     AC_DEFINE(HAVE_VA_COPY,1,[Define if system has va_copy])
566 fi
568 AC_CHECK_FUNCS(vsnprintf snprintf asprintf vasprintf)
569 AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
570 AC_TRY_RUN([
571 #include <sys/types.h>
572 #include <stdarg.h>
573 void foo(const char *format, ...) { 
574        va_list ap;
575        int len;
576        char buf[5];
578        va_start(ap, format);
579        len = vsnprintf(buf, 0, format, ap);
580        va_end(ap);
581        if (len != 5) exit(1);
583        va_start(ap, format);
584        len = vsnprintf(0, 0, format, ap);
585        va_end(ap);
586        if (len != 5) exit(1);
588        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
590        exit(0);
592 main() { foo("hello"); }
593 ],
594 ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
595 if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
596     AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
597 fi
599 AC_TRY_COMPILE([#include <sys/time.h>],
600                [struct timeval *tv;
601                 struct timezone *tz;],
602                AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
603                AC_TRY_COMPILE([#include <sys/time.h>],
604                               [struct timeval *tv;
605                                struct timezone *tz;
606                                gettimeofday(tv, tz);],
607                               AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
608                               AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
610 dnl Checks for library functions.
611 AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul)
613 AC_MSG_CHECKING(return type of socket size)
614 AC_TRY_COMPILE([#include <stdlib.h>
615                 #include <sys/types.h>
616                 #include <sys/socket.h>],
617                [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
618                ac_cv_socket_size_type=["size_t"]
619                 AC_MSG_RESULT(size_t),
620                ac_cv_socket_size_type=["int"]
621                 AC_MSG_RESULT(int))
623 AC_DEFINE_UNQUOTED(SOCKET_SIZE_TYPE, $ac_cv_socket_size_type ,
624         [Define type of socket size])
626 if test -f "/proc/loadavg"
627 then
628   AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
629   AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg])
630 fi
632 dnl #### Process table test
634 AC_PATH_PROG(PATH_TO_PS,ps)
636 AC_MSG_CHECKING(for ps syntax)
637 dnl For OpenBSD 3.2 & 3.3. Must come before ps -weo
638 dnl  STAT UCOMM              VSZ   RSS USER      PPID COMMAND
639 if ps -axwo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
640         egrep -i ["^ *STAT +UCOMM +VSZ +RSS +USER +UID +PPID +COMMAND"] > /dev/null
641 then
642         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
643         ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid ppid vsz rss pcpu comm args'"
644         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
645         ac_cv_ps_cols=8
646         AC_MSG_RESULT([$ac_cv_ps_command])
648 dnl  STAT UCOMM              VSZ   RSS USER       UID  PPID COMMAND
649 elif ps -weo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
650         egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/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 -weo '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 FreeBSD
659 elif ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | \
660         egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PPID"] >/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 waxco 'state uid ppid vsz rss pcpu command command'"
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 BSD-like mode in RH 6.1
669 elif ps waxno 'state comm vsz rss uid user ppid args' 2>/dev/null | \
670         egrep -i ["^S +COMMAND +VSZ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/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 waxno 'state uid ppid vsz rss pcpu comm args'"
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 SunOS 4.1.3:
679 dnl  F  UID  PID  PPID  CP  PRI  NI  SZ  RSS  WCHAN  STAT  TT  TIME  COMMAND
680 dnl Need the head -1 otherwise test will work because arguments are found
681 elif ps -laxnwww 2>/dev/null | head -1 | \
682         egrep -i ["^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND"] >/dev/null
683 then
684         ac_cv_ps_varlist="[&procuid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
685         ac_cv_ps_command="$PATH_TO_PS -laxnwww"
686         ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %d %d %*s %s %*s %*s %n%s"
687         ac_cv_ps_cols=8
688         AC_MSG_RESULT([$ac_cv_ps_command])
690 dnl Debian Linux / procps v1.2.9:
691 dnl  FLAGS   UID   PID  PPID PRI  NI   SIZE   RSS WCHAN       STA TTY TIME COMMAND
692 dnl    100     0     1     0   0   0    776    76  c0131c8c   S  ffff  0:11 init [2]
693 dnl
694 elif ps laxnwww 2>/dev/null | \
695         egrep -i ["^ *F(LAGS)? +UID +PID +PPID +PRI +NI +(VSZ)|(SIZE) +RSS +WCHAN +STAT? TTY +TIME +COMMAND"] >/dev/null
696 then
697         ac_cv_ps_varlist="[&procuid,&procppid,procstat,&procvsz,&procrss,&pos,procprog]"
698         ac_cv_ps_command="$PATH_TO_PS laxnwww"
699         ac_cv_ps_format="%*s %d %*s %d %*s %*s %d %d %*s %s %*s %*s %n%s"
700         ac_cv_ps_cols=8
701         AC_MSG_RESULT([$ac_cv_ps_command])
703 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
704 elif ps -axo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
705         egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
706 then
707         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
708         ac_cv_ps_command="$PATH_TO_PS -axo 'stat uid ppid vsz rss pcpu comm args'"
709         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
710         ac_cv_ps_cols=8
711         AC_MSG_RESULT([$ac_cv_ps_command])
713 dnl Tru64 - needs %*[ +] in PS_FORMAT
714 elif ps -ao '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 -ao '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 elif ps -eo 's comm vsz rss user uid ppid args' 2>/dev/null | \
724         egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
725 then
726         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
727         ac_cv_ps_command="$PATH_TO_PS -eo 's uid ppid vsz rss pcpu comm args'"
728         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
729         ac_cv_ps_cols=8
730         AC_MSG_RESULT([$ac_cv_ps_command])
732 dnl AIX 4.3.3 and 5.1 do not have an rss field
733 elif ps -eo 'stat uid ppid vsz pcpu comm args' 2>/dev/null | \
734         egrep -i ["^ *S[TAUES]* +UID +PPID +VSZ +%CPU +COMMAND +COMMAND"] >/dev/null
735 then
736         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procpcpu,procprog,&pos]"
737         ac_cv_ps_command="$PATH_TO_PS -eo 'stat uid ppid vsz pcpu comm args'"
738         ac_cv_ps_format="%s %d %d %d %f %s %n"
739         ac_cv_ps_cols=7
740         AC_MSG_RESULT([$ac_cv_ps_command - with no RSS])
742 dnl Solaris 2.6
743 elif ps -Ao 's comm vsz rss uid user ppid args' 2>/dev/null | \
744         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
745 then
746         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
747         ac_cv_ps_command="$PATH_TO_PS -Ao 's uid ppid vsz rss pcpu comm args'"
748         # There must be no space between the %s and %n due to a wierd problem in sscanf where
749         # it will return %n as longer than the line length
750         ac_cv_ps_format="%s %d %d %d %d %f %s%n"
751         ac_cv_ps_cols=8
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,&procvsz,&procrss,&procpcpu,procprog,&pos]"
758         ac_cv_ps_command="$PATH_TO_PS -Ao 'status uid ppid vsz rss pcpu comm args'"
759         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
760         ac_cv_ps_cols=8
761         AC_MSG_RESULT([$ac_cv_ps_command])
763 elif ps -Ao 'state comm vsz rss uid user ppid args' 2>/dev/null | \
764         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
765 then
766         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
767         ac_cv_ps_command="$PATH_TO_PS -Ao 'state uid ppid vsz rss pcpu comm args'"
768         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
769         ac_cv_ps_cols=8
770         AC_MSG_RESULT([$ac_cv_ps_command])
772 dnl wonder who takes state instead of stat
773 elif ps -ao 'state command vsz rss 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 command args'"
778         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
779         ac_cv_ps_cols=7
780         AC_MSG_RESULT([$ac_cv_ps_command])
782 dnl IRIX 53
783 elif ps -el 2>/dev/null | \
784         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
785 then
786         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&pos,procprog]"
787         ac_cv_ps_command="$PATH_TO_PS -el (IRIX 53)"
788         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %d %d %*s %*s %*s %n%s"
789         ac_cv_ps_cols=7
790         AC_MSG_RESULT([$ac_cv_ps_command])
792 dnl IRIX 63
793 elif ps -el 2>/dev/null | \
794         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +ADDR +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
795 then
796         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
797         ac_cv_ps_command="$PATH_TO_PS -el (IRIX 63)"
798         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
799         ac_cv_ps_cols=5
800         AC_MSG_RESULT([$ac_cv_ps_command])
802 dnl AIX 4.1:
803 dnl     F S      UID   PID  PPID   C PRI NI ADDR  SZ  RSS   WCHAN    TTY  TIME CMD
804 dnl    303 A        0     0     0 120  16 -- 1c07  20   24              -  0:45 swapper
805 elif ps -el 2>/dev/null | \
806         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
807 then
808         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
809         ac_cv_ps_command="$PATH_TO_PS -el (AIX 4.1 and HP-UX)"
810         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
811         ac_cv_ps_cols=5
812         AC_MSG_RESULT([$ac_cv_ps_command])
814 dnl AIX?
815 elif ps glaxen 2>/dev/null | \
816         egrep -i ["^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND"] >/dev/null
817 then
818         ac_cv_ps_varlist="[&procuid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
819         ac_cv_ps_command="$PATH_TO_PS glaxen"
820         ac_cv_ps_format="%*s %d %*s %d %*s %*s %d %d %*s %s %*s %*s %n%s"
821         ac_cv_ps_cols=7
822         AC_MSG_RESULT([$ac_cv_ps_command])
824 dnl MacOSX / Darwin
825 dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
826 dnl Some truncation will happen in UCOMM column
827 dnl STAT      VSZ    RSS   UID  PPID %CPU UCOMM            COMMAND
828 dnl Ss      52756  22496   501     1   6.9 Window Manager   /System/Library/CoreServices/WindowServer -daemon
829 elif ps wwaxo 'state vsz rss uid ppid pcpu ucomm command' 2>/dev/null | \
830         egrep -i ["^STAT +VSZ +RSS +UID +PPID +%CPU +UCOMM +COMMAND"] >/dev/null
831 then
832         ac_cv_ps_command="$PATH_TO_PS wwaxo 'state vsz rss uid ppid pcpu ucomm command'"
833         ac_cv_ps_varlist="[procstat,&procvsz,&procrss,&procuid,&procppid,&procpcpu,procprog,&pos]"
834         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
835         ac_cv_ps_cols=7
836         AC_MSG_RESULT([$ac_cv_ps_command])
838 dnl UnixWare 
839 elif ps -Al 2>/dev/null | \
840         egrep -i ["^ *F +S +UID +PID +PPID +CLS +PRI +NI +C +ADDR +SZ +WCHAN +TTY +TIME +COMD"] >/dev/null
841 then
842         ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
843         ac_cv_ps_command="$PATH_TO_PS -Al"
844         ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
845         ac_cv_ps_cols=7
846         AC_MSG_RESULT([$ac_cv_ps_command])
848 else
849         AC_MSG_WARN([unable to find usable ps syntax - check_procs and check_nagios will not be compiled])
850 fi
852 if test -n "$ac_cv_ps_varlist" ; then
853         AC_DEFINE_UNQUOTED(PS_VARLIST,$ac_cv_ps_varlist,
854                 [Variable list for sscanf of 'ps' output])
855         AC_DEFINE_UNQUOTED(PS_COMMAND,"$ac_cv_ps_command",
856                 [Verbatim command to execute for ps in check_procs])
857         AC_DEFINE_UNQUOTED(PS_FORMAT,"$ac_cv_ps_format",
858                 [Format string for scanning ps output in check_procs])
859         AC_DEFINE_UNQUOTED(PS_COLS,$ac_cv_ps_cols,
860                 [Number of columns in ps command])
861         EXTRAS="$EXTRAS check_procs check_nagios"
862 fi
864 dnl jm_AFS
865 jm_LIST_MOUNTED_FILESYSTEMS([list_mounted_fs=yes], [list_mounted_fs=no])
866 jm_FSTYPENAME
867 jm_FILE_SYSTEM_USAGE([space=yes], [space=no])
869 AC_PATH_PROG(PATH_TO_PING,ping)
870 AC_PATH_PROG(PATH_TO_PING6,ping6)
872 AC_ARG_WITH(ping_command,
873         ACX_HELP_STRING([--with-ping-command=SYNTAX],
874                 [sets syntax for ICMP ping]),
875         with_ping_command=$withval,)
877 AC_MSG_CHECKING(for ICMP ping syntax)
878 ac_cv_ping_packets_first=no
879 ac_cv_ping_has_timeout=no
880 if test -n "$with_ping_command"
881 then
882         AC_MSG_RESULT([(command-line) $with_ping_command])
883         if test -n "$ac_cv_ping_packets_first"
884         then
885                 ac_cv_ping_packets_first=yes
886         fi
888 elif [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
889         $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
890         egrep -i "^round-trip|^rtt" >/dev/null
891 then
892         with_ping_command="$PATH_TO_PING -n -U -c %d %s"
893         ac_cv_ping_packets_first=yes
894         AC_MSG_RESULT([$with_ping_command])
896 elif $PATH_TO_PING -n -U -w 10 -c 1 127.0.0.1 2>/dev/null | \
897         egrep -i "^round-trip|^rtt" >/dev/null
898 then
899         with_ping_command="$PATH_TO_PING -n -U -w %d -c %d %s"
900         ac_cv_ping_packets_first=yes
901   ac_cv_ping_has_timeout=yes
902         AC_MSG_RESULT([$with_ping_command])
904 elif $PATH_TO_PING -n -U -c 1 127.0.0.1 2>/dev/null | \
905         egrep -i "^round-trip|^rtt" >/dev/null
906 then
907         with_ping_command="$PATH_TO_PING -n -U -c %d %s"
908         ac_cv_ping_packets_first=yes
909         AC_MSG_RESULT([$with_ping_command])
911 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
912         egrep -i "^round-trip|^rtt" >/dev/null
913 then
914         with_ping_command="$PATH_TO_PING -n -c %d %s"
915         ac_cv_ping_packets_first=yes
916         AC_MSG_RESULT([$with_ping_command])
918 elif $PATH_TO_PING -n 127.0.0.1 -c 1 2>/dev/null | \
919         egrep -i "^round-trip|^rtt" >/dev/null
920 then
921         with_ping_command="$PATH_TO_PING -n %s -c %d"
922         AC_MSG_RESULT([$with_ping_command])
924 elif $PATH_TO_PING 127.0.0.1 -n 1 2>/dev/null | \
925         egrep -i "^round-trip|^rtt" >/dev/null
926 then
927         with_ping_command="$PATH_TO_PING %s -n %d"
928         AC_MSG_RESULT([$with_ping_command])
930 elif $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
931         egrep -i "^round-trip|^rtt" >/dev/null
932 then
933         with_ping_command="$PATH_TO_PING -n -s %s 56 %d"
934         AC_MSG_RESULT([$with_ping_command])
936 elif $PATH_TO_PING -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | \
937         egrep -i "^round-trip|^rtt" >/dev/null
938 then
939         with_ping_command="$PATH_TO_PING -n -h %s -s 56 -c %d"
940         AC_MSG_RESULT([$with_ping_command])
942 elif $PATH_TO_PING -n -s 56 -c 1 127.0.0.1 2>/dev/null | \
943         egrep -i "^round-trip|^rtt" >/dev/null
944 then
945         with_ping_command="$PATH_TO_PING -n -s 56 -c %d %s"
946         ac_cv_ping_packets_first=yes
947         AC_MSG_RESULT([$with_ping_command])
949 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
950         egrep -i "^round-trip|^rtt" >/dev/null
951 then
952         with_ping_command="$PATH_TO_PING -n -c %d %s"
953         ac_cv_ping_packets_first=yes
954         AC_MSG_RESULT([$with_ping_command])
956 else
957         AC_MSG_WARN([unable to find usable ping syntax])
958 fi
960 AC_DEFINE_UNQUOTED(PING_COMMAND,"$with_ping_command",
961         [path and args for ICMP ping command])
963 if test "x$ac_cv_ping_packets_first" != "xno"
964 then
965         AC_DEFINE(PING_PACKETS_FIRST,1,
966                 [Define if packet count must precede host])
967 fi
969 if test "x$ac_cv_ping_has_timeout" != "xno"
970 then
971         AC_DEFINE(PING_HAS_TIMEOUT,1,
972                 [Define if ping has its own timeout option that should be set])
973 fi
975 AC_ARG_WITH(ping6_command,
976         ACX_HELP_STRING([--with-ping6-command=SYNTAX],
977                 [sets syntax for ICMPv6 ping]),
978         with_ping6_command=$withval,)
980 if test x"$with_ipv6" != xno ; then
981 AC_MSG_CHECKING(for ICMPv6 ping syntax)
982 ac_cv_ping6_packets_first=no
983 if test -n "$with_ping6_command"
984 then
985         AC_MSG_RESULT([(command-line) $with_ping6_command])
986         if test -n "$ac_cv_ping6_packets_first"
987         then
988                 ac_cv_ping6_packets_first=yes
989         fi
991 elif test "x$PATH_TO_PING6" != "x"; then
992         if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
993                 $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
994                 egrep -i "^round-trip|^rtt" >/dev/null
995         then
996                 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
997                 ac_cv_ping6_packets_first=yes
998                 AC_MSG_RESULT([$with_ping6_command])
1000         elif $PATH_TO_PING6 -n -U -c 1 ::1 2>/dev/null | \
1001                 egrep -i "^round-trip|^rtt" >/dev/null
1002         then
1003                 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
1004                 ac_cv_ping6_packets_first=yes
1005                 AC_MSG_RESULT([$with_ping6_command])
1007         elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1008                 egrep -i "^round-trip|^rtt" >/dev/null
1009         then
1010                 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1011                 ac_cv_ping6_packets_first=yes
1012                 AC_MSG_RESULT([$with_ping6_command])
1014         elif $PATH_TO_PING6 -n ::1 -c 1 2>/dev/null | \
1015                 egrep -i "^round-trip|^rtt" >/dev/null
1016         then
1017                 with_ping6_command="$PATH_TO_PING6 -n %s -c %d"
1018                 AC_MSG_RESULT([$with_ping6_command])
1020         elif $PATH_TO_PING6 ::1 -n 1 2>/dev/null | \
1021                 egrep -i "^round-trip|^rtt" >/dev/null
1022         then
1023                 with_ping6_command="$PATH_TO_PING6 %s -n %d"
1024                 AC_MSG_RESULT([$with_ping6_command])
1026         elif $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1027                 egrep -i "^round-trip|^rtt" >/dev/null
1028         then
1029                 with_ping6_command="$PATH_TO_PING6 -n -s %s 56 %d"
1030                 AC_MSG_RESULT([$with_ping6_command])
1032         elif $PATH_TO_PING6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1033                 egrep -i "^round-trip|^rtt" >/dev/null
1034         then
1035                 with_ping6_command="$PATH_TO_PING6 -n -h %s -s 56 -c %d"
1036                 AC_MSG_RESULT([$with_ping6_command])
1038         elif $PATH_TO_PING6 -n -s 56 -c 1 ::1 2>/dev/null | \
1039                 egrep -i "^round-trip|^rtt" >/dev/null
1040         then
1041                 with_ping6_command="$PATH_TO_PING6 -n -s 56 -c %d %s"
1042                 ac_cv_ping6_packets_first=yes
1043                 AC_MSG_RESULT([$with_ping_command])
1045         elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1046                 egrep -i "^round-trip|^rtt" >/dev/null
1047         then
1048                 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1049                 ac_cv_ping6_packets_first=yes
1050                 AC_MSG_RESULT([$with_ping6_command])
1052         fi
1054 elif test "x$PATH_TO_PING" != "x"; then
1055         if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1056                 $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1057                 egrep -i "^round-trip|^rtt" >/dev/null
1058         then
1059                 with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1060                 ac_cv_ping6_packets_first=yes
1061                 AC_MSG_RESULT([$with_ping6_command])
1063         elif $PATH_TO_PING -A inet6 -n -U -c 1 ::1 2>/dev/null | \
1064                 egrep -i "^round-trip|^rtt" >/dev/null
1065         then
1066                 with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1067                 ac_cv_ping6_packets_first=yes
1068                 AC_MSG_RESULT([$with_ping6_command])
1070         elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1071                 egrep -i "^round-trip|^rtt" >/dev/null
1072         then
1073                 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1074                 ac_cv_ping6_packets_first=yes
1075                 AC_MSG_RESULT([$with_ping6_command])
1077         elif $PATH_TO_PING -A inet6 -n ::1 -c 1 2>/dev/null | \
1078                 egrep -i "^round-trip|^rtt" >/dev/null
1079         then
1080                 with_ping6_command="$PATH_TO_PING -A inet6 -n %s -c %d"
1081                 AC_MSG_RESULT([$with_ping6_command])
1083         elif $PATH_TO_PING -A inet6 ::1 -n 1 2>/dev/null | \
1084                 egrep -i "^round-trip|^rtt" >/dev/null
1085         then
1086                 with_ping6_command="$PATH_TO_PING -A inet6 %s -n %d"
1087                 AC_MSG_RESULT([$with_ping6_command])
1089         elif $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1090                 egrep -i "^round-trip|^rtt" >/dev/null
1091         then
1092                 with_ping6_command="$PATH_TO_PING -A inet6 -n -s %s 56 %d"
1093                 AC_MSG_RESULT([$with_ping6_command])
1095         elif $PATH_TO_PING -A inet6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1096                 egrep -i "^round-trip|^rtt" >/dev/null
1097         then
1098                 with_ping6_command="$PATH_TO_PING -A inet6 -n -h %s -s 56 -c %d"
1099                 AC_MSG_RESULT([$with_ping6_command])
1101         elif $PATH_TO_PING -A inet6 -n -s 56 -c 1 ::1 2>/dev/null | \
1102                 egrep -i "^round-trip|^rtt" >/dev/null
1103         then
1104                 with_ping6_command="$PATH_TO_PING -A inet6 -n -s 56 -c %d %s"
1105                 ac_cv_ping6_packets_first=yes
1106                 AC_MSG_RESULT([$with_ping_command])
1108         elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1109                 egrep -i "^round-trip|^rtt" >/dev/null
1110         then
1111                 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1112                 ac_cv_ping6_packets_first=yes
1113                 AC_MSG_RESULT([$with_ping6_command])
1115         fi
1117 fi
1119 if test "x$with_ping6_command" != "x"; then
1120         AC_DEFINE_UNQUOTED(PING6_COMMAND,"$with_ping6_command",
1121                 [path and args for ICMPv6 ping command])
1122 else
1123         AC_MSG_RESULT([none])
1124 fi
1126 if test "x$ac_cv_ping6_packets_first" != "xno"; then
1127         AC_DEFINE(PING6_PACKETS_FIRST,1,
1128                 [Define if packet count must precede host])
1129 fi
1130 fi
1132 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
1134 AC_MSG_CHECKING(for nslookup syntax)
1135 if test -n "$PATH_TO_NSLOOKUP"
1136 then
1137         if $PATH_TO_NSLOOKUP -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
1138         then
1139                 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP"
1140                 AC_MSG_RESULT([$ac_cv_nslookup_command])
1142         else
1143                 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP -sil"
1144                 AC_MSG_RESULT([$ac_cv_nslookup_command])
1146         fi
1147         EXTRAS="$EXTRAS check_dns"
1149 else
1150         AC_MSG_WARN([nslookup command not found])
1151 fi
1153 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$ac_cv_nslookup_command",
1154         [path and args for nslookup])
1156 AC_PATH_PROG(PATH_TO_HOST,host)
1157 if test -n "$ac_cv_path_PATH_TO_HOST"
1158 then
1159         EXTRAS="$EXTRAS check_dns"
1160 fi
1162 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
1163 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
1165 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
1166 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
1168 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
1169 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
1170 AC_PATH_PROGS(PATH_TO_NTPQ,ntpq)
1171 if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPQ")
1172 then
1173         AC_DEFINE_UNQUOTED(PATH_TO_NTPQ,"$PATH_TO_NTPQ",[path to ntpq binary])
1174         AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary])
1175 else
1176         AC_MSG_WARN([Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization])
1177 fi
1179 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
1180 if test -x "$PATH_TO_LMSTAT"
1181 then
1182         AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
1183 else
1184         AC_MSG_WARN([Get lmstat from Globetrotter Software to monitor flexlm licenses])
1185 fi
1187 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
1188 if test -x "$PATH_TO_SMBCLIENT"
1189 then
1190         AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
1191 else
1192         AC_MSG_WARN([Get smbclient from Samba.org to monitor SMB shares])
1193 fi
1196 AC_PATH_PROG(PATH_TO_WHO,who)
1198 if [$PATH_TO_WHO -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
1199 then
1200         ac_cv_path_to_who="$PATH_TO_WHO -q"
1201 else
1202         ac_cv_path_to_who="$PATH_TO_WHO"
1203 fi
1205 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$ac_cv_path_to_who",
1206         [path and arguments for invoking 'who'])
1208 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
1209 if test -x "$PATH_TO_SNMPGET"
1210 then
1211         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
1212         EXTRAS="$EXTRAS check_hpjd check_snmp"
1213 else
1214         AC_MSG_WARN([Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins])
1215 fi
1217 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
1218 if test -x "$PATH_TO_SNMPGETNEXT"
1219 then
1220         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
1221 fi
1223 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null  )
1224 then
1225         AC_MSG_CHECKING(for Net::SNMP perl module)
1226         AC_MSG_RESULT([found])
1227 else
1228         AC_MSG_WARN([Tried $PERL - install Net::SNMP perl module if you want to use the perl snmp plugins])
1229 fi
1231 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
1232 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
1234 if test -x "$PATH_TO_QUAKESTAT"
1235 then
1236         ac_cv_path_to_qstat="$PATH_TO_QUAKESTAT"
1237         EXTRAS="$EXTRAS check_game"
1239 elif test -x "$PATH_TO_QSTAT"
1240 then
1241         ac_cv_path_to_qstat="$PATH_TO_QSTAT"
1242         EXTRAS="$EXTRAS check_game"
1243 else
1244         AC_MSG_WARN([Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin])
1245 fi
1247 if test $ac_cv_path_to_qstat 
1248 then
1249         AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$ac_cv_path_to_qstat",
1250                 [path to qstat/quakestat])
1251 fi
1253 AC_PATH_PROG(PATH_TO_FPING,fping)
1254 if test -x "$PATH_TO_FPING"
1255 then
1256         AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
1257         EXTRAS="$EXTRAS check_fping"
1258 else
1259         AC_MSG_WARN([Get fping from http://www.fping.com in order to make check_fping plugin])
1260 fi
1262 AC_PATH_PROG(PATH_TO_SSH,ssh)
1264 if test -x "$PATH_TO_SSH"
1265 then
1266         AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
1267         EXTRAS="$EXTRAS check_by_ssh"
1268 else
1269         AC_MSG_WARN([Get ssh in order to make check_by_ssh plugin])
1270 fi
1273 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
1274 if test -x "$PATH_TO_MAILQ"
1275 then
1276         AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
1277 else
1278         AC_MSG_WARN([Could not find mailq or eqivalent])
1279 fi
1281 AC_PATH_PROG(PATH_TO_QMAIL_QSTAT,qmail-qstat)
1282 if test -x "$PATH_TO_QMAIL_QSTAT"
1283 then
1284         AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_QMAIL_QSTAT",[path to qmail-qstat])
1285 else
1286         AC_MSG_WARN([Could not find qmail-qstat or eqivalent])
1287 fi
1289 dnl SWAP info required is amount allocated/available and amount free
1290 dnl The plugin works through all the swap devices and adds up the total swap
1291 dnl available.
1292 AC_PATH_PROG(PATH_TO_SWAP,swap)
1293 if (test -n "$PATH_TO_SWAP")
1294 then
1295 AC_MSG_CHECKING([for $PATH_TO_SWAP format])
1296 if [$PATH_TO_SWAP -l 2>&1 >/dev/null]
1297 then
1298         ac_cv_have_swap=yes
1299         ac_cv_swap_command="$PATH_TO_SWAP -l"
1300         if [$PATH_TO_SWAP -l 2>/dev/null | \
1301                 egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" \
1302                 >/dev/null]
1303         then
1304                 ac_cv_swap_format=[" %*d %*s %*d,%*d %*d %*d %d %d"]
1305                 ac_cv_swap_conv=2048
1306                 AC_MSG_RESULT([using IRIX format swap])
1308         elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null]
1309         then
1310                 ac_cv_swap_format=["%*s %*[0-9,-] %*d %d %d"]
1311                 ac_cv_swap_conv=2048
1312                 AC_MSG_RESULT([using Unixware format swap])
1313         else
1314                 dnl if we don't know what format swap's output is
1315                 dnl we might as well pretend we didn't see it
1316                 ac_cv_have_swap=""
1317                 ac_cv_swap_command=""
1318         fi
1319 fi
1320 dnl end if for PATH_TO_SWAP
1321 fi
1323 AC_PATH_PROG(PATH_TO_SWAPINFO,swapinfo)
1324 if (test -n "$PATH_TO_SWAPINFO")
1325 then
1326 AC_MSG_CHECKING([for $PATH_TO_SWAPINFO format])
1327 if [$PATH_TO_SWAPINFO -k 2>&1 | egrep -i "^Device" >/dev/null]
1328 then
1329         ac_cv_have_swap=yes
1330         ac_cv_swap_command="$PATH_TO_SWAPINFO -k"
1332         if [$PATH_TO_SWAPINFO -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
1333         then
1334                 ac_cv_swap_format=["%*s %d %*d %d"]
1335                 ac_cv_swap_conv=1024
1336                 AC_MSG_RESULT([using FreeBSD format swapinfo])
1337         fi
1339 elif [$PATH_TO_SWAPINFO -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
1340 then
1341         ac_cv_have_swap=yes
1342         ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM",
1343         ac_cv_swap_format=["%*s %d %*d %d"]
1344         ac_cv_swap_conv=1024
1345         AC_MSG_RESULT([using HP-UX format swapinfo])
1346 fi
1347 dnl end if for PATH_TO_SWAPINFO
1348 fi
1350 AC_PATH_PROG(PATH_TO_LSPS,lsps)
1351 if (test -n "$PATH_TO_LSPS")
1352 then
1353 AC_MSG_CHECKING([for $PATH_TO_LSPS format])
1354 if [$PATH_TO_LSPS -a 2>/dev/null | egrep -i "^Page Space" > /dev/null]
1355 then
1356         ac_cv_have_swap=yes
1357         ac_cv_swap_command="$PATH_TO_LSPS -a"
1358         ac_cv_swap_format=["%*s %*s %*s %d%*s %d %*s"]
1359         ac_cv_swap_conv=1
1360         AC_MSG_RESULT([using AIX lsps])
1361 fi
1362 dnl end if for PATH_TO_SWAPINFO
1363 fi
1365 dnl
1366 dnl test for swapctl system call, both the 2-arg and 3-arg variants
1367 dnl fwict, the 2-arg is an SVR4 standard, whereas the 3-arg is shared
1368 dnl in the various BSD's
1369 dnl
1371 AC_CHECK_HEADERS([sys/swap.h sys/stat.h sys/param.h])
1372 AC_CHECK_DECLS([swapctl],,,[
1373                #include <unistd.h>
1374                #include <sys/types.h>
1375                #include <sys/stat.h>
1376                #include <sys/swap.h>
1377                ])
1378 AC_CHECK_TYPES([swaptbl_t, swapent_t],,,[
1379                #include <sys/types.h>
1380                #include <sys/stat.h>
1381                #include <sys/swap.h>
1382                ])
1383 AC_CHECK_MEMBERS([struct swapent.se_nblks],,,[
1384                #include <unistd.h>
1385                #include <sys/types.h>
1386                #include <sys/stat.h>
1387                #include <sys/swap.h>
1388                ])
1390 if test "$ac_cv_have_decl_swapctl" = "yes"; 
1391 then
1392         EXTRAS="$EXTRAS check_swap"
1393         AC_MSG_CHECKING([for 2-arg (SVR4) swapctl])
1394         if test "$ac_cv_type_swaptbl_t" = "yes" -a \
1395                 "$ac_cv_type_swapent_t" = "yes"; 
1396         then
1397                 AC_MSG_RESULT([yes])
1398                 ac_cv_check_swap_swapctl_svr4="1";
1399                 AC_DEFINE([CHECK_SWAP_SWAPCTL_SVR4],1,
1400                           [Define if 2-argument SVR4 swapctl exists])
1401         else
1402                 AC_MSG_RESULT([no])
1403                 AC_MSG_CHECKING([for 3-arg (*BSD) swapctl])
1404                 if test "$ac_cv_member_struct_swapent_se_nblks" = "yes"; 
1405                 then
1406                         AC_MSG_RESULT([yes])
1407                         AC_DEFINE([CHECK_SWAP_SWAPCTL_BSD],1,
1408                                   [Define if 3-argument BSD swapctl exists])
1409                 else
1410                         AC_MSG_RESULT([no])
1411                 fi
1412         fi
1413         AC_MSG_CHECKING([for whether swapctl uses blocks or pages])
1414         if test "$ac_cv_check_swap_swapctl_svr4" = "1";
1415         then
1416                 dnl
1417                 dnl the SVR4 spec returns values in pages
1418                 dnl
1419                 AC_MSG_RESULT([page])
1420                 AC_CHECK_DECLS([sysconf])
1421                 AC_MSG_CHECKING([for system page size])
1422                 if test "$ac_cv_have_decl_sysconf" = "yes";
1423                 then
1424                         AC_MSG_RESULT([determined by sysconf(3)])
1425                         ac_cv_swap_conv="(1048576/sysconf(_SC_PAGESIZE))"
1426                 else
1427                         AC_MSG_WARN([don't know. guessing 4096k])
1428                         ac_cv_swap_conv=256
1429                 fi
1430         else
1431                 dnl
1432                 dnl the BSD spec returns values in blocks
1433                 dnl
1434                 AC_MSG_RESULT([blocks (assuming 512b)])
1435                 ac_cv_swap_conv=2048
1436         fi
1437         AC_DEFINE_UNQUOTED(SWAP_CONVERSION,$ac_cv_swap_conv,
1438                 [Conversion factor to MB])
1439 fi
1440 dnl
1441 dnl end tests for the swapctl system calls
1442 dnl
1445 if test "x$ac_cv_have_swap" != "x" 
1446 then
1447         AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
1448         EXTRAS="$EXTRAS check_swap"
1449 fi
1450 if test "x$ac_cv_swap_command" != "x" 
1451 then
1452         AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$ac_cv_swap_command",
1453                 [Path to swap/swapinfo binary, with any args])
1454         AC_DEFINE_UNQUOTED(SWAP_FORMAT,"$ac_cv_swap_format",
1455                 [Format string for parsing swap output])
1456         AC_DEFINE_UNQUOTED(SWAP_CONVERSION,$ac_cv_swap_conv,
1457                 [Conversion factor to MB])
1458 fi
1460 dnl dunno why this does not work below - use hack (kbd)
1461 dnl fine on linux, broken on solaris
1462 dnl if /bin/test -e "/proc/meminfo"
1463 AC_MSG_CHECKING([for /proc/meminfo])
1464 if [cat /proc/meminfo > /dev/null 2>&1]
1465 then
1466         AC_MSG_RESULT([found /proc/meminfo])
1467         AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
1468         AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes])
1469         EXTRAS="$EXTRAS check_swap"
1470 else
1471         AC_MSG_RESULT([no])
1472 fi
1474 AC_PATH_PROG(PATH_TO_DIG,dig)
1475 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
1476 if test -n "$PATH_TO_DIG"; then
1477         EXTRAS="$EXTRAS check_dig"
1478 fi
1480 if test -f plugins/check_nt.c ; then
1481   EXTRAS="$EXTRAS check_nt"
1482 elif test -f ../plugins/check_nt.c ; then
1483   EXTRAS="$EXTRAS check_nt"
1484 fi
1486 AC_MSG_CHECKING(for va_list)
1487 AC_TRY_COMPILE([#ifdef __STDC__
1488                 #include <stdio.h>
1489                 #include <stdlib.h>
1490                 #include <stdarg.h>
1491                 #else
1492                 #include <sys/types.h>
1493                 #include <stdio.h>
1494                 #include <varargs.h>
1495                 #endif],
1496                 [va_list args;],
1497                 [AC_MSG_RESULT(yes)],
1498                 [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
1500 AC_SUBST(EXTRAS)
1501 AC_SUBST(EXTRA_NETOBJS)
1502 AC_SUBST(DEPLIBS)
1504 AM_GNU_GETTEXT_VERSION(0.11.5)
1505 AM_GNU_GETTEXT([no-libtool], [need-ngettext])
1507 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 )
1509 ACX_FEATURE([with],[cgiurl])
1510 ACX_FEATURE([with],[nagios-user])
1511 ACX_FEATURE([with],[nagios-group])
1512 ACX_FEATURE([with],[trusted-path])
1513 ACX_FEATURE([with],[ping-command])
1514 ACX_FEATURE([with],[ping6-command])
1515 ACX_FEATURE([with],[lwres])
1516 ACX_FEATURE([with],[ipv6])
1517 ACX_FEATURE([enable],[emulate-getaddrinfo])