Code

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