Code

Note to update version number before creating ChangeLog
[nagiosplug.git] / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 AC_REVISION ($Revision$)
3 AC_PREREQ(2.58)
4 AC_INIT(nagios-plugins,1.4.2)
5 AC_CONFIG_SRCDIR(NPTest.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 dnl Must come very early on due to coreutils requirement
20 dnl Takes care of AC_GNU_SOURCE, AC_AIX and AC_MINIX
21 gl_USE_SYSTEM_EXTENSIONS
23 AC_PROG_CC
24 AC_PROG_CPP
25 AC_PROG_GCC_TRADITIONAL
26 AC_PROG_RANLIB
28 AC_PROG_MAKE_SET
29 AC_PROG_AWK
31 AC_FUNC_MALLOC
32 AC_FUNC_REALLOC
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(SH,sh)
105 AC_PATH_PROG(PERL,perl)
107 dnl allow them to override the path of perl
108 AC_ARG_WITH(perl,
109         ACX_HELP_STRING([--with-perl=PATH],
110                         [sets path to perl executable]),
111                         with_perl=$withval,with_perl=$PERL)
112 AC_SUBST(PERL, $with_perl)
114 AC_PATH_PROG(HOSTNAME,hostname)
115 AC_PATH_PROG(BASENAME,basename)
117 dnl
118 dnl Check for miscellaneous stuff
119 dnl 
121 case $host_vender-$host_os in
122 sun*)
123         AC_DEFINE(__EXTENSIONS__,1,[Sun's netdb.h needs this for getaddrinfo])
124         ;;
125 osf*)
126         AC_DEFINE(_OSF_SOURCE,1,[OSF needs this for getaddrinfo])
127         ;;
128 esac
130 dnl
131 dnl Checks for libraries.
132 dnl
134 AC_CHECK_LIB(dce,main,SOCKETLIBS="$SOCKETLIBS -ldce")
135 AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
136 AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
137 AC_CHECK_LIB(resolv,main,SOCKETLIBS="$SOCKETLIBS -lresolv")
138 AC_SUBST(SOCKETLIBS)
140 dnl
141 dnl check for math-related functions needing -lm
142 AC_CHECK_LIB(m,floor,MATHLIBS="-lm")
143 AC_SUBST(MATHLIBS)
145 dnl Check for PostgreSQL libraries
146 _SAVEDLIBS="$LIBS"
147 _SAVEDCPPFLAGS="$CPPFLAGS"
148 AC_ARG_WITH(pgsql,
149         ACX_HELP_STRING([--with-pgsql=DIR],
150                 [sets path to pgsql installation]),
151         PGSQL=$withval,)
152 AC_CHECK_LIB(crypt,main)
153 if test "$ac_cv_lib_crypt_main" = "yes"; then
154   if test -n "$PGSQL"; then
155     LDFLAGS="$LDFLAGS -L$PGSQL/lib"
156     CPPFLAGS="$CPPFLAGS -I$PGSQL/include"
157   fi
158   AC_CHECK_LIB(pq,PQsetdbLogin,,,-lcrypt)
159   if test "$ac_cv_lib_pq_PQsetdbLogin" = "yes"; then
160     AC_CHECK_HEADERS(pgsql/libpq-fe.h)
161     AC_CHECK_HEADERS(postgresql/libpq-fe.h)
162     AC_CHECK_HEADERS(libpq-fe.h)
163     if [[ -n "$PGSQL" -a "$ac_cv_header_libpq_fe_h" = "yes" ]]; then
164       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
165       PGINCLUDE="-I$PGSQL/include"
166     elif test  "$ac_cv_header_pgsql_libpq_fe_h" = "yes"; then
167       PGLIBS="-lpq -lcrypt"
168       PGINCLUDE="-I/usr/include/pgsql"
169     elif test  "$ac_cv_header_postgresql_libpq_fe_h" = "yes"; then
170       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
171       PGINCLUDE="-I/usr/include/postgresql"
172     elif test  "$ac_cv_header_libpq_fe_h" = "yes"; then
173       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
174       PGINCLUDE="-I$PGSQL/include"
175     fi
176     if test -z "$PGINCLUDE"; then
177       AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
178       AC_MSG_WARN([install PostgreSQL headers to compile this plugin (see REQUIREMENTS).])
179     else
180       AC_SUBST(PGLIBS)
181       AC_SUBST(PGINCLUDE)
182       EXTRAS="$EXTRAS check_pgsql"
183     fi
184   else
185     AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
186     AC_MSG_WARN([LIBS="$LIBS" CPPFLAGS="$CPPFLAGS"])
187     AC_MSG_WARN([install PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
188   fi
189 else
190   AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
191   AC_MSG_WARN([install lib crypt and PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
192 fi
193 LIBS="$_SAVEDLIBS"
194 CPPFLAGS="$_SAVEDCPPFLAGS"
196 dnl Check for radius libraries
197 _SAVEDLIBS="$LIBS"
198 AC_CHECK_LIB(radiusclient,rc_read_config)
199 if test "$ac_cv_lib_radiusclient_rc_read_config" = "yes"; then
200   EXTRAS="$EXTRAS check_radius"
201         RADIUSLIBS="-lradiusclient"
202   AC_SUBST(RADIUSLIBS)
203 else
204   AC_MSG_WARN([Skipping radius plugin])
205   AC_MSG_WARN([install radius libs to compile this plugin (see REQUIREMENTS).])
206 fi
207 LIBS="$_SAVEDLIBS"
209 dnl Check for LDAP libraries
210 _SAVEDLIBS="$LIBS"
211 AC_CHECK_LIB(ldap,main,,,-llber)
212 if test "$ac_cv_lib_ldap_main" = "yes"; then
213   LDAPLIBS="-lldap -llber"\
214   LDAPINCLUDE="-I/usr/include/ldap"
215   AC_SUBST(LDAPLIBS)
216   AC_SUBST(LDAPINCLUDE)
217   AC_CHECK_FUNCS(ldap_set_option)
218   EXTRAS="$EXTRAS check_ldap"
219         AC_CHECK_FUNCS(ldap_init ldap_set_option ldap_get_option ldap_start_tls_s)
220 else
221   AC_MSG_WARN([Skipping LDAP plugin])
222   AC_MSG_WARN([install LDAP libs to compile this plugin (see REQUIREMENTS).])
223 fi
224 LIBS="$_SAVEDLIBS"
227 dnl Check for mysql libraries
228 _SAVEDLIBS="$LIBS"
229 _SAVEDCPPFLAGS="$CPPFLAGS"
230 AC_ARG_WITH(mysql,
231         ACX_HELP_STRING([--with-mysql=DIR],
232                 [sets path to mysql installation (assumes lib/mysql and include subdirs]),
233         MYSQL=$withval,)
234 if test -n "$MYSQL"; then
235   MYSQLLIBDIR=$MYSQL/lib/mysql
236   CPPFLAGS="-I$MYSQL/include"
237   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L$MYSQLLIBDIR ",,-L$MYSQLLIBDIR -lz)
238   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
239 elif test -f /usr/lib/libmysqlclient.so; then
240   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
241   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
242 elif test -f /usr/lib/libmysqlclient.a; then
243   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
244   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
245 elif test -f /usr/lib/mysql/libmysqlclient.so; then
246   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
247   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
248 elif test -f /usr/lib/mysql/libmysqlclient.a; then
249   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
250   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
251 fi
252 if test "$ac_cv_lib_mysqlclient_mysql_init" = "yes" -o "$ac_cv_lib_mysqlclient_mysql_close" = "yes"; then
253   AC_CHECK_HEADERS(mysql/mysql.h mysql/errmsg.h, MYSQLINCLUDE="-I$MYSQL/include" )
254   if test "$ac_cv_header_mysql_mysql_h" = "yes" -a "$ac_cv_header_mysql_errmsg_h" = "yes"; then
255     EXTRAS="$EXTRAS check_mysql"
256     AC_SUBST(MYSQLINCLUDE)
257     AC_SUBST(MYSQLLIBS)
258     AC_SUBST(check_mysql_LDFLAGS)
259   else
260     AC_MSG_WARN([Skipping mysql plugin])
261     AC_MSG_WARN([install mysql client headers to compile this plugin (see REQUIREMENTS).])
262   fi
263 else
264   AC_MSG_WARN([Skipping mysql plugin])
265   AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).])
266 fi
267 CPPFLAGS="$_SAVEDCPPFLAGS $MYSQLINCLUDE"
268 LIBS="$_SAVEDLIBS"
270 AC_CHECK_HEADERS(unistd.h)
272 dnl Check for AF_INET6 support - unistd.h required for Darwin
273 AC_CACHE_CHECK([for IPv6 support], with_ipv6, [
274         AC_TRY_COMPILE([#ifdef HAVE_UNISTD_H
275                         #include <unistd.h>
276                         #endif
277                         #include <netinet/in.h>
278                         #include <sys/socket.h>],
279                         [struct sockaddr_in6 sin6;
280                         void *p;
282                         sin6.sin6_family = AF_INET6;
283                         sin6.sin6_port = 587;
284                         p = &sin6.sin6_addr;],
285                         [with_ipv6=yes], 
286                         [with_ipv6=no])
287         ])
289 if test x"$with_ipv6" != xno ; then
290         AC_DEFINE(USE_IPV6,1,[Enable IPv6 support])
291 fi
293 dnl #########################################################################
294 dnl Check if Posix getaddrinfo() is available.  It is also possible to use
295 dnl the version from the lwres library distributed with BIND.
296 dnl #########################################################################
297 AC_ARG_ENABLE([emulate-getaddrinfo],
298               ACX_HELP_STRING([--enable-emulate-getaddrinfo],
299                              [enable getaddrinfo emulation (default=no)]),
300               ,
301               enable_emulate_getaddrinfo=no)
303 AC_ARG_WITH(lwres,
304             ACX_HELP_STRING([--with-lwres=DIR],
305                            [use lwres library for getaddrinfo (default=no)]),
306             ,
307             with_lwres=no)
309 dnl ## enable force to test getaddrinfo.c
310 if test x$enable_emulate_getaddrinfo = xforce ; then
311         enable_emulate_getaddrinfo=yes
312         have_getaddrinfo=no
313 else
315 have_getaddrinfo=no
316 if test x$with_lwres != xno ; then
317         if test "$with_lwres" != yes ; then
318                    CPPFLAGS="-I${with_lwres}/include $CPPFLAGS"
319                    LDFLAGS="-L${with_lwres}/lib $LDFLAGS"
320         fi
321         AC_CHECK_HEADERS(lwres/netdb.h, ,
322                         [AC_MSG_ERROR([cannot find <lwres/netdb.h>])])
323         AC_CHECK_LIB(lwres, lwres_getaddrinfo, ,
324                      [AC_MSG_ERROR([cannot find the lwres library])],
325                      -lnsl -lpthread)
326         have_getaddrinfo=yes
327 fi
329 if test x$have_getaddrinfo != xyes ; then
330         AC_SEARCH_LIBS(getaddrinfo, socket resolv bind nsl c_r cr, have_getaddrinfo=yes)
331 fi
333 dnl # Special nonsense for systems that actually have getaddrinfo but
334 dnl # redefine the name to something else, e.g. OSF
335 if test x$have_getaddrinfo != xyes ; then
336         AC_MSG_CHECKING(if getaddrinfo is redefined in netdb.h)
337         AC_TRY_LINK([
338 #               include <netdb.h>
339         ], [
340                 struct addrinfo hints, *res;
341                 int err;
343                 err = getaddrinfo ("host", "service", &hints, &res);
344         ], [
345                 have_getaddrinfo=yes
346                 AC_MSG_RESULT(yes)
347         ], [AC_MSG_RESULT(no)])
348 fi
350 fi
352 if test x$have_getaddrinfo != xno ; then
353         if test x$enable_emulate_getaddrinfo != xno ; then
354                 AC_MSG_ERROR([getaddrinfo found but emulate-getaddrinfo was enabled])
355         fi
356         AC_DEFINE(HAVE_GETADDRINFO, 1,
357                   [Does system provide RFC 2553/Posix getaddrinfo?])
358 else
359         if test x$enable_emulate_getaddrinfo != xyes ; then
360 dnl                AC_MSG_ERROR([getaddrinfo not found: try --with-lwres or --enable-emulate-getaddrinfo])
361                enable_emulate_getaddrinfo=yes
362                AC_MSG_WARN([enabling getaddrinfo emulation])
363         fi
364         EXTRA_NETOBJS="$EXTRA_NETOBJS getaddrinfo.o"
365 fi
367 if test x"$enable_emulate_getaddrinfo" != xno ; then
368     have_resolver=no
370   dnl  Try for getipnodebyname
371     AC_SEARCH_LIBS(getipnodebyname, resolv bind nsl c_r cr, have_resolver=yes)
372     if test x"$have_resolver" != xno ; then
373          AC_DEFINE(HAVE_GETIPNODEBYNAME, 1,
374                    [Set when getipnodebyname is available])
375     fi
377   dnl  Try for gethostbyname_r
378     if test x"$have_resolver" = xno ; then
379         AC_SEARCH_LIBS(gethostbyname_r, resolv bind nsl c_r cr,
380                        [have_resolver=yes
381                         ACX_WHICH_GETHOSTBYNAME_R])
382     fi
384   dnl  Try for gethostbyname
385     if test x"$have_resolver" = xno ; then
386         if test x"$enable_pthreads" != xno ; then
387             AC_MSG_WARN([using threads but cannot find gethostbyname_r or getipnodebyname])
388         fi
389         AC_SEARCH_LIBS(gethostbyname, resolv bind nsl, ,
390                        [AC_MSG_ERROR([cannot find gethostbyname])])
391     fi
392     EXTRA_NETOBJS="$EXTRA_NETOBJS gethostbyname.o"
394 fi
396 dnl Checks for Kerberos. Must come before openssl checks for Redhat EL 3
397 AC_CHECK_HEADERS(krb5.h,FOUNDINCLUDE=yes,FOUNDINCLUDE=no)
398 if test "$FOUNDINCLUDE" = "no"; then
399   _SAVEDCPPFLAGS="$CPPFLAGS"
400   CPPFLAGS="$_SAVEDCPPFLAGS -I/usr/kerberos/include"
401   unset ac_cv_header_krb5_h
402   AC_CHECK_HEADERS(krb5.h,
403                    KRB5INCLUDE="-I/usr/kerberos/include"
404                    FOUNDINCLUDE=yes,
405                    FOUNDINCLUDE=no)
406 fi
407 AC_SUBST(KRBINCLUDE)
408 if test "$FOUNDINCLUDE" = "no"; then
409   CPPFLAGS="$_SAVEDCPPFLAGS"
410 fi
412 dnl Check for OpenSSL location
413 AC_PATH_PROG(OPENSSL,openssl)
414 if test "$OPENSSL" = "/usr/bin/openssl"; then
415   OPENSSL=/usr
416 elif test "$OPENSSL" = "/usr/sbin/openssl"; then
417   OPENSSL=/usr
418 elif test "$OPENSSL" = "/opt/bin/openssl"; then
419   OPENSSL=/opt
420 elif test "$OPENSSL" = "/opt/openssl/bin/openssl"; then
421   OPENSSL=/opt/openssl
422 elif test "$OPENSSL" = "/usr/slocal/bin/openssl"; then
423   OPENSSL=/usr/slocal
424 elif test "$OPENSSL" = "/usr/local/bin/openssl"; then
425   OPENSSL=/usr/local
426 elif test "$OPENSSL" = "/usr/local/ssl/bin/openssl"; then
427   OPENSSL=/usr/local/ssl
428 fi
429 AC_ARG_WITH(openssl,
430 AC_HELP_STRING([--with-openssl=DIR], [sets path to openssl installation])
431 AC_HELP_STRING([--without-openssl], [disable openssl]),
432 OPENSSL=$withval)
434 _SAVEDCPPFLAGS="$CPPFLAGS"
435 _SAVEDLDFLAGS="$LDFLAGS"
436 if test X"$OPENSSL" = "Xno"; then
437   AC_MSG_WARN([openssl disabled, you will not be able to use ssl options in some plugins])
438   FOUNDSSL="dontbother"
439 else
440   dnl Check for OpenSSL header files
441   unset FOUNDINCLUDE
442   if test "$OPENSSL" != "/usr"; then
443     CPPFLAGS="$CPPFLAGS -I$OPENSSL/include"
444     LDFLAGS="$LDFLAGS -R$OPENSSL/lib"
445   fi
446   AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h,
447                  SSLINCLUDE="-I$OPENSSL/include"
448                  FOUNDINCLUDE=yes,
449                  FOUNDINCLUDE=no)
450   if test "$FOUNDINCLUDE" = "no"; then
451     AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h,
452                    SSLINCLUDE="-I$OPENSSL/include"
453                    FOUNDINCLUDE=yes,
454                    FOUNDINCLUDE=no)
455   fi
456   AC_SUBST(SSLINCLUDE)
457   if test "$FOUNDINCLUDE" = "no"; then
458     CPPFLAGS="$_SAVEDCPPFLAGS"
459   fi
461   dnl Check for crypto lib
462   _SAVEDLIBS="$LIBS"
463   AC_CHECK_LIB(crypto,CRYPTO_lock,,,-L$OPENSSL/lib)
464   if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
465     dnl Check for SSL lib
466     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)
467   fi
468   LIBS="$_SAVEDLIBS"
470   FOUNDSSL="no"
471   dnl test headers and libs to decide whether check_http should use SSL
472   if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
473     if test "$ac_cv_lib_ssl_main" = "yes"; then
474       if test "$FOUNDINCLUDE" = "yes"; then
475         FOUNDSSL="yes"
476       fi
477     fi
478   fi
479 fi
481 if test "$FOUNDSSL" = "yes"; then
482   check_tcp_ssl="check_simap check_spop check_jabber check_nntps check_ssmtp"
483   AC_SUBST(check_tcp_ssl)
484   AC_SUBST(SSLLIBS)
485   AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
486   with_openssl="yes"
487 else
488   if test "$FOUNDSSL" = "no"; then
489     AC_MSG_WARN([OpenSSL libs could not be found])
490   dnl else deliberately disabled
491   fi
492   with_openssl="no"
493   CPPFLAGS="$_SAVEDCPPFLAGS"
494   LDFLAGS="$_SAVEDLDFLAGS"
495 fi
497 dnl
498 dnl Checks for header files.
499 dnl
501 AC_HEADER_STDC
502 AC_HEADER_TIME
503 AC_HEADER_SYS_WAIT
504 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)
505 AC_CHECK_HEADERS(features.h stdarg.h sys/unistd.h ctype.h stdlib.h)
507 dnl Checks for typedefs, structures, and compiler characteristics.
508 AC_C_CONST
509 AC_STRUCT_TM
510 AC_TYPE_PID_T
511 AC_TYPE_SIZE_T
512 AC_TYPE_SIGNAL
514 AC_CACHE_CHECK([for va_copy],ac_cv_HAVE_VA_COPY,[
515 AC_TRY_LINK([#include <stdarg.h>
516 va_list ap1,ap2;], [va_copy(ap1,ap2);],
517 ac_cv_HAVE_VA_COPY=yes,
518 ac_cv_HAVE_VA_COPY=no)])
519 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
520     AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
521 else    
522     AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE___VA_COPY,[
523     AC_TRY_LINK([#include <stdarg.h>
524     va_list ap1,ap2;], [__va_copy(ap1,ap2);],
525     ac_cv_HAVE___VA_COPY=yes,
526     ac_cv_HAVE___VA_COPY=no)])
527     if test x"$ac_cv_HAVE___VA_COPY" = x"yes"; then
528         AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
529     fi
530 fi
532 AC_CHECK_FUNCS(vsnprintf snprintf asprintf vasprintf)
533 AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
534 AC_TRY_RUN([
535 #include <sys/types.h>
536 #include <stdarg.h>
537 void foo(const char *format, ...) { 
538        va_list ap;
539        int len;
540        char buf[5];
542        va_start(ap, format);
543        len = vsnprintf(buf, 0, format, ap);
544        va_end(ap);
545        if (len != 5) exit(1);
547        va_start(ap, format);
548        len = vsnprintf(0, 0, format, ap);
549        va_end(ap);
550        if (len != 5) exit(1);
552        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
554        exit(0);
556 main() { foo("hello"); }
557 ],
558 ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
559 if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
560     AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
561 fi
563 AC_TRY_COMPILE([#include <sys/time.h>],
564                [struct timeval *tv;
565                 struct timezone *tz;],
566                AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
567                AC_TRY_COMPILE([#include <sys/time.h>],
568                               [struct timeval *tv;
569                                struct timezone *tz;
570                                gettimeofday(tv, tz);],
571                               AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
572                               AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
574 dnl Checks for library functions.
575 AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul floor)
577 AC_MSG_CHECKING(return type of socket size)
578 AC_TRY_COMPILE([#include <stdlib.h>
579                 #include <sys/types.h>
580                 #include <sys/socket.h>],
581                [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
582                ac_cv_socket_size_type=["size_t"]
583                 AC_MSG_RESULT(size_t),
584                ac_cv_socket_size_type=["int"]
585                 AC_MSG_RESULT(int))
587 AC_DEFINE_UNQUOTED(SOCKET_SIZE_TYPE, $ac_cv_socket_size_type ,
588         [Define type of socket size])
590 if test -f "/proc/loadavg"
591 then
592   AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
593   AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg])
594 fi
596 dnl #### Process table test
598 AC_PATH_PROG(PATH_TO_PS,ps)
600 AC_MSG_CHECKING(for ps syntax)
601 dnl Some gnu/linux systems (debian for one) don't like -axwo and need axwo.
602 dnl so test for this first...
603 if ps axwo 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \
604         egrep -i ["^ *STAT +[UCOMAND]+ +VSZ +RSS +USER +UID +PID +PPID +COMMAND"] > /dev/null
605 then
606         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
607         ac_cv_ps_command="$PATH_TO_PS axwo 'stat uid pid ppid vsz rss pcpu comm args'"
608         ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
609         ac_cv_ps_cols=9
610         AC_MSG_RESULT([$ac_cv_ps_command])
612 dnl For OpenBSD 3.2 & 3.3. Must come before ps -weo
613 dnl Should also work for FreeBSD 5.2.1 and 5.3
614 dnl  STAT UCOMM              VSZ   RSS USER      PPID COMMAND
615 elif ps -axwo 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \
616         egrep -i ["^ *STAT +[UCOMAND]+ +VSZ +RSS +USER +UID +PID +PPID +COMMAND"] > /dev/null
617 then
618         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
619         ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid pid ppid vsz rss pcpu comm args'"
620         ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
621         ac_cv_ps_cols=9
622         AC_MSG_RESULT([$ac_cv_ps_command])
624 dnl Some *BSDs have different format for ps. This is mainly to catch FreeBSD 4. 
625 dnl Limitation: Only first 16 chars returned for ucomm field
626 dnl Must come before ps -weo
627 elif ps -axwo 'stat uid pid ppid vsz rss pcpu ucomm command' 2>/dev/null | \
628         egrep -i ["^ *STAT +UID +PID +PPID +VSZ +RSS +%CPU +UCOMM +COMMAND"] > /dev/null
629 then
630         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
631         ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid pid ppid vsz rss pcpu ucomm command'"
632         ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
633         ac_cv_ps_cols=9
634         AC_MSG_RESULT([$ac_cv_ps_command])
636 dnl  STAT UCOMM              VSZ   RSS USER       UID  PPID COMMAND
637 elif ps -weo 'stat comm vsz rss user uid pid ppid etime args' 2>/dev/null | \
638         egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[ID]+ +P[PID]+ +[ELAPSD]+ +[RGSCOMDNA]+"] >/dev/null
639 then
640         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procetime,procprog,&pos]"
641         ac_cv_ps_command="$PATH_TO_PS -weo 'stat uid pid ppid vsz rss pcpu etime comm args'"
642         ac_cv_ps_format="%s %d %d %d %d %d %f %s %s %n"
643         ac_cv_ps_cols=10
644         AC_MSG_RESULT([$ac_cv_ps_command])
646 dnl FreeBSD
647 elif ps waxco 'state command vsz rss uid user pid ppid' 2>/dev/null | \
648         egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PID +PPID"] >/dev/null
649 then
650         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
651         ac_cv_ps_command="$PATH_TO_PS waxco 'state uid pid ppid vsz rss pcpu command command'"
652         ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
653         ac_cv_ps_cols=9
654         AC_MSG_RESULT([$ac_cv_ps_command])
656 dnl BSD-like mode in RH 6.1
657 elif ps waxno 'state comm vsz rss uid user pid ppid args' 2>/dev/null | \
658         egrep -i ["^S +COMMAND +VSZ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
659 then
660         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
661         ac_cv_ps_command="$PATH_TO_PS waxno 'state uid pid ppid vsz rss pcpu comm args'"
662         ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
663         ac_cv_ps_cols=9
664         AC_MSG_RESULT([$ac_cv_ps_command])
666 dnl SunOS 4.1.3:
667 dnl  F  UID  PID  PPID  CP  PRI  NI  SZ  RSS  WCHAN  STAT  TT  TIME  COMMAND
668 dnl Need the head -1 otherwise test will work because arguments are found
669 elif ps -laxnwww 2>/dev/null | head -1 | \
670         egrep -i ["^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND"] >/dev/null
671 then
672         ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
673         ac_cv_ps_command="$PATH_TO_PS -laxnwww"
674         ac_cv_ps_format="%*s %d %d %d %*s %*s %*s %d %d %*s %s %*s %*s %n%s"
675         ac_cv_ps_cols=9
676         AC_MSG_RESULT([$ac_cv_ps_command])
678 dnl Debian Linux / procps v1.2.9:
679 dnl  FLAGS   UID   PID  PPID PRI  NI   SIZE   RSS WCHAN       STA TTY TIME COMMAND
680 dnl    100     0     1     0   0   0    776    76  c0131c8c   S  ffff  0:11 init [2]
681 dnl
682 elif ps laxnwww 2>/dev/null | \
683         egrep -i ["^ *F(LAGS)? +UID +PID +PPID +PRI +NI +(VSZ)|(SIZE) +RSS +WCHAN +STAT? TTY +TIME +COMMAND"] >/dev/null
684 then
685         ac_cv_ps_varlist="[&procuid,&procpid,&procppid,procstat,&procvsz,&procrss,&pos,procprog]"
686         ac_cv_ps_command="$PATH_TO_PS laxnwww"
687         ac_cv_ps_format="%*s %d %d %d %*s %*s %d %d %*s %s %*s %*s %n%s"
688         ac_cv_ps_cols=9
689         AC_MSG_RESULT([$ac_cv_ps_command])
691 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
692 elif ps -axo 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \
693         egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
694 then
695         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
696         ac_cv_ps_command="$PATH_TO_PS -axo 'stat uid pid ppid vsz rss pcpu comm args'"
697         ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
698         ac_cv_ps_cols=9
699         AC_MSG_RESULT([$ac_cv_ps_command])
701 dnl Tru64 - needs %*[ +] in PS_FORMAT
702 elif ps -ao 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \
703         egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
704 then
705         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
706         ac_cv_ps_command="$PATH_TO_PS -ao 'stat uid pid ppid vsz rss pcpu comm args'"
707         ac_cv_ps_format=["%s%*[ +] %d %d %d %d %d %f %s %n"]
708         ac_cv_ps_cols=9
709         AC_MSG_RESULT([$ac_cv_ps_command])
711 elif ps -eo 's comm vsz rss user uid pid ppid args' 2>/dev/null | \
712         egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
713 then
714         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procpid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
715         ac_cv_ps_command="$PATH_TO_PS -eo 's uid pid ppid vsz rss pcpu comm args'"
716         ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
717         ac_cv_ps_cols=9
718         AC_MSG_RESULT([$ac_cv_ps_command])
720 dnl AIX 4.3.3 and 5.1 do not have an rss field
721 elif ps -eo 'stat uid pid ppid vsz pcpu comm args' 2>/dev/null | \
722         egrep -i ["^ *S[TAUES]* +UID +PID +PPID +VSZ +%CPU +COMMAND +COMMAND"] >/dev/null
723 then
724         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procpid,&procvsz,&procpcpu,procprog,&pos]"
725         ac_cv_ps_command="$PATH_TO_PS -eo 'stat uid pid ppid vsz pcpu comm args'"
726         ac_cv_ps_format="%s %d %d %d %d %f %s %n"
727         ac_cv_ps_cols=8
728         AC_MSG_RESULT([$ac_cv_ps_command - with no RSS])
730 dnl Solaris 2.6
731 elif ps -Ao 's comm vsz rss uid user pid ppid args' 2>/dev/null | \
732         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
733 then
734         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procpid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
735         ac_cv_ps_command="$PATH_TO_PS -Ao 's uid pid ppid vsz rss pcpu comm args'"
736         # There must be no space between the %s and %n due to a wierd problem in sscanf where
737         # it will return %n as longer than the line length
738         ac_cv_ps_format="%s %d %d %d %d %d %f %s%n"
739         ac_cv_ps_cols=9
740         AC_MSG_RESULT([$ac_cv_ps_command])
742 elif ps -Ao 'status comm vsz rss uid user pid ppid args' 2>/dev/null | \
743         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
744 then
745         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procpid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
746         ac_cv_ps_command="$PATH_TO_PS -Ao 'status uid pid ppid vsz rss pcpu comm args'"
747         ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
748         ac_cv_ps_cols=9
749         AC_MSG_RESULT([$ac_cv_ps_command])
751 elif ps -Ao 'state comm vsz rss uid user pid ppid args' 2>/dev/null | \
752         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
753 then
754         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procpid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
755         ac_cv_ps_command="$PATH_TO_PS -Ao 'state uid pid ppid vsz rss pcpu comm args'"
756         ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
757         ac_cv_ps_cols=9
758         AC_MSG_RESULT([$ac_cv_ps_command])
760 dnl wonder who takes state instead of stat
761 elif ps -ao 'state command vsz rss user pid ppid args' 2>/dev/null | \
762         egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PID +PPID +[RGSCOMDNA]+"] >/dev/null
763 then
764         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procpid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
765         ac_cv_ps_command="$PATH_TO_PS -ao 'state uid pid ppid vsz rss pcpu command args'"
766         ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
767         ac_cv_ps_cols=8
768         AC_MSG_RESULT([$ac_cv_ps_command])
770 dnl IRIX 53
771 elif ps -el 2>/dev/null | \
772         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
773 then
774         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procpid,&procvsz,&procrss,&pos,procprog]"
775         ac_cv_ps_command="$PATH_TO_PS -el (IRIX 53)"
776         ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %d %d %*s %*s %*s %n%s"
777         ac_cv_ps_cols=8
778         AC_MSG_RESULT([$ac_cv_ps_command])
780 dnl IRIX 63
781 elif ps -el 2>/dev/null | \
782         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +ADDR +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
783 then
784         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procpid,&pos,procprog]"
785         ac_cv_ps_command="$PATH_TO_PS -el (IRIX 63)"
786         ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
787         ac_cv_ps_cols=6
788         AC_MSG_RESULT([$ac_cv_ps_command])
790 dnl AIX 4.1:
791 dnl     F S      UID   PID  PPID   C PRI NI ADDR  SZ  RSS   WCHAN    TTY  TIME CMD
792 dnl    303 A        0     0     0 120  16 -- 1c07  20   24              -  0:45 swapper
793 elif ps -el 2>/dev/null | \
794         egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
795 then
796         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procpid,&pos,procprog]"
797         ac_cv_ps_command="$PATH_TO_PS -el (AIX 4.1 and HP-UX)"
798         ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
799         ac_cv_ps_cols=6
800         AC_MSG_RESULT([$ac_cv_ps_command])
802 dnl AIX?
803 elif ps glaxen 2>/dev/null | \
804         egrep -i ["^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND"] >/dev/null
805 then
806         ac_cv_ps_varlist="[&procuid,&procpid,&procpid,&procvsz,&procrss,procstat,&pos,procprog]"
807         ac_cv_ps_command="$PATH_TO_PS glaxen"
808         ac_cv_ps_format="%*s %d %d %d %*s %*s %d %d %*s %s %*s %*s %n%s"
809         ac_cv_ps_cols=8
810         AC_MSG_RESULT([$ac_cv_ps_command])
812 dnl MacOSX / Darwin
813 dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
814 dnl Some truncation will happen in UCOMM column
815 dnl STAT      VSZ    RSS   UID  PPID %CPU UCOMM            COMMAND
816 dnl Ss      52756  22496   501     1   6.9 Window Manager   /System/Library/CoreServices/WindowServer -daemon
817 elif ps wwaxo 'state vsz rss uid pid ppid pcpu ucomm command' 2>/dev/null | \
818         egrep -i ["^STAT +VSZ +RSS +UID +PPID +%CPU +UCOMM +COMMAND"] >/dev/null
819 then
820         ac_cv_ps_command="$PATH_TO_PS wwaxo 'state vsz rss uid pid ppid pcpu ucomm command'"
821         ac_cv_ps_varlist="[procstat,&procvsz,&procrss,&procuid,&procpid,&procpid,&procpcpu,procprog,&pos]"
822         ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
823         ac_cv_ps_cols=8
824         AC_MSG_RESULT([$ac_cv_ps_command])
826 dnl UnixWare 
827 elif ps -Al 2>/dev/null | \
828         egrep -i ["^ *F +S +UID +PID +PPID +CLS +PRI +NI +C +ADDR +SZ +WCHAN +TTY +TIME +COMD"] >/dev/null
829 then
830         ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procpid,&pos,procprog]"
831         ac_cv_ps_command="$PATH_TO_PS -Al"
832         ac_cv_ps_format="%*s %s %d %d %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
833         ac_cv_ps_cols=8
834         AC_MSG_RESULT([$ac_cv_ps_command])
836 else
837         AC_MSG_WARN([unable to find usable ps syntax - check_procs and check_nagios will not be compiled])
838 fi
840 if test -n "$ac_cv_ps_varlist" ; then
841         AC_DEFINE_UNQUOTED(PS_VARLIST,$ac_cv_ps_varlist,
842                 [Variable list for sscanf of 'ps' output])
843         AC_DEFINE_UNQUOTED(PS_COMMAND,"$ac_cv_ps_command",
844                 [Verbatim command to execute for ps in check_procs])
845         AC_DEFINE_UNQUOTED(PS_FORMAT,"$ac_cv_ps_format",
846                 [Format string for scanning ps output in check_procs])
847         AC_DEFINE_UNQUOTED(PS_COLS,$ac_cv_ps_cols,
848                 [Number of columns in ps command])
849         EXTRAS="$EXTRAS check_procs check_nagios"
850 fi
852 AC_PATH_PROG(PATH_TO_PING,ping)
853 AC_PATH_PROG(PATH_TO_PING6,ping6)
855 AC_ARG_WITH(ping_command,
856         ACX_HELP_STRING([--with-ping-command=SYNTAX],
857                 [sets syntax for ICMP ping]),
858         with_ping_command=$withval,)
860 AC_MSG_CHECKING(for ICMP ping syntax)
861 ac_cv_ping_packets_first=no
862 ac_cv_ping_has_timeout=no
863 if test -n "$with_ping_command"
864 then
865         AC_MSG_RESULT([(command-line) $with_ping_command])
866         if test -n "$ac_cv_ping_packets_first"
867         then
868                 ac_cv_ping_packets_first=yes
869         fi
871 elif [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
872         $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
873         egrep -i "^round-trip|^rtt" >/dev/null
874 then
875         with_ping_command="$PATH_TO_PING -n -U -c %d %s"
876         ac_cv_ping_packets_first=yes
877         AC_MSG_RESULT([$with_ping_command])
879 elif $PATH_TO_PING -n -U -w 10 -c 1 127.0.0.1 2>/dev/null | \
880         egrep -i "^round-trip|^rtt" >/dev/null
881 then
882         with_ping_command="$PATH_TO_PING -n -U -w %d -c %d %s"
883         ac_cv_ping_packets_first=yes
884   ac_cv_ping_has_timeout=yes
885         AC_MSG_RESULT([$with_ping_command])
887 elif $PATH_TO_PING -n -U -c 1 127.0.0.1 2>/dev/null | \
888         egrep -i "^round-trip|^rtt" >/dev/null
889 then
890         with_ping_command="$PATH_TO_PING -n -U -c %d %s"
891         ac_cv_ping_packets_first=yes
892         AC_MSG_RESULT([$with_ping_command])
894 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
895         egrep -i "^round-trip|^rtt" >/dev/null
896 then
897         with_ping_command="$PATH_TO_PING -n -c %d %s"
898         ac_cv_ping_packets_first=yes
899         AC_MSG_RESULT([$with_ping_command])
901 elif $PATH_TO_PING -n 127.0.0.1 -c 1 2>/dev/null | \
902         egrep -i "^round-trip|^rtt" >/dev/null
903 then
904         with_ping_command="$PATH_TO_PING -n %s -c %d"
905         AC_MSG_RESULT([$with_ping_command])
907 elif $PATH_TO_PING 127.0.0.1 -n 1 2>/dev/null | \
908         egrep -i "^round-trip|^rtt" >/dev/null
909 then
910         with_ping_command="$PATH_TO_PING %s -n %d"
911         AC_MSG_RESULT([$with_ping_command])
913 elif $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
914         egrep -i "^round-trip|^rtt" >/dev/null
915 then
916         with_ping_command="$PATH_TO_PING -n -s %s 56 %d"
917         AC_MSG_RESULT([$with_ping_command])
919 elif $PATH_TO_PING -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | \
920         egrep -i "^round-trip|^rtt" >/dev/null
921 then
922         with_ping_command="$PATH_TO_PING -n -h %s -s 56 -c %d"
923         AC_MSG_RESULT([$with_ping_command])
925 elif $PATH_TO_PING -n -s 56 -c 1 127.0.0.1 2>/dev/null | \
926         egrep -i "^round-trip|^rtt" >/dev/null
927 then
928         with_ping_command="$PATH_TO_PING -n -s 56 -c %d %s"
929         ac_cv_ping_packets_first=yes
930         AC_MSG_RESULT([$with_ping_command])
932 elif $PATH_TO_PING -n -c 1 127.0.0.1 2>/dev/null | \
933         egrep -i "^round-trip|^rtt" >/dev/null
934 then
935         with_ping_command="$PATH_TO_PING -n -c %d %s"
936         ac_cv_ping_packets_first=yes
937         AC_MSG_RESULT([$with_ping_command])
939 else
940         AC_MSG_WARN([unable to find usable ping syntax])
941 fi
943 AC_DEFINE_UNQUOTED(PING_COMMAND,"$with_ping_command",
944         [path and args for ICMP ping command])
946 if test "x$ac_cv_ping_packets_first" != "xno"
947 then
948         AC_DEFINE(PING_PACKETS_FIRST,1,
949                 [Define if packet count must precede host])
950 fi
952 if test "x$ac_cv_ping_has_timeout" != "xno"
953 then
954         AC_DEFINE(PING_HAS_TIMEOUT,1,
955                 [Define if ping has its own timeout option that should be set])
956 fi
958 AC_ARG_WITH(ping6_command,
959         ACX_HELP_STRING([--with-ping6-command=SYNTAX],
960                 [sets syntax for ICMPv6 ping]),
961         with_ping6_command=$withval,)
963 if test x"$with_ipv6" != xno ; then
964 AC_MSG_CHECKING(for ICMPv6 ping syntax)
965 ac_cv_ping6_packets_first=no
966 if test -n "$with_ping6_command"
967 then
968         AC_MSG_RESULT([(command-line) $with_ping6_command])
969         if test -n "$ac_cv_ping6_packets_first"
970         then
971                 ac_cv_ping6_packets_first=yes
972         fi
974 elif test "x$PATH_TO_PING6" != "x"; then
975         if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
976                 $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
977                 egrep -i "^round-trip|^rtt" >/dev/null
978         then
979                 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
980                 ac_cv_ping6_packets_first=yes
981                 AC_MSG_RESULT([$with_ping6_command])
983         elif $PATH_TO_PING6 -n -U -w 10 -c 1 ::1 2>/dev/null | \
984                 egrep -i "^round-trip|^rtt" >/dev/null
985         then
986                 with_ping6_command="$PATH_TO_PING6 -n -U -w %d -c %d %s"
987                 ac_cv_ping6_packets_first=yes
988                 ac_cv_ping_has_timeout=yes
989                 AC_MSG_RESULT([$with_ping6_command])
991         elif $PATH_TO_PING6 -n -U -c 1 ::1 2>/dev/null | \
992                 egrep -i "^round-trip|^rtt" >/dev/null
993         then
994                 with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
995                 ac_cv_ping6_packets_first=yes
996                 AC_MSG_RESULT([$with_ping6_command])
998         elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
999                 egrep -i "^round-trip|^rtt" >/dev/null
1000         then
1001                 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1002                 ac_cv_ping6_packets_first=yes
1003                 AC_MSG_RESULT([$with_ping6_command])
1005         elif $PATH_TO_PING6 -n ::1 -c 1 2>/dev/null | \
1006                 egrep -i "^round-trip|^rtt" >/dev/null
1007         then
1008                 with_ping6_command="$PATH_TO_PING6 -n %s -c %d"
1009                 AC_MSG_RESULT([$with_ping6_command])
1011         elif $PATH_TO_PING6 ::1 -n 1 2>/dev/null | \
1012                 egrep -i "^round-trip|^rtt" >/dev/null
1013         then
1014                 with_ping6_command="$PATH_TO_PING6 %s -n %d"
1015                 AC_MSG_RESULT([$with_ping6_command])
1017         elif $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
1018                 egrep -i "^round-trip|^rtt" >/dev/null
1019         then
1020                 with_ping6_command="$PATH_TO_PING6 -n -s %s 56 %d"
1021                 AC_MSG_RESULT([$with_ping6_command])
1023         elif $PATH_TO_PING6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1024                 egrep -i "^round-trip|^rtt" >/dev/null
1025         then
1026                 with_ping6_command="$PATH_TO_PING6 -n -h %s -s 56 -c %d"
1027                 AC_MSG_RESULT([$with_ping6_command])
1029         elif $PATH_TO_PING6 -n -s 56 -c 1 ::1 2>/dev/null | \
1030                 egrep -i "^round-trip|^rtt" >/dev/null
1031         then
1032                 with_ping6_command="$PATH_TO_PING6 -n -s 56 -c %d %s"
1033                 ac_cv_ping6_packets_first=yes
1034                 AC_MSG_RESULT([$with_ping_command])
1036         elif $PATH_TO_PING6 -n -c 1 ::1 2>/dev/null | \
1037                 egrep -i "^round-trip|^rtt" >/dev/null
1038         then
1039                 with_ping6_command="$PATH_TO_PING6 -n -c %d %s"
1040                 ac_cv_ping6_packets_first=yes
1041                 AC_MSG_RESULT([$with_ping6_command])
1043         fi
1045 elif test "x$PATH_TO_PING" != "x"; then
1046         if [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
1047                 $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1048                 egrep -i "^round-trip|^rtt" >/dev/null
1049         then
1050                 with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1051                 ac_cv_ping6_packets_first=yes
1052                 AC_MSG_RESULT([$with_ping6_command])
1054         elif $PATH_TO_PING -A inet6 -n -U -c 1 ::1 2>/dev/null | \
1055                 egrep -i "^round-trip|^rtt" >/dev/null
1056         then
1057                 with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
1058                 ac_cv_ping6_packets_first=yes
1059                 AC_MSG_RESULT([$with_ping6_command])
1061         elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1062                 egrep -i "^round-trip|^rtt" >/dev/null
1063         then
1064                 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1065                 ac_cv_ping6_packets_first=yes
1066                 AC_MSG_RESULT([$with_ping6_command])
1068         elif $PATH_TO_PING -A inet6 -n ::1 -c 1 2>/dev/null | \
1069                 egrep -i "^round-trip|^rtt" >/dev/null
1070         then
1071                 with_ping6_command="$PATH_TO_PING -A inet6 -n %s -c %d"
1072                 AC_MSG_RESULT([$with_ping6_command])
1074         elif $PATH_TO_PING -A inet6 ::1 -n 1 2>/dev/null | \
1075                 egrep -i "^round-trip|^rtt" >/dev/null
1076         then
1077                 with_ping6_command="$PATH_TO_PING -A inet6 %s -n %d"
1078                 AC_MSG_RESULT([$with_ping6_command])
1080         elif $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
1081                 egrep -i "^round-trip|^rtt" >/dev/null
1082         then
1083                 with_ping6_command="$PATH_TO_PING -A inet6 -n -s %s 56 %d"
1084                 AC_MSG_RESULT([$with_ping6_command])
1086         elif $PATH_TO_PING -A inet6 -n -h ::1 -s 56 -c 1 2>/dev/null | \
1087                 egrep -i "^round-trip|^rtt" >/dev/null
1088         then
1089                 with_ping6_command="$PATH_TO_PING -A inet6 -n -h %s -s 56 -c %d"
1090                 AC_MSG_RESULT([$with_ping6_command])
1092         elif $PATH_TO_PING -A inet6 -n -s 56 -c 1 ::1 2>/dev/null | \
1093                 egrep -i "^round-trip|^rtt" >/dev/null
1094         then
1095                 with_ping6_command="$PATH_TO_PING -A inet6 -n -s 56 -c %d %s"
1096                 ac_cv_ping6_packets_first=yes
1097                 AC_MSG_RESULT([$with_ping_command])
1099         elif $PATH_TO_PING -A inet6 -n -c 1 ::1 2>/dev/null | \
1100                 egrep -i "^round-trip|^rtt" >/dev/null
1101         then
1102                 with_ping6_command="$PATH_TO_PING -A inet6 -n -c %d %s"
1103                 ac_cv_ping6_packets_first=yes
1104                 AC_MSG_RESULT([$with_ping6_command])
1106         fi
1108 fi
1110 if test "x$with_ping6_command" != "x"; then
1111         AC_DEFINE_UNQUOTED(PING6_COMMAND,"$with_ping6_command",
1112                 [path and args for ICMPv6 ping command])
1113 else
1114         AC_MSG_RESULT([none])
1115 fi
1117 if test "x$ac_cv_ping6_packets_first" != "xno"; then
1118         AC_DEFINE(PING6_PACKETS_FIRST,1,
1119                 [Define if packet count must precede host])
1120 fi
1121 fi
1123 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
1125 AC_MSG_CHECKING(for nslookup syntax)
1126 if test -n "$PATH_TO_NSLOOKUP"
1127 then
1128         if $PATH_TO_NSLOOKUP -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
1129         then
1130                 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP"
1131                 AC_MSG_RESULT([$ac_cv_nslookup_command])
1133         else
1134                 ac_cv_nslookup_command="$PATH_TO_NSLOOKUP -sil"
1135                 AC_MSG_RESULT([$ac_cv_nslookup_command])
1137         fi
1138         EXTRAS="$EXTRAS check_dns"
1140 else
1141         AC_MSG_WARN([nslookup command not found])
1142 fi
1144 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$ac_cv_nslookup_command",
1145         [path and args for nslookup])
1147 AC_PATH_PROG(PATH_TO_HOST,host)
1148 if test -n "$ac_cv_path_PATH_TO_HOST"
1149 then
1150         EXTRAS="$EXTRAS check_dns"
1151 fi
1153 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
1154 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
1156 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
1157 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
1159 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
1160 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
1161 AC_PATH_PROGS(PATH_TO_NTPQ,ntpq)
1162 if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPQ")
1163 then
1164         AC_DEFINE_UNQUOTED(PATH_TO_NTPQ,"$PATH_TO_NTPQ",[path to ntpq binary])
1165         AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary])
1166 else
1167         AC_MSG_WARN([Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization])
1168 fi
1170 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
1171 if test -x "$PATH_TO_LMSTAT"
1172 then
1173         AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
1174 else
1175         AC_MSG_WARN([Get lmstat from Globetrotter Software to monitor flexlm licenses])
1176 fi
1178 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
1179 if test -x "$PATH_TO_SMBCLIENT"
1180 then
1181         AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
1182 else
1183         AC_MSG_WARN([Get smbclient from Samba.org to monitor SMB shares])
1184 fi
1187 AC_PATH_PROG(PATH_TO_WHO,who)
1189 if [$PATH_TO_WHO -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
1190 then
1191         ac_cv_path_to_who="$PATH_TO_WHO -q"
1192 else
1193         ac_cv_path_to_who="$PATH_TO_WHO"
1194 fi
1196 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$ac_cv_path_to_who",
1197         [path and arguments for invoking 'who'])
1199 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
1200 if test -x "$PATH_TO_SNMPGET"
1201 then
1202         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
1203         EXTRAS="$EXTRAS check_hpjd check_snmp"
1204 else
1205         AC_MSG_WARN([Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins])
1206 fi
1208 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
1209 if test -x "$PATH_TO_SNMPGETNEXT"
1210 then
1211         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
1212 fi
1214 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null  )
1215 then
1216         AC_MSG_CHECKING(for Net::SNMP perl module)
1217         AC_MSG_RESULT([found])
1218 else
1219         AC_MSG_WARN([Tried $PERL - install Net::SNMP perl module if you want to use the perl snmp plugins])
1220 fi
1222 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
1223 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
1225 if test -x "$PATH_TO_QUAKESTAT"
1226 then
1227         ac_cv_path_to_qstat="$PATH_TO_QUAKESTAT"
1228         EXTRAS="$EXTRAS check_game"
1230 elif test -x "$PATH_TO_QSTAT"
1231 then
1232         ac_cv_path_to_qstat="$PATH_TO_QSTAT"
1233         EXTRAS="$EXTRAS check_game"
1234 else
1235         AC_MSG_WARN([Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin])
1236 fi
1238 if test $ac_cv_path_to_qstat 
1239 then
1240         AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$ac_cv_path_to_qstat",
1241                 [path to qstat/quakestat])
1242 fi
1244 AC_PATH_PROG(PATH_TO_FPING,fping)
1245 if test -x "$PATH_TO_FPING"
1246 then
1247         AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
1248         EXTRAS="$EXTRAS check_fping"
1249 else
1250         AC_MSG_WARN([Get fping from http://www.fping.com in order to make check_fping plugin])
1251 fi
1253 AC_PATH_PROG(PATH_TO_SSH,ssh)
1255 if test -x "$PATH_TO_SSH"
1256 then
1257         AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
1258         EXTRAS="$EXTRAS check_by_ssh"
1259 else
1260         AC_MSG_WARN([Get ssh in order to make check_by_ssh plugin])
1261 fi
1264 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
1265 if test -x "$PATH_TO_MAILQ"
1266 then
1267         AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
1268 else
1269         AC_MSG_WARN([Could not find mailq or eqivalent])
1270 fi
1272 AC_PATH_PROG(PATH_TO_QMAIL_QSTAT,qmail-qstat)
1273 if test -x "$PATH_TO_QMAIL_QSTAT"
1274 then
1275         AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_QMAIL_QSTAT",[path to qmail-qstat])
1276 else
1277         AC_MSG_WARN([Could not find qmail-qstat or eqivalent])
1278 fi
1280 dnl SWAP info required is amount allocated/available and amount free
1281 dnl The plugin works through all the swap devices and adds up the total swap
1282 dnl available.
1283 AC_PATH_PROG(PATH_TO_SWAP,swap)
1284 if (test -n "$PATH_TO_SWAP")
1285 then
1286 AC_MSG_CHECKING([for $PATH_TO_SWAP format])
1287 if [$PATH_TO_SWAP -l 2>&1 >/dev/null]
1288 then
1289         ac_cv_have_swap=yes
1290         ac_cv_swap_command="$PATH_TO_SWAP -l"
1291         if [$PATH_TO_SWAP -l 2>/dev/null | \
1292                 egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" \
1293                 >/dev/null]
1294         then
1295                 ac_cv_swap_format=[" %*d %*s %*d,%*d %*d %*d %f %f"]
1296                 ac_cv_swap_conv=2048
1297                 AC_MSG_RESULT([using IRIX format swap])
1299         elif [$PATH_TO_SWAP -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null]
1300         then
1301                 ac_cv_swap_format=["%*s %*[0-9,-] %*d %f %f"]
1302                 ac_cv_swap_conv=2048
1303                 AC_MSG_RESULT([using Unixware format swap])
1304         else
1305                 dnl if we don't know what format swap's output is
1306                 dnl we might as well pretend we didn't see it
1307                 ac_cv_have_swap=""
1308                 ac_cv_swap_command=""
1309         fi
1310 fi
1311 dnl end if for PATH_TO_SWAP
1312 fi
1314 AC_PATH_PROG(PATH_TO_SWAPINFO,swapinfo)
1315 if (test -n "$PATH_TO_SWAPINFO")
1316 then
1317 AC_MSG_CHECKING([for $PATH_TO_SWAPINFO format])
1318 if [$PATH_TO_SWAPINFO -k 2>&1 | egrep -i "^Device" >/dev/null]
1319 then
1320         ac_cv_have_swap=yes
1321         ac_cv_swap_command="$PATH_TO_SWAPINFO -k"
1323         if [$PATH_TO_SWAPINFO -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
1324         then
1325                 ac_cv_swap_format=["%*s %f %*d %f"]
1326                 ac_cv_swap_conv=1024
1327                 AC_MSG_RESULT([using FreeBSD format swapinfo])
1328         fi
1330 elif [$PATH_TO_SWAPINFO -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
1331 then
1332         ac_cv_have_swap=yes
1333         ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM",
1334         ac_cv_swap_format=["%*s %f %*d %f"]
1335         ac_cv_swap_conv=1024
1336         AC_MSG_RESULT([using HP-UX format swapinfo])
1337 fi
1338 dnl end if for PATH_TO_SWAPINFO
1339 fi
1341 AC_PATH_PROG(PATH_TO_LSPS,lsps)
1342 if (test -n "$PATH_TO_LSPS")
1343 then
1344 AC_MSG_CHECKING([for $PATH_TO_LSPS format])
1345 if [$PATH_TO_LSPS -a 2>/dev/null | egrep -i "^Page Space" > /dev/null]
1346 then
1347         ac_cv_have_swap=yes
1348         ac_cv_swap_command="$PATH_TO_LSPS -a"
1349         ac_cv_swap_format=["%*s %*s %*s %f%*s %f %*s"]
1350         ac_cv_swap_conv=1
1351         AC_MSG_RESULT([using AIX lsps])
1352 fi
1353 dnl end if for PATH_TO_SWAPINFO
1354 fi
1356 dnl
1357 dnl test for swapctl system call, both the 2-arg and 3-arg variants
1358 dnl fwict, the 2-arg is an SVR4 standard, whereas the 3-arg is shared
1359 dnl in the various BSD's
1360 dnl
1362 AC_CHECK_HEADERS([sys/stat.h sys/param.h])
1363 AC_CHECK_HEADERS([sys/swap.h], [], [], [
1364 #ifdef HAVE_SYS_PARAM_H
1365 #include <sys/param.h>
1366 #endif
1367 ])
1368 AC_CHECK_DECLS([swapctl],,,[
1369                #include <unistd.h>
1370                #include <sys/types.h>
1371                #include <sys/param.h>
1372                #include <sys/stat.h>
1373                #include <sys/swap.h>
1374                ])
1375 AC_CHECK_TYPES([swaptbl_t, swapent_t],,,[
1376                #include <sys/types.h>
1377                #include <sys/param.h>
1378                #include <sys/stat.h>
1379                #include <sys/swap.h>
1380                ])
1381 AC_CHECK_MEMBERS([struct swapent.se_nblks],,,[
1382                #include <unistd.h>
1383                #include <sys/types.h>
1384                #include <sys/param.h>
1385                #include <sys/stat.h>
1386                #include <sys/swap.h>
1387                ])
1389 if test "$ac_cv_have_decl_swapctl" = "yes"; 
1390 then
1391         EXTRAS="$EXTRAS check_swap"
1392         AC_MSG_CHECKING([for 2-arg (SVR4) swapctl])
1393         if test "$ac_cv_type_swaptbl_t" = "yes" -a \
1394                 "$ac_cv_type_swapent_t" = "yes"; 
1395         then
1396                 AC_MSG_RESULT([yes])
1397                 ac_cv_check_swap_swapctl_svr4="1";
1398                 AC_DEFINE([CHECK_SWAP_SWAPCTL_SVR4],1,
1399                           [Define if 2-argument SVR4 swapctl exists])
1400         else
1401                 AC_MSG_RESULT([no])
1402                 AC_MSG_CHECKING([for 3-arg (*BSD) swapctl])
1403                 if test "$ac_cv_member_struct_swapent_se_nblks" = "yes"; 
1404                 then
1405                         AC_MSG_RESULT([yes])
1406                         AC_DEFINE([CHECK_SWAP_SWAPCTL_BSD],1,
1407                                   [Define if 3-argument BSD swapctl exists])
1408                 else
1409                         AC_MSG_RESULT([no])
1410                 fi
1411         fi
1412         AC_MSG_CHECKING([for whether swapctl uses blocks or pages])
1413         if test "$ac_cv_check_swap_swapctl_svr4" = "1";
1414         then
1415                 dnl
1416                 dnl the SVR4 spec returns values in pages
1417                 dnl
1418                 AC_MSG_RESULT([page])
1419                 AC_CHECK_DECLS([sysconf])
1420                 AC_MSG_CHECKING([for system page size])
1421                 if test "$ac_cv_have_decl_sysconf" = "yes";
1422                 then
1423                         AC_MSG_RESULT([determined by sysconf(3)])
1424                         ac_cv_swap_conv="(1048576/sysconf(_SC_PAGESIZE))"
1425                 else
1426                         AC_MSG_WARN([don't know. guessing 4096k])
1427                         ac_cv_swap_conv=256
1428                 fi
1429         else
1430                 dnl
1431                 dnl the BSD spec returns values in blocks
1432                 dnl
1433                 AC_MSG_RESULT([blocks (assuming 512b)])
1434                 ac_cv_swap_conv=2048
1435         fi
1436         AC_DEFINE_UNQUOTED(SWAP_CONVERSION,$ac_cv_swap_conv,
1437                 [Conversion factor to MB])
1438 fi
1439 dnl
1440 dnl end tests for the swapctl system calls
1441 dnl
1444 if test "x$ac_cv_have_swap" != "x" 
1445 then
1446         AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
1447         EXTRAS="$EXTRAS check_swap"
1448 fi
1449 if test "x$ac_cv_swap_command" != "x" 
1450 then
1451         AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$ac_cv_swap_command",
1452                 [Path to swap/swapinfo binary, with any args])
1453         AC_DEFINE_UNQUOTED(SWAP_FORMAT,"$ac_cv_swap_format",
1454                 [Format string for parsing swap output])
1455         AC_DEFINE_UNQUOTED(SWAP_CONVERSION,$ac_cv_swap_conv,
1456                 [Conversion factor to MB])
1457 fi
1459 dnl dunno why this does not work below - use hack (kbd)
1460 dnl fine on linux, broken on solaris
1461 dnl if /bin/test -e "/proc/meminfo"
1462 AC_MSG_CHECKING([for /proc/meminfo])
1463 if [cat /proc/meminfo > /dev/null 2>&1]
1464 then
1465         AC_MSG_RESULT([found /proc/meminfo])
1466         AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
1467         AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes])
1468         EXTRAS="$EXTRAS check_swap"
1469 else
1470         AC_MSG_RESULT([no])
1471 fi
1473 AC_PATH_PROG(PATH_TO_DIG,dig)
1474 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
1475 if test -n "$PATH_TO_DIG"; then
1476         EXTRAS="$EXTRAS check_dig"
1477 fi
1479 if test -f plugins/check_nt.c ; then
1480   EXTRAS="$EXTRAS check_nt"
1481 elif test -f ../plugins/check_nt.c ; then
1482   EXTRAS="$EXTRAS check_nt"
1483 fi
1485 AC_MSG_CHECKING(for va_list)
1486 AC_TRY_COMPILE([#ifdef __STDC__
1487                 #include <stdio.h>
1488                 #include <stdlib.h>
1489                 #include <stdarg.h>
1490                 #else
1491                 #include <sys/types.h>
1492                 #include <stdio.h>
1493                 #include <varargs.h>
1494                 #endif],
1495                 [va_list args;],
1496                 [AC_MSG_RESULT(yes)],
1497                 [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
1499 case $host in
1500         *bsd*)
1501                 AC_DEFINE(__bsd__,1,[bsd specific code in check_dhcp.c])
1502         ;;
1503         *linux*)
1504                 AC_DEFINE(__linux__,1,[sun specific code in check_dhcp.c])
1505         ;;
1506         *sun* | solaris*)
1507                 AC_DEFINE(__sun__,1,[sun specific code in check_dhcp.c])
1508         ;;
1509         *hpux*)  
1510                 AC_DEFINE(__hpux__,1,[hpux specific code in check_dhcp.c])
1511         ;;
1512 esac
1514 AC_SUBST(EXTRAS)
1515 AC_SUBST(EXTRA_NETOBJS)
1516 AC_SUBST(DEPLIBS)
1518 AM_GNU_GETTEXT([no-libtool], [need-ngettext])
1519 AM_GNU_GETTEXT_VERSION(0.11.5)
1521 dnl Check for Redhat spopen problem
1522 dnl Wierd problem where ECHILD is returned from a wait call in error
1523 dnl Only appears to affect nslookup and dig calls. Only affects redhat around
1524 dnl 2.6.9-11 (okay in 2.6.9-5). Redhat investigating root cause
1525 dnl We patch plugins/popen.c
1526 if echo $ac_cv_uname_r | egrep "\.EL$" >/dev/null 2>&1 ; then
1527         AC_MSG_CHECKING(for redhat spopen problem)
1528         ( cd config_test && make && make test ) > /dev/null 2>&1
1529         if test $? -eq 0 ; then
1530                 AC_MSG_RESULT(okay)
1531         else
1532                 AC_MSG_RESULT(error)
1533                 AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, "Problem on redhat with spopen")
1534         fi
1535 fi
1537 dnl External libraries - see ACKNOWLEDGEMENTS
1538 np_COREUTILS
1539 np_CURL
1541 AC_OUTPUT(
1542   Makefile 
1543   lib/Makefile 
1544   m4/Makefile 
1545   plugins/Makefile 
1546   plugins-scripts/Makefile 
1547   plugins-scripts/subst 
1548   plugins-scripts/utils.pm 
1549   plugins-scripts/utils.sh 
1550   command.cfg 
1551   test.pl 
1552   pkg/solaris/pkginfo 
1553   intl/Makefile
1554   po/Makefile.in 
1557 ACX_FEATURE([with],[perl])
1558 ACX_FEATURE([with],[cgiurl])
1559 ACX_FEATURE([with],[nagios-user])
1560 ACX_FEATURE([with],[nagios-group])
1561 ACX_FEATURE([with],[trusted-path])
1562 ACX_FEATURE([with],[ping-command])
1563 ACX_FEATURE([with],[ping6-command])
1564 ACX_FEATURE([with],[lwres])
1565 ACX_FEATURE([with],[ipv6])
1566 ACX_FEATURE([with],[openssl])
1567 ACX_FEATURE([enable],[emulate-getaddrinfo])