Code

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