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