17952e7c570d5bbe9d6185e7d135a02111807966
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 AC_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 dnl We used to not do long options unless a compatible lib was found
331 dnl Now we provide code and make libgetopt if native is not suitable
332 AC_MSG_CHECKING(for getopt_long)
333 AC_TRY_COMPILE([#include <getopt.h>
334 #include <stdlib.h>],
335 [int option_index=0;
336 static struct option *long_options;
337 getopt_long(0,NULL,"+h",long_options,&option_index);],
338 [AC_DEFINE(HAVE_GETOPT_H,1,[Define if getopt headers are found])
339 AC_DEFINE(HAVE_GETOPT_LONG,1,[Define if getopt_long_only() is found])
340 AC_MSG_RESULT(yes)],
341 [AC_DEFINE(HAVE_GETOPT_H,1,[Define if getopt headers are found])
342 AC_DEFINE(HAVE_GETOPT_LONG,1,[Define if getopt_long_only() is found])
343 AC_MSG_RESULT(no)
344 import_sources=getopt])
346 AC_CHECK_FUNCS(getopt_long_only,,LIBS="$LIBS -lgetopt" DEPLIBS="$DEPLIBS libgetopt.a")
348 AC_CHECK_FUNC(asprintf,,LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
350 dnl Checks for library functions.
351 AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul gettimeofday)
353 AC_MSG_CHECKING(for type of socket size)
354 AC_TRY_COMPILE([#include <stdlib.h>
355 #include <sys/types.h>
356 #include <sys/socket.h>],
357 [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
358 [AC_DEFINE(SOCKET_SIZE_TYPE, size_t, [Define type of socket size])
359 AC_MSG_RESULT(size_t)],
360 [AC_DEFINE(SOCKET_SIZE_TYPE, int, [Define type of socket size])
361 AC_MSG_RESULT(int)])
363 if test -f "/proc/loadavg"
364 then
365 AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
366 AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg])
367 fi
369 AC_PATH_PROG(PATH_TO_PS,ps)
370 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
371 dnl STAT UCOMM VSZ RSS USER UID PPID COMMAND
372 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]
373 then
374 AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
375 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
376 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -axo 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
377 EXTRAS="$EXTRAS check_nagios"
378 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -axo 'stat uid ppid comm args'",[Verbatim command to execute for ps in check_procs])
379 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
380 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -axo 'vsz comm'",[Verbatim command to execute for ps in check_vsz])
381 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[Format string for scanning ps output in check_vsz])
382 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -axo 'rss comm'",[Verbatim command to execute for ps in check_rss])
383 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[Format string for scanning ps output in check_rss])
384 echo " ps syntax... $PATH_TO_PS -axo 'stat comm vsz rss user ppid args'"
385 dnl AIX 4.3.3 - needs verification.
386 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]
387 then
388 AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
389 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
390 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
391 EXTRAS="$EXTRAS check_nagios"
392 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'stat uid ppid comm args'")
393 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n"[Format string for scanning ps output in check_procs])
394 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz comm'",[])
395 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
396 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss comm'",[])
397 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
398 echo " ps syntax... $PATH_TO_PS -ao 'stat comm vsz rss user ppid args'"
399 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]
400 then
401 AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
402 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
403 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -eo 's user ppid args'",[Verbatim command to execute for ps in check_netsaint])
404 EXTRAS="$EXTRAS check_nagios"
405 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -eo 's uid ppid comm args'")
406 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n"[Format string for scanning ps output in check_procs])
407 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -eo 'vsz comm'",[])
408 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
409 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -eo 'rss comm'",[])
410 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
411 echo " ps syntax... $PATH_TO_PS -eo 's comm vsz rss user ppid args'"
412 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]
413 then
414 AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
415 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
416 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 's user ppid args'",[Verbatim command to execute for ps in check_netsaint])
417 EXTRAS="$EXTRAS check_nagios"
418 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 's uid ppid comm args'",[])
419 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n"[Format string for scanning ps output in check_procs],[])
420 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
421 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
422 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
423 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
424 echo " ps syntax... $PATH_TO_PS -Ao 's comm vsz rss'"
425 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]
426 then
427 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
428 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
429 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'status user ppid args'",[Verbatim command to execute for ps in check_netsaint])
430 EXTRAS="$EXTRAS check_nagios"
431 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'status uid ppid comm args'",[])
432 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n"[Format string for scanning ps output in check_procs])
433 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
434 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
435 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
436 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
437 echo " ps syntax... $PATH_TO_PS -Ao 'status comm vsz rss'"
438 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]
439 then
440 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
441 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
442 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'state user ppid args'",[Verbatim command to execute for ps in check_netsaint])
443 EXTRAS="$EXTRAS check_nagios"
444 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'state uid ppid comm args'",[])
445 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n"[Format string for scanning ps output in check_procs])
446 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
447 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
448 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
449 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
450 echo " ps syntax... $PATH_TO_PS -Ao 'state comm vsz rss'"
451 dnl wonder who takes state instead of stat
452 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]
453 then
454 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
455 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
456 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'state user ppid args'",[])
457 EXTRAS="$EXTRAS check_nagios"
458 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'state uid ppid command args'",[])
459 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[])
460 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz command'",[])
461 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
462 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss command'",[])
463 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
464 echo " ps syntax... $PATH_TO_PS -ao 'state command vsz rss'"
465 dnl FreeBSD
466 elif [ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | egrep -i "^STAT +COMMAND +VSZ +RSS +UID +USER +PPID" >/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 waxo 'state uid ppid command'",[])
471 EXTRAS="$EXTRAS check_nagios"
472 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxco 'state uid ppid command command'",[])
473 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[])
474 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxco 'vsz command'",[])
475 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
476 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxco 'rss command'",[])
477 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
478 echo " ps syntax... $PATH_TO_PS -Ao 'state command vsz rss'"
479 dnl BSD-like mode in RH 6.1
480 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]
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 waxno 'state user ppid comm'",[])
485 EXTRAS="$EXTRAS check_nagios"
486 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxno 'state uid ppid comm args'",[])
487 AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[])
488 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxno 'vsz comm'",[])
489 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
490 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxno 'rss comm'",[])
491 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s,[]")
492 echo " ps syntax... $PATH_TO_PS -waxco 'state comm vsz rss'"
493 dnl IRIX 53
494 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]
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,&pos,procprog],[])
498 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
499 AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s",[])
500 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
501 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d",[])
502 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
503 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d")
504 echo " ps syntax... $PATH_TO_PS -el"
505 dnl IRIX 63
506 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]
507 then
508 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
509 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
510 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
511 AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s",[])
512 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
513 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d",[])
514 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
515 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
516 echo " ps syntax... $PATH_TO_PS -el"
517 dnl SunOS 4.1.3:
518 dnl F UID PID PPID CP PRI NI SZ RSS WCHAN STAT TT TIME COMMAND
519 dnl
520 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]
521 then
522 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
523 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[])
524 EXTRAS="$EXTRAS check_nagios"
525 AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
526 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -laxnwww",[])
527 AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %d %*s %d %*s %*s %*s %*s %*s %*s %s %*s %*s %n%s",[])
528 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[])
529 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
530 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[])
531 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %d",[])
532 echo " ps syntax... $PATH_TO_PS laxnwww"
533 dnl Debian Linux / procps v1.2.9:
534 dnl FLAGS UID PID PPID PRI NI SIZE RSS WCHAN STA TTY TIME COMMAND
535 dnl 100 0 1 0 0 0 776 76 c0131c8c S ffff 0:11 init [2]
536 dnl
537 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]
538 then
539 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
540 AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[])
541 EXTRAS="$EXTRAS check_nagios"
542 AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
543 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS laxnwww",[])
544 AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s",[])
545 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[])
546 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d",[])
547 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[])
548 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
549 echo " ps syntax... $PATH_TO_PS laxnwww"
550 dnl
551 dnl AIX 4.1:
552 dnl F S UID PID PPID C PRI NI ADDR SZ RSS WCHAN TTY TIME CMD
553 dnl 303 A 0 0 0 120 16 -- 1c07 20 24 - 0:45 swapper
554 elif [ps -el 2>/dev/null | egrep -i "^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+" >/dev/null]
555 then
556 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
557 AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
558 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
559 AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s",[])
560 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
561 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
562 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
563 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
564 echo " ps syntax... $PATH_TO_PS -el"
565 dnl AIX?
566 elif [ps glaxen 2>/dev/null | egrep -i "^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND" >/dev/null]
567 then
568 AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
569 AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
570 AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS glaxen",[])
571 AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s",[])
572 AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS glaxen",[])
573 AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d",[])
574 AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS glaxen",[])
575 AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
576 echo " ps syntax... $PATH_TO_PS glaxen"
577 else
578 echo "** Unable to find usable ps syntax"
579 fi
581 AC_ARG_WITH(df_command,--with-df-command=<syntax> sets syntax for df,DF_COMMAND=$withval)
582 if test -n "$DF_COMMAND"
583 then
584 AC_DEFINE_UNQUOTED(DF_COMMAND,"$DF_COMMAND",[path and args for df command])
585 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]
586 then
587 AC_PATH_PROG(PATH_TO_DF,df)
588 AC_MSG_RESULT(" df syntax... $PATH_TO_DF -Pk")
589 AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -Pk",[path and args for df command])
590 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]
591 then
592 AC_PATH_PROG(PATH_TO_DF,df)
593 AC_MSG_RESULT(" df syntax... $PATH_TO_DF -k")
594 AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -k",[path and args for df command])
595 elif [df 2>/dev/null | egrep -i "^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*" >/dev/null]
596 then
597 AC_PATH_PROG(PATH_TO_DF,df)
598 AC_MSG_RESULT(" df syntax... $PATH_TO_DF")
599 AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF",[path and args for df command])
600 elif [bdf 2>/dev/null | egrep -i "^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*" >/dev/null]
601 then
602 AC_PATH_PROG(PATH_TO_DF,bdf)
603 AC_MSG_RESULT(" df syntax... $PATH_TO_DF")
604 AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF",[path and args for df command])
605 else
606 AC_MSG_WARN("unable to find usable df syntax")
607 fi
609 AC_PATH_PROG(PATH_TO_PING,ping)
611 AC_ARG_WITH(ping_command,--with-ping-command=<syntax> sets syntax for ping,PING_COMMAND=$withval)
612 if test -n "$PING_COMMAND"
613 then
614 echo " ping syntax... (command-line) $PING_COMMAND"
615 if test -n "$PING_PACKETS_FIRST"
616 then
617 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
618 fi
619 elif [ping -n -U -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
620 then
621 PING_COMMAND="$PATH_TO_PING -n -U -c %d %s"
622 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
623 echo " ping syntax... $PATH_TO_PING -n -U -c <count> <host>"
624 elif [ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
625 then
626 PING_COMMAND="$PATH_TO_PING -n -c %d %s"
627 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
628 echo " ping syntax... $PATH_TO_PING -n -c <count> <host>"
629 elif [ping -n 127.0.0.1 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
630 then
631 PING_COMMAND="$PATH_TO_PING -n %s -c %d"
632 echo " ping syntax... $PATH_TO_PING -n <host> -c <count>"
633 elif [ping 127.0.0.1 -n 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
634 then
635 PING_COMMAND="$PATH_TO_PING %s -n %d"
636 echo " ping syntax... $PATH_TO_PING <host> -n <count>"
637 elif [ping -n -s 127.0.0.1 56 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
638 then
639 PING_COMMAND="$PATH_TO_PING -n -s %s 56 %d"
640 echo " ping syntax... $PATH_TO_PING -n -s <host> 56 <count>"
641 elif [ping -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
642 then
643 PING_COMMAND="$PATH_TO_PING -n -h %s -s 56 -c %d"
644 echo " ping syntax... $PATH_TO_PING -n -h <host> -s 56 -c <count>"
645 elif [ping -n -s 56 -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
646 then
647 PING_COMMAND="$PATH_TO_PING -n -s 56 -c %d %s"
648 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
649 echo " ping syntax... $PATH_TO_PING -n -s 56 -c <count> <host>"
650 elif [ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
651 then
652 PING_COMMAND="$PATH_TO_PING -n -c %d %s"
653 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
654 echo " ping syntax... $PATH_TO_PING -n -c <count> <host>"
655 else
656 AC_MSG_WARN("unable to find usable ping syntax")
657 fi
658 AC_DEFINE_UNQUOTED(PING_COMMAND,"$PING_COMMAND",[path and args for ping command])
660 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
661 if test -n "$ac_cv_path_PATH_TO_NSLOOKUP"
662 then
663 AC_MSG_CHECKING("nslookup syntax")
664 if [nslookup -sil 127.0.0.1 2>&1 | grep "*** Invalid option: sil" >/dev/null]
665 then
666 AC_MSG_RESULT("$PATH_TO_NSLOOKUP")
667 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP",[path and args for nslookup])
668 else
669 AC_MSG_RESULT("$PATH_TO_NSLOOKUP -sil")
670 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP -sil",[path and args for nslookup])
671 fi
672 EXTRAS="$EXTRAS check_dns"
673 else
674 AC_MSG_WARN("nslookup command not found")
675 fi
677 AC_PATH_PROG(PATH_TO_HOST,host)
678 if test -n "$ac_cv_path_PATH_TO_HOST"
679 then
680 AC_MSG_CHECKING("host syntax")
681 if [host 127.0.0.1 2>&1 | grep -v "ommand not found" > /dev/null]
682 then
683 AC_MSG_RESULT("$PATH_TO_HOST")
684 AC_DEFINE_UNQUOTED(HOST_COMMAND,"$PATH_TO_HOST",[path to host binary])
685 fi
686 EXTRAS="$EXTRAS check_dns"
687 else
688 AC_MSG_WARN("host command not found")
689 fi
691 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
692 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
694 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
695 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
697 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
698 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
699 if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPDC")
700 then
701 AC_DEFINE_UNQUOTED(PATH_TO_NTPDC,"$PATH_TO_NTPDC",[path to ntpdc binary])
702 AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary])
703 else
704 echo "** Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization"
705 fi
707 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
708 if test -x "$PATH_TO_LMSTAT"
709 then
710 AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
711 else
712 echo "** Get lmstat from Globetrotter Software to monitor flexlm licenses"
713 fi
715 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
716 if test -x "$PATH_TO_SMBCLIENT"
717 then
718 AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
719 else
720 echo "** Get smbclient from Samba.org to monitor SMB shares"
721 fi
724 AC_PATH_PROG(PATH_TO_WHO,who)
725 if [who -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
726 then
727 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO -q",[path and arguments for invoking 'who'])
728 else
729 AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO",[path and arguments for invoking 'who'])
730 fi
732 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
733 if test -x "$PATH_TO_SNMPGET"
734 then
735 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
736 EXTRAS="$EXTRAS check_hpjd check_snmp"
737 else
738 echo "** Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins"
739 fi
741 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
742 if test -x "$PATH_TO_SNMPGETNEXT"
743 then
744 AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
745 fi
747 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null )
748 then
749 echo "Found Net::SNMP perl module"
750 else
751 echo "** Tried $PERL - install Net::SNMP perl module if you want to"
752 echo " use the perl snmp plugins"
753 fi
755 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
756 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
757 if test -x "$PATH_TO_QUAKESTAT"
758 then
759 AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QUAKESTAT",[path to qstat/quakestat])
760 EXTRAS="$EXTRAS check_game"
761 elif test -x "$PATH_TO_QSTAT"
762 then
763 AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QSTAT",[path to qstat/quakestat])
764 EXTRAS="$EXTRAS check_game"
765 else
766 echo "** Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin"
767 fi
769 AC_PATH_PROG(PATH_TO_FPING,fping)
770 if test -x "$PATH_TO_FPING"
771 then
772 AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
773 EXTRAS="$EXTRAS check_fping"
774 else
775 echo "** Get fping from http://www.fping.com in order to make check_fping plugin"
776 fi
778 AC_PATH_PROG(PATH_TO_SSH,ssh)
779 if test -x "$PATH_TO_SSH"
780 then
781 AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
782 EXTRAS="$EXTRAS check_by_ssh"
783 else
784 echo "** Get ssh in order to make check_by_ssh plugin"
785 fi
787 dnl dunno why this does not work below - use hack (kbd)
788 dnl fine on linux, broken on solaris
789 dnl if /bin/test -e "/proc/meminfo"
791 if [cat /proc/meminfo > /dev/null 2>&1]
792 then
793 echo "found /proc/meminfo"
794 AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
795 AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo (if name changes or something)])
796 EXTRAS="$EXTRAS check_swap"
797 elif [swap -l 2>&1 | egrep -i "swapfile" >/dev/null]
798 then
799 echo "found swap command"
800 AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
801 AC_PATH_PROG(PATH_TO_SWAP,swap)
802 AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -l"[Path to swap/swapinfo binary, with any args])
803 if [swap -l 2>/dev/null | egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" >/dev/null]
804 then
805 AC_DEFINE_UNQUOTED(SWAP_FORMAT,[" %*d %*s %*d,%*d %*d %*d %d %d"],[Format string for parsing swap output])
806 echo " using IRIX format"
807 elif [swap -l 2>/dev/null | egrep -i "^swapfile +dev +swaplo +blocks +free" >/dev/null]
808 then
809 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %*[[0-9,-]] %*d %d %d"],[Format string for parsing swap output])
810 echo " using Solaris format"
811 fi
812 EXTRAS="$EXTRAS check_swap"
813 elif [swapinfo -k 2>&1 | egrep -i "Device" >/dev/null]
814 then
815 echo "found swapinfo command"
816 AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
817 AC_PATH_PROG(PATH_TO_SWAP,swapinfo)
818 AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -k",[Path to swap/swapinfo binary, with any args])
819 if [swapinfo -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
820 then
821 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %d %*d %d"],[Format string for parsing swap output])
822 echo " using FreeBSD format"
823 fi
824 EXTRAS="$EXTRAS check_swap"
825 fi
827 AC_PATH_PROG(PATH_TO_DIG,dig)
828 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
829 if test -n "$PATH_TO_DIG"; then
830 EXTRAS="$EXTRAS check_dig"
831 fi
833 if test -f plugins/check_nt.c ; then
834 EXTRAS="$EXTRAS check_nt"
835 elif test -f ../plugins/check_nt.c ; then
836 EXTRAS="$EXTRAS check_nt"
837 fi
839 dnl AC_EGREP_HEADER (PATTERN, HEADER-FILE, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND])
840 AC_TRY_COMPILE([#ifdef __STDC__
841 #include <stdio.h>
842 #include <stdlib.h>
843 #include <stdarg.h>
844 #else
845 #include <sys/types.h>
846 #include <stdio.h>
847 #include <varargs.h>
848 #endif],
849 [va_list args;],
850 [AC_MSG_RESULT(yes)],
851 [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
853 AC_SUBST(EXTRAS)
854 AC_SUBST(DEPLIBS)
856 AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"${VERSION}",[package version])
858 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)