Code

3f77336499afcfbbc11067e140dc9eb10a2efcda
[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(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
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);
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])
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)