Code

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