Code

use asprintf
[nagiosplug.git] / configure.in
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
25 AM_FUNC_STRTOD
26 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 AC_ARG_PROGRAM
48 dnl AC_ARG_WITH(nonposix_state_defs,--with-nonposix-state-defs uses POSIXLY incorrect states for netsaint < 0.0.7b2,,AC_DEFINE(POSIX_STATE_DEFS))
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_FUNC_GETLOADAVG(plugins)
85 AC_CHECK_LIB(dce,main,SOCKETLIBS="$SOCKETLIBS -ldce")
86 AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
87 AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
88 AC_CHECK_LIB(resolv,main,SOCKETLIBS="$SOCKETLIBS -lresolv")
89 AC_SUBST(SOCKETLIBS)
91 dnl Check for PostgreSQL libraries
92 _SAVEDLIBS="$LIBS"
93 _SAVEDCPPFLAGS="$CPPFLAGS"
94 AC_ARG_WITH(pgsql,--with-pgsql=<dir> sets path to pgsql installation,[PGSQL=$withval])
95 AC_CHECK_LIB(crypt,main)
96 if test "$ac_cv_lib_crypt_main" = "yes"; then
97   if test -n "$PGSQL"; then
98     LIBS="$LIBS -L$PGSQL/lib"
99     CPPFLAGS="$CPPFLAGS -I$PGSQL/include"
100   fi
101   AC_CHECK_LIB(pq,PQsetdbLogin,,,-lcrypt)
102   if test "$ac_cv_lib_pq_PQsetdbLogin" = "yes"; then
103     AC_CHECK_HEADERS(pgsql/libpq-fe.h)
104     AC_CHECK_HEADERS(postgresql/libpq-fe.h)
105     AC_CHECK_HEADERS(libpq-fe.h)
106     if test  "$ac_cv_header_pgsql_libpq_fe_h" = "yes"; then
107       PGLIBS="-lpq -lcrypt"
108       PGINCLUDE="-I/usr/include/pgsql"
109     elif test  "$ac_cv_header_postgresql_libpq_fe_h" = "yes"; then
110       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
111       PGINCLUDE="-I/usr/include/postgresql"
112     elif test  "$ac_cv_header_libpq_fe_h" = "yes"; then
113       PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
114       PGINCLUDE="-I$PGSQL/include"
115     fi
116     if test -z "$PGINCLUDE"; then
117       AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
118       AC_MSG_WARN([install PostgreSQL headers to compile this plugin (see Requirements).])
119     else
120       AC_SUBST(PGLIBS)
121       AC_SUBST(PGINCLUDE)
122       EXTRAS="$EXTRAS check_pgsql"
123     fi
124   else
125     AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
126     AC_MSG_WARN([LIBS="$LIBS" CPPFLAGS="$CPPFLAGS"])
127     AC_MSG_WARN([install PostgreSQL libs to compile this plugin (see Requirements).])
128   fi
129 else
130   AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
131   AC_MSG_WARN([install lib crypt and PostgreSQL libs to compile this plugin (see Requirements).])
132 fi
133 LIBS="$_SAVEDLIBS"
134 CPPFLAGS="$_SAVEDCPPFLAGS"
136 dnl Check for radius libraries
137 _SAVEDLIBS="$LIBS"
138 AC_CHECK_LIB(radiusclient,rc_read_config)
139 if test "$ac_cv_lib_radiusclient_rc_read_config" = "yes"; then
140   EXTRAS="$EXTRAS check_radius"
141         RADIUSLIBS="-lradiusclient"
142   AC_SUBST(RADIUSLIBS)
143 else
144   AC_MSG_WARN([Skipping radius plugin])
145   AC_MSG_WARN([install radius libs to compile this plugin (see Requirements).])
146 fi
147 LIBS="$_SAVEDLIBS"
149 dnl Check for LDAP libraries
150 _SAVEDLIBS="$LIBS"
151 AC_CHECK_LIB(ldap,main,,,-llber)
152 if test "$ac_cv_lib_ldap_main" = "yes"; then
153   LDAPLIBS="-lldap -llber"\
154   LDAPINCLUDE="-I/usr/include/ldap"
155   AC_SUBST(LDAPLIBS)
156   AC_SUBST(LDAPINCLUDE)
157   EXTRAS="$EXTRAS check_ldap"
158 else
159   AC_MSG_WARN([Skipping LDAP plugin])
160   AC_MSG_WARN([install LDAP libs to compile this plugin (see Requirements).])
161 fi
162 LIBS="$_SAVEDLIBS"
165 dnl Check for mysql libraries
166 _SAVEDLIBS="$LIBS"
167 _SAVEDCPPFLAGS="$CPPFLAGS"
168 dnl CPPFLAGS="-I/usr/include"
170 AC_ARG_WITH(mysql,--with-mysql=<dir> sets path to mysql installation (assumes lib/mysql and include subdirs),[MYSQL=$withval])
171 if test -n "$MYSQL"; then
172   MYSQLLIBDIR=$MYSQL/lib/mysql
173   CPPFLAGS="-I$MYSQL/include"
174   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L$MYSQLLIBDIR ",,-L$MYSQLLIBDIR -lz)
175   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
176 elif test -f /usr/lib/libmysqlclient.so; then
177   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
178   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
179 elif test -f /usr/lib/libmysqlclient.a; then
180   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
181   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
182 elif test -f /usr/lib/mysql/libmysqlclient.so; then
183   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
184   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
185 elif test -f /usr/lib/mysql/libmysqlclient.a; then
186   AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
187   AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
188 fi
189 if test "$ac_cv_lib_mysqlclient_mysql_init" = "yes" -o "$ac_cv_lib_mysqlclient_mysql_close" = "yes"; then
190   AC_CHECK_HEADERS(mysql/mysql.h mysql/errmsg.h, MYSQLINCLUDE="-I$MYSQL/include" )
191   if test "$ac_cv_header_mysql_mysql_h" = "yes" -a "$ac_cv_header_mysql_errmsg_h" = "yes"; then
192     EXTRAS="$EXTRAS check_mysql"
193         CPPFLAGS="$_SAVEDCPPFLAGS -I$MYSQL/include"
194     AC_SUBST(MYSQLLIBS)
195     AC_SUBST(check_mysql_LDFLAGS)
196   else
197     AC_MSG_WARN([Skipping mysql plugin])
198     AC_MSG_WARN([install mysql client headers to compile this plugin (see Requirements).])
199     CPPFLAGS="$_SAVEDCPPFLAGS"
200   fi
201 else
202   AC_MSG_WARN([Skipping mysql plugin])
203   AC_MSG_WARN([install mysql client libs to compile this plugin (see Requirements).])
204   CPPFLAGS="$_SAVEDCPPFLAGS"
205 fi
206 LIBS="$_SAVEDLIBS"
208 dnl Check for OpenSSL location
209 AC_PATH_PROG(OPENSSL,openssl)
210 if test "$OPENSSL" = "/usr/bin/openssl"; then
211   OPENSSL=/usr
212 elif test "$OPENSSL" = "/usr/sbin/openssl"; then
213   OPENSSL=/usr
214 elif test "$OPENSSL" = "/opt/bin/openssl"; then
215   OPENSSL=/opt
216 elif test "$OPENSSL" = "/opt/openssl/bin/openssl"; then
217   OPENSSL=/opt/openssl
218 elif test "$OPENSSL" = "/usr/slocal/bin/openssl"; then
219   OPENSSL=/usr/slocal
220 elif test "$OPENSSL" = "/usr/local/bin/openssl"; then
221   OPENSSL=/usr/local
222 elif test "$OPENSSL" = "/usr/local/ssl/bin/openssl"; then
223   OPENSSL=/usr/local/ssl
224 fi
225 AC_ARG_WITH(openssl,--with-openssl=<dir> sets path to openssl installation,[OPENSSL=$withval])
227 dnl Check for OpenSSL header files
228 _SAVEDCPPFLAGS="$CPPFLAGS"
229 FOUNDINCLUDE=yes
230 CPPFLAGS="-I$OPENSSL/include"
231 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)
232 if test "$FOUNDINCLUDE" = "no"; then
233   FOUNDINCLUDE=yes
234   AC_CHECK_HEADERS(x509.h ssl.h rsa.h pem.h crypto.h err.h,SSLINCLUDE="-I$OPENSSL/include",FOUNDINCLUDE=no)
235 fi
236 AC_SUBST(SSLINCLUDE)
237 CPPFLAGS="$_SAVEDCPPFLAGS $SSLINCLUDE"
239 dnl Check for crypto lib
240 _SAVEDLIBS="$LIBS"
241 AC_CHECK_LIB(crypto,CRYPTO_lock,,,-L$OPENSSL/lib)
242 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
243   dnl Check for SSL lib
244   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)
245 fi
246 LIBS="$_SAVEDLIBS"
248 dnl test headers and libs to decide whether check_http should use SSL
249 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
250   if test "$ac_cv_lib_ssl_main" = "yes"; then
251     if test "$FOUNDINCLUDE" = "yes"; then
252       AC_SUBST(SSLLIBS)
253       AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
254     fi
255   fi
256 fi
257 CPPFLAGS="$_SAVEDCPPFLAGS"
259 dnl
260 dnl Checks for header files.
261 dnl
263 AC_HEADER_STDC
264 AC_HEADER_TIME
265 AC_HEADER_SYS_WAIT
266 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)
267 AC_CHECK_HEADERS(stdarg.h sys/unistd.h unistd.h ctype.h sys/wait.h stdlib.h)
269 dnl Checks for typedefs, structures, and compiler characteristics.
270 AC_C_CONST
271 AC_STRUCT_TM
272 AC_TYPE_PID_T
273 AC_TYPE_SIZE_T
274 AC_TYPE_SIGNAL
276 AC_CHECK_SIZEOF(int,cross)
277 AC_CHECK_SIZEOF(long,cross)
278 AC_CHECK_SIZEOF(short,cross)
280 AC_CACHE_CHECK([for long long],ac_cv_have_longlong,[
281 AC_TRY_RUN([#include <stdio.h>
282 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
283 ac_cv_have_longlong=yes,ac_cv_have_longlong=no,ac_cv_have_longlong=cross)])
284 if test x"$ac_cv_have_longlong" = x"yes"; then
285     AC_DEFINE(HAVE_LONGLONG)
286 fi
289 # Check if the compiler supports the LL prefix on long long integers.
290 # AIX needs this.
292 AC_CACHE_CHECK([for LL suffix on long long integers],ac_cv_compiler_supports_ll, [
293     AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
294         ac_cv_compiler_supports_ll=yes,ac_cv_compiler_supports_ll=no)])
295 if test x"$ac_cv_compiler_supports_ll" = x"yes"; then
296    AC_DEFINE(COMPILER_SUPPORTS_LL)
297 fi
298 AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE_VA_COPY,[
299 AC_TRY_LINK([#include <stdarg.h>
300 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
301 ac_cv_HAVE_VA_COPY=yes,ac_cv_HAVE_VA_COPY=no)])
302 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
303     AC_DEFINE(HAVE_VA_COPY)
304 fi
306 AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
307 AC_TRY_RUN([
308 #include <sys/types.h>
309 #include <stdarg.h>
310 void foo(const char *format, ...) { 
311        va_list ap;
312        int len;
313        char buf[5];
315        va_start(ap, format);
316        len = vsnprintf(buf, 0, format, ap);
317        va_end(ap);
318        if (len != 5) exit(1);
320        va_start(ap, format);
321        len = vsnprintf(0, 0, format, ap);
322        va_end(ap);
323        if (len != 5) exit(1);
325        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
327        exit(0);
329 main() { foo("hello"); }
330 ],
331 ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
332 if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
333     AC_DEFINE(HAVE_C99_VSNPRINTF)
334 fi
336 dnl We used to not do long options unless a compatible lib was found
337 dnl Now we provide code and make libgetopt if native is not suitable
338 AC_MSG_CHECKING(for getopt_long)
339 AC_TRY_COMPILE([#include <getopt.h>
340                 #include <stdlib.h>],
341                [int option_index=0;
342                 static struct option *long_options;
343                 getopt_long(0,NULL,"+h",long_options,&option_index);],
344                [AC_DEFINE(HAVE_GETOPT_H,1,[Define if getopt headers are found])
345                 AC_DEFINE(HAVE_GETOPT_LONG,1,[Define if getopt_long_only() is found])
346                 AC_MSG_RESULT(yes)],
347                [AC_DEFINE(HAVE_GETOPT_H,1,[Define if getopt headers are found])
348                 AC_DEFINE(HAVE_GETOPT_LONG,1,[Define if getopt_long_only() is found])
349                 AC_MSG_RESULT(no)
350                 import_sources=getopt])
352 AC_CHECK_FUNCS(getopt_long_only,,LIBS="$LIBS -lgetopt" DEPLIBS="$DEPLIBS libgetopt.a")
354 AC_CHECK_FUNC(asprintf,,LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
356 dnl Checks for library functions.
357 AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul gettimeofday)
359 AC_MSG_CHECKING(for type of socket size)
360 AC_TRY_COMPILE([#include <stdlib.h>
361                 #include <sys/types.h>
362                 #include <sys/socket.h>],
363                [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
364                [AC_DEFINE(SOCKET_SIZE_TYPE, size_t, [Define type of socket size])
365                 AC_MSG_RESULT(size_t)],
366                [AC_DEFINE(SOCKET_SIZE_TYPE, int, [Define type of socket size])
367                 AC_MSG_RESULT(int)])
369 if test -f "/proc/loadavg"
370 then
371   AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
372   AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg"[Location of /proc/loadavg])
373 fi
375 AC_PATH_PROG(PATH_TO_PS,ps)
376 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
377 dnl  STAT UCOMM              VSZ   RSS USER       UID  PPID COMMAND
378 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]
379 then
380         AC_DEFINE(USE_PS_VARS)
381         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
382         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -axo 'stat user ppid args'")
383         EXTRAS="$EXTRAS check_nagios"
384         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -axo 'stat uid ppid comm args'")
385         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n")
386         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -axo 'vsz comm'")
387         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s")
388         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -axo 'rss comm'")
389         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s")
390   echo "      ps syntax... $PATH_TO_PS -axo 'stat comm vsz rss user ppid args'"
391 dnl AIX 4.3.3 - needs verification.
392 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]
393 then
394         AC_DEFINE(USE_PS_VARS)
395         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
396         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'stat user ppid args'")
397         EXTRAS="$EXTRAS check_nagios"
398         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'stat uid ppid comm args'")
399         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n")
400         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz comm'")
401         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s")
402         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss comm'")
403         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s")
404   echo "      ps syntax... $PATH_TO_PS -ao 'stat comm vsz rss user ppid args'"
405 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]
406 then
407         AC_DEFINE(USE_PS_VARS)
408         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
409         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -eo 's user ppid args'")
410         EXTRAS="$EXTRAS check_nagios"
411         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -eo 's uid ppid comm args'")
412         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n")
413         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -eo 'vsz comm'")
414         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s")
415         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -eo 'rss comm'")
416         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s")
417         echo "      ps syntax... $PATH_TO_PS -eo 's  comm vsz rss user ppid args'"
418 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]
419 then
420         AC_DEFINE(USE_PS_VARS)
421         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
422         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 's user ppid args'")
423         EXTRAS="$EXTRAS check_nagios"
424         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 's uid ppid comm args'")
425         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n")
426         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'")
427         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s")
428         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'")
429         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s")
430         echo "      ps syntax... $PATH_TO_PS -Ao 's comm vsz rss'"
431 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]
432 then
433         AC_DEFINE(USE_PS_VARS)
434         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
435         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'status user ppid args'")
436         EXTRAS="$EXTRAS check_nagios"
437         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'status uid ppid comm args'")
438         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n")
439         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'")
440         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s")
441         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'")
442         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s")
443         echo "      ps syntax... $PATH_TO_PS -Ao 'status comm vsz rss'"
444 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]
445 then
446         AC_DEFINE(USE_PS_VARS)
447         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
448         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'state user ppid args'")
449         EXTRAS="$EXTRAS check_nagios"
450         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'state uid ppid comm args'")
451         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n")
452         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'")
453         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s")
454         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'")
455         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s")
456         echo "      ps syntax... $PATH_TO_PS -Ao 'state comm vsz rss'"
457 dnl wonder who takes state instead of stat
458 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]
459 then
460         AC_DEFINE(USE_PS_VARS)
461         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
462         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'state user ppid args'")
463         EXTRAS="$EXTRAS check_nagios"
464         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'state uid ppid command args'")
465         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n")
466         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz command'")
467         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s")
468         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss command'")
469         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s")
470         echo "      ps syntax... $PATH_TO_PS -ao 'state command vsz rss'"
471 dnl FreeBSD
472 elif [ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | egrep -i "^STAT +COMMAND +VSZ +RSS +UID +USER +PPID" >/dev/null]
473 then
474         AC_DEFINE(USE_PS_VARS)
475         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
476         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxo 'state uid ppid command'")
477         EXTRAS="$EXTRAS check_nagios"
478         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxco 'state uid ppid command command'")
479         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n")
480         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxco 'vsz command'")
481         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s")
482         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxco 'rss command'")
483         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s")
484         echo "      ps syntax... $PATH_TO_PS -Ao 'state command vsz rss'"
485 dnl BSD-like mode in RH 6.1
486 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]
487 then
488         AC_DEFINE(USE_PS_VARS)
489         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
490         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxno 'state user ppid comm'")
491         EXTRAS="$EXTRAS check_nagios"
492         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxno 'state uid ppid comm args'")
493         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n")
494         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxno 'vsz comm'")
495         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s")
496         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxno 'rss comm'")
497         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s")
498         echo "      ps syntax... $PATH_TO_PS -waxco 'state comm vsz rss'"
499 dnl IRIX 53
500 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]
501 then
502         AC_DEFINE(USE_PS_VARS)
503         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog])
504         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el")
505         AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s")
506         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el")
507         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d")
508         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el")
509         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d")
510         echo "      ps syntax... $PATH_TO_PS -el"
511 dnl IRIX 63
512 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]
513 then
514         AC_DEFINE(USE_PS_VARS)
515         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog])
516         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el")
517         AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s")
518         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el")
519         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d")
520         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el")
521         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d")
522         echo "      ps syntax... $PATH_TO_PS -el"
523 dnl SunOS 4.1.3:
524 dnl  F  UID  PID  PPID  CP  PRI  NI  SZ  RSS  WCHAN  STAT  TT  TIME  COMMAND
525 dnl
526 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]
527 then
528         AC_DEFINE(USE_PS_VARS)
529         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww")
530         EXTRAS="$EXTRAS check_nagios"
531         AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog])
532         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -laxnwww")
533         AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %d %*s %d %*s %*s %*s %*s %*s %*s %s %*s %*s %n%s")
534         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww")
535         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d")
536         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww")
537         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %d")
538         echo "      ps syntax... $PATH_TO_PS laxnwww"
539 dnl Debian Linux / procps v1.2.9:
540 dnl  FLAGS   UID   PID  PPID PRI  NI   SIZE   RSS WCHAN       STA TTY TIME COMMAND
541 dnl    100     0     1     0   0   0    776    76  c0131c8c   S  ffff  0:11 init [2]
542 dnl
543 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]
544 then
545         AC_DEFINE(USE_PS_VARS)
546         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww")
547         EXTRAS="$EXTRAS check_nagios"
548         AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog])
549         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS laxnwww")
550         AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s")
551         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww")
552         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d")
553         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww")
554         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d")
555         echo "      ps syntax... $PATH_TO_PS laxnwww"
556 dnl    
557 dnl AIX 4.1:
558 dnl     F S      UID   PID  PPID   C PRI NI ADDR  SZ  RSS   WCHAN    TTY  TIME CMD
559 dnl    303 A        0     0     0 120  16 -- 1c07  20   24              -  0:45 swapper
560 elif [ps -el 2>/dev/null | egrep -i "^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+" >/dev/null]
561 then
562         AC_DEFINE(USE_PS_VARS)
563         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog])
564         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el")
565         AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s")
566         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el")
567         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d")
568         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el")
569         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d")
570         echo "      ps syntax... $PATH_TO_PS -el"
571 dnl AIX?
572 elif [ps glaxen 2>/dev/null | egrep -i "^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND" >/dev/null]
573 then
574         AC_DEFINE(USE_PS_VARS)
575         AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog])
576         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS glaxen")
577         AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s")
578         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS glaxen")
579         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d")
580         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS glaxen")
581         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d")
582         echo "      ps syntax... $PATH_TO_PS glaxen"
583 dnl ucb style?
584 dnl elif [ps axun 2>/dev/null | egrep -i "^USER +PID +%CPU +%MEM +SIZE +RSS +TTY +STAT +START +TIME +COMMAND *$" >/dev/null]
585 dnl then
586 dnl     AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS axun")
587 dnl     AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %*s %*s %*s %*s %*s %s %*s %*s %s")
588 dnl     AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS axun")
589 dnl     AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d")
590 dnl     AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS axun")
591 dnl     AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %d")
592 dnl     echo "      ps syntax... $PATH_TO_PS axun"
593 dnl ucb style?
594 dnl elif [ps axun 2>/dev/null | egrep -i "^USER +PID +%CPU +%MEM +SIZE +RSS +TTY +STAT +START +TIME +COMMAND" >/dev/null]
595 dnl then
596 dnl     AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS axun")
597 dnl     AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %*s %*s %*s %*s %*s %s %*s %*s %s")
598 dnl     AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS axun")
599 dnl     AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d")
600 dnl     AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS axun")
601 dnl     AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %d")
602 dnl     echo "      ps syntax... $PATH_TO_PS axun"
603 else
604         echo "** Unable to find usable ps syntax"
605 fi
607 AC_ARG_WITH(df_command,--with-df-command=<syntax> sets syntax for df,DF_COMMAND=$withval)
608 if test -n "$DF_COMMAND"
609 then
610         AC_DEFINE_UNQUOTED(DF_COMMAND,"$DF_COMMAND")
611 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]
612 then
613         AC_PATH_PROG(PATH_TO_DF,df)
614         AC_MSG_RESULT("      df syntax... $PATH_TO_DF -Pk")
615         AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -Pk")
616 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]
617 then
618         AC_PATH_PROG(PATH_TO_DF,df)
619         AC_MSG_RESULT("      df syntax... $PATH_TO_DF -k")
620         AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -k")
621 elif [df 2>/dev/null | egrep -i "^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*" >/dev/null]
622 then
623         AC_PATH_PROG(PATH_TO_DF,df)
624         AC_MSG_RESULT("      df syntax... $PATH_TO_DF")
625         AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF")
626 elif [bdf 2>/dev/null | egrep -i "^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*" >/dev/null]
627 then
628         AC_PATH_PROG(PATH_TO_DF,bdf)
629         AC_MSG_RESULT("      df syntax... $PATH_TO_DF")
630         AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF")
631 else
632         AC_MSG_WARN("unable to find usable df syntax")
633 fi
635 AC_PATH_PROG(PATH_TO_PING,ping)
637 AC_ARG_WITH(ping_command,--with-ping-command=<syntax> sets syntax for ping,PING_COMMAND=$withval)
638 if test -n "$PING_COMMAND"
639 then
640         echo "      ping syntax... (command-line) $PING_COMMAND"
641         if test -n "$PING_PACKETS_FIRST"
642         then
643                 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND")
644         fi
645 elif [ping -n -U -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 -U -c %d %s"
648         AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND")
649         echo "      ping syntax... $PATH_TO_PING -n -U -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")
654         echo "      ping syntax... $PATH_TO_PING -n -c <count> <host>"
655 elif [ping -n 127.0.0.1 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
656 then
657         PING_COMMAND="$PATH_TO_PING -n %s -c %d"
658         echo "      ping syntax... $PATH_TO_PING -n <host> -c <count>"
659 elif [ping 127.0.0.1 -n 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
660 then
661         PING_COMMAND="$PATH_TO_PING %s -n %d"
662         echo "      ping syntax... $PATH_TO_PING <host> -n <count>"
663 elif [ping -n -s 127.0.0.1 56 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
664 then
665         PING_COMMAND="$PATH_TO_PING -n -s %s 56 %d"
666         echo "      ping syntax... $PATH_TO_PING -n -s <host> 56 <count>"
667 elif [ping -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
668 then
669         PING_COMMAND="$PATH_TO_PING -n -h %s -s 56 -c %d"
670         echo "      ping syntax... $PATH_TO_PING -n -h <host> -s 56 -c <count>"
671 elif [ping -n -s 56 -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
672 then
673         PING_COMMAND="$PATH_TO_PING -n -s 56 -c %d %s"
674         AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND")
675         echo "      ping syntax... $PATH_TO_PING -n -s 56 -c <count> <host>"
676 elif [ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
677 then
678         PING_COMMAND="$PATH_TO_PING -n -c %d %s"
679         AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND")
680         echo "      ping syntax... $PATH_TO_PING -n -c <count> <host>"
681 else
682         AC_MSG_WARN("unable to find usable ping syntax")
683 fi
684 AC_DEFINE_UNQUOTED(PING_COMMAND,"$PING_COMMAND")
686 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
687 if test -n "$ac_cv_path_PATH_TO_NSLOOKUP"
688 then
689         AC_MSG_CHECKING("nslookup syntax")
690         if [nslookup -sil 127.0.0.1 2>&1 | grep "*** Invalid option: sil" >/dev/null]
691         then
692                 AC_MSG_RESULT("$PATH_TO_NSLOOKUP")
693                 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP")
694         else
695                 AC_MSG_RESULT("$PATH_TO_NSLOOKUP -sil")
696                 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP -sil")
697         fi
698         EXTRAS="$EXTRAS check_dns"
699 else
700         AC_MSG_WARN("nslookup command not found")
701 fi
703 AC_PATH_PROG(PATH_TO_HOST,host)
704 if test -n "$ac_cv_path_PATH_TO_HOST"
705 then
706         AC_MSG_CHECKING("host syntax")
707         if [host 127.0.0.1 2>&1 | grep -v "ommand not found" > /dev/null]
708         then
709                 AC_MSG_RESULT("$PATH_TO_HOST")
710                 AC_DEFINE_UNQUOTED(HOST_COMMAND,"$PATH_TO_HOST")
711         fi
712         EXTRAS="$EXTRAS check_dns"
713 else    
714         AC_MSG_WARN("host command not found")
715 fi
717 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
718 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME")
720 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
721 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO")
723 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
724 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
725 if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPDC")
726 then
727         AC_DEFINE_UNQUOTED(PATH_TO_NTPDC,"$PATH_TO_NTPDC")
728         AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE")
729 else
730         echo "** Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization"
731 fi
733 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
734 if test -x "$PATH_TO_LMSTAT"
735 then
736         AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT")
737 else
738         echo "** Get lmstat from Globetrotter Software to monitor flexlm licenses"
739 fi
741 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
742 if test -x "$PATH_TO_SMBCLIENT"
743 then
744         AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT")
745 else
746         echo "** Get smbclient from Samba.org to monitor SMB shares"
747 fi
750 AC_PATH_PROG(PATH_TO_WHO,who)
751 if [who -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
752 then
753         AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO -q")
754 else
755         AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO")
756 fi
758 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
759 if test -x "$PATH_TO_SNMPGET"
760 then
761         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET")
762         EXTRAS="$EXTRAS check_hpjd check_snmp"
763 else
764         echo "** Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins"
765 fi
767 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
768 if test -x "$PATH_TO_SNMPGETNEXT"
769 then
770         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT")
771 fi
773 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null  )
774 then
775         echo "Found Net::SNMP perl module"
776 else
777         echo "** Tried $PERL - install Net::SNMP perl module if you want to"
778         echo "        use the perl snmp plugins"
779 fi
781 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
782 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
783 if test -x "$PATH_TO_QUAKESTAT"
784 then
785         AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QUAKESTAT")
786         EXTRAS="$EXTRAS check_game"
787 elif test -x "$PATH_TO_QSTAT"
788 then
789         AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QSTAT")
790         EXTRAS="$EXTRAS check_game"
791 else
792         echo "** Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin"
793 fi
795 AC_PATH_PROG(PATH_TO_FPING,fping)
796 if test -x "$PATH_TO_FPING"
797 then
798         AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING")
799         EXTRAS="$EXTRAS check_fping"
800 else
801         echo "** Get fping from http://www.fping.com in order to make check_fping plugin"
802 fi
804 AC_PATH_PROG(PATH_TO_SSH,ssh)
805 if test -x "$PATH_TO_SSH"
806 then
807         AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH")
808         EXTRAS="$EXTRAS check_by_ssh"
809 else
810         echo "** Get ssh in order to make check_by_ssh plugin"
811 fi
813 dnl dunno why this does not work below - use hack (kbd)
814 dnl fine on linux, broken on solaris
815 dnl if /bin/test -e "/proc/meminfo"
817 if [cat /proc/meminfo > /dev/null 2>&1]
818 then
819         echo "found /proc/meminfo"
820         AC_DEFINE(HAVE_PROC_MEMINFO)
821         AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo")
822         EXTRAS="$EXTRAS check_swap"
823 elif [swap -l 2>&1 | egrep -i "swapfile" >/dev/null]
824 then
825         echo "found swap command"
826         AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
827         AC_PATH_PROG(PATH_TO_SWAP,swap)
828         AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -l"[Path to swap/swapinfo binary, with any args])
829         if [swap -l 2>/dev/null | egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" >/dev/null]
830         then
831                 AC_DEFINE_UNQUOTED(SWAP_FORMAT,[" %*d %*s %*d,%*d %*d %*d %d %d"],[Format string for parsing swap output])
832                 echo "      using IRIX format"
833         elif [swap -l 2>/dev/null | egrep -i "^swapfile +dev +swaplo +blocks +free" >/dev/null]
834         then
835                 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %*[[0-9,-]] %*d %d %d"],[Format string for parsing swap output])
836                 echo "      using Solaris format"
837         fi
838         EXTRAS="$EXTRAS check_swap"
839 elif [swapinfo -k 2>&1 | egrep -i "Device" >/dev/null]
840 then
841         echo "found swapinfo command"
842         AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
843         AC_PATH_PROG(PATH_TO_SWAP,swapinfo)
844         AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -k",[Path to swap/swapinfo binary, with any args])
845         if [swapinfo -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
846         then
847                 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %d %*d %d"],[Format string for parsing swap output])
848                 echo "      using FreeBSD format"
849         fi
850         EXTRAS="$EXTRAS check_swap"
851 fi
853 AC_PATH_PROG(PATH_TO_DIG,dig)
854 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
855 if test -n "$PATH_TO_DIG"; then
856         EXTRAS="$EXTRAS check_dig"
857 fi
859 if test -f plugins/check_nt.c ; then
860   EXTRAS="$EXTRAS check_nt"
861 elif test -f ../plugins/check_nt.c ; then
862   EXTRAS="$EXTRAS check_nt"
863 fi
865 dnl AC_EGREP_HEADER (PATTERN, HEADER-FILE, ACTION-IF-FOUND [,          ACTION-IF-NOT-FOUND])
866 AC_TRY_COMPILE([#ifdef __STDC__
867 #include <stdio.h>
868 #include <stdlib.h>
869 #include <stdarg.h>
870 #else
871 #include <sys/types.h>
872 #include <stdio.h>
873 #include <varargs.h>
874 #endif],
875 [va_list args;],
876 [AC_MSG_RESULT(yes)],
877 [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
879 AC_SUBST(EXTRAS)
880 AC_SUBST(DEPLIBS)
882 AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"${VERSION}",[package version])
884 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)