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