Code

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