Code

Added getaddrinfo.[ch] & gethostbyname.[ch] to provide RFC2553 functions
[nagiosplug.git] / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 AC_REVISION ($Revision$)
3 AC_INIT(Helper.pm)
4 VER=1.3.0
5 REL=1
6 AC_SUBST(VER)
7 AC_SUBST(REL)
8 PACKAGE_VERSION="${VER}"
9 AC_SUBST(PACKAGE_VERSION)
10 PACKAGE_RELEASE="${REL}"
11 AC_SUBST(PACKAGE_RELEASE)
12 AM_INIT_AUTOMAKE(nagios-plugins,${PACKAGE_VERSION})
13 AM_CONFIG_HEADER(plugins/config.h plugins/common.h plugins/version.h plugins/netutils.h plugins/utils.h plugins/popen.h)
14 AC_CANONICAL_HOST
16 AC_PREFIX_DEFAULT(/usr/local/nagios)
18 dnl Figure out how to invoke "install" and what install options to use.
20 AC_PROG_INSTALL
21 AC_SUBST(INSTALL)
23 AC_PROG_CC
24 AC_PROG_MAKE_SET
25 AC_PROG_AWK
27 saved_srcdir=$srcdir
28 srcdir=$srcdir/lib
29 test -f $srcdir/getloadavg.c \
30   || AC_MSG_ERROR([getloadavg.c is not in $srcdir])
31 AC_FUNC_GETLOADAVG
32 srcdir=$saved_srcdir
34 ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD])
35 dnl AM_WITH_REGEX
36 AC_PROG_RANLIB
38 AC_PATH_PROG(ACLOCAL,aclocal)
39 AC_PATH_PROG(AUTOMAKE,automake)
40 AC_PATH_PROG(AUTOCONF,autoconf)
41 AC_PATH_PROG(AUTOHEADER,autoheader)
43 PLUGIN_TEST=`echo $srcdir/plugins/t/*.t|sed -e 's,\.*/plugins/,,g'`
44 AC_SUBST(PLUGIN_TEST)dnl
46 SCRIPT_TEST=`echo $srcdir/plugins-scripts/t/*.t|sed -e 's,\.*/plugins-scripts/,,g'`
47 AC_SUBST(SCRIPT_TEST)dnl
49 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"
50 AC_SUBST(WARRANTY)
52 SUPPORT="Send email to nagios-users@lists.sourceforge.net if you have questions\nregarding use of this software. To submit patches or suggest improvements,\nsend email to nagiosplug-devel@lists.sourceforge.net\n"
53 AC_SUBST(SUPPORT)
55 dnl CGIURL has changed for Nagios with 1.0 beta
56 dnl AC_ARG_WITH(cgiurl,--with-cgiurl=<dir> sets URL for cgi programs,cgiurl=$withval,cgiurl=/nagios/cgi-bin)
57 AC_ARG_WITH(cgiurl,
58         ACX_HELP_STRING([--with-cgiurl=DIR],
59                 [sets URL for cgi programs]),
60         cgiurl=$withval,
61         cgiurl=/nagios/cgi-bin)
62 CGIURL="$cgiurl"
63 AC_DEFINE_UNQUOTED(CGIURL,"$CGIURL",[URL of CGI programs])
65 dnl AC_ARG_WITH(nagios_user,--with-nagios-user=<user> sets user name to run nagios,nagios_usr=$withval,nagios_usr=nagios)
66 AC_ARG_WITH(nagios_user,
67         ACX_HELP_STRING([--with-nagios-user=USER],
68                 [set user name to run nagios]),
69         nagios_usr=$withval,
70         nagios_usr=nagios)
71 dnl AC_ARG_WITH(nagios_group,--with-nagios-group=<group> sets group name to run nagios,nagios_grp=$withval,nagios_grp=nagios)
72 AC_ARG_WITH(nagios_group,
73         ACX_HELP_STRING([--with-nagios-group=GROUP],
74                 [set group name to run nagios]),
75         nagios_grp=$withval,
76         nagios_grp=nagios)
77 AC_SUBST(nagios_usr)
78 AC_SUBST(nagios_grp)
79 INSTALL_OPTS="-o $nagios_usr -g $nagios_grp"
80 AC_SUBST(INSTALL_OPTS)
82 dnl AC_ARG_WITH(trusted_path,--with-trusted-path=/bin:/sbin:/usr/bin:/usr/sbin sets trusted path for executables called by scripts,trusted_path=$withval,trusted_path=/bin:/sbin:/usr/bin:/usr/sbin)
83 AC_ARG_WITH(trusted_path,
84         ACX_HELP_STRING([--with-trusted-path=PATH],
85                 [sets trusted path for executables called by scripts (default=/bin:/sbin:/usr/bin:/usr/sbin)]),
86         trusted_path=$withval,
87         trusted_path=/bin:/sbin:/usr/bin:/usr/sbin)
88 AC_SUBST(trusted_path)
90 EXTRAS=
91 dnl PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/etc:/usr/local/bin:/usr/local/sbin:$PATH
93 LDFLAGS="$LDFLAGS -L."
95 ac_cv_uname_m=`uname -m`
96 ac_cv_uname_s=`uname -s`
97 ac_cv_uname_r=`uname -r`
98 ac_cv_uname_v=`uname -v`
100 dnl Checks for programs.
101 AC_PATH_PROG(PYTHON,python)
102 AC_PATH_PROG(PERL,perl)
103 AC_PATH_PROG(SH,sh)
105 AC_PATH_PROG(HOSTNAME,hostname)
106 AC_PATH_PROG(BASENAME,basename)
108 dnl
109 dnl Check for miscellaneous stuff
110 dnl 
112 case $host_vender-$host_os in
113 sun*)
114         AC_DEFINE(__EXTENSIONS__,1,[Sun's netdb.h needs this for getaddrinfo])
115         ;;
116 osf*)
117         AC_DEFINE(_OSF_SOURCE,1,[OSF needs this for getaddrinfo])
118         ;;
119 esac
121 dnl
122 dnl Checks for libraries.
123 dnl
125 AC_CHECK_LIB(dce,main,SOCKETLIBS="$SOCKETLIBS -ldce")
126 AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
127 AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
128 AC_CHECK_LIB(resolv,main,SOCKETLIBS="$SOCKETLIBS -lresolv")
129 AC_SUBST(SOCKETLIBS)
131 dnl Check for PostgreSQL libraries
132 _SAVEDLIBS="$LIBS"
133 _SAVEDCPPFLAGS="$CPPFLAGS"
134 dnl AC_ARG_WITH(pgsql,--with-pgsql=<dir> sets path to pgsql installation,[PGSQL=$withval])
135 AC_ARG_WITH(pgsql,
136         ACX_HELP_STRING([--with-pgsql=DIR],
137                 [sets path to pgsql installation]),
138         PGSQL=$withval,)
139 AC_CHECK_LIB(crypt,main)
140 if test "$ac_cv_lib_crypt_main" = "yes"; then
141   if test -n "$PGSQL"; then
142     LDFLAGS="$LDFLAGS -L$PGSQL/lib"
143     CPPFLAGS="$CPPFLAGS -I$PGSQL/include"
144   fi
145   AC_CHECK_LIB(pq,PQsetdbLogin,,,-lcrypt)
146   if test "$ac_cv_lib_pq_PQsetdbLogin" = "yes"; then
147     AC_CHECK_HEADERS(pgsql/libpq-fe.h)
148     AC_CHECK_HEADERS(postgresql/libpq-fe.h)
149     AC_CHECK_HEADERS(libpq-fe.h)
150     if [[ -n "$PGSQL" -a "$ac_cv_header_libpq_fe_h" = "yes" ]]; then
151       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
152       PGINCLUDE="-I$PGSQL/include"
153     elif test  "$ac_cv_header_pgsql_libpq_fe_h" = "yes"; then
154       PGLIBS="-lpq -lcrypt"
155       PGINCLUDE="-I/usr/include/pgsql"
156     elif test  "$ac_cv_header_postgresql_libpq_fe_h" = "yes"; then
157       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
158       PGINCLUDE="-I/usr/include/postgresql"
159     elif test  "$ac_cv_header_libpq_fe_h" = "yes"; then
160       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
161       PGINCLUDE="-I$PGSQL/include"
162     fi
163     if test -z "$PGINCLUDE"; then
164       AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
165       AC_MSG_WARN([install PostgreSQL headers to compile this plugin (see REQUIREMENTS).])
166     else
167       AC_SUBST(PGLIBS)
168       AC_SUBST(PGINCLUDE)
169       EXTRAS="$EXTRAS check_pgsql"
170     fi
171   else
172     AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
173     AC_MSG_WARN([LIBS="$LIBS" CPPFLAGS="$CPPFLAGS"])
174     AC_MSG_WARN([install PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
175   fi
176 else
177   AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
178   AC_MSG_WARN([install lib crypt and PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
179 fi
180 LIBS="$_SAVEDLIBS"
181 CPPFLAGS="$_SAVEDCPPFLAGS"
183 dnl Check for radius libraries
184 _SAVEDLIBS="$LIBS"
185 AC_CHECK_LIB(radiusclient,rc_read_config)
186 if test "$ac_cv_lib_radiusclient_rc_read_config" = "yes"; then
187   EXTRAS="$EXTRAS check_radius"
188         RADIUSLIBS="-lradiusclient"
189   AC_SUBST(RADIUSLIBS)
190 else
191   AC_MSG_WARN([Skipping radius plugin])
192   AC_MSG_WARN([install radius libs to compile this plugin (see REQUIREMENTS).])
193 fi
194 LIBS="$_SAVEDLIBS"
196 dnl Check for LDAP libraries
197 _SAVEDLIBS="$LIBS"
198 AC_CHECK_LIB(ldap,main,,,-llber)
199 if test "$ac_cv_lib_ldap_main" = "yes"; then
200   LDAPLIBS="-lldap -llber"\
201   LDAPINCLUDE="-I/usr/include/ldap"
202   AC_SUBST(LDAPLIBS)
203   AC_SUBST(LDAPINCLUDE)
204   EXTRAS="$EXTRAS check_ldap"
205 else
206   AC_MSG_WARN([Skipping LDAP plugin])
207   AC_MSG_WARN([install LDAP libs to compile this plugin (see REQUIREMENTS).])
208 fi
209 LIBS="$_SAVEDLIBS"
212 dnl Check for mysql libraries
213 _SAVEDLIBS="$LIBS"
214 _SAVEDCPPFLAGS="$CPPFLAGS"
215 dnl AC_ARG_WITH(mysql,--with-mysql=<dir> sets path to mysql installation (assumes lib/mysql and include subdirs),[MYSQL=$withval])
216 AC_ARG_WITH(mysql,
217         ACX_HELP_STRING([--with-mysql=DIR],
218                 [sets path to mysql installation (assumes lib/mysql and include subdirs]),
219         MYSQL=$withval,)
220 if test -n "$MYSQL"; then
221   MYSQLLIBDIR=$MYSQL/lib/mysql
222   CPPFLAGS="-I$MYSQL/include"
223   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L$MYSQLLIBDIR ",,-L$MYSQLLIBDIR -lz)
224   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
225 elif test -f /usr/lib/libmysqlclient.so; then
226   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
227   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
228 elif test -f /usr/lib/libmysqlclient.a; then
229   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
230   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
231 elif test -f /usr/lib/mysql/libmysqlclient.so; then
232   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
233   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
234 elif test -f /usr/lib/mysql/libmysqlclient.a; then
235   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
236   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
237 fi
238 if test "$ac_cv_lib_mysqlclient_mysql_init" = "yes" -o "$ac_cv_lib_mysqlclient_mysql_close" = "yes"; then
239   AC_CHECK_HEADERS(mysql/mysql.h mysql/errmsg.h, MYSQLINCLUDE="-I$MYSQL/include" )
240   if test "$ac_cv_header_mysql_mysql_h" = "yes" -a "$ac_cv_header_mysql_errmsg_h" = "yes"; then
241     EXTRAS="$EXTRAS check_mysql"
242     AC_SUBST(MYSQLINCLUDE)
243     AC_SUBST(MYSQLLIBS)
244     AC_SUBST(check_mysql_LDFLAGS)
245   else
246     AC_MSG_WARN([Skipping mysql plugin])
247     AC_MSG_WARN([install mysql client headers to compile this plugin (see REQUIREMENTS).])
248   fi
249 else
250   AC_MSG_WARN([Skipping mysql plugin])
251   AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).])
252 fi
253 CPPFLAGS="$_SAVEDCPPFLAGS"
254 LIBS="$_SAVEDLIBS"
256 dnl Check for OpenSSL location
257 AC_PATH_PROG(OPENSSL,openssl)
258 if test "$OPENSSL" = "/usr/bin/openssl"; then
259   OPENSSL=/usr
260 elif test "$OPENSSL" = "/usr/sbin/openssl"; then
261   OPENSSL=/usr
262 elif test "$OPENSSL" = "/opt/bin/openssl"; then
263   OPENSSL=/opt
264 elif test "$OPENSSL" = "/opt/openssl/bin/openssl"; then
265   OPENSSL=/opt/openssl
266 elif test "$OPENSSL" = "/usr/slocal/bin/openssl"; then
267   OPENSSL=/usr/slocal
268 elif test "$OPENSSL" = "/usr/local/bin/openssl"; then
269   OPENSSL=/usr/local
270 elif test "$OPENSSL" = "/usr/local/ssl/bin/openssl"; then
271   OPENSSL=/usr/local/ssl
272 fi
273 dnl AC_ARG_WITH(openssl,--with-openssl=<dir> sets path to openssl installation,[OPENSSL=$withval])
274 AC_ARG_WITH(openssl,
275         ACX_HELP_STRING([--with-openssl=DIR],
276                 [sets path to openssl installation]),
277         OPENSSL=$withval,)
279 dnl #########################################################################
280 dnl Check if Posix getaddrinfo() is available.  It is also possible to use
281 dnl the version from the lwres library distributed with BIND.
282 dnl #########################################################################
283 AC_ARG_ENABLE([emulate-getaddrinfo],
284               ACX_HELP_STRING([--enable-emulate-getaddrinfo],
285                              [enable getaddrinfo emulation (default=no)]),
286               ,
287               enable_emulate_getaddrinfo=no)
288 AC_ARG_WITH(lwres,
289             ACX_HELP_STRING([--with-lwres=DIR],
290                            [use lwres library for getaddrinfo (default=no)]),
291             ,
292             with_lwres=no)
294 dnl ## enable force to test getaddrinfo.c
295 if test x$enable_emulate_getaddrinfo = xforce ; then
296         enable_emulate_getaddrinfo=yes
297         have_getaddrinfo=no
298 else
300 have_getaddrinfo=no
301 if test x$with_lwres != xno ; then
302         if test "$with_lwres" != yes ; then
303                    CPPFLAGS="-I${with_lwres}/include $CPPFLAGS"
304                    LDFLAGS="-L${with_lwres}/lib $LDFLAGS"
305         fi
306         AC_CHECK_HEADERS(lwres/netdb.h, ,
307                         [AC_MSG_ERROR([cannot find <lwres/netdb.h>])])
308         AC_CHECK_LIB(lwres, lwres_getaddrinfo, ,
309                      [AC_MSG_ERROR([cannot find the lwres library])],
310                      -lnsl -lpthread)
311         have_getaddrinfo=yes
312 fi
314 if test x$have_getaddrinfo != xyes ; then
315         AC_SEARCH_LIBS(getaddrinfo, socket resolv bind nsl c_r cr, have_getaddrinfo=yes)
316 fi
318 dnl # Special nonsense for systems that actually have getaddrinfo but
319 dnl # redefine the name to something else, e.g. OSF
320 if test x$have_getaddrinfo != xyes ; then
321         AC_MSG_CHECKING(if getaddrinfo is redefined in netdb.h)
322         AC_TRY_LINK([
323 #               include <netdb.h>
324         ], [
325                 struct addrinfo hints, *res;
326                 int err;
328                 err = getaddrinfo ("host", "service", &hints, &res);
329         ], [
330                 have_getaddrinfo=yes
331                 AC_MSG_RESULT(yes)
332         ], [AC_MSG_RESULT(no)])
333 fi
335 fi
337 if test x$have_getaddrinfo != xno ; then
338         if test x$enable_emulate_getaddrinfo != xno ; then
339                 AC_MSG_ERROR([getaddrinfo found but emulate-getaddrinfo was enabled])
340         fi
341         AC_DEFINE(HAVE_GETADDRINFO, 1,
342                   [Does system provide RFC 2553/Posix getaddrinfo?])
343 else
344         if test x$enable_emulate_getaddrinfo != xyes ; then
345                 AC_MSG_ERROR([getaddrinfo not found: try --with-lwres or --enable-emulate-getaddrinfo])
346         fi
347         LIBOBJS="$LIBOBJS getaddrinfo.o"
348 fi
350 if test x"$enable_emulate_getaddrinfo" != xno ; then
351     have_resolver=no
353   dnl  Try for getipnodebyname
354     AC_SEARCH_LIBS(getipnodebyname, resolv bind nsl c_r cr, have_resolver=yes)
355     if test x"$have_resolver" != xno ; then
356          AC_DEFINE(HAVE_GETIPNODEBYNAME, 1,
357                    [Set when getipnodebyname is available])
358     fi
360   dnl  Try for gethostbyname_r
361     if test x"$have_resolver" = xno ; then
362         AC_SEARCH_LIBS(gethostbyname_r, resolv bind nsl c_r cr,
363                        [have_resolver=yes
364                         ACX_WHICH_GETHOSTBYNAME_R])
365     fi
367   dnl  Try for gethostbyname
368     if test x"$have_resolver" = xno ; then
369         if test x"$enable_pthreads" != xno ; then
370             AC_MSG_WARN([using threads but cannot find gethostbyname_r or getipnodebyname])
371         fi
372         AC_SEARCH_LIBS(gethostbyname, resolv bind nsl, ,
373                        [AC_MSG_ERROR([cannot find gethostbyname])])
374     fi
375     LIBOBJS="$LIBOBJS gethostbyname.o"
377     AC_CACHE_CHECK([for IPv6 support], acx_cv_sys_use_ipv6, [
378             AC_TRY_COMPILE([
379 #               include <netinet/in.h>
380             ], [
381                 struct sockaddr_in6 sin6;
382                 void *p;
384                 sin6.sin6_family = AF_INET6;
385                 sin6.sin6_port = 587;
386                 p = &sin6.sin6_addr;
387             ], [acx_cv_sys_use_ipv6=yes], [acx_cv_sys_use_ipv6=no])
388     ])
389     if test x"$acx_cv_sys_use_ipv6" != xno ; then
390             AC_DEFINE(USE_IPV6,1,[Enable IPv6 support])
391     fi
392 fi
394 AC_CHECK_HEADERS(krb5.h,FOUNDINCLUDE=yes,FOUNDINCLUDE=no)
395 if test "$FOUNDINCLUDE" = "no"; then
396   _SAVEDCPPFLAGS="$CPPFLAGS"
397   CPPFLAGS="$_SAVEDCPPFLAGS -I/usr/kerberos/include"
398   unset ac_cv_header_krb5_h
399   AC_CHECK_HEADERS(krb5.h,
400                    KRB5INCLUDE="-I/usr/kerberos/include"
401                    FOUNDINCLUDE=yes,
402                    FOUNDINCLUDE=no)
403 fi
404 AC_SUBST(KRBINCLUDE)
405 if test "$FOUNDINCLUDE" = "no"; then
406   CPPFLAGS="$_SAVEDCPPFLAGS"
407 fi
409 dnl Check for OpenSSL header files
410 unset FOUNDINCLUDE
411 _SAVEDCPPFLAGS="$CPPFLAGS"
412 CPPFLAGS="$CPPFLAGS -I$OPENSSL/include"
413 AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h,
414                  SSLINCLUDE="-I$OPENSSL/include"
415                  FOUNDINCLUDE=yes,
416                  FOUNDINCLUDE=no)
417 if test "$FOUNDINCLUDE" = "no"; then
418   AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h,
419                    SSLINCLUDE="-I$OPENSSL/include"
420                    FOUNDINCLUDE=yes,
421                    FOUNDINCLUDE=no)
422 fi
423 AC_SUBST(SSLINCLUDE)
424 if test "$FOUNDINCLUDE" = "no"; then
425   CPPFLAGS="$_SAVEDCPPFLAGS"
426 fi
428 dnl Check for crypto lib
429 _SAVEDLIBS="$LIBS"
430 AC_CHECK_LIB(crypto,CRYPTO_lock,,,-L$OPENSSL/lib)
431 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
432   dnl Check for SSL lib
433   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)
434 fi
435 LIBS="$_SAVEDLIBS"
437 dnl test headers and libs to decide whether check_http should use SSL
438 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
439   if test "$ac_cv_lib_ssl_main" = "yes"; then
440     if test "$FOUNDINCLUDE" = "yes"; then
441       AC_SUBST(SSLLIBS)
442       AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
443     fi
444   fi
445 fi
446 CPPFLAGS="$_SAVEDCPPFLAGS"
448 dnl
449 dnl Checks for header files.
450 dnl
452 AC_HEADER_STDC
453 AC_HEADER_TIME
454 AC_HEADER_SYS_WAIT
455 AC_CHECK_HEADERS(signal.h strings.h string.h syslog.h unistd.h uio.h errno.h regex.h sys/types.h sys/time.h sys/socket.h sys/loadavg.h)
456 AC_CHECK_HEADERS(stdarg.h sys/unistd.h unistd.h ctype.h sys/wait.h stdlib.h)
458 dnl Checks for typedefs, structures, and compiler characteristics.
459 AC_C_CONST
460 AC_STRUCT_TM
461 AC_TYPE_PID_T
462 AC_TYPE_SIZE_T
463 AC_TYPE_SIGNAL
465 AC_CHECK_SIZEOF(int,cross)
466 AC_CHECK_SIZEOF(long,cross)
467 AC_CHECK_SIZEOF(short,cross)
469 AC_CACHE_CHECK([for long long],ac_cv_have_longlong,[
470 AC_TRY_RUN([#include <stdio.h>
471 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
472 ac_cv_have_longlong=yes,ac_cv_have_longlong=no,ac_cv_have_longlong=cross)])
473 if test x"$ac_cv_have_longlong" = x"yes"; then
474     AC_DEFINE(HAVE_LONGLONG,1,[Define if system has long long type])
475 fi
478 # Check if the compiler supports the LL prefix on long long integers.
479 # AIX needs this.
481 AC_CACHE_CHECK([for LL suffix on long long integers],ac_cv_compiler_supports_ll, [
482     AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
483         ac_cv_compiler_supports_ll=yes,ac_cv_compiler_supports_ll=no)])
484 if test x"$ac_cv_compiler_supports_ll" = x"yes"; then
485    AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Define if compiler support long long])
486 fi
488 AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE_VA_COPY,[
489 AC_TRY_LINK([#include <stdarg.h>
490 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
491 ac_cv_HAVE_VA_COPY=yes,ac_cv_HAVE_VA_COPY=no)])
492 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
493     AC_DEFINE(HAVE_VA_COPY,1,[Define if system has va_copy])
494 fi
496 AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
497 AC_TRY_RUN([
498 #include <sys/types.h>
499 #include <stdarg.h>
500 void foo(const char *format, ...) { 
501        va_list ap;
502        int len;
503        char buf[5];
505        va_start(ap, format);
506        len = vsnprintf(buf, 0, format, ap);
507        va_end(ap);
508        if (len != 5) exit(1);
510        va_start(ap, format);
511        len = vsnprintf(0, 0, format, ap);
512        va_end(ap);
513        if (len != 5) exit(1);
515        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
517        exit(0);
519 main() { foo("hello"); }
520 ],
521 ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
522 if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
523     AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
524 fi
526 #AC_HAVE_DECL(asprintf, [#include <stdio.h>])
527 #AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
528 #AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
529 #AC_HAVE_DECL(snprintf, [#include <stdio.h>])
531 AC_CHECK_FUNC(snprintf,
532               AC_DEFINE(HAVE_SNPRINTF,1,[Define if snprintf is present]),
533               LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
534 AC_CHECK_FUNC(vsnprintf,
535               AC_DEFINE(HAVE_VSNPRINTF,1,[Define if vsnprintf is present]),
536               LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
537 AC_CHECK_FUNC(vasprintf,
538               AC_DEFINE(HAVE_VASPRINTF,1,[Define if vasprintf is present]),
539               LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
540 AC_CHECK_FUNC(asprintf,
541               AC_DEFINE(HAVE_ASPRINTF,1,[Define if asprintf is present]),
542               LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
544 if test x"$ac_cv_HAVE_SNPRINTF" = x"no" -o x"$ac_cv_HAVE_VSNPRINTF" = x"no" -o x"$ac_cv_HAVE_VASPRINTF" = x"no" -o x"$ac_cv_HAVE_ASPRINTF" = x"no"; then
545   LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a"
546 fi
548 AC_TRY_COMPILE([#include <sys/time.h>],
549                [struct timeval *tv;
550                 struct timezone *tz;],
551                AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
552                AC_TRY_COMPILE([#include <sys/time.h>],
553                               [struct timeval *tv;
554                                struct timezone *tz;
555                                gettimeofday(tv, tz);],
556                               AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
557                               AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
559 dnl Checks for library functions.
560 AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul)
562 AC_MSG_CHECKING(for type of socket size)
563 AC_TRY_COMPILE([#include <stdlib.h>
564                 #include <sys/types.h>
565                 #include <sys/socket.h>],
566                [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
567                [AC_DEFINE(SOCKET_SIZE_TYPE, size_t, [Define type of socket size])
568                 AC_MSG_RESULT(size_t)],
569                [AC_DEFINE(SOCKET_SIZE_TYPE, int, [Define type of socket size])
570                 AC_MSG_RESULT(int)])
572 if test -f "/proc/loadavg"
573 then
574   AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
575   AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg])
576 fi
578 AC_PATH_PROG(PATH_TO_PS,ps)
579 dnl  STAT UCOMM              VSZ   RSS USER       UID  PPID COMMAND
580 if ps -weo 'stat comm vsz rss user uid ppid args' 2>/dev/null | egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
581 then
582         AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
583         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
584         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -weo 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
585         EXTRAS="$EXTRAS check_nagios"
586         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -weo 'stat uid ppid comm args'",[Verbatim command to execute for ps in check_procs])
587         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
588         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -weo 'vsz comm'",[Verbatim command to execute for ps in check_vsz])
589         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[Format string for scanning ps output in check_vsz])
590         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -weo 'rss comm'",[Verbatim command to execute for ps in check_rss])
591         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[Format string for scanning ps output in check_rss])
592   echo "      ps syntax... $PATH_TO_PS -weo 'stat comm vsz rss user ppid args'"
593 dnl FreeBSD
594 elif ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PPID"] >/dev/null
595 then
596         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
597         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
598         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxo 'state uid ppid command'",[])
599         EXTRAS="$EXTRAS check_nagios"
600         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxco 'state uid ppid command command'",[])
601         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
602         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxco 'vsz command'",[])
603         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
604         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxco 'rss command'",[])
605         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
606         echo "      ps syntax... $PATH_TO_PS -Ao 'state command vsz rss'"
607 dnl BSD-like mode in RH 6.1
608 elif ps waxno 'state comm vsz rss uid user ppid args' 2>/dev/null | egrep -i ["^S +COMMAND +VSZ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
609 then
610         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
611         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
612         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxno 'state user ppid comm'",[])
613         EXTRAS="$EXTRAS check_nagios"
614         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxno 'state uid ppid comm args'",[])
615         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
616         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxno 'vsz comm'",[])
617         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
618         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxno 'rss comm'",[])
619         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
620         echo "      ps syntax... $PATH_TO_PS -waxco 'state comm vsz rss'"
621 dnl SunOS 4.1.3:
622 dnl  F  UID  PID  PPID  CP  PRI  NI  SZ  RSS  WCHAN  STAT  TT  TIME  COMMAND
623 dnl
624 elif ps -laxnwww 2>/dev/null | egrep -i ["^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND"] >/dev/null
625 then
626         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
627         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[])
628         EXTRAS="$EXTRAS check_nagios"
629         AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
630         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -laxnwww",[])
631         AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %d %*s %d %*s %*s %*s %*s %*s %*s %s %*s %*s %n%s",[Format string for scanning ps output in check_procs])
632         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[])
633         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
634         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[])
635         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %d",[])
636         echo "      ps syntax... $PATH_TO_PS laxnwww"
637 dnl Debian Linux / procps v1.2.9:
638 dnl  FLAGS   UID   PID  PPID PRI  NI   SIZE   RSS WCHAN       STA TTY TIME COMMAND
639 dnl    100     0     1     0   0   0    776    76  c0131c8c   S  ffff  0:11 init [2]
640 dnl
641 elif ps laxnwww 2>/dev/null | egrep -i ["^ *F(LAGS)? +UID +PID +PPID +PRI +NI +(VSZ)|(SIZE) +RSS +WCHAN +STAT? TTY +TIME +COMMAND"] >/dev/null
642 then
643         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
644         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[])
645         EXTRAS="$EXTRAS check_nagios"
646         AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
647         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS laxnwww",[])
648         AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s",[Format string for scanning ps output in check_procs])
649         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[])
650         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d",[])
651         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[])
652         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
653         echo "      ps syntax... $PATH_TO_PS laxnwww"
654 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
655 elif ps -axo 'stat comm vsz rss user uid ppid args' 2>/dev/null | egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
656 then
657         AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
658         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
659         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -axo 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
660         EXTRAS="$EXTRAS check_nagios"
661         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -axo 'stat uid ppid comm args'",[Verbatim command to execute for ps in check_procs])
662         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
663         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -axo 'vsz comm'",[Verbatim command to execute for ps in check_vsz])
664         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[Format string for scanning ps output in check_vsz])
665         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -axo 'rss comm'",[Verbatim command to execute for ps in check_rss])
666         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[Format string for scanning ps output in check_rss])
667   echo "      ps syntax... $PATH_TO_PS -axo 'stat comm vsz rss user ppid args'"
668 dnl AIX 4.3.3 - needs verification. This works for Tru64 - needs %*[ +] in PS_FORMAT
669 elif ps -ao 'stat comm vsz rss user uid ppid args' 2>/dev/null | egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
670 then
671         AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
672         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
673         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
674         EXTRAS="$EXTRAS check_nagios"
675         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'stat uid ppid comm args'")
676         AC_DEFINE_UNQUOTED(PS_FORMAT,[["%s%*[ +] %d %d %s %n"]],[Format string for scanning ps output in check_procs])
677         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz comm'",[])
678         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
679         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss comm'",[])
680         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
681   echo "      ps syntax... $PATH_TO_PS -ao 'stat comm vsz rss user ppid args'"
682 elif ps -eo 's comm vsz rss user uid ppid args' 2>/dev/null | egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
683 then
684         AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
685         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
686         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -eo 's user ppid args'",[Verbatim command to execute for ps in check_netsaint])
687         EXTRAS="$EXTRAS check_nagios"
688         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -eo 's uid ppid comm args'")
689         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
690         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -eo 'vsz comm'",[])
691         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
692         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -eo 'rss comm'",[])
693         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
694         echo "      ps syntax... $PATH_TO_PS -eo 's  comm vsz rss user ppid args'"
695 elif ps -Ao 's comm vsz rss uid user ppid args' 2>/dev/null | egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
696 then
697         AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
698         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
699         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 's user ppid args'",[Verbatim command to execute for ps in check_netsaint])
700         EXTRAS="$EXTRAS check_nagios"
701         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 's uid ppid comm args'",[])
702         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
703         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
704         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
705         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
706         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
707         echo "      ps syntax... $PATH_TO_PS -Ao 's comm vsz rss'"
708 elif ps -Ao 'status comm vsz rss uid user ppid args' 2>/dev/null | egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
709 then
710         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
711         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
712         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'status user ppid args'",[Verbatim command to execute for ps in check_netsaint])
713         EXTRAS="$EXTRAS check_nagios"
714         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'status uid ppid comm args'",[])
715         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
716         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
717         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
718         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
719         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
720         echo "      ps syntax... $PATH_TO_PS -Ao 'status comm vsz rss'"
721 elif ps -Ao 'state comm vsz rss uid user ppid args' 2>/dev/null | egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
722 then
723         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
724         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
725         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'state user ppid args'",[Verbatim command to execute for ps in check_netsaint])
726         EXTRAS="$EXTRAS check_nagios"
727         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'state uid ppid comm args'",[])
728         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
729         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
730         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
731         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
732         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
733         echo "      ps syntax... $PATH_TO_PS -Ao 'state comm vsz rss'"
734 dnl wonder who takes state instead of stat
735 elif ps -ao 'state command vsz rss user ppid args' 2>/dev/null | egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
736 then
737         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
738         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
739         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'state user ppid args'",[])
740         EXTRAS="$EXTRAS check_nagios"
741         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'state uid ppid command args'",[])
742         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
743         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz command'",[])
744         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
745         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss command'",[])
746         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
747         echo "      ps syntax... $PATH_TO_PS -ao 'state command vsz rss'"
748 dnl IRIX 53
749 elif ps -el 2>/dev/null | egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
750 then
751         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
752         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
753         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
754         AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s",[Format string for scanning ps output in check_procs])
755         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
756         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d",[])
757         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
758         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
759         echo "      ps syntax... $PATH_TO_PS -el"
760 dnl IRIX 63
761 elif ps -el 2>/dev/null | egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +ADDR +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
762 then
763         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
764         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
765         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
766         AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s",[Format string for scanning ps output in check_procs])
767         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
768         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d",[])
769         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
770         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
771         echo "      ps syntax... $PATH_TO_PS -el"
772 dnl    
773 dnl AIX 4.1:
774 dnl     F S      UID   PID  PPID   C PRI NI ADDR  SZ  RSS   WCHAN    TTY  TIME CMD
775 dnl    303 A        0     0     0 120  16 -- 1c07  20   24              -  0:45 swapper
776 elif ps -el 2>/dev/null | egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
777 then
778         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
779         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
780         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
781         AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s",[Format string for scanning ps output in check_procs])
782         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
783         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
784         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
785         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
786         echo "      ps syntax... $PATH_TO_PS -el"
787 dnl AIX?
788 elif ps glaxen 2>/dev/null | egrep -i ["^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND"] >/dev/null
789 then
790         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
791         AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
792         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS glaxen",[])
793         AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s",[Format string for scanning ps output in check_procs])
794         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS glaxen",[])
795         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d",[])
796         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS glaxen",[])
797         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
798         echo "      ps syntax... $PATH_TO_PS glaxen"
799 dnl MacOSX / Darwin
800 dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
801 dnl STAT      VSZ    RSS   UID USER     PPID UCOMM            COMMAND
802 dnl Ss       1308    272     0 root        0 init             /sbin/init
803 elif ps waxo 'state vsz rss uid user ppid ucomm command' 2>/dev/null | egrep -i ["^STAT +VSZ +RSS +UID +USER +PPID +UCOMM +COMMAND"] >/dev/null
804 then
805         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
806         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
807         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxo 'state uid ppid command'",[])
808         EXTRAS="$EXTRAS check_nagios"
809         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxo 'state uid ppid ucomm command'",[])
810         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
811         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxco 'vsz command'",[])
812         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
813         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxco 'rss command'",[])
814         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
815         echo "      ps syntax... $PATH_TO_PS waxo 'state vsz rss command'"
816 dnl UnixWare 
817 elif ps -Al 2>/dev/null | egrep -i ["^ *F +S +UID +PID +PPID +CLS +PRI +NI +C +ADDR +SZ +WCHAN +TTY +TIME +COMD"] >/dev/null
818 then
819         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
820         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
821         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Al",[])
822         AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s",[Format string for scanning ps output in check_procs])
823         if ps -Ao 'vsz comm' 2>/dev/null | egrep -i ["^ *VSZ +COMMAND"] >/dev/null
824         then
825                 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
826                 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %d",[])
827         fi
828         echo "      ps syntax... $PATH_TO_PS -Al"
829 else
830         echo "** Unable to find usable ps syntax"
831 fi
833 dnl AC_ARG_WITH(df_command,--with-df-command=<syntax>,sets syntax for df,DF_COMMAND=$withval)
834 AC_ARG_WITH(df_command,
835         ACX_HELP_STRING([--with-df-command=SYNTAX],
836                 [sets syntax for df]),
837         DF_COMMAND=$withval,)
838 if test -n "$DF_COMMAND"
839 then
840         AC_DEFINE_UNQUOTED(DF_COMMAND,"$DF_COMMAND",[path and args for df command])
841 elif df -Pk 2>/dev/null | egrep -i ["^(/dev/|[a-zA-Z]:)[a-z0-9/\\]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/\\]*"] >/dev/null
842 then
843         AC_PATH_PROG(PATH_TO_DF,df)
844         AC_MSG_RESULT([      df syntax... $PATH_TO_DF -Pk])
845         AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -Pk",[path and args for df command])
846 elif df -k 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
847 then
848         AC_PATH_PROG(PATH_TO_DF,df)
849         AC_MSG_RESULT([      df syntax... $PATH_TO_DF -k])
850         AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -k",[path and args for df command])
851 elif df 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
852 then
853         AC_PATH_PROG(PATH_TO_DF,df)
854         AC_MSG_RESULT([      df syntax... $PATH_TO_DF])
855         AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF",[path and args for df command])
856 elif bdf 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
857 then
858         AC_PATH_PROG(PATH_TO_DF,bdf)
859         AC_MSG_RESULT([      df syntax... $PATH_TO_DF])
860         AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF",[path and args for df command])
861 else
862         AC_MSG_WARN("unable to find usable df syntax")
863 fi
865 AC_PATH_PROG(PATH_TO_PING,ping)
867 dnl AC_ARG_WITH(ping_command,--with-ping-command=<syntax> sets syntax for ping,PING_COMMAND=$withval)
868 AC_ARG_WITH(ping_command,
869         ACX_HELP_STRING([--with-ping-command=SYNTAX],
870                 [sets syntax for ping]),
871         PING_COMMAND=$withval,)
872 if test -n "$PING_COMMAND"
873 then
874         echo "      ping syntax... (command-line) $PING_COMMAND"
875         if test -n "$PING_PACKETS_FIRST"
876         then
877                 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
878         fi
879 elif [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && ping -n -s 127.0.0.1 56 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
880 then
881         PING_COMMAND="$PATH_TO_PING -n -U -c %d %s"
882         AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
883         echo "      ping syntax... $PATH_TO_PING -n -U -c <count> <host>"
884 elif ping -n -U -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
885 then
886         PING_COMMAND="$PATH_TO_PING -n -U -c %d %s"
887         AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
888         echo "      ping syntax... $PATH_TO_PING -n -U -c <count> <host>"
889 elif ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
890 then
891         PING_COMMAND="$PATH_TO_PING -n -c %d %s"
892         AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
893         echo "      ping syntax... $PATH_TO_PING -n -c <count> <host>"
894 elif ping -n 127.0.0.1 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
895 then
896         PING_COMMAND="$PATH_TO_PING -n %s -c %d"
897         echo "      ping syntax... $PATH_TO_PING -n <host> -c <count>"
898 elif ping 127.0.0.1 -n 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
899 then
900         PING_COMMAND="$PATH_TO_PING %s -n %d"
901         echo "      ping syntax... $PATH_TO_PING <host> -n <count>"
902 elif ping -n -s 127.0.0.1 56 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
903 then
904         PING_COMMAND="$PATH_TO_PING -n -s %s 56 %d"
905         echo "      ping syntax... $PATH_TO_PING -n -s <host> 56 <count>"
906 elif ping -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
907 then
908         PING_COMMAND="$PATH_TO_PING -n -h %s -s 56 -c %d"
909         echo "      ping syntax... $PATH_TO_PING -n -h <host> -s 56 -c <count>"
910 elif ping -n -s 56 -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
911 then
912         PING_COMMAND="$PATH_TO_PING -n -s 56 -c %d %s"
913         AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
914         echo "      ping syntax... $PATH_TO_PING -n -s 56 -c <count> <host>"
915 elif ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
916 then
917         PING_COMMAND="$PATH_TO_PING -n -c %d %s"
918         AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
919         echo "      ping syntax... $PATH_TO_PING -n -c <count> <host>"
920 else
921         AC_MSG_WARN("unable to find usable ping syntax")
922 fi
923 AC_DEFINE_UNQUOTED(PING_COMMAND,"$PING_COMMAND",[path and args for ping command])
925 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
926 if test -n "$ac_cv_path_PATH_TO_NSLOOKUP"
927 then
928         if nslookup -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
929         then
930                 AC_MSG_RESULT([      nslookup syntax... $PATH_TO_NSLOOKUP])
931                 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP",[path and args for nslookup])
932         else
933                 AC_MSG_RESULT([      nslookup syntax... $PATH_TO_NSLOOKUP -sil])
934                 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP -sil",[path and args for nslookup])
935         fi
936         EXTRAS="$EXTRAS check_dns"
937 else
938         AC_MSG_WARN([nslookup command not found])
939 fi
941 AC_PATH_PROG(PATH_TO_HOST,host)
942 if test -n "$ac_cv_path_PATH_TO_HOST"
943 then
944         EXTRAS="$EXTRAS check_dns"
945 fi
947 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
948 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
950 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
951 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
953 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
954 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
955 AC_PATH_PROGS(PATH_TO_NTPQ,ntpq)
956 if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPQ")
957 then
958         AC_DEFINE_UNQUOTED(PATH_TO_NTPQ,"$PATH_TO_NTPQ",[path to ntpq binary])
959         AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary])
960 else
961         echo "** Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization"
962 fi
964 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
965 if test -x "$PATH_TO_LMSTAT"
966 then
967         AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
968 else
969         echo "** Get lmstat from Globetrotter Software to monitor flexlm licenses"
970 fi
972 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
973 if test -x "$PATH_TO_SMBCLIENT"
974 then
975         AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
976 else
977         echo "** Get smbclient from Samba.org to monitor SMB shares"
978 fi
981 AC_PATH_PROG(PATH_TO_WHO,who)
982 if [who -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
983 then
984         AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO -q",[path and arguments for invoking 'who'])
985 else
986         AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO",[path and arguments for invoking 'who'])
987 fi
989 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
990 if test -x "$PATH_TO_SNMPGET"
991 then
992         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
993         EXTRAS="$EXTRAS check_hpjd check_snmp"
994 else
995         echo "** Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins"
996 fi
998 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
999 if test -x "$PATH_TO_SNMPGETNEXT"
1000 then
1001         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
1002 fi
1004 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null  )
1005 then
1006         echo "Found Net::SNMP perl module"
1007 else
1008         echo "** Tried $PERL - install Net::SNMP perl module if you want to"
1009         echo "        use the perl snmp plugins"
1010 fi
1012 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
1013 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
1014 if test -x "$PATH_TO_QUAKESTAT"
1015 then
1016         AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QUAKESTAT",[path to qstat/quakestat])
1017         EXTRAS="$EXTRAS check_game"
1018 elif test -x "$PATH_TO_QSTAT"
1019 then
1020         AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QSTAT",[path to qstat/quakestat])
1021         EXTRAS="$EXTRAS check_game"
1022 else
1023         echo "** Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin"
1024 fi
1026 AC_PATH_PROG(PATH_TO_FPING,fping)
1027 if test -x "$PATH_TO_FPING"
1028 then
1029         AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
1030         EXTRAS="$EXTRAS check_fping"
1031 else
1032         echo "** Get fping from http://www.fping.com in order to make check_fping plugin"
1033 fi
1035 AC_PATH_PROG(PATH_TO_SSH,ssh)
1036 if test -x "$PATH_TO_SSH"
1037 then
1038         AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
1039         EXTRAS="$EXTRAS check_by_ssh"
1040 else
1041         echo "** Get ssh in order to make check_by_ssh plugin"
1042 fi
1045 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
1046 if test -x "$PATH_TO_MAILQ"
1047 then
1048         AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
1049 else
1050         echo "** Could not find mailq or eqivalent"
1051 fi
1053 dnl SWAP info required is amount allocated/available and amount free
1054 dnl The plugin works through all the swap devices and adds up the total swap
1055 dnl available.
1057 dnl dunno why this does not work below - use hack (kbd)
1058 dnl fine on linux, broken on solaris
1059 dnl if /bin/test -e "/proc/meminfo"
1061 if [cat /proc/meminfo > /dev/null 2>&1]
1062 then
1063         echo "found /proc/meminfo"
1064         AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
1065         AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes])
1066         EXTRAS="$EXTRAS check_swap"
1067 elif [swap -l 2>&1 >/dev/null]
1068 then
1069         echo "found swap command"
1070         AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
1071         AC_PATH_PROG(PATH_TO_SWAP,swap)
1072         AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -l",[Path to swap/swapinfo binary, with any args])
1073         if [swap -l 2>/dev/null | egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" >/dev/null]
1074         then
1075                 AC_DEFINE_UNQUOTED(SWAP_FORMAT,[" %*d %*s %*d,%*d %*d %*d %d %d"],[Format string for parsing swap output])
1076                 echo "      using IRIX format"
1077         elif [swap -l 2>/dev/null | egrep -i "^swapfile +dev +swaplo +blocks +free" >/dev/null]
1078         then
1079                 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %*[[0-9,-]] %*d %d %d"],[Format string for parsing swap output])
1080                 echo "      using Solaris format"
1081         elif [swap -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null]
1082         then
1083                 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %*[[0-9,-]] %*d %d %d"],[Format string for parsing swap output])
1084                 echo "      using Unixware format"
1085         fi
1086         EXTRAS="$EXTRAS check_swap"
1087 elif [swapinfo -k 2>&1 | egrep -i "^Device" >/dev/null]
1088 then
1089         echo "found swapinfo command"
1090         AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
1091         AC_PATH_PROG(PATH_TO_SWAP,swapinfo)
1092         AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -k",[Path to swap/swapinfo binary, with any args])
1093         if [swapinfo -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
1094         then
1095                 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %d %*d %d"],[Format string for parsing swap output])
1096                 echo "      using FreeBSD format"
1097         fi
1098         EXTRAS="$EXTRAS check_swap"
1099 elif [swapinfo -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
1100 then
1101         AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
1102         AC_PATH_PROG(PATH_TO_SWAP,swapinfo)
1103         AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -dfM",[Path to swap/swapinfo binary, with any args])
1104         AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %d %*d %d"],[Format string for parsing swap output ])
1105         echo "        using HP-UX format HP-UX"
1106 fi
1108 AC_PATH_PROG(PATH_TO_DIG,dig)
1109 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
1110 if test -n "$PATH_TO_DIG"; then
1111         EXTRAS="$EXTRAS check_dig"
1112 fi
1114 if test -f plugins/check_nt.c ; then
1115   EXTRAS="$EXTRAS check_nt"
1116 elif test -f ../plugins/check_nt.c ; then
1117   EXTRAS="$EXTRAS check_nt"
1118 fi
1120 AC_TRY_COMPILE([#ifdef __STDC__
1121 #include <stdio.h>
1122 #include <stdlib.h>
1123 #include <stdarg.h>
1124 #else
1125 #include <sys/types.h>
1126 #include <stdio.h>
1127 #include <varargs.h>
1128 #endif],
1129 [va_list args;],
1130 [AC_MSG_RESULT(yes)],
1131 [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
1133 AC_SUBST(EXTRAS)
1134 AC_SUBST(DEPLIBS)
1136 AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"${VERSION}",[package version])
1138 AC_OUTPUT(Makefile subst lib/Makefile plugins/Makefile plugins-scripts/Makefile plugins-scripts/subst plugins-scripts/utils.pm plugins-scripts/utils.sh command.cfg test.pl,echo timestamp > plugins/stamp-h1;echo timestamp > plugins/stamp-h2;echo timestamp > plugins/stamp-h3;echo timestamp > plugins/stamp-h4;echo timestamp > plugins/stamp-h5;echo timestamp > plugins/stamp-h6;PATH=.:..:$PATH subst.sh command.cfg)