Code

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