7fccb98dba53b6a2260408b12eb2a452cfa2a10e
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
477 #
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);
518 }
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)