Code

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