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=beta3
6 AC_SUBST(VER)
7 AC_SUBST(REL)
8 PACKAGE_VERSION="${VER}-${REL}"
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)
15 AC_PREFIX_DEFAULT(/usr/local/nagios)
17 dnl Figure out how to invoke "install" and what install options to use.
19 AC_PROG_INSTALL
20 AC_SUBST(INSTALL)
22 AC_PROG_CC
23 AC_PROG_MAKE_SET
24 AC_PROG_AWK
26 AC_FUNC_GETLOADAVG([lib])
27 ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD])
28 dnl AM_WITH_REGEX
29 AC_PROG_RANLIB
31 AC_PATH_PROG(ACLOCAL,aclocal)
32 AC_PATH_PROG(AUTOMAKE,automake)
33 AC_PATH_PROG(AUTOCONF,autoconf)
34 AC_PATH_PROG(AUTOHEADER,autoheader)
36 PLUGIN_TEST=`echo $srcdir/plugins/t/*.t|sed -e 's,\.*/plugins/,,g'`
37 AC_SUBST(PLUGIN_TEST)dnl
39 SCRIPT_TEST=`echo $srcdir/plugins-scripts/t/*.t|sed -e 's,\.*/plugins-scripts/,,g'`
40 AC_SUBST(SCRIPT_TEST)dnl
42 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"
43 AC_SUBST(WARRANTY)
45 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"
46 AC_SUBST(SUPPORT)
48 dnl CGIURL has changed for Nagios with 1.0 beta
49 AC_ARG_WITH(cgiurl,--with-cgiurl=<dir> sets URL for cgi programs,cgiurl=$withval,cgiurl=/nagios/cgi-bin)
50 CGIURL="$cgiurl"
51 AC_DEFINE_UNQUOTED(CGIURL,"$CGIURL",[URL of CGI programs])
53 AC_ARG_WITH(nagios_user,--with-nagios-user=<user> sets user name to run nagios,nagios_usr=$withval,nagios_usr=nagios)
54 AC_ARG_WITH(nagios_group,--with-nagios-group=<group> sets group name to run nagios,nagios_grp=$withval,nagios_grp=nagios)
55 AC_SUBST(nagios_usr)
56 AC_SUBST(nagios_grp)
57 INSTALL_OPTS="-o $nagios_usr -g $nagios_grp"
58 AC_SUBST(INSTALL_OPTS)
60 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)
61 AC_SUBST(trusted_path)
63 EXTRAS=
64 dnl PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/etc:/usr/local/bin:/usr/local/sbin:$PATH
66 LDFLAGS="$LDFLAGS -L."
68 ac_cv_uname_m=`uname -m`
69 ac_cv_uname_s=`uname -s`
70 ac_cv_uname_r=`uname -r`
71 ac_cv_uname_v=`uname -v`
73 dnl Checks for programs.
74 AC_PATH_PROG(PYTHON,python)
75 AC_PATH_PROG(PERL,perl)
76 AC_PATH_PROG(SH,sh)
78 AC_PATH_PROG(HOSTNAME,hostname)
79 AC_PATH_PROG(BASENAME,basename)
82 dnl
83 dnl Checks for libraries.
84 dnl
86 AC_CHECK_LIB(dce,main,SOCKETLIBS="$SOCKETLIBS -ldce")
87 AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
88 AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
89 AC_CHECK_LIB(resolv,main,SOCKETLIBS="$SOCKETLIBS -lresolv")
90 AC_SUBST(SOCKETLIBS)
92 dnl Check for PostgreSQL libraries
93 _SAVEDLIBS="$LIBS"
94 _SAVEDCPPFLAGS="$CPPFLAGS"
95 AC_ARG_WITH(pgsql,--with-pgsql=<dir> sets path to pgsql installation,[PGSQL=$withval])
96 AC_CHECK_LIB(crypt,main)
97 if test "$ac_cv_lib_crypt_main" = "yes"; then
98 if test -n "$PGSQL"; then
99 LDFLAGS="$LDFLAGS -L$PGSQL/lib"
100 CPPFLAGS="$CPPFLAGS -I$PGSQL/include"
101 fi
102 AC_CHECK_LIB(pq,PQsetdbLogin,,,-lcrypt)
103 if test "$ac_cv_lib_pq_PQsetdbLogin" = "yes"; then
104 AC_CHECK_HEADERS(pgsql/libpq-fe.h)
105 AC_CHECK_HEADERS(postgresql/libpq-fe.h)
106 AC_CHECK_HEADERS(libpq-fe.h)
107 if [[ -n "$PGSQL" -a "$ac_cv_header_libpq_fe_h" = "yes" ]]; then
108 PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
109 PGINCLUDE="-I$PGSQL/include"
110 elif test "$ac_cv_header_pgsql_libpq_fe_h" = "yes"; then
111 PGLIBS="-lpq -lcrypt"
112 PGINCLUDE="-I/usr/include/pgsql"
113 elif test "$ac_cv_header_postgresql_libpq_fe_h" = "yes"; then
114 PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
115 PGINCLUDE="-I/usr/include/postgresql"
116 elif test "$ac_cv_header_libpq_fe_h" = "yes"; then
117 PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
118 PGINCLUDE="-I$PGSQL/include"
119 fi
120 if test -z "$PGINCLUDE"; then
121 AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
122 AC_MSG_WARN([install PostgreSQL headers to compile this plugin (see REQUIREMENTS).])
123 else
124 AC_SUBST(PGLIBS)
125 AC_SUBST(PGINCLUDE)
126 EXTRAS="$EXTRAS check_pgsql"
127 fi
128 else
129 AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
130 AC_MSG_WARN([LIBS="$LIBS" CPPFLAGS="$CPPFLAGS"])
131 AC_MSG_WARN([install PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
132 fi
133 else
134 AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
135 AC_MSG_WARN([install lib crypt and PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
136 fi
137 LIBS="$_SAVEDLIBS"
138 CPPFLAGS="$_SAVEDCPPFLAGS"
140 dnl Check for radius libraries
141 _SAVEDLIBS="$LIBS"
142 AC_CHECK_LIB(radiusclient,rc_read_config)
143 if test "$ac_cv_lib_radiusclient_rc_read_config" = "yes"; then
144 EXTRAS="$EXTRAS check_radius"
145 RADIUSLIBS="-lradiusclient"
146 AC_SUBST(RADIUSLIBS)
147 else
148 AC_MSG_WARN([Skipping radius plugin])
149 AC_MSG_WARN([install radius libs to compile this plugin (see REQUIREMENTS).])
150 fi
151 LIBS="$_SAVEDLIBS"
153 dnl Check for LDAP libraries
154 _SAVEDLIBS="$LIBS"
155 AC_CHECK_LIB(ldap,main,,,-llber)
156 if test "$ac_cv_lib_ldap_main" = "yes"; then
157 LDAPLIBS="-lldap -llber"\
158 LDAPINCLUDE="-I/usr/include/ldap"
159 AC_SUBST(LDAPLIBS)
160 AC_SUBST(LDAPINCLUDE)
161 EXTRAS="$EXTRAS check_ldap"
162 else
163 AC_MSG_WARN([Skipping LDAP plugin])
164 AC_MSG_WARN([install LDAP libs to compile this plugin (see REQUIREMENTS).])
165 fi
166 LIBS="$_SAVEDLIBS"
169 dnl Check for mysql libraries
170 _SAVEDLIBS="$LIBS"
171 _SAVEDCPPFLAGS="$CPPFLAGS"
172 AC_ARG_WITH(mysql,--with-mysql=<dir> sets path to mysql installation (assumes lib/mysql and include subdirs),[MYSQL=$withval])
173 if test -n "$MYSQL"; then
174 MYSQLLIBDIR=$MYSQL/lib/mysql
175 CPPFLAGS="-I$MYSQL/include"
176 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L$MYSQLLIBDIR ",,-L$MYSQLLIBDIR -lz)
177 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
178 elif test -f /usr/lib/libmysqlclient.so; then
179 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
180 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
181 elif test -f /usr/lib/libmysqlclient.a; then
182 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
183 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
184 elif test -f /usr/lib/mysql/libmysqlclient.so; then
185 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
186 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
187 elif test -f /usr/lib/mysql/libmysqlclient.a; then
188 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
189 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
190 fi
191 if test "$ac_cv_lib_mysqlclient_mysql_init" = "yes" -o "$ac_cv_lib_mysqlclient_mysql_close" = "yes"; then
192 AC_CHECK_HEADERS(mysql/mysql.h mysql/errmsg.h, MYSQLINCLUDE="-I$MYSQL/include" )
193 if test "$ac_cv_header_mysql_mysql_h" = "yes" -a "$ac_cv_header_mysql_errmsg_h" = "yes"; then
194 EXTRAS="$EXTRAS check_mysql"
195 AC_SUBST(MYSQLINCLUDE)
196 AC_SUBST(MYSQLLIBS)
197 AC_SUBST(check_mysql_LDFLAGS)
198 else
199 AC_MSG_WARN([Skipping mysql plugin])
200 AC_MSG_WARN([install mysql client headers to compile this plugin (see REQUIREMENTS).])
201 fi
202 else
203 AC_MSG_WARN([Skipping mysql plugin])
204 AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).])
205 fi
206 CPPFLAGS="$_SAVEDCPPFLAGS"
207 LIBS="$_SAVEDLIBS"
209 dnl Check for OpenSSL location
210 AC_PATH_PROG(OPENSSL,openssl)
211 if test "$OPENSSL" = "/usr/bin/openssl"; then
212 OPENSSL=/usr
213 elif test "$OPENSSL" = "/usr/sbin/openssl"; then
214 OPENSSL=/usr
215 elif test "$OPENSSL" = "/opt/bin/openssl"; then
216 OPENSSL=/opt
217 elif test "$OPENSSL" = "/opt/openssl/bin/openssl"; then
218 OPENSSL=/opt/openssl
219 elif test "$OPENSSL" = "/usr/slocal/bin/openssl"; then
220 OPENSSL=/usr/slocal
221 elif test "$OPENSSL" = "/usr/local/bin/openssl"; then
222 OPENSSL=/usr/local
223 elif test "$OPENSSL" = "/usr/local/ssl/bin/openssl"; then
224 OPENSSL=/usr/local/ssl
225 fi
226 AC_ARG_WITH(openssl,--with-openssl=<dir> sets path to openssl installation,[OPENSSL=$withval])
228 AC_CHECK_HEADERS(krb5.h,FOUNDINCLUDE=yes,FOUNDINCLUDE=no)
229 if test "$FOUNDINCLUDE" = "no"; then
230 _SAVEDCPPFLAGS="$CPPFLAGS"
231 CPPFLAGS="$_SAVEDCPPFLAGS -I/usr/kerberos/include"
232 unset ac_cv_header_krb5_h
233 AC_CHECK_HEADERS(krb5.h,
234 KRB5INCLUDE="-I/usr/kerberos/include"
235 FOUNDINCLUDE=yes,
236 FOUNDINCLUDE=no)
237 fi
238 AC_SUBST(KRBINCLUDE)
239 if test "$FOUNDINCLUDE" = "no"; then
240 CPPFLAGS="$_SAVEDCPPFLAGS"
241 fi
243 dnl Check for OpenSSL header files
244 unset FOUNDINCLUDE
245 _SAVEDCPPFLAGS="$CPPFLAGS"
246 CPPFLAGS="$CPPFLAGS -I$OPENSSL/include"
247 AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h,
248 SSLINCLUDE="-I$OPENSSL/include"
249 FOUNDINCLUDE=yes,
250 FOUNDINCLUDE=no)
251 if test "$FOUNDINCLUDE" = "no"; then
252 AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h,
253 SSLINCLUDE="-I$OPENSSL/include"
254 FOUNDINCLUDE=yes,
255 FOUNDINCLUDE=no)
256 fi
257 AC_SUBST(SSLINCLUDE)
258 if test "$FOUNDINCLUDE" = "no"; then
259 CPPFLAGS="$_SAVEDCPPFLAGS"
260 fi
262 dnl Check for crypto lib
263 _SAVEDLIBS="$LIBS"
264 AC_CHECK_LIB(crypto,CRYPTO_lock,,,-L$OPENSSL/lib)
265 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
266 dnl Check for SSL lib
267 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)
268 fi
269 LIBS="$_SAVEDLIBS"
271 dnl test headers and libs to decide whether check_http should use SSL
272 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
273 if test "$ac_cv_lib_ssl_main" = "yes"; then
274 if test "$FOUNDINCLUDE" = "yes"; then
275 AC_SUBST(SSLLIBS)
276 AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
277 fi
278 fi
279 fi
280 CPPFLAGS="$_SAVEDCPPFLAGS"
282 dnl
283 dnl Checks for header files.
284 dnl
286 AC_HEADER_STDC
287 AC_HEADER_TIME
288 AC_HEADER_SYS_WAIT
289 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)
290 AC_CHECK_HEADERS(stdarg.h sys/unistd.h unistd.h ctype.h sys/wait.h stdlib.h)
292 dnl Checks for typedefs, structures, and compiler characteristics.
293 AC_C_CONST
294 AC_STRUCT_TM
295 AC_TYPE_PID_T
296 AC_TYPE_SIZE_T
297 AC_TYPE_SIGNAL
299 AC_CHECK_SIZEOF(int,cross)
300 AC_CHECK_SIZEOF(long,cross)
301 AC_CHECK_SIZEOF(short,cross)
303 AC_CACHE_CHECK([for long long],ac_cv_have_longlong,[
304 AC_TRY_RUN([#include <stdio.h>
305 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
306 ac_cv_have_longlong=yes,ac_cv_have_longlong=no,ac_cv_have_longlong=cross)])
307 if test x"$ac_cv_have_longlong" = x"yes"; then
308 AC_DEFINE(HAVE_LONGLONG,1,[Define if system has long long type])
309 fi
311 #
312 # Check if the compiler supports the LL prefix on long long integers.
313 # AIX needs this.
315 AC_CACHE_CHECK([for LL suffix on long long integers],ac_cv_compiler_supports_ll, [
316 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
317 ac_cv_compiler_supports_ll=yes,ac_cv_compiler_supports_ll=no)])
318 if test x"$ac_cv_compiler_supports_ll" = x"yes"; then
319 AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Define if compiler support long long])
320 fi
322 AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE_VA_COPY,[
323 AC_TRY_LINK([#include <stdarg.h>
324 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
325 ac_cv_HAVE_VA_COPY=yes,ac_cv_HAVE_VA_COPY=no)])
326 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
327 AC_DEFINE(HAVE_VA_COPY,1,[Define if system has va_copy])
328 fi
330 AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
331 AC_TRY_RUN([
332 #include <sys/types.h>
333 #include <stdarg.h>
334 void foo(const char *format, ...) {
335 va_list ap;
336 int len;
337 char buf[5];
339 va_start(ap, format);
340 len = vsnprintf(buf, 0, format, ap);
341 va_end(ap);
342 if (len != 5) exit(1);
344 va_start(ap, format);
345 len = vsnprintf(0, 0, format, ap);
346 va_end(ap);
347 if (len != 5) exit(1);
349 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
351 exit(0);
352 }
353 main() { foo("hello"); }
354 ],
355 ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
356 if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
357 AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
358 fi
360 #AC_HAVE_DECL(asprintf, [#include <stdio.h>])
361 #AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
362 #AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
363 #AC_HAVE_DECL(snprintf, [#include <stdio.h>])
365 AC_CHECK_FUNC(snprintf,
366 AC_DEFINE(HAVE_SNPRINTF,1,[Define if snprintf is present]),
367 LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
368 AC_CHECK_FUNC(vsnprintf,
369 AC_DEFINE(HAVE_VSNPRINTF,1,[Define if vsnprintf is present]),
370 LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
371 AC_CHECK_FUNC(vasprintf,
372 AC_DEFINE(HAVE_VASPRINTF,1,[Define if vasprintf is present]),
373 LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
374 AC_CHECK_FUNC(asprintf,
375 AC_DEFINE(HAVE_ASPRINTF,1,[Define if asprintf is present]),
376 LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
378 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
379 LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a"
380 fi
382 AC_TRY_COMPILE([#include <sys/time.h>],
383 [struct timeval *tv;
384 struct timezone *tz;],
385 AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
386 AC_TRY_COMPILE([#include <sys/time.h>],
387 [struct timeval *tv;
388 struct timezone *tz;
389 gettimeofday(tv, tz);],
390 AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
391 AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
393 dnl Checks for library functions.
394 AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul)
396 AC_MSG_CHECKING(for type of socket size)
397 AC_TRY_COMPILE([#include <stdlib.h>
398 #include <sys/types.h>
399 #include <sys/socket.h>],
400 [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
401 [AC_DEFINE(SOCKET_SIZE_TYPE, size_t, [Define type of socket size])
402 AC_MSG_RESULT(size_t)],
403 [AC_DEFINE(SOCKET_SIZE_TYPE, int, [Define type of socket size])
404 AC_MSG_RESULT(int)])
406 if test -f "/proc/loadavg"
407 then
408 AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
409 AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg])
410 fi
412 AC_PATH_PROG(PATH_TO_PS,ps)
413 dnl STAT UCOMM VSZ RSS USER UID PPID COMMAND
414 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
415 then
416 AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
417 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
418 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -weo 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
419 EXTRAS="$EXTRAS check_nagios"
420 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -weo 'stat uid ppid comm args'",[Verbatim command to execute for ps in check_procs])
421 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
422 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -weo 'vsz comm'",[Verbatim command to execute for ps in check_vsz])
423 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[Format string for scanning ps output in check_vsz])
424 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -weo 'rss comm'",[Verbatim command to execute for ps in check_rss])
425 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[Format string for scanning ps output in check_rss])
426 echo " ps syntax... $PATH_TO_PS -weo 'stat comm vsz rss user ppid args'"
427 dnl FreeBSD
428 elif ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PPID"] >/dev/null
429 then
430 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
431 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
432 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxo 'state uid ppid command'",[])
433 EXTRAS="$EXTRAS check_nagios"
434 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxco 'state uid ppid command command'",[])
435 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
436 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxco 'vsz command'",[])
437 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
438 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxco 'rss command'",[])
439 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
440 echo " ps syntax... $PATH_TO_PS -Ao 'state command vsz rss'"
441 dnl BSD-like mode in RH 6.1
442 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
443 then
444 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
445 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
446 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxno 'state user ppid comm'",[])
447 EXTRAS="$EXTRAS check_nagios"
448 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxno 'state uid ppid comm args'",[])
449 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
450 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxno 'vsz comm'",[])
451 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
452 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxno 'rss comm'",[])
453 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
454 echo " ps syntax... $PATH_TO_PS -waxco 'state comm vsz rss'"
455 dnl SunOS 4.1.3:
456 dnl F UID PID PPID CP PRI NI SZ RSS WCHAN STAT TT TIME COMMAND
457 dnl
458 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
459 then
460 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
461 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[])
462 EXTRAS="$EXTRAS check_nagios"
463 AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
464 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -laxnwww",[])
465 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])
466 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[])
467 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
468 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[])
469 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %d",[])
470 echo " ps syntax... $PATH_TO_PS laxnwww"
471 dnl Debian Linux / procps v1.2.9:
472 dnl FLAGS UID PID PPID PRI NI SIZE RSS WCHAN STA TTY TIME COMMAND
473 dnl 100 0 1 0 0 0 776 76 c0131c8c S ffff 0:11 init [2]
474 dnl
475 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
476 then
477 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
478 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[])
479 EXTRAS="$EXTRAS check_nagios"
480 AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
481 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS laxnwww",[])
482 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])
483 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[])
484 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d",[])
485 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[])
486 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
487 echo " ps syntax... $PATH_TO_PS laxnwww"
488 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
489 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
490 then
491 AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
492 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
493 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -axo 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
494 EXTRAS="$EXTRAS check_nagios"
495 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -axo 'stat uid ppid comm args'",[Verbatim command to execute for ps in check_procs])
496 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
497 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -axo 'vsz comm'",[Verbatim command to execute for ps in check_vsz])
498 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[Format string for scanning ps output in check_vsz])
499 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -axo 'rss comm'",[Verbatim command to execute for ps in check_rss])
500 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[Format string for scanning ps output in check_rss])
501 echo " ps syntax... $PATH_TO_PS -axo 'stat comm vsz rss user ppid args'"
502 dnl AIX 4.3.3 - needs verification. This works for Tru64 - needs %*[ +] in PS_FORMAT
503 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
504 then
505 AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
506 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
507 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
508 EXTRAS="$EXTRAS check_nagios"
509 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'stat uid ppid comm args'")
510 AC_DEFINE_UNQUOTED(PS_FORMAT,[["%s%*[ +] %d %d %s %n"]],[Format string for scanning ps output in check_procs])
511 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz comm'",[])
512 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
513 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss comm'",[])
514 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
515 echo " ps syntax... $PATH_TO_PS -ao 'stat comm vsz rss user ppid args'"
516 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
517 then
518 AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
519 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
520 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -eo 's user ppid args'",[Verbatim command to execute for ps in check_netsaint])
521 EXTRAS="$EXTRAS check_nagios"
522 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -eo 's uid ppid comm args'")
523 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
524 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -eo 'vsz comm'",[])
525 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
526 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -eo 'rss comm'",[])
527 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
528 echo " ps syntax... $PATH_TO_PS -eo 's comm vsz rss user ppid args'"
529 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
530 then
531 AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
532 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
533 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 's user ppid args'",[Verbatim command to execute for ps in check_netsaint])
534 EXTRAS="$EXTRAS check_nagios"
535 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 's uid ppid comm args'",[])
536 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
537 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
538 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
539 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
540 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
541 echo " ps syntax... $PATH_TO_PS -Ao 's comm vsz rss'"
542 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
543 then
544 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
545 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
546 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'status user ppid args'",[Verbatim command to execute for ps in check_netsaint])
547 EXTRAS="$EXTRAS check_nagios"
548 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'status uid ppid comm args'",[])
549 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
550 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
551 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
552 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
553 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
554 echo " ps syntax... $PATH_TO_PS -Ao 'status comm vsz rss'"
555 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
556 then
557 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
558 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
559 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'state user ppid args'",[Verbatim command to execute for ps in check_netsaint])
560 EXTRAS="$EXTRAS check_nagios"
561 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'state uid ppid comm args'",[])
562 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
563 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
564 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
565 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
566 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
567 echo " ps syntax... $PATH_TO_PS -Ao 'state comm vsz rss'"
568 dnl wonder who takes state instead of stat
569 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
570 then
571 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
572 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
573 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'state user ppid args'",[])
574 EXTRAS="$EXTRAS check_nagios"
575 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'state uid ppid command args'",[])
576 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
577 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz command'",[])
578 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
579 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss command'",[])
580 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
581 echo " ps syntax... $PATH_TO_PS -ao 'state command vsz rss'"
582 dnl IRIX 53
583 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
584 then
585 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
586 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
587 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
588 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])
589 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
590 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d",[])
591 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
592 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
593 echo " ps syntax... $PATH_TO_PS -el"
594 dnl IRIX 63
595 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
596 then
597 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
598 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
599 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
600 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])
601 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
602 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d",[])
603 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
604 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
605 echo " ps syntax... $PATH_TO_PS -el"
606 dnl
607 dnl AIX 4.1:
608 dnl F S UID PID PPID C PRI NI ADDR SZ RSS WCHAN TTY TIME CMD
609 dnl 303 A 0 0 0 120 16 -- 1c07 20 24 - 0:45 swapper
610 elif ps -el 2>/dev/null | egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
611 then
612 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
613 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
614 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
615 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])
616 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
617 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
618 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
619 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
620 echo " ps syntax... $PATH_TO_PS -el"
621 dnl AIX?
622 elif ps glaxen 2>/dev/null | egrep -i ["^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND"] >/dev/null
623 then
624 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
625 AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
626 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS glaxen",[])
627 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])
628 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS glaxen",[])
629 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d",[])
630 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS glaxen",[])
631 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
632 echo " ps syntax... $PATH_TO_PS glaxen"
633 dnl MacOSX / Darwin
634 dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
635 dnl STAT VSZ RSS UID USER PPID UCOMM COMMAND
636 dnl Ss 1308 272 0 root 0 init /sbin/init
637 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
638 then
639 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
640 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
641 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxo 'state uid ppid command'",[])
642 EXTRAS="$EXTRAS check_nagios"
643 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxo 'state uid ppid ucomm command'",[])
644 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
645 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxco 'vsz command'",[])
646 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
647 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxco 'rss command'",[])
648 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
649 echo " ps syntax... $PATH_TO_PS waxo 'state vsz rss command'"
650 dnl UnixWare
651 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
652 then
653 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
654 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
655 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Al",[])
656 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])
657 if ps -Ao 'vsz comm' 2>/dev/null | egrep -i ["^ *VSZ +COMMAND"] >/dev/null
658 then
659 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
660 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %d",[])
661 fi
662 echo " ps syntax... $PATH_TO_PS -Al"
663 else
664 echo "** Unable to find usable ps syntax"
665 fi
667 AC_ARG_WITH(df_command,--with-df-command=<syntax> sets syntax for df,DF_COMMAND=$withval)
668 if test -n "$DF_COMMAND"
669 then
670 AC_DEFINE_UNQUOTED(DF_COMMAND,"$DF_COMMAND",[path and args for df command])
671 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
672 then
673 AC_PATH_PROG(PATH_TO_DF,df)
674 AC_MSG_RESULT([ df syntax... $PATH_TO_DF -Pk])
675 AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -Pk",[path and args for df command])
676 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
677 then
678 AC_PATH_PROG(PATH_TO_DF,df)
679 AC_MSG_RESULT([ df syntax... $PATH_TO_DF -k])
680 AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -k",[path and args for df command])
681 elif df 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
682 then
683 AC_PATH_PROG(PATH_TO_DF,df)
684 AC_MSG_RESULT([ df syntax... $PATH_TO_DF])
685 AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF",[path and args for df command])
686 elif bdf 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
687 then
688 AC_PATH_PROG(PATH_TO_DF,bdf)
689 AC_MSG_RESULT([ df syntax... $PATH_TO_DF])
690 AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF",[path and args for df command])
691 else
692 AC_MSG_WARN("unable to find usable df syntax")
693 fi
695 AC_PATH_PROG(PATH_TO_PING,ping)
697 AC_ARG_WITH(ping_command,--with-ping-command=<syntax> sets syntax for ping,PING_COMMAND=$withval)
698 if test -n "$PING_COMMAND"
699 then
700 echo " ping syntax... (command-line) $PING_COMMAND"
701 if test -n "$PING_PACKETS_FIRST"
702 then
703 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
704 fi
705 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
706 then
707 PING_COMMAND="$PATH_TO_PING -n -U -c %d %s"
708 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
709 echo " ping syntax... $PATH_TO_PING -n -U -c <count> <host>"
710 elif ping -n -U -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
711 then
712 PING_COMMAND="$PATH_TO_PING -n -U -c %d %s"
713 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
714 echo " ping syntax... $PATH_TO_PING -n -U -c <count> <host>"
715 elif ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
716 then
717 PING_COMMAND="$PATH_TO_PING -n -c %d %s"
718 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
719 echo " ping syntax... $PATH_TO_PING -n -c <count> <host>"
720 elif ping -n 127.0.0.1 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
721 then
722 PING_COMMAND="$PATH_TO_PING -n %s -c %d"
723 echo " ping syntax... $PATH_TO_PING -n <host> -c <count>"
724 elif ping 127.0.0.1 -n 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
725 then
726 PING_COMMAND="$PATH_TO_PING %s -n %d"
727 echo " ping syntax... $PATH_TO_PING <host> -n <count>"
728 elif ping -n -s 127.0.0.1 56 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
729 then
730 PING_COMMAND="$PATH_TO_PING -n -s %s 56 %d"
731 echo " ping syntax... $PATH_TO_PING -n -s <host> 56 <count>"
732 elif ping -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
733 then
734 PING_COMMAND="$PATH_TO_PING -n -h %s -s 56 -c %d"
735 echo " ping syntax... $PATH_TO_PING -n -h <host> -s 56 -c <count>"
736 elif ping -n -s 56 -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
737 then
738 PING_COMMAND="$PATH_TO_PING -n -s 56 -c %d %s"
739 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
740 echo " ping syntax... $PATH_TO_PING -n -s 56 -c <count> <host>"
741 elif ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null
742 then
743 PING_COMMAND="$PATH_TO_PING -n -c %d %s"
744 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
745 echo " ping syntax... $PATH_TO_PING -n -c <count> <host>"
746 else
747 AC_MSG_WARN("unable to find usable ping syntax")
748 fi
749 AC_DEFINE_UNQUOTED(PING_COMMAND,"$PING_COMMAND",[path and args for ping command])
751 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
752 if test -n "$ac_cv_path_PATH_TO_NSLOOKUP"
753 then
754 if nslookup -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null
755 then
756 AC_MSG_RESULT([ nslookup syntax... $PATH_TO_NSLOOKUP])
757 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP",[path and args for nslookup])
758 else
759 AC_MSG_RESULT([ nslookup syntax... $PATH_TO_NSLOOKUP -sil])
760 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP -sil",[path and args for nslookup])
761 fi
762 EXTRAS="$EXTRAS check_dns"
763 else
764 AC_MSG_WARN([nslookup command not found])
765 fi
767 AC_PATH_PROG(PATH_TO_HOST,host)
768 if test -n "$ac_cv_path_PATH_TO_HOST"
769 then
770 EXTRAS="$EXTRAS check_dns"
771 fi
773 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
774 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
776 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
777 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
779 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
780 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
781 AC_PATH_PROGS(PATH_TO_NTPQ,ntpq)
782 if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPQ")
783 then
784 AC_DEFINE_UNQUOTED(PATH_TO_NTPQ,"$PATH_TO_NTPQ",[path to ntpq binary])
785 AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary])
786 else
787 echo "** Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization"
788 fi
790 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
791 if test -x "$PATH_TO_LMSTAT"
792 then
793 AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
794 else
795 echo "** Get lmstat from Globetrotter Software to monitor flexlm licenses"
796 fi
798 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
799 if test -x "$PATH_TO_SMBCLIENT"
800 then
801 AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
802 else
803 echo "** Get smbclient from Samba.org to monitor SMB shares"
804 fi
807 AC_PATH_PROG(PATH_TO_WHO,who)
808 if [who -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
809 then
810 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO -q",[path and arguments for invoking 'who'])
811 else
812 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO",[path and arguments for invoking 'who'])
813 fi
815 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
816 if test -x "$PATH_TO_SNMPGET"
817 then
818 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
819 EXTRAS="$EXTRAS check_hpjd check_snmp"
820 else
821 echo "** Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins"
822 fi
824 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
825 if test -x "$PATH_TO_SNMPGETNEXT"
826 then
827 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
828 fi
830 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null )
831 then
832 echo "Found Net::SNMP perl module"
833 else
834 echo "** Tried $PERL - install Net::SNMP perl module if you want to"
835 echo " use the perl snmp plugins"
836 fi
838 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
839 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
840 if test -x "$PATH_TO_QUAKESTAT"
841 then
842 AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QUAKESTAT",[path to qstat/quakestat])
843 EXTRAS="$EXTRAS check_game"
844 elif test -x "$PATH_TO_QSTAT"
845 then
846 AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QSTAT",[path to qstat/quakestat])
847 EXTRAS="$EXTRAS check_game"
848 else
849 echo "** Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin"
850 fi
852 AC_PATH_PROG(PATH_TO_FPING,fping)
853 if test -x "$PATH_TO_FPING"
854 then
855 AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
856 EXTRAS="$EXTRAS check_fping"
857 else
858 echo "** Get fping from http://www.fping.com in order to make check_fping plugin"
859 fi
861 AC_PATH_PROG(PATH_TO_SSH,ssh)
862 if test -x "$PATH_TO_SSH"
863 then
864 AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
865 EXTRAS="$EXTRAS check_by_ssh"
866 else
867 echo "** Get ssh in order to make check_by_ssh plugin"
868 fi
871 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
872 if test -x "$PATH_TO_MAILQ"
873 then
874 AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
875 else
876 echo "** Could not find mailq or eqivalent"
877 fi
879 dnl SWAP info required is amount allocated/available and amount free
880 dnl The plugin works through all the swap devices and adds up the total swap
881 dnl available.
883 dnl dunno why this does not work below - use hack (kbd)
884 dnl fine on linux, broken on solaris
885 dnl if /bin/test -e "/proc/meminfo"
887 if [cat /proc/meminfo > /dev/null 2>&1]
888 then
889 echo "found /proc/meminfo"
890 AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
891 AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes])
892 EXTRAS="$EXTRAS check_swap"
893 elif [swap -l 2>&1 >/dev/null]
894 then
895 echo "found swap command"
896 AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
897 AC_PATH_PROG(PATH_TO_SWAP,swap)
898 AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -l",[Path to swap/swapinfo binary, with any args])
899 if [swap -l 2>/dev/null | egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" >/dev/null]
900 then
901 AC_DEFINE_UNQUOTED(SWAP_FORMAT,[" %*d %*s %*d,%*d %*d %*d %d %d"],[Format string for parsing swap output])
902 echo " using IRIX format"
903 elif [swap -l 2>/dev/null | egrep -i "^swapfile +dev +swaplo +blocks +free" >/dev/null]
904 then
905 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %*[[0-9,-]] %*d %d %d"],[Format string for parsing swap output])
906 echo " using UnixWare format"
907 elif [swap -l 2>/dev/null | egrep -i "^path +dev +swaplo +blocks +free" >/dev/null]
908 then
909 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %*[[0-9,-]] %*d %d %d"],[Format string for parsing swap output])
910 echo " using Solaris format"
911 fi
912 EXTRAS="$EXTRAS check_swap"
913 elif [swapinfo -k 2>&1 | egrep -i "^Device" >/dev/null]
914 then
915 echo "found swapinfo command"
916 AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
917 AC_PATH_PROG(PATH_TO_SWAP,swapinfo)
918 AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -k",[Path to swap/swapinfo binary, with any args])
919 if [swapinfo -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
920 then
921 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %d %*d %d"],[Format string for parsing swap output])
922 echo " using FreeBSD format"
923 fi
924 EXTRAS="$EXTRAS check_swap"
925 elif [swapinfo -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
926 then
927 AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
928 AC_PATH_PROG(PATH_TO_SWAP,swapinfo)
929 AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -dfM",[Path to swap/swapinfo binary, with any args])
930 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %d %*d %d"],[Format string for parsing swap output ])
931 echo " using HP-UX format HP-UX"
932 fi
934 AC_PATH_PROG(PATH_TO_DIG,dig)
935 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
936 if test -n "$PATH_TO_DIG"; then
937 EXTRAS="$EXTRAS check_dig"
938 fi
940 if test -f plugins/check_nt.c ; then
941 EXTRAS="$EXTRAS check_nt"
942 elif test -f ../plugins/check_nt.c ; then
943 EXTRAS="$EXTRAS check_nt"
944 fi
946 AC_TRY_COMPILE([#ifdef __STDC__
947 #include <stdio.h>
948 #include <stdlib.h>
949 #include <stdarg.h>
950 #else
951 #include <sys/types.h>
952 #include <stdio.h>
953 #include <varargs.h>
954 #endif],
955 [va_list args;],
956 [AC_MSG_RESULT(yes)],
957 [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
959 AC_SUBST(EXTRAS)
960 AC_SUBST(DEPLIBS)
962 AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"${VERSION}",[package version])
964 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)