Code

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