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(SSLINCLUDE)
233 CPPFLAGS="$_SAVEDCPPFLAGS $SSLINCLUDE"
235 dnl Check for OpenSSL header files
236 _SAVEDCPPFLAGS="$CPPFLAGS"
237 FOUNDINCLUDE=yes
238 CPPFLAGS="-I$OPENSSL/include"
239 AC_CHECK_HEADERS(openssl/x509.h openssl/ssl.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h,SSLINCLUDE="-I$OPENSSL/include",FOUNDINCLUDE=no)
240 if test "$FOUNDINCLUDE" = "no"; then
241 FOUNDINCLUDE=yes
242 AC_CHECK_HEADERS(x509.h ssl.h rsa.h pem.h crypto.h err.h,SSLINCLUDE="-I$OPENSSL/include",FOUNDINCLUDE=no)
243 fi
244 AC_SUBST(SSLINCLUDE)
245 CPPFLAGS="$_SAVEDCPPFLAGS $SSLINCLUDE"
247 dnl Check for crypto lib
248 _SAVEDLIBS="$LIBS"
249 AC_CHECK_LIB(crypto,CRYPTO_lock,,,-L$OPENSSL/lib)
250 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
251 dnl Check for SSL lib
252 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)
253 fi
254 LIBS="$_SAVEDLIBS"
256 dnl test headers and libs to decide whether check_http should use SSL
257 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
258 if test "$ac_cv_lib_ssl_main" = "yes"; then
259 if test "$FOUNDINCLUDE" = "yes"; then
260 AC_SUBST(SSLLIBS)
261 AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
262 fi
263 fi
264 fi
265 CPPFLAGS="$_SAVEDCPPFLAGS"
267 dnl
268 dnl Checks for header files.
269 dnl
271 AC_HEADER_STDC
272 AC_HEADER_TIME
273 AC_HEADER_SYS_WAIT
274 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)
275 AC_CHECK_HEADERS(stdarg.h sys/unistd.h unistd.h ctype.h sys/wait.h stdlib.h)
277 dnl Checks for typedefs, structures, and compiler characteristics.
278 AC_C_CONST
279 AC_STRUCT_TM
280 AC_TYPE_PID_T
281 AC_TYPE_SIZE_T
282 AC_TYPE_SIGNAL
284 AC_CHECK_SIZEOF(int,cross)
285 AC_CHECK_SIZEOF(long,cross)
286 AC_CHECK_SIZEOF(short,cross)
288 AC_CACHE_CHECK([for long long],ac_cv_have_longlong,[
289 AC_TRY_RUN([#include <stdio.h>
290 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
291 ac_cv_have_longlong=yes,ac_cv_have_longlong=no,ac_cv_have_longlong=cross)])
292 if test x"$ac_cv_have_longlong" = x"yes"; then
293 AC_DEFINE(HAVE_LONGLONG,1,[Define if system has long long type])
294 fi
296 #
297 # Check if the compiler supports the LL prefix on long long integers.
298 # AIX needs this.
300 AC_CACHE_CHECK([for LL suffix on long long integers],ac_cv_compiler_supports_ll, [
301 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
302 ac_cv_compiler_supports_ll=yes,ac_cv_compiler_supports_ll=no)])
303 if test x"$ac_cv_compiler_supports_ll" = x"yes"; then
304 AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Define if compiler support long long])
305 fi
307 AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE_VA_COPY,[
308 AC_TRY_LINK([#include <stdarg.h>
309 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
310 ac_cv_HAVE_VA_COPY=yes,ac_cv_HAVE_VA_COPY=no)])
311 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
312 AC_DEFINE(HAVE_VA_COPY,1,[Define if system has va_copy])
313 fi
315 AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
316 AC_TRY_RUN([
317 #include <sys/types.h>
318 #include <stdarg.h>
319 void foo(const char *format, ...) {
320 va_list ap;
321 int len;
322 char buf[5];
324 va_start(ap, format);
325 len = vsnprintf(buf, 0, format, ap);
326 va_end(ap);
327 if (len != 5) exit(1);
329 va_start(ap, format);
330 len = vsnprintf(0, 0, format, ap);
331 va_end(ap);
332 if (len != 5) exit(1);
334 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
336 exit(0);
337 }
338 main() { foo("hello"); }
339 ],
340 ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
341 if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
342 AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
343 fi
345 #AC_HAVE_DECL(asprintf, [#include <stdio.h>])
346 #AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
347 #AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
348 #AC_HAVE_DECL(snprintf, [#include <stdio.h>])
350 AC_CHECK_FUNC(snprintf,
351 AC_DEFINE(HAVE_SNPRINTF,1,[Define if snprintf is present]),
352 LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
353 AC_CHECK_FUNC(vsnprintf,
354 AC_DEFINE(HAVE_VSNPRINTF,1,[Define if vsnprintf is present]),
355 LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
356 AC_CHECK_FUNC(vasprintf,
357 AC_DEFINE(HAVE_VASPRINTF,1,[Define if vasprintf is present]),
358 LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
359 AC_CHECK_FUNC(asprintf,
360 AC_DEFINE(HAVE_ASPRINTF,1,[Define if asprintf is present]),
361 LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
363 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
364 LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a"
365 fi
367 dnl We used to not do long options unless a compatible lib was found
368 dnl Now we provide code and make libgetopt if native is not suitable
369 AC_MSG_CHECKING(for getopt_long)
370 AC_TRY_COMPILE([#include <getopt.h>
371 #include <stdlib.h>],
372 [int option_index=0;
373 static struct option *long_options;
374 getopt_long(0,NULL,"+h",long_options,&option_index);],
375 [AC_DEFINE(HAVE_GETOPT_H,1,[Define if getopt headers are found])
376 AC_DEFINE(HAVE_GETOPT_LONG,1,[Define if getopt_long is found])
377 AC_MSG_RESULT(yes)],
378 [AC_DEFINE(HAVE_GETOPT_H,1,[Define if getopt headers are found])
379 AC_DEFINE(HAVE_GETOPT_LONG,1,[Define if getopt_long is found])
380 AC_MSG_RESULT(no)
381 import_sources=getopt
382 LIBS="$LIBS -lgetopt"
383 DEPLIBS="$DEPLIBS libgetopt.a"])
385 AC_TRY_COMPILE([#include <sys/time.h>],
386 [struct timeval *tv;
387 struct timezone *tz;],
388 AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
389 AC_TRY_COMPILE([#include <sys/time.h>],
390 [struct timeval *tv;
391 struct timezone *tz;
392 gettimeofday(tv, tz);],
393 AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
394 AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
396 dnl Checks for library functions.
397 AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul)
399 AC_MSG_CHECKING(for type of socket size)
400 AC_TRY_COMPILE([#include <stdlib.h>
401 #include <sys/types.h>
402 #include <sys/socket.h>],
403 [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
404 [AC_DEFINE(SOCKET_SIZE_TYPE, size_t, [Define type of socket size])
405 AC_MSG_RESULT(size_t)],
406 [AC_DEFINE(SOCKET_SIZE_TYPE, int, [Define type of socket size])
407 AC_MSG_RESULT(int)])
409 if test -f "/proc/loadavg"
410 then
411 AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
412 AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg])
413 fi
415 AC_PATH_PROG(PATH_TO_PS,ps)
416 dnl STAT UCOMM VSZ RSS USER UID PPID COMMAND
417 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]
418 then
419 AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
420 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
421 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -weo 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
422 EXTRAS="$EXTRAS check_nagios"
423 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -weo 'stat uid ppid comm args'",[Verbatim command to execute for ps in check_procs])
424 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
425 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -weo 'vsz comm'",[Verbatim command to execute for ps in check_vsz])
426 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[Format string for scanning ps output in check_vsz])
427 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -weo 'rss comm'",[Verbatim command to execute for ps in check_rss])
428 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[Format string for scanning ps output in check_rss])
429 echo " ps syntax... $PATH_TO_PS -weo 'stat comm vsz rss user ppid args'"
430 dnl FreeBSD
431 elif [ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | egrep -i "^STAT +COMMAND +VSZ +RSS +UID +USER +PPID" >/dev/null]
432 then
433 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
434 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
435 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxo 'state uid ppid command'",[])
436 EXTRAS="$EXTRAS check_nagios"
437 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxco 'state uid ppid command command'",[])
438 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
439 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxco 'vsz command'",[])
440 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
441 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxco 'rss command'",[])
442 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
443 echo " ps syntax... $PATH_TO_PS -Ao 'state command vsz rss'"
444 dnl BSD-like mode in RH 6.1
445 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]
446 then
447 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
448 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
449 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxno 'state user ppid comm'",[])
450 EXTRAS="$EXTRAS check_nagios"
451 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxno 'state uid ppid comm args'",[])
452 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
453 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxno 'vsz comm'",[])
454 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
455 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxno 'rss comm'",[])
456 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
457 echo " ps syntax... $PATH_TO_PS -waxco 'state comm vsz rss'"
458 dnl SunOS 4.1.3:
459 dnl F UID PID PPID CP PRI NI SZ RSS WCHAN STAT TT TIME COMMAND
460 dnl
461 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]
462 then
463 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
464 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[])
465 EXTRAS="$EXTRAS check_nagios"
466 AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
467 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -laxnwww",[])
468 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])
469 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[])
470 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
471 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[])
472 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %d",[])
473 echo " ps syntax... $PATH_TO_PS laxnwww"
474 dnl Debian Linux / procps v1.2.9:
475 dnl FLAGS UID PID PPID PRI NI SIZE RSS WCHAN STA TTY TIME COMMAND
476 dnl 100 0 1 0 0 0 776 76 c0131c8c S ffff 0:11 init [2]
477 dnl
478 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]
479 then
480 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
481 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[])
482 EXTRAS="$EXTRAS check_nagios"
483 AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
484 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS laxnwww",[])
485 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])
486 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[])
487 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d",[])
488 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[])
489 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
490 echo " ps syntax... $PATH_TO_PS laxnwww"
491 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
492 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]
493 then
494 AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
495 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
496 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -axo 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
497 EXTRAS="$EXTRAS check_nagios"
498 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -axo 'stat uid ppid comm args'",[Verbatim command to execute for ps in check_procs])
499 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
500 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -axo 'vsz comm'",[Verbatim command to execute for ps in check_vsz])
501 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[Format string for scanning ps output in check_vsz])
502 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -axo 'rss comm'",[Verbatim command to execute for ps in check_rss])
503 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[Format string for scanning ps output in check_rss])
504 echo " ps syntax... $PATH_TO_PS -axo 'stat comm vsz rss user ppid args'"
505 dnl AIX 4.3.3 - needs verification.
506 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]
507 then
508 AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
509 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
510 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
511 EXTRAS="$EXTRAS check_nagios"
512 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'stat uid ppid comm args'")
513 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
514 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz comm'",[])
515 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
516 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss comm'",[])
517 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
518 echo " ps syntax... $PATH_TO_PS -ao 'stat comm vsz rss user ppid args'"
519 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]
520 then
521 AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
522 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
523 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -eo 's user ppid args'",[Verbatim command to execute for ps in check_netsaint])
524 EXTRAS="$EXTRAS check_nagios"
525 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -eo 's uid ppid comm args'")
526 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
527 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -eo 'vsz comm'",[])
528 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
529 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -eo 'rss comm'",[])
530 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
531 echo " ps syntax... $PATH_TO_PS -eo 's comm vsz rss user ppid args'"
532 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]
533 then
534 AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
535 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
536 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 's user ppid args'",[Verbatim command to execute for ps in check_netsaint])
537 EXTRAS="$EXTRAS check_nagios"
538 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 's uid ppid comm args'",[])
539 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
540 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
541 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
542 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
543 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
544 echo " ps syntax... $PATH_TO_PS -Ao 's comm vsz rss'"
545 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]
546 then
547 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
548 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
549 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'status user ppid args'",[Verbatim command to execute for ps in check_netsaint])
550 EXTRAS="$EXTRAS check_nagios"
551 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'status uid ppid comm args'",[])
552 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
553 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
554 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
555 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
556 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
557 echo " ps syntax... $PATH_TO_PS -Ao 'status comm vsz rss'"
558 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]
559 then
560 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
561 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
562 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'state user ppid args'",[Verbatim command to execute for ps in check_netsaint])
563 EXTRAS="$EXTRAS check_nagios"
564 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'state uid ppid comm args'",[])
565 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
566 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
567 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
568 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
569 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
570 echo " ps syntax... $PATH_TO_PS -Ao 'state comm vsz rss'"
571 dnl wonder who takes state instead of stat
572 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]
573 then
574 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
575 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
576 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'state user ppid args'",[])
577 EXTRAS="$EXTRAS check_nagios"
578 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'state uid ppid command args'",[])
579 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
580 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz command'",[])
581 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
582 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss command'",[])
583 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
584 echo " ps syntax... $PATH_TO_PS -ao 'state command vsz rss'"
585 dnl IRIX 53
586 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]
587 then
588 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
589 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
590 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
591 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])
592 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
593 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d",[])
594 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
595 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
596 echo " ps syntax... $PATH_TO_PS -el"
597 dnl IRIX 63
598 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]
599 then
600 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
601 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
602 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
603 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])
604 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
605 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d",[])
606 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
607 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
608 echo " ps syntax... $PATH_TO_PS -el"
609 dnl
610 dnl AIX 4.1:
611 dnl F S UID PID PPID C PRI NI ADDR SZ RSS WCHAN TTY TIME CMD
612 dnl 303 A 0 0 0 120 16 -- 1c07 20 24 - 0:45 swapper
613 elif [ps -el 2>/dev/null | egrep -i "^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+" >/dev/null]
614 then
615 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
616 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
617 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
618 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])
619 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
620 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
621 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
622 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
623 echo " ps syntax... $PATH_TO_PS -el"
624 dnl AIX?
625 elif [ps glaxen 2>/dev/null | egrep -i "^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND" >/dev/null]
626 then
627 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
628 AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
629 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS glaxen",[])
630 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])
631 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS glaxen",[])
632 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d",[])
633 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS glaxen",[])
634 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
635 echo " ps syntax... $PATH_TO_PS glaxen"
636 else
637 echo "** Unable to find usable ps syntax"
638 fi
640 AC_ARG_WITH(df_command,--with-df-command=<syntax> sets syntax for df,DF_COMMAND=$withval)
641 if test -n "$DF_COMMAND"
642 then
643 AC_DEFINE_UNQUOTED(DF_COMMAND,"$DF_COMMAND",[path and args for df command])
644 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]
645 then
646 AC_PATH_PROG(PATH_TO_DF,df)
647 AC_MSG_RESULT(" df syntax... $PATH_TO_DF -Pk")
648 AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -Pk",[path and args for df command])
649 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]
650 then
651 AC_PATH_PROG(PATH_TO_DF,df)
652 AC_MSG_RESULT(" df syntax... $PATH_TO_DF -k")
653 AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -k",[path and args for df command])
654 elif [df 2>/dev/null | egrep -i "^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*" >/dev/null]
655 then
656 AC_PATH_PROG(PATH_TO_DF,df)
657 AC_MSG_RESULT(" df syntax... $PATH_TO_DF")
658 AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF",[path and args for df command])
659 elif [bdf 2>/dev/null | egrep -i "^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*" >/dev/null]
660 then
661 AC_PATH_PROG(PATH_TO_DF,bdf)
662 AC_MSG_RESULT(" df syntax... $PATH_TO_DF")
663 AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF",[path and args for df command])
664 else
665 AC_MSG_WARN("unable to find usable df syntax")
666 fi
668 AC_PATH_PROG(PATH_TO_PING,ping)
670 AC_ARG_WITH(ping_command,--with-ping-command=<syntax> sets syntax for ping,PING_COMMAND=$withval)
671 if test -n "$PING_COMMAND"
672 then
673 echo " ping syntax... (command-line) $PING_COMMAND"
674 if test -n "$PING_PACKETS_FIRST"
675 then
676 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
677 fi
678 elif [ping -n -U -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
679 then
680 PING_COMMAND="$PATH_TO_PING -n -U -c %d %s"
681 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
682 echo " ping syntax... $PATH_TO_PING -n -U -c <count> <host>"
683 elif [ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
684 then
685 PING_COMMAND="$PATH_TO_PING -n -c %d %s"
686 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
687 echo " ping syntax... $PATH_TO_PING -n -c <count> <host>"
688 elif [ping -n 127.0.0.1 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
689 then
690 PING_COMMAND="$PATH_TO_PING -n %s -c %d"
691 echo " ping syntax... $PATH_TO_PING -n <host> -c <count>"
692 elif [ping 127.0.0.1 -n 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
693 then
694 PING_COMMAND="$PATH_TO_PING %s -n %d"
695 echo " ping syntax... $PATH_TO_PING <host> -n <count>"
696 elif [ping -n -s 127.0.0.1 56 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
697 then
698 PING_COMMAND="$PATH_TO_PING -n -s %s 56 %d"
699 echo " ping syntax... $PATH_TO_PING -n -s <host> 56 <count>"
700 elif [ping -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
701 then
702 PING_COMMAND="$PATH_TO_PING -n -h %s -s 56 -c %d"
703 echo " ping syntax... $PATH_TO_PING -n -h <host> -s 56 -c <count>"
704 elif [ping -n -s 56 -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
705 then
706 PING_COMMAND="$PATH_TO_PING -n -s 56 -c %d %s"
707 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
708 echo " ping syntax... $PATH_TO_PING -n -s 56 -c <count> <host>"
709 elif [ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
710 then
711 PING_COMMAND="$PATH_TO_PING -n -c %d %s"
712 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
713 echo " ping syntax... $PATH_TO_PING -n -c <count> <host>"
714 else
715 AC_MSG_WARN("unable to find usable ping syntax")
716 fi
717 AC_DEFINE_UNQUOTED(PING_COMMAND,"$PING_COMMAND",[path and args for ping command])
719 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
720 if test -n "$ac_cv_path_PATH_TO_NSLOOKUP"
721 then
722 AC_MSG_CHECKING("nslookup syntax")
723 if [nslookup -sil 127.0.0.1 2>&1 | grep "*** Invalid option: sil" >/dev/null]
724 then
725 AC_MSG_RESULT("$PATH_TO_NSLOOKUP")
726 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP",[path and args for nslookup])
727 else
728 AC_MSG_RESULT("$PATH_TO_NSLOOKUP -sil")
729 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP -sil",[path and args for nslookup])
730 fi
731 EXTRAS="$EXTRAS check_dns"
732 else
733 AC_MSG_WARN("nslookup command not found")
734 fi
736 AC_PATH_PROG(PATH_TO_HOST,host)
737 if test -n "$ac_cv_path_PATH_TO_HOST"
738 then
739 AC_MSG_CHECKING("host syntax")
740 if [host 127.0.0.1 2>&1 | grep -v "ommand not found" > /dev/null]
741 then
742 AC_MSG_RESULT("$PATH_TO_HOST")
743 AC_DEFINE_UNQUOTED(HOST_COMMAND,"$PATH_TO_HOST",[path to host binary])
744 fi
745 EXTRAS="$EXTRAS check_dns"
746 else
747 AC_MSG_WARN("host command not found")
748 fi
750 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
751 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
753 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
754 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
756 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
757 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
758 if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPDC")
759 then
760 AC_DEFINE_UNQUOTED(PATH_TO_NTPDC,"$PATH_TO_NTPDC",[path to ntpdc binary])
761 AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary])
762 else
763 echo "** Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization"
764 fi
766 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
767 if test -x "$PATH_TO_LMSTAT"
768 then
769 AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
770 else
771 echo "** Get lmstat from Globetrotter Software to monitor flexlm licenses"
772 fi
774 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
775 if test -x "$PATH_TO_SMBCLIENT"
776 then
777 AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
778 else
779 echo "** Get smbclient from Samba.org to monitor SMB shares"
780 fi
783 AC_PATH_PROG(PATH_TO_WHO,who)
784 if [who -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
785 then
786 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO -q",[path and arguments for invoking 'who'])
787 else
788 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO",[path and arguments for invoking 'who'])
789 fi
791 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
792 if test -x "$PATH_TO_SNMPGET"
793 then
794 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
795 EXTRAS="$EXTRAS check_hpjd check_snmp"
796 else
797 echo "** Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins"
798 fi
800 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
801 if test -x "$PATH_TO_SNMPGETNEXT"
802 then
803 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
804 fi
806 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null )
807 then
808 echo "Found Net::SNMP perl module"
809 else
810 echo "** Tried $PERL - install Net::SNMP perl module if you want to"
811 echo " use the perl snmp plugins"
812 fi
814 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
815 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
816 if test -x "$PATH_TO_QUAKESTAT"
817 then
818 AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QUAKESTAT",[path to qstat/quakestat])
819 EXTRAS="$EXTRAS check_game"
820 elif test -x "$PATH_TO_QSTAT"
821 then
822 AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QSTAT",[path to qstat/quakestat])
823 EXTRAS="$EXTRAS check_game"
824 else
825 echo "** Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin"
826 fi
828 AC_PATH_PROG(PATH_TO_FPING,fping)
829 if test -x "$PATH_TO_FPING"
830 then
831 AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
832 EXTRAS="$EXTRAS check_fping"
833 else
834 echo "** Get fping from http://www.fping.com in order to make check_fping plugin"
835 fi
837 AC_PATH_PROG(PATH_TO_SSH,ssh)
838 if test -x "$PATH_TO_SSH"
839 then
840 AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
841 EXTRAS="$EXTRAS check_by_ssh"
842 else
843 echo "** Get ssh in order to make check_by_ssh plugin"
844 fi
847 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
848 if test -x "$PATH_TO_MAILQ"
849 then
850 AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
851 else
852 echo "** Could not find mailq or eqivalent"
853 fi
855 dnl dunno why this does not work below - use hack (kbd)
856 dnl fine on linux, broken on solaris
857 dnl if /bin/test -e "/proc/meminfo"
859 if [cat /proc/meminfo > /dev/null 2>&1]
860 then
861 echo "found /proc/meminfo"
862 AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
863 AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes])
864 EXTRAS="$EXTRAS check_swap"
865 elif [swap -l 2>&1 | egrep -i "swapfile" >/dev/null]
866 then
867 echo "found swap command"
868 AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
869 AC_PATH_PROG(PATH_TO_SWAP,swap)
870 AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -l",[Path to swap/swapinfo binary, with any args])
871 if [swap -l 2>/dev/null | egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" >/dev/null]
872 then
873 AC_DEFINE_UNQUOTED(SWAP_FORMAT,[" %*d %*s %*d,%*d %*d %*d %d %d"],[Format string for parsing swap output])
874 echo " using IRIX format"
875 elif [swap -l 2>/dev/null | egrep -i "^swapfile +dev +swaplo +blocks +free" >/dev/null]
876 then
877 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %*[[0-9,-]] %*d %d %d"],[Format string for parsing swap output])
878 echo " using Solaris format"
879 fi
880 EXTRAS="$EXTRAS check_swap"
881 elif [swapinfo -k 2>&1 | egrep -i "Device" >/dev/null]
882 then
883 echo "found swapinfo command"
884 AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
885 AC_PATH_PROG(PATH_TO_SWAP,swapinfo)
886 AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -k",[Path to swap/swapinfo binary, with any args])
887 if [swapinfo -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
888 then
889 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %d %*d %d"],[Format string for parsing swap output])
890 echo " using FreeBSD format"
891 fi
892 EXTRAS="$EXTRAS check_swap"
893 elif [swapinfo -d 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
894 then
895 AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
896 AC_PATH_PROG(PATH_TO_SWAP,swapinfo)
897 AC_DEFINE_UNQUOTED(SWAP_COMMAND,"/bin/sh '$PATH_TO_SWAP -d | /bin/tail -l +2'",[Path to swap/swapinfo binary, with any args])
898 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %d %*d %d"],[Format string for parsing swap output ])
899 echo " using HP-UX format HP-UX"
900 fi
902 AC_PATH_PROG(PATH_TO_DIG,dig)
903 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
904 if test -n "$PATH_TO_DIG"; then
905 EXTRAS="$EXTRAS check_dig"
906 fi
908 if test -f plugins/check_nt.c ; then
909 EXTRAS="$EXTRAS check_nt"
910 elif test -f ../plugins/check_nt.c ; then
911 EXTRAS="$EXTRAS check_nt"
912 fi
914 AC_TRY_COMPILE([#ifdef __STDC__
915 #include <stdio.h>
916 #include <stdlib.h>
917 #include <stdarg.h>
918 #else
919 #include <sys/types.h>
920 #include <stdio.h>
921 #include <varargs.h>
922 #endif],
923 [va_list args;],
924 [AC_MSG_RESULT(yes)],
925 [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
927 AC_SUBST(EXTRAS)
928 AC_SUBST(DEPLIBS)
930 AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"${VERSION}",[package version])
932 AC_OUTPUT(Makefile subst 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)