Code

semicolon needed where progname define was replaced
[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 AC_CHECK_HEADERS(krb5.h,FOUNDINCLUDE=yes,FOUNDINCLUDE=no)
223 if test "$FOUNDINCLUDE" = "no"; then
224   _SAVEDCPPFLAGS="$CPPFLAGS"
225   CPPFLAGS="$_SAVEDCPPFLAGS -I/usr/kerberos/include"
226   unset ac_cv_header_krb5_h
227   AC_CHECK_HEADERS(krb5.h,
228                    KRB5INCLUDE="-I/usr/kerberos/include"
229                    FOUNDINCLUDE=yes,
230                    FOUNDINCLUDE=no)
231 fi
232 AC_SUBST(SSLINCLUDE)
233 CPPFLAGS="$_SAVEDCPPFLAGS $SSLINCLUDE"
235 dnl Check for OpenSSL header files
236 _SAVEDCPPFLAGS="$CPPFLAGS"
237 FOUNDINCLUDE=yes
238 CPPFLAGS="-I$OPENSSL/include"
239 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)
240 if test "$FOUNDINCLUDE" = "no"; then
241   FOUNDINCLUDE=yes
242   AC_CHECK_HEADERS(x509.h ssl.h rsa.h pem.h crypto.h err.h,SSLINCLUDE="-I$OPENSSL/include",FOUNDINCLUDE=no)
243 fi
244 AC_SUBST(SSLINCLUDE)
245 CPPFLAGS="$_SAVEDCPPFLAGS $SSLINCLUDE"
247 dnl Check for crypto lib
248 _SAVEDLIBS="$LIBS"
249 AC_CHECK_LIB(crypto,CRYPTO_lock,,,-L$OPENSSL/lib)
250 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
251   dnl Check for SSL lib
252   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)
253 fi
254 LIBS="$_SAVEDLIBS"
256 dnl test headers and libs to decide whether check_http should use SSL
257 if test "$ac_cv_lib_crypto_CRYPTO_lock" = "yes"; then
258   if test "$ac_cv_lib_ssl_main" = "yes"; then
259     if test "$FOUNDINCLUDE" = "yes"; then
260       AC_SUBST(SSLLIBS)
261       AC_DEFINE(HAVE_SSL,1,[Define if SSL libraries are found])
262     fi
263   fi
264 fi
265 CPPFLAGS="$_SAVEDCPPFLAGS"
267 dnl
268 dnl Checks for header files.
269 dnl
271 AC_HEADER_STDC
272 AC_HEADER_TIME
273 AC_HEADER_SYS_WAIT
274 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)
275 AC_CHECK_HEADERS(stdarg.h sys/unistd.h unistd.h ctype.h sys/wait.h stdlib.h)
277 dnl Checks for typedefs, structures, and compiler characteristics.
278 AC_C_CONST
279 AC_STRUCT_TM
280 AC_TYPE_PID_T
281 AC_TYPE_SIZE_T
282 AC_TYPE_SIGNAL
284 AC_CHECK_SIZEOF(int,cross)
285 AC_CHECK_SIZEOF(long,cross)
286 AC_CHECK_SIZEOF(short,cross)
288 AC_CACHE_CHECK([for long long],ac_cv_have_longlong,[
289 AC_TRY_RUN([#include <stdio.h>
290 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
291 ac_cv_have_longlong=yes,ac_cv_have_longlong=no,ac_cv_have_longlong=cross)])
292 if test x"$ac_cv_have_longlong" = x"yes"; then
293     AC_DEFINE(HAVE_LONGLONG,1,[Define if system has long long type])
294 fi
297 # Check if the compiler supports the LL prefix on long long integers.
298 # AIX needs this.
300 AC_CACHE_CHECK([for LL suffix on long long integers],ac_cv_compiler_supports_ll, [
301     AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
302         ac_cv_compiler_supports_ll=yes,ac_cv_compiler_supports_ll=no)])
303 if test x"$ac_cv_compiler_supports_ll" = x"yes"; then
304    AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Define if compiler support long long])
305 fi
307 AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE_VA_COPY,[
308 AC_TRY_LINK([#include <stdarg.h>
309 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
310 ac_cv_HAVE_VA_COPY=yes,ac_cv_HAVE_VA_COPY=no)])
311 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
312     AC_DEFINE(HAVE_VA_COPY,1,[Define if system has va_copy])
313 fi
315 AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
316 AC_TRY_RUN([
317 #include <sys/types.h>
318 #include <stdarg.h>
319 void foo(const char *format, ...) { 
320        va_list ap;
321        int len;
322        char buf[5];
324        va_start(ap, format);
325        len = vsnprintf(buf, 0, format, ap);
326        va_end(ap);
327        if (len != 5) exit(1);
329        va_start(ap, format);
330        len = vsnprintf(0, 0, format, ap);
331        va_end(ap);
332        if (len != 5) exit(1);
334        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
336        exit(0);
338 main() { foo("hello"); }
339 ],
340 ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
341 if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
342     AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
343 fi
345 #AC_HAVE_DECL(asprintf, [#include <stdio.h>])
346 #AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
347 #AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
348 #AC_HAVE_DECL(snprintf, [#include <stdio.h>])
350 AC_CHECK_FUNC(snprintf,
351               AC_DEFINE(HAVE_SNPRINTF,1,[Define if snprintf is present]),
352               LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
353 AC_CHECK_FUNC(vsnprintf,
354               AC_DEFINE(HAVE_VSNPRINTF,1,[Define if vsnprintf is present]),
355               LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
356 AC_CHECK_FUNC(vasprintf,
357               AC_DEFINE(HAVE_VASPRINTF,1,[Define if vasprintf is present]),
358               LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
359 AC_CHECK_FUNC(asprintf,
360               AC_DEFINE(HAVE_ASPRINTF,1,[Define if asprintf is present]),
361               LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a")
363 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
364   LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a"
365 fi
367 dnl We used to not do long options unless a compatible lib was found
368 dnl Now we provide code and make libgetopt if native is not suitable
369 AC_MSG_CHECKING(for getopt_long)
370 AC_TRY_COMPILE([#include <getopt.h>
371                 #include <stdlib.h>],
372                [int option_index=0;
373                 static struct option *long_options;
374                 getopt_long(0,NULL,"+h",long_options,&option_index);],
375                [AC_DEFINE(HAVE_GETOPT_H,1,[Define if getopt headers are found])
376                 AC_DEFINE(HAVE_GETOPT_LONG,1,[Define if getopt_long is found])
377                 AC_MSG_RESULT(yes)],
378                [AC_DEFINE(HAVE_GETOPT_H,1,[Define if getopt headers are found])
379                 AC_DEFINE(HAVE_GETOPT_LONG,1,[Define if getopt_long is found])
380                 AC_MSG_RESULT(no)
381                 import_sources=getopt
382                 LIBS="$LIBS -lgetopt"
383                 DEPLIBS="$DEPLIBS libgetopt.a"])
385 AC_TRY_COMPILE([#include <sys/time.h>],
386                [struct timeval *tv;
387                 struct timezone *tz;],
388                AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure])
389                AC_TRY_COMPILE([#include <sys/time.h>],
390                               [struct timeval *tv;
391                                struct timezone *tz;
392                                gettimeofday(tv, tz);],
393                               AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]),
394                               AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
396 dnl Checks for library functions.
397 AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul)
399 AC_MSG_CHECKING(for type of socket size)
400 AC_TRY_COMPILE([#include <stdlib.h>
401                 #include <sys/types.h>
402                 #include <sys/socket.h>],
403                [int a = send(1, (const void *) buffer, (size_t *) 0, (int *) 0);],
404                [AC_DEFINE(SOCKET_SIZE_TYPE, size_t, [Define type of socket size])
405                 AC_MSG_RESULT(size_t)],
406                [AC_DEFINE(SOCKET_SIZE_TYPE, int, [Define type of socket size])
407                 AC_MSG_RESULT(int)])
409 if test -f "/proc/loadavg"
410 then
411   AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists])
412   AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg])
413 fi
415 AC_PATH_PROG(PATH_TO_PS,ps)
416 dnl  STAT UCOMM              VSZ   RSS USER       UID  PPID COMMAND
417 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]
418 then
419         AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
420         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
421         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -weo 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
422         EXTRAS="$EXTRAS check_nagios"
423         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -weo 'stat uid ppid comm args'",[Verbatim command to execute for ps in check_procs])
424         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
425         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -weo 'vsz comm'",[Verbatim command to execute for ps in check_vsz])
426         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[Format string for scanning ps output in check_vsz])
427         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -weo 'rss comm'",[Verbatim command to execute for ps in check_rss])
428         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[Format string for scanning ps output in check_rss])
429   echo "      ps syntax... $PATH_TO_PS -weo 'stat comm vsz rss user ppid args'"
430 dnl FreeBSD
431 elif [ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | egrep -i "^STAT +COMMAND +VSZ +RSS +UID +USER +PPID" >/dev/null]
432 then
433         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
434         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
435         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxo 'state uid ppid command'",[])
436         EXTRAS="$EXTRAS check_nagios"
437         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxco 'state uid ppid command command'",[])
438         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
439         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxco 'vsz command'",[])
440         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
441         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxco 'rss command'",[])
442         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
443         echo "      ps syntax... $PATH_TO_PS -Ao 'state command vsz rss'"
444 dnl BSD-like mode in RH 6.1
445 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]
446 then
447         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
448         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
449         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxno 'state user ppid comm'",[])
450         EXTRAS="$EXTRAS check_nagios"
451         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxno 'state uid ppid comm args'",[])
452         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
453         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxno 'vsz comm'",[])
454         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
455         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxno 'rss comm'",[])
456         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
457         echo "      ps syntax... $PATH_TO_PS -waxco 'state comm vsz rss'"
458 dnl SunOS 4.1.3:
459 dnl  F  UID  PID  PPID  CP  PRI  NI  SZ  RSS  WCHAN  STAT  TT  TIME  COMMAND
460 dnl
461 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]
462 then
463         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
464         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[])
465         EXTRAS="$EXTRAS check_nagios"
466         AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
467         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -laxnwww",[])
468         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])
469         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[])
470         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
471         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[])
472         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %d",[])
473         echo "      ps syntax... $PATH_TO_PS laxnwww"
474 dnl Debian Linux / procps v1.2.9:
475 dnl  FLAGS   UID   PID  PPID PRI  NI   SIZE   RSS WCHAN       STA TTY TIME COMMAND
476 dnl    100     0     1     0   0   0    776    76  c0131c8c   S  ffff  0:11 init [2]
477 dnl
478 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]
479 then
480         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
481         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[])
482         EXTRAS="$EXTRAS check_nagios"
483         AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
484         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS laxnwww",[])
485         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])
486         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[])
487         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d",[])
488         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[])
489         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
490         echo "      ps syntax... $PATH_TO_PS laxnwww"
491 dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
492 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]
493 then
494         AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
495         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
496         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -axo 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
497         EXTRAS="$EXTRAS check_nagios"
498         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -axo 'stat uid ppid comm args'",[Verbatim command to execute for ps in check_procs])
499         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
500         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -axo 'vsz comm'",[Verbatim command to execute for ps in check_vsz])
501         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[Format string for scanning ps output in check_vsz])
502         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -axo 'rss comm'",[Verbatim command to execute for ps in check_rss])
503         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[Format string for scanning ps output in check_rss])
504   echo "      ps syntax... $PATH_TO_PS -axo 'stat comm vsz rss user ppid args'"
505 dnl AIX 4.3.3 - needs verification.
506 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]
507 then
508         AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
509         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
510         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint])
511         EXTRAS="$EXTRAS check_nagios"
512         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'stat uid ppid comm args'")
513         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
514         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz comm'",[])
515         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
516         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss comm'",[])
517         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
518   echo "      ps syntax... $PATH_TO_PS -ao 'stat comm vsz rss user ppid args'"
519 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]
520 then
521         AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
522         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
523         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -eo 's user ppid args'",[Verbatim command to execute for ps in check_netsaint])
524         EXTRAS="$EXTRAS check_nagios"
525         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -eo 's uid ppid comm args'")
526         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
527         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -eo 'vsz comm'",[])
528         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
529         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -eo 'rss comm'",[])
530         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
531         echo "      ps syntax... $PATH_TO_PS -eo 's  comm vsz rss user ppid args'"
532 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]
533 then
534         AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf])
535         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output])
536         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 's user ppid args'",[Verbatim command to execute for ps in check_netsaint])
537         EXTRAS="$EXTRAS check_nagios"
538         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 's uid ppid comm args'",[])
539         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
540         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
541         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
542         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
543         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
544         echo "      ps syntax... $PATH_TO_PS -Ao 's comm vsz rss'"
545 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]
546 then
547         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
548         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
549         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'status user ppid args'",[Verbatim command to execute for ps in check_netsaint])
550         EXTRAS="$EXTRAS check_nagios"
551         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'status uid ppid comm args'",[])
552         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
553         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
554         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
555         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
556         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
557         echo "      ps syntax... $PATH_TO_PS -Ao 'status comm vsz rss'"
558 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]
559 then
560         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
561         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos])
562         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'state user ppid args'",[Verbatim command to execute for ps in check_netsaint])
563         EXTRAS="$EXTRAS check_nagios"
564         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'state uid ppid comm args'",[])
565         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
566         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[])
567         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
568         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[])
569         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
570         echo "      ps syntax... $PATH_TO_PS -Ao 'state comm vsz rss'"
571 dnl wonder who takes state instead of stat
572 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]
573 then
574         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
575         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[])
576         AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'state user ppid args'",[])
577         EXTRAS="$EXTRAS check_nagios"
578         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'state uid ppid command args'",[])
579         AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs])
580         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz command'",[])
581         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[])
582         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss command'",[])
583         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[])
584         echo "      ps syntax... $PATH_TO_PS -ao 'state command vsz rss'"
585 dnl IRIX 53
586 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]
587 then
588         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
589         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
590         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
591         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])
592         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
593         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d",[])
594         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
595         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
596         echo "      ps syntax... $PATH_TO_PS -el"
597 dnl IRIX 63
598 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]
599 then
600         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
601         AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[])
602         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
603         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])
604         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
605         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d",[])
606         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
607         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
608         echo "      ps syntax... $PATH_TO_PS -el"
609 dnl    
610 dnl AIX 4.1:
611 dnl     F S      UID   PID  PPID   C PRI NI ADDR  SZ  RSS   WCHAN    TTY  TIME CMD
612 dnl    303 A        0     0     0 120  16 -- 1c07  20   24              -  0:45 swapper
613 elif [ps -el 2>/dev/null | egrep -i "^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+" >/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,[procstat,&procuid,&procppid,&pos,procprog],[])
617         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[])
618         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])
619         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[])
620         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
621         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[])
622         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[])
623         echo "      ps syntax... $PATH_TO_PS -el"
624 dnl AIX?
625 elif [ps glaxen 2>/dev/null | egrep -i "^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND" >/dev/null]
626 then
627         AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf])
628         AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[])
629         AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS glaxen",[])
630         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])
631         AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS glaxen",[])
632         AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d",[])
633         AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS glaxen",[])
634         AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[])
635         echo "      ps syntax... $PATH_TO_PS glaxen"
636 else
637         echo "** Unable to find usable ps syntax"
638 fi
640 AC_ARG_WITH(df_command,--with-df-command=<syntax> sets syntax for df,DF_COMMAND=$withval)
641 if test -n "$DF_COMMAND"
642 then
643         AC_DEFINE_UNQUOTED(DF_COMMAND,"$DF_COMMAND",[path and args for df command])
644 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]
645 then
646         AC_PATH_PROG(PATH_TO_DF,df)
647         AC_MSG_RESULT("      df syntax... $PATH_TO_DF -Pk")
648         AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -Pk",[path and args for df command])
649 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]
650 then
651         AC_PATH_PROG(PATH_TO_DF,df)
652         AC_MSG_RESULT("      df syntax... $PATH_TO_DF -k")
653         AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -k",[path and args for df command])
654 elif [df 2>/dev/null | egrep -i "^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*" >/dev/null]
655 then
656         AC_PATH_PROG(PATH_TO_DF,df)
657         AC_MSG_RESULT("      df syntax... $PATH_TO_DF")
658         AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF",[path and args for df command])
659 elif [bdf 2>/dev/null | egrep -i "^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*" >/dev/null]
660 then
661         AC_PATH_PROG(PATH_TO_DF,bdf)
662         AC_MSG_RESULT("      df syntax... $PATH_TO_DF")
663         AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF",[path and args for df command])
664 else
665         AC_MSG_WARN("unable to find usable df syntax")
666 fi
668 AC_PATH_PROG(PATH_TO_PING,ping)
670 AC_ARG_WITH(ping_command,--with-ping-command=<syntax> sets syntax for ping,PING_COMMAND=$withval)
671 if test -n "$PING_COMMAND"
672 then
673         echo "      ping syntax... (command-line) $PING_COMMAND"
674         if test -n "$PING_PACKETS_FIRST"
675         then
676                 AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
677         fi
678 elif [ping -n -U -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
679 then
680         PING_COMMAND="$PATH_TO_PING -n -U -c %d %s"
681         AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
682         echo "      ping syntax... $PATH_TO_PING -n -U -c <count> <host>"
683 elif [ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
684 then
685         PING_COMMAND="$PATH_TO_PING -n -c %d %s"
686         AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host])
687         echo "      ping syntax... $PATH_TO_PING -n -c <count> <host>"
688 elif [ping -n 127.0.0.1 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
689 then
690         PING_COMMAND="$PATH_TO_PING -n %s -c %d"
691         echo "      ping syntax... $PATH_TO_PING -n <host> -c <count>"
692 elif [ping 127.0.0.1 -n 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
693 then
694         PING_COMMAND="$PATH_TO_PING %s -n %d"
695         echo "      ping syntax... $PATH_TO_PING <host> -n <count>"
696 elif [ping -n -s 127.0.0.1 56 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
697 then
698         PING_COMMAND="$PATH_TO_PING -n -s %s 56 %d"
699         echo "      ping syntax... $PATH_TO_PING -n -s <host> 56 <count>"
700 elif [ping -n -h 127.0.0.1 -s 56 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
701 then
702         PING_COMMAND="$PATH_TO_PING -n -h %s -s 56 -c %d"
703         echo "      ping syntax... $PATH_TO_PING -n -h <host> -s 56 -c <count>"
704 elif [ping -n -s 56 -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null]
705 then
706         PING_COMMAND="$PATH_TO_PING -n -s 56 -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 -s 56 -c <count> <host>"
709 elif [ping -n -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 -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 -c <count> <host>"
714 else
715         AC_MSG_WARN("unable to find usable ping syntax")
716 fi
717 AC_DEFINE_UNQUOTED(PING_COMMAND,"$PING_COMMAND",[path and args for ping command])
719 AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup)
720 if test -n "$ac_cv_path_PATH_TO_NSLOOKUP"
721 then
722         AC_MSG_CHECKING("nslookup syntax")
723         if [nslookup -sil 127.0.0.1 2>&1 | grep "*** Invalid option: sil" >/dev/null]
724         then
725                 AC_MSG_RESULT("$PATH_TO_NSLOOKUP")
726                 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP",[path and args for nslookup])
727         else
728                 AC_MSG_RESULT("$PATH_TO_NSLOOKUP -sil")
729                 AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP -sil",[path and args for nslookup])
730         fi
731         EXTRAS="$EXTRAS check_dns"
732 else
733         AC_MSG_WARN("nslookup command not found")
734 fi
736 AC_PATH_PROG(PATH_TO_HOST,host)
737 if test -n "$ac_cv_path_PATH_TO_HOST"
738 then
739         AC_MSG_CHECKING("host syntax")
740         if [host 127.0.0.1 2>&1 | grep -v "ommand not found" > /dev/null]
741         then
742                 AC_MSG_RESULT("$PATH_TO_HOST")
743                 AC_DEFINE_UNQUOTED(HOST_COMMAND,"$PATH_TO_HOST",[path to host binary])
744         fi
745         EXTRAS="$EXTRAS check_dns"
746 else    
747         AC_MSG_WARN("host command not found")
748 fi
750 AC_PATH_PROG(PATH_TO_UPTIME,uptime)
751 AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary])
753 AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo)
754 AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary])
756 AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate)
757 AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc)
758 if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPDC")
759 then
760         AC_DEFINE_UNQUOTED(PATH_TO_NTPDC,"$PATH_TO_NTPDC",[path to ntpdc binary])
761         AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary])
762 else
763         echo "** Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization"
764 fi
766 AC_PATH_PROG(PATH_TO_LMSTAT,lmstat)
767 if test -x "$PATH_TO_LMSTAT"
768 then
769         AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat])
770 else
771         echo "** Get lmstat from Globetrotter Software to monitor flexlm licenses"
772 fi
774 AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
775 if test -x "$PATH_TO_SMBCLIENT"
776 then
777         AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary])
778 else
779         echo "** Get smbclient from Samba.org to monitor SMB shares"
780 fi
783 AC_PATH_PROG(PATH_TO_WHO,who)
784 if [who -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null]
785 then
786         AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO -q",[path and arguments for invoking 'who'])
787 else
788         AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO",[path and arguments for invoking 'who'])
789 fi
791 AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
792 if test -x "$PATH_TO_SNMPGET"
793 then
794         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
795         EXTRAS="$EXTRAS check_hpjd check_snmp"
796 else
797         echo "** Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins"
798 fi
800 AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
801 if test -x "$PATH_TO_SNMPGETNEXT"
802 then
803         AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
804 fi
806 if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null  )
807 then
808         echo "Found Net::SNMP perl module"
809 else
810         echo "** Tried $PERL - install Net::SNMP perl module if you want to"
811         echo "        use the perl snmp plugins"
812 fi
814 AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
815 AC_PATH_PROG(PATH_TO_QSTAT,qstat)
816 if test -x "$PATH_TO_QUAKESTAT"
817 then
818         AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QUAKESTAT",[path to qstat/quakestat])
819         EXTRAS="$EXTRAS check_game"
820 elif test -x "$PATH_TO_QSTAT"
821 then
822         AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QSTAT",[path to qstat/quakestat])
823         EXTRAS="$EXTRAS check_game"
824 else
825         echo "** Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin"
826 fi
828 AC_PATH_PROG(PATH_TO_FPING,fping)
829 if test -x "$PATH_TO_FPING"
830 then
831         AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping])
832         EXTRAS="$EXTRAS check_fping"
833 else
834         echo "** Get fping from http://www.fping.com in order to make check_fping plugin"
835 fi
837 AC_PATH_PROG(PATH_TO_SSH,ssh)
838 if test -x "$PATH_TO_SSH"
839 then
840         AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary])
841         EXTRAS="$EXTRAS check_by_ssh"
842 else
843         echo "** Get ssh in order to make check_by_ssh plugin"
844 fi
847 AC_PATH_PROG(PATH_TO_MAILQ,mailq)
848 if test -x "$PATH_TO_MAILQ"
849 then
850         AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq])
851 else
852         echo "** Could not find mailq or eqivalent"
853 fi
855 dnl dunno why this does not work below - use hack (kbd)
856 dnl fine on linux, broken on solaris
857 dnl if /bin/test -e "/proc/meminfo"
859 if [cat /proc/meminfo > /dev/null 2>&1]
860 then
861         echo "found /proc/meminfo"
862         AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
863         AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes])
864         EXTRAS="$EXTRAS check_swap"
865 elif [swap -l 2>&1 | egrep -i "swapfile" >/dev/null]
866 then
867         echo "found swap command"
868         AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
869         AC_PATH_PROG(PATH_TO_SWAP,swap)
870         AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -l",[Path to swap/swapinfo binary, with any args])
871         if [swap -l 2>/dev/null | egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" >/dev/null]
872         then
873                 AC_DEFINE_UNQUOTED(SWAP_FORMAT,[" %*d %*s %*d,%*d %*d %*d %d %d"],[Format string for parsing swap output])
874                 echo "      using IRIX format"
875         elif [swap -l 2>/dev/null | egrep -i "^swapfile +dev +swaplo +blocks +free" >/dev/null]
876         then
877                 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %*[[0-9,-]] %*d %d %d"],[Format string for parsing swap output])
878                 echo "      using Solaris format"
879         fi
880         EXTRAS="$EXTRAS check_swap"
881 elif [swapinfo -k 2>&1 | egrep -i "Device" >/dev/null]
882 then
883         echo "found swapinfo command"
884         AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
885         AC_PATH_PROG(PATH_TO_SWAP,swapinfo)
886         AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -k",[Path to swap/swapinfo binary, with any args])
887         if [swapinfo -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
888         then
889                 AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %d %*d %d"],[Format string for parsing swap output])
890                 echo "      using FreeBSD format"
891         fi
892         EXTRAS="$EXTRAS check_swap"
893 elif [swapinfo -d 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
894 then
895         AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
896         AC_PATH_PROG(PATH_TO_SWAP,swapinfo)
897         AC_DEFINE_UNQUOTED(SWAP_COMMAND,"/bin/sh '$PATH_TO_SWAP -d | /bin/tail -l +2'",[Path to swap/swapinfo binary, with any args])
898         AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %d %*d %d"],[Format string for parsing swap output ])
899         echo "        using HP-UX format HP-UX"
900 fi
902 AC_PATH_PROG(PATH_TO_DIG,dig)
903 AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
904 if test -n "$PATH_TO_DIG"; then
905         EXTRAS="$EXTRAS check_dig"
906 fi
908 if test -f plugins/check_nt.c ; then
909   EXTRAS="$EXTRAS check_nt"
910 elif test -f ../plugins/check_nt.c ; then
911   EXTRAS="$EXTRAS check_nt"
912 fi
914 AC_TRY_COMPILE([#ifdef __STDC__
915 #include <stdio.h>
916 #include <stdlib.h>
917 #include <stdarg.h>
918 #else
919 #include <sys/types.h>
920 #include <stdio.h>
921 #include <varargs.h>
922 #endif],
923 [va_list args;],
924 [AC_MSG_RESULT(yes)],
925 [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
927 AC_SUBST(EXTRAS)
928 AC_SUBST(DEPLIBS)
930 AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"${VERSION}",[package version])
932 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)