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