X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=configure.in;h=48135eec1da6a8a334503e4c04cb3b41a2dc6807;hb=3481294648b99121eb93f7b26d77594f86c9f582;hp=ca890f768f379b7f2026492ab1c8c978d5a5aaae;hpb=8e4edfc1ab2b38b0e82cbd28da9f56b04325775a;p=nagiosplug.git diff --git a/configure.in b/configure.in index ca890f7..48135ee 100644 --- a/configure.in +++ b/configure.in @@ -3,11 +3,15 @@ include(`aclocal.m4') include(`getloadavg.m4') AC_REVISION ($Revision$) AC_INIT(Helper.pm) -PACKAGE_VERSION="1.3.0" +VER=1.3.0 +REL=beta2 +AC_SUBST(VER) +AC_SUBST(REL) +PACKAGE_VERSION="${VER}-${REL}" AC_SUBST(PACKAGE_VERSION) -PACKAGE_RELEASE="alpha1" +PACKAGE_RELEASE="${REL}" AC_SUBST(PACKAGE_RELEASE) -AM_INIT_AUTOMAKE(nagios-plugins,${PACKAGE_VERSION}-${PACKAGE_RELEASE}) +AM_INIT_AUTOMAKE(nagios-plugins,${PACKAGE_VERSION}) AM_CONFIG_HEADER(plugins/config.h plugins/common.h plugins/version.h plugins/netutils.h plugins/utils.h plugins/popen.h) AC_PREFIX_DEFAULT(/usr/local/nagios) @@ -17,6 +21,13 @@ dnl Figure out how to invoke "install" and what install options to use. AC_PROG_INSTALL AC_SUBST(INSTALL) +AC_PROG_CC +AC_PROG_MAKE_SET +AC_PROG_AWK + +AC_FUNC_GETLOADAVG(plugins) +ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD]) +dnl AM_WITH_REGEX AC_PROG_RANLIB AC_PATH_PROG(ACLOCAL,aclocal) @@ -36,10 +47,6 @@ AC_SUBST(WARRANTY) 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" AC_SUBST(SUPPORT) -dnl AC_ARG_PROGRAM - -dnl AC_ARG_WITH(nonposix_state_defs,--with-nonposix-state-defs uses POSIXLY incorrect states for netsaint < 0.0.7b2,,AC_DEFINE(POSIX_STATE_DEFS)) - dnl CGIURL has changed for Nagios with 1.0 beta AC_ARG_WITH(cgiurl,--with-cgiurl= sets URL for cgi programs,cgiurl=$withval,cgiurl=/nagios/cgi-bin) CGIURL="$cgiurl" @@ -61,10 +68,6 @@ dnl PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/etc:/usr/local/bin:/usr/local/sbin:$ LDFLAGS="$LDFLAGS -L." dnl Checks for programs. -AC_PROG_CC -AC_PROG_MAKE_SET -AC_PROG_AWK - AC_PATH_PROG(PYTHON,python) AC_PATH_PROG(PERL,perl) AC_PATH_PROG(SH,sh) @@ -77,8 +80,6 @@ dnl dnl Checks for libraries. dnl -AC_FUNC_GETLOADAVG(plugins) - AC_CHECK_LIB(dce,main,SOCKETLIBS="$SOCKETLIBS -ldce") AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl") AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket") @@ -162,8 +163,6 @@ LIBS="$_SAVEDLIBS" dnl Check for mysql libraries _SAVEDLIBS="$LIBS" _SAVEDCPPFLAGS="$CPPFLAGS" -dnl CPPFLAGS="-I/usr/include" - AC_ARG_WITH(mysql,--with-mysql= sets path to mysql installation (assumes lib/mysql and include subdirs),[MYSQL=$withval]) if test -n "$MYSQL"; then MYSQLLIBDIR=$MYSQL/lib/mysql @@ -187,19 +186,18 @@ if test "$ac_cv_lib_mysqlclient_mysql_init" = "yes" -o "$ac_cv_lib_mysqlclient_m AC_CHECK_HEADERS(mysql/mysql.h mysql/errmsg.h, MYSQLINCLUDE="-I$MYSQL/include" ) if test "$ac_cv_header_mysql_mysql_h" = "yes" -a "$ac_cv_header_mysql_errmsg_h" = "yes"; then EXTRAS="$EXTRAS check_mysql" - CPPFLAGS="$_SAVEDCPPFLAGS -I$MYSQL/include" + AC_SUBST(MYSQLINCLUDE) AC_SUBST(MYSQLLIBS) AC_SUBST(check_mysql_LDFLAGS) else AC_MSG_WARN([Skipping mysql plugin]) AC_MSG_WARN([install mysql client headers to compile this plugin (see Requirements).]) - CPPFLAGS="$_SAVEDCPPFLAGS" fi else AC_MSG_WARN([Skipping mysql plugin]) AC_MSG_WARN([install mysql client libs to compile this plugin (see Requirements).]) - CPPFLAGS="$_SAVEDCPPFLAGS" fi +CPPFLAGS="$_SAVEDCPPFLAGS" LIBS="$_SAVEDLIBS" dnl Check for OpenSSL location @@ -261,6 +259,7 @@ AC_HEADER_STDC AC_HEADER_TIME AC_HEADER_SYS_WAIT 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) +AC_CHECK_HEADERS(stdarg.h sys/unistd.h unistd.h ctype.h sys/wait.h stdlib.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST @@ -269,17 +268,88 @@ AC_TYPE_PID_T AC_TYPE_SIZE_T AC_TYPE_SIGNAL -dnl AC_CHECK_MEMBER(struct timeb.millitm,[AC_DEFINE(HAVE_STRUCT_TIMEB_MILLITM)],,[#include ]) +AC_CHECK_SIZEOF(int,cross) +AC_CHECK_SIZEOF(long,cross) +AC_CHECK_SIZEOF(short,cross) + +AC_CACHE_CHECK([for long long],ac_cv_have_longlong,[ +AC_TRY_RUN([#include +main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }], +ac_cv_have_longlong=yes,ac_cv_have_longlong=no,ac_cv_have_longlong=cross)]) +if test x"$ac_cv_have_longlong" = x"yes"; then + AC_DEFINE(HAVE_LONGLONG,1,[Define if system has long long type]) +fi + +# +# Check if the compiler supports the LL prefix on long long integers. +# AIX needs this. + +AC_CACHE_CHECK([for LL suffix on long long integers],ac_cv_compiler_supports_ll, [ + AC_TRY_COMPILE([#include ],[long long i = 0x8000000000LL], + ac_cv_compiler_supports_ll=yes,ac_cv_compiler_supports_ll=no)]) +if test x"$ac_cv_compiler_supports_ll" = x"yes"; then + AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Define if compiler support long long]) +fi + +AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE_VA_COPY,[ +AC_TRY_LINK([#include +va_list ap1,ap2;], [__va_copy(ap1,ap2);], +ac_cv_HAVE_VA_COPY=yes,ac_cv_HAVE_VA_COPY=no)]) +if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then + AC_DEFINE(HAVE_VA_COPY,1,[Define if system has va_copy]) +fi -dnl EXTRA_LIBRARIES="libgetopt.a libsnprintf.a" -dnl noinst_LIBRARIES="libgetopt.a libsnprintf.a" -dnl libgetopt_a_SOURCES="getopt.c getopt1.c" -dnl libgetopt_a_DEPENDENCIES=getopt.h -dnl libsnprintf_a_SOURCES=snprintf.c -dnl AC_SUBST(noinst_LIBRARIES) -dnl AC_SUBST(libgetopt_a_SOURCES) -dnl AC_SUBST(libgetopt_a_DEPENDENCIES) -dnl AC_SUBST(libsnprintf_a_SOURCES) +AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[ +AC_TRY_RUN([ +#include +#include +void foo(const char *format, ...) { + va_list ap; + int len; + char buf[5]; + + va_start(ap, format); + len = vsnprintf(buf, 0, format, ap); + va_end(ap); + if (len != 5) exit(1); + + va_start(ap, format); + len = vsnprintf(0, 0, format, ap); + va_end(ap); + if (len != 5) exit(1); + + if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1); + + exit(0); +} +main() { foo("hello"); } +], +ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)]) +if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then + AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf]) +fi + +#AC_HAVE_DECL(asprintf, [#include ]) +#AC_HAVE_DECL(vasprintf, [#include ]) +#AC_HAVE_DECL(vsnprintf, [#include ]) +#AC_HAVE_DECL(snprintf, [#include ]) + +AC_CHECK_FUNC(snprintf, + AC_DEFINE(HAVE_SNPRINTF,1,[Define if snprintf is present]), + LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a") +AC_CHECK_FUNC(vsnprintf, + AC_DEFINE(HAVE_VSNPRINTF,1,[Define if vsnprintf is present]), + LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a") +AC_CHECK_FUNC(vasprintf, + AC_DEFINE(HAVE_VASPRINTF,1,[Define if vasprintf is present]), + LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a") +AC_CHECK_FUNC(asprintf, + AC_DEFINE(HAVE_ASPRINTF,1,[Define if asprintf is present]), + LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a") + +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 + LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a" +fi dnl We used to not do long options unless a compatible lib was found dnl Now we provide code and make libgetopt if native is not suitable @@ -290,19 +360,28 @@ AC_TRY_COMPILE([#include static struct option *long_options; getopt_long(0,NULL,"+h",long_options,&option_index);], [AC_DEFINE(HAVE_GETOPT_H,1,[Define if getopt headers are found]) - AC_DEFINE(HAVE_GETOPT_LONG,1,[Define if getopt_long_only() is found]) + AC_DEFINE(HAVE_GETOPT_LONG,1,[Define if getopt_long is found]) AC_MSG_RESULT(yes)], [AC_DEFINE(HAVE_GETOPT_H,1,[Define if getopt headers are found]) - AC_DEFINE(HAVE_GETOPT_LONG,1,[Define if getopt_long_only() is found]) + AC_DEFINE(HAVE_GETOPT_LONG,1,[Define if getopt_long is found]) AC_MSG_RESULT(no) - import_sources=getopt]) - -AC_CHECK_FUNCS(getopt_long_only,,LIBS="$LIBS -lgetopt" DEPLIBS="$DEPLIBS libgetopt.a") - -AC_CHECK_FUNC(asprintf,,LIBS="$LIBS -lsnprintf" DEPLIBS="$DEPLIBS libsnprintf.a") + import_sources=getopt + LIBS="$LIBS -lgetopt" + DEPLIBS="$DEPLIBS libgetopt.a"]) + +AC_TRY_COMPILE([#include ], + [struct timeval *tv; + struct timezone *tz;], + AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure]) + AC_TRY_COMPILE([#include ], + [struct timeval *tv; + struct timezone *tz; + gettimeofday(tv, tz);], + AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]), + AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed]))) dnl Checks for library functions. -AC_CHECK_FUNCS(select socket strdup strstr strtod strtol strtoul gettimeofday) +AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul) AC_MSG_CHECKING(for type of socket size) AC_TRY_COMPILE([#include @@ -317,237 +396,230 @@ AC_TRY_COMPILE([#include if test -f "/proc/loadavg" then AC_DEFINE(HAVE_PROC_LOADAVG,1,[Define if /proc/loadavg or similar exists]) - AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg"[Location of /proc/loadavg]) + AC_DEFINE_UNQUOTED(PROC_LOADAVG,"/proc/loadavg",[Location of /proc/loadavg]) fi AC_PATH_PROG(PATH_TO_PS,ps) -dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs) dnl STAT UCOMM VSZ RSS USER UID PPID COMMAND -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] +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] then - AC_DEFINE(USE_PS_VARS) - AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos]) - AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -axo 'stat user ppid args'") + AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf]) + AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output]) + AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -weo 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint]) + EXTRAS="$EXTRAS check_nagios" + AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -weo 'stat uid ppid comm args'",[Verbatim command to execute for ps in check_procs]) + AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs]) + AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -weo 'vsz comm'",[Verbatim command to execute for ps in check_vsz]) + AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[Format string for scanning ps output in check_vsz]) + AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -weo 'rss comm'",[Verbatim command to execute for ps in check_rss]) + AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[Format string for scanning ps output in check_rss]) + echo " ps syntax... $PATH_TO_PS -weo 'stat comm vsz rss user ppid args'" +dnl FreeBSD +elif [ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | egrep -i "^STAT +COMMAND +VSZ +RSS +UID +USER +PPID" >/dev/null] +then + AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf]) + AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[]) + AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxo 'state uid ppid command'",[]) + EXTRAS="$EXTRAS check_nagios" + AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxco 'state uid ppid command command'",[]) + AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs]) + AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxco 'vsz command'",[]) + AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[]) + AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxco 'rss command'",[]) + AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[]) + echo " ps syntax... $PATH_TO_PS -Ao 'state command vsz rss'" +dnl BSD-like mode in RH 6.1 +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] +then + AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf]) + AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[]) + AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxno 'state user ppid comm'",[]) + EXTRAS="$EXTRAS check_nagios" + AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxno 'state uid ppid comm args'",[]) + AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs]) + AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxno 'vsz comm'",[]) + AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[]) + AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxno 'rss comm'",[]) + AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[]) + echo " ps syntax... $PATH_TO_PS -waxco 'state comm vsz rss'" +dnl SunOS 4.1.3: +dnl F UID PID PPID CP PRI NI SZ RSS WCHAN STAT TT TIME COMMAND +dnl +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] +then + AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf]) + AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[]) + EXTRAS="$EXTRAS check_nagios" + AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[]) + AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -laxnwww",[]) + 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]) + AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[]) + AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[]) + AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[]) + AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %d",[]) + echo " ps syntax... $PATH_TO_PS laxnwww" +dnl Debian Linux / procps v1.2.9: +dnl FLAGS UID PID PPID PRI NI SIZE RSS WCHAN STA TTY TIME COMMAND +dnl 100 0 1 0 0 0 776 76 c0131c8c S ffff 0:11 init [2] +dnl +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] +then + AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf]) + AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww",[]) EXTRAS="$EXTRAS check_nagios" - AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -axo 'stat uid ppid comm args'") - AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n") - AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -axo 'vsz comm'") - AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s") - AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -axo 'rss comm'") - AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s") + AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[]) + AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS laxnwww",[]) + 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]) + AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww",[]) + AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d",[]) + AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww",[]) + AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[]) + echo " ps syntax... $PATH_TO_PS laxnwww" +dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs) +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] +then + AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf]) + AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output]) + AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -axo 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint]) + EXTRAS="$EXTRAS check_nagios" + AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -axo 'stat uid ppid comm args'",[Verbatim command to execute for ps in check_procs]) + AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs]) + AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -axo 'vsz comm'",[Verbatim command to execute for ps in check_vsz]) + AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[Format string for scanning ps output in check_vsz]) + AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -axo 'rss comm'",[Verbatim command to execute for ps in check_rss]) + AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[Format string for scanning ps output in check_rss]) echo " ps syntax... $PATH_TO_PS -axo 'stat comm vsz rss user ppid args'" dnl AIX 4.3.3 - needs verification. 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] then - AC_DEFINE(USE_PS_VARS) - AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos]) - AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'stat user ppid args'") + AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf]) + AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output]) + AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'stat user ppid args'",[Verbatim command to execute for ps in check_netsaint]) EXTRAS="$EXTRAS check_nagios" AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'stat uid ppid comm args'") - AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n") - AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz comm'") - AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s") - AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss comm'") - AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s") + AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs]) + AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz comm'",[]) + AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[]) + AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss comm'",[]) + AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[]) echo " ps syntax... $PATH_TO_PS -ao 'stat comm vsz rss user ppid args'" 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] then - AC_DEFINE(USE_PS_VARS) - AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos]) - AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -eo 's user ppid args'") + AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf]) + AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output]) + AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -eo 's user ppid args'",[Verbatim command to execute for ps in check_netsaint]) EXTRAS="$EXTRAS check_nagios" AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -eo 's uid ppid comm args'") - AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n") - AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -eo 'vsz comm'") - AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s") - AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -eo 'rss comm'") - AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s") + AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs]) + AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -eo 'vsz comm'",[]) + AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[]) + AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -eo 'rss comm'",[]) + AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[]) echo " ps syntax... $PATH_TO_PS -eo 's comm vsz rss user ppid args'" 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] then - AC_DEFINE(USE_PS_VARS) - AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos]) - AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 's user ppid args'") + AC_DEFINE(USE_PS_VARS,1,[Define if 'ps' will be parsed with sscanf]) + AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[Variable list for sscanf of 'ps' output]) + AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 's user ppid args'",[Verbatim command to execute for ps in check_netsaint]) EXTRAS="$EXTRAS check_nagios" - AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 's uid ppid comm args'") - AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n") - AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'") - AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s") - AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'") - AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s") + AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 's uid ppid comm args'",[]) + AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs]) + AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[]) + AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[]) + AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[]) + AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[]) echo " ps syntax... $PATH_TO_PS -Ao 's comm vsz rss'" 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] then - AC_DEFINE(USE_PS_VARS) + AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf]) AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos]) - AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'status user ppid args'") + AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'status user ppid args'",[Verbatim command to execute for ps in check_netsaint]) EXTRAS="$EXTRAS check_nagios" - AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'status uid ppid comm args'") - AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n") - AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'") - AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s") - AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'") - AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s") + AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'status uid ppid comm args'",[]) + AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs]) + AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[]) + AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[]) + AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[]) + AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[]) echo " ps syntax... $PATH_TO_PS -Ao 'status comm vsz rss'" 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] then - AC_DEFINE(USE_PS_VARS) + AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf]) AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos]) - AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'state user ppid args'") + AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -Ao 'state user ppid args'",[Verbatim command to execute for ps in check_netsaint]) EXTRAS="$EXTRAS check_nagios" - AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'state uid ppid comm args'") - AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n") - AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'") - AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s") - AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'") - AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s") + AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -Ao 'state uid ppid comm args'",[]) + AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs]) + AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -Ao 'vsz comm'",[]) + AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[]) + AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -Ao 'rss comm'",[]) + AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[]) echo " ps syntax... $PATH_TO_PS -Ao 'state comm vsz rss'" dnl wonder who takes state instead of stat 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] then - AC_DEFINE(USE_PS_VARS) - AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos]) - AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'state user ppid args'") + AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf]) + AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos],[]) + AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS -ao 'state user ppid args'",[]) EXTRAS="$EXTRAS check_nagios" - AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'state uid ppid command args'") - AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n") - AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz command'") - AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s") - AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss command'") - AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s") + AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -ao 'state uid ppid command args'",[]) + AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n",[Format string for scanning ps output in check_procs]) + AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -ao 'vsz command'",[]) + AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s",[]) + AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -ao 'rss command'",[]) + AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s",[]) echo " ps syntax... $PATH_TO_PS -ao 'state command vsz rss'" -dnl FreeBSD -elif [ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | egrep -i "^STAT +COMMAND +VSZ +RSS +UID +USER +PPID" >/dev/null] -then - AC_DEFINE(USE_PS_VARS) - AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos]) - AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxo 'state uid ppid command'") - EXTRAS="$EXTRAS check_nagios" - AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxco 'state uid ppid command command'") - AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n") - AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxco 'vsz command'") - AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s") - AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxco 'rss command'") - AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s") - echo " ps syntax... $PATH_TO_PS -Ao 'state command vsz rss'" -dnl BSD-like mode in RH 6.1 -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] -then - AC_DEFINE(USE_PS_VARS) - AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,procprog,&pos]) - AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS waxno 'state user ppid comm'") - EXTRAS="$EXTRAS check_nagios" - AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS waxno 'state uid ppid comm args'") - AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %d %s %n") - AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS waxno 'vsz comm'") - AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%d %s") - AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS waxno 'rss comm'") - AC_DEFINE_UNQUOTED(RSS_FORMAT,"%d %s") - echo " ps syntax... $PATH_TO_PS -waxco 'state comm vsz rss'" dnl IRIX 53 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] then - AC_DEFINE(USE_PS_VARS) - AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog]) - AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el") - AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s") - AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el") - AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d") - AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el") - AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d") + AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf]) + AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[]) + AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[]) + 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]) + AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[]) + AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d",[]) + AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[]) + AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[]) echo " ps syntax... $PATH_TO_PS -el" dnl IRIX 63 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] then - AC_DEFINE(USE_PS_VARS) - AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog]) - AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el") - AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s") - AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el") - AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d") - AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el") - AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d") + AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf]) + AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[]) + AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[]) + 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]) + AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[]) + AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d",[]) + AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[]) + AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[]) echo " ps syntax... $PATH_TO_PS -el" -dnl SunOS 4.1.3: -dnl F UID PID PPID CP PRI NI SZ RSS WCHAN STAT TT TIME COMMAND -dnl -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] -then - AC_DEFINE(USE_PS_VARS) - AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww") - EXTRAS="$EXTRAS check_nagios" - AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog]) - AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -laxnwww") - AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %d %*s %d %*s %*s %*s %*s %*s %*s %s %*s %*s %n%s") - AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww") - AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d") - AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww") - AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %d") - echo " ps syntax... $PATH_TO_PS laxnwww" -dnl Debian Linux / procps v1.2.9: -dnl FLAGS UID PID PPID PRI NI SIZE RSS WCHAN STA TTY TIME COMMAND -dnl 100 0 1 0 0 0 776 76 c0131c8c S ffff 0:11 init [2] -dnl -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] -then - AC_DEFINE(USE_PS_VARS) - AC_DEFINE_UNQUOTED(PS_RAW_COMMAND,"$PATH_TO_PS laxnwww") - EXTRAS="$EXTRAS check_nagios" - AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog]) - AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS laxnwww") - AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s") - AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS laxnwww") - AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d") - AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS laxnwww") - AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d") - echo " ps syntax... $PATH_TO_PS laxnwww" dnl dnl AIX 4.1: dnl F S UID PID PPID C PRI NI ADDR SZ RSS WCHAN TTY TIME CMD dnl 303 A 0 0 0 120 16 -- 1c07 20 24 - 0:45 swapper elif [ps -el 2>/dev/null | egrep -i "^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+" >/dev/null] then - AC_DEFINE(USE_PS_VARS) - AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog]) - AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el") - AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s") - AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el") - AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d") - AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el") - AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d") + AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf]) + AC_DEFINE_UNQUOTED(PS_VARLIST,[procstat,&procuid,&procppid,&pos,procprog],[]) + AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS -el",[]) + 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]) + AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS -el",[]) + AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[]) + AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS -el",[]) + AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %*s %*s %d",[]) echo " ps syntax... $PATH_TO_PS -el" dnl AIX? elif [ps glaxen 2>/dev/null | egrep -i "^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND" >/dev/null] then - AC_DEFINE(USE_PS_VARS) - AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog]) - AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS glaxen") - AC_DEFINE_UNQUOTED(PS_FORMAT,"%*s %d %*s %d %*s %*s %*s %*s %*s %s %*s %*s %n%s") - AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS glaxen") - AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d") - AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS glaxen") - AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d") + AC_DEFINE(USE_PS_VARS,1,[Define if we use custom variable list for sscanf]) + AC_DEFINE_UNQUOTED(PS_VARLIST,[&procuid,&procppid,procstat,&pos,procprog],[]) + AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS glaxen",[]) + 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]) + AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS glaxen",[]) + AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %*s %*s %d",[]) + AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS glaxen",[]) + AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %*s %*s %d",[]) echo " ps syntax... $PATH_TO_PS glaxen" -dnl ucb style? -dnl elif [ps axun 2>/dev/null | egrep -i "^USER +PID +%CPU +%MEM +SIZE +RSS +TTY +STAT +START +TIME +COMMAND *$" >/dev/null] -dnl then -dnl AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS axun") -dnl AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %*s %*s %*s %*s %*s %s %*s %*s %s") -dnl AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS axun") -dnl AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d") -dnl AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS axun") -dnl AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %d") -dnl echo " ps syntax... $PATH_TO_PS axun" -dnl ucb style? -dnl elif [ps axun 2>/dev/null | egrep -i "^USER +PID +%CPU +%MEM +SIZE +RSS +TTY +STAT +START +TIME +COMMAND" >/dev/null] -dnl then -dnl AC_DEFINE_UNQUOTED(PS_COMMAND,"$PATH_TO_PS axun") -dnl AC_DEFINE_UNQUOTED(PS_FORMAT,"%s %d %*s %*s %*s %*s %*s %s %*s %*s %s") -dnl AC_DEFINE_UNQUOTED(VSZ_COMMAND,"$PATH_TO_PS axun") -dnl AC_DEFINE_UNQUOTED(VSZ_FORMAT,"%*s %*s %*s %*s %d") -dnl AC_DEFINE_UNQUOTED(RSS_COMMAND,"$PATH_TO_PS axun") -dnl AC_DEFINE_UNQUOTED(RSS_FORMAT,"%*s %*s %*s %*s %*s %d") -dnl echo " ps syntax... $PATH_TO_PS axun" else echo "** Unable to find usable ps syntax" fi @@ -555,27 +627,27 @@ fi AC_ARG_WITH(df_command,--with-df-command= sets syntax for df,DF_COMMAND=$withval) if test -n "$DF_COMMAND" then - AC_DEFINE_UNQUOTED(DF_COMMAND,"$DF_COMMAND") + AC_DEFINE_UNQUOTED(DF_COMMAND,"$DF_COMMAND",[path and args for df command]) 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] then AC_PATH_PROG(PATH_TO_DF,df) AC_MSG_RESULT(" df syntax... $PATH_TO_DF -Pk") - AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -Pk") + AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -Pk",[path and args for df command]) 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] then AC_PATH_PROG(PATH_TO_DF,df) AC_MSG_RESULT(" df syntax... $PATH_TO_DF -k") - AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -k") + AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF -k",[path and args for df command]) elif [df 2>/dev/null | egrep -i "^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*" >/dev/null] then AC_PATH_PROG(PATH_TO_DF,df) AC_MSG_RESULT(" df syntax... $PATH_TO_DF") - AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF") + AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF",[path and args for df command]) elif [bdf 2>/dev/null | egrep -i "^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*" >/dev/null] then AC_PATH_PROG(PATH_TO_DF,bdf) AC_MSG_RESULT(" df syntax... $PATH_TO_DF") - AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF") + AC_DEFINE_UNQUOTED(DF_COMMAND,"$PATH_TO_DF",[path and args for df command]) else AC_MSG_WARN("unable to find usable df syntax") fi @@ -588,17 +660,17 @@ then echo " ping syntax... (command-line) $PING_COMMAND" if test -n "$PING_PACKETS_FIRST" then - AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND") + AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host]) fi elif [ping -n -U -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null] then PING_COMMAND="$PATH_TO_PING -n -U -c %d %s" - AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND") + AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host]) echo " ping syntax... $PATH_TO_PING -n -U -c " elif [ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null] then PING_COMMAND="$PATH_TO_PING -n -c %d %s" - AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND") + AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host]) echo " ping syntax... $PATH_TO_PING -n -c " elif [ping -n 127.0.0.1 -c 1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null] then @@ -619,17 +691,17 @@ then elif [ping -n -s 56 -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null] then PING_COMMAND="$PATH_TO_PING -n -s 56 -c %d %s" - AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND") + AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host]) echo " ping syntax... $PATH_TO_PING -n -s 56 -c " elif [ping -n -c 1 127.0.0.1 2>/dev/null | egrep -i "^round-trip|^rtt" >/dev/null] then PING_COMMAND="$PATH_TO_PING -n -c %d %s" - AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND") + AC_DEFINE_UNQUOTED(PING_PACKETS_FIRST,"$PING_COMMAND",[Define if packet count must precede host]) echo " ping syntax... $PATH_TO_PING -n -c " else AC_MSG_WARN("unable to find usable ping syntax") fi -AC_DEFINE_UNQUOTED(PING_COMMAND,"$PING_COMMAND") +AC_DEFINE_UNQUOTED(PING_COMMAND,"$PING_COMMAND",[path and args for ping command]) AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup) if test -n "$ac_cv_path_PATH_TO_NSLOOKUP" @@ -638,10 +710,10 @@ then if [nslookup -sil 127.0.0.1 2>&1 | grep "*** Invalid option: sil" >/dev/null] then AC_MSG_RESULT("$PATH_TO_NSLOOKUP") - AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP") + AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP",[path and args for nslookup]) else AC_MSG_RESULT("$PATH_TO_NSLOOKUP -sil") - AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP -sil") + AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$PATH_TO_NSLOOKUP -sil",[path and args for nslookup]) fi EXTRAS="$EXTRAS check_dns" else @@ -655,7 +727,7 @@ then if [host 127.0.0.1 2>&1 | grep -v "ommand not found" > /dev/null] then AC_MSG_RESULT("$PATH_TO_HOST") - AC_DEFINE_UNQUOTED(HOST_COMMAND,"$PATH_TO_HOST") + AC_DEFINE_UNQUOTED(HOST_COMMAND,"$PATH_TO_HOST",[path to host binary]) fi EXTRAS="$EXTRAS check_dns" else @@ -663,17 +735,17 @@ else fi AC_PATH_PROG(PATH_TO_UPTIME,uptime) -AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME") +AC_DEFINE_UNQUOTED(PATH_TO_UPTIME,"$PATH_TO_UPTIME",[path to uptime binary]) AC_PATH_PROG(PATH_TO_RPCINFO,rpcinfo) -AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO") +AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary]) AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate) AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc) if (test -x "$PATH_TO_NTPDATE" || test -x "$PATH_TO_NTPDC") then - AC_DEFINE_UNQUOTED(PATH_TO_NTPDC,"$PATH_TO_NTPDC") - AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE") + AC_DEFINE_UNQUOTED(PATH_TO_NTPDC,"$PATH_TO_NTPDC",[path to ntpdc binary]) + AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary]) else echo "** Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization" fi @@ -681,7 +753,7 @@ fi AC_PATH_PROG(PATH_TO_LMSTAT,lmstat) if test -x "$PATH_TO_LMSTAT" then - AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT") + AC_DEFINE_UNQUOTED(PATH_TO_LMSTAT,"$PATH_TO_LMSTAT",[path to lmstat]) else echo "** Get lmstat from Globetrotter Software to monitor flexlm licenses" fi @@ -689,7 +761,7 @@ fi AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient) if test -x "$PATH_TO_SMBCLIENT" then - AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT") + AC_DEFINE_UNQUOTED(PATH_TO_SMBCLIENT,"$PATH_TO_SMBCLIENT",[path to smbclient binary]) else echo "** Get smbclient from Samba.org to monitor SMB shares" fi @@ -698,15 +770,15 @@ fi AC_PATH_PROG(PATH_TO_WHO,who) if [who -q 2>/dev/null | egrep -i "^# users=[0-9]+$" >/dev/null] then - AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO -q") + AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO -q",[path and arguments for invoking 'who']) else - AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO") + AC_DEFINE_UNQUOTED(WHO_COMMAND,"$PATH_TO_WHO",[path and arguments for invoking 'who']) fi AC_PATH_PROG(PATH_TO_SNMPGET,snmpget) if test -x "$PATH_TO_SNMPGET" then - AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET") + AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary]) EXTRAS="$EXTRAS check_hpjd check_snmp" else echo "** Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins" @@ -715,7 +787,7 @@ fi AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext) if test -x "$PATH_TO_SNMPGETNEXT" then - AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT") + AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary]) fi if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null ) @@ -730,11 +802,11 @@ AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat) AC_PATH_PROG(PATH_TO_QSTAT,qstat) if test -x "$PATH_TO_QUAKESTAT" then - AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QUAKESTAT") + AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QUAKESTAT",[path to qstat/quakestat]) EXTRAS="$EXTRAS check_game" elif test -x "$PATH_TO_QSTAT" then - AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QSTAT") + AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$PATH_TO_QSTAT",[path to qstat/quakestat]) EXTRAS="$EXTRAS check_game" else echo "** Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin" @@ -743,7 +815,7 @@ fi AC_PATH_PROG(PATH_TO_FPING,fping) if test -x "$PATH_TO_FPING" then - AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING") + AC_DEFINE_UNQUOTED(PATH_TO_FPING,"$PATH_TO_FPING",[path to fping]) EXTRAS="$EXTRAS check_fping" else echo "** Get fping from http://www.fping.com in order to make check_fping plugin" @@ -752,12 +824,21 @@ fi AC_PATH_PROG(PATH_TO_SSH,ssh) if test -x "$PATH_TO_SSH" then - AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH") + AC_DEFINE_UNQUOTED(SSH_COMMAND,"$PATH_TO_SSH",[path to ssh binary]) EXTRAS="$EXTRAS check_by_ssh" else echo "** Get ssh in order to make check_by_ssh plugin" fi + +AC_PATH_PROG(PATH_TO_MAILQ,mailq) +if test -x "$PATH_TO_MAILQ" +then + AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq]) +else + echo "** Could not find mailq or eqivalent" +fi + dnl dunno why this does not work below - use hack (kbd) dnl fine on linux, broken on solaris dnl if /bin/test -e "/proc/meminfo" @@ -765,15 +846,15 @@ dnl if /bin/test -e "/proc/meminfo" if [cat /proc/meminfo > /dev/null 2>&1] then echo "found /proc/meminfo" - AC_DEFINE(HAVE_PROC_MEMINFO) - AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo") + AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo]) + AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes]) EXTRAS="$EXTRAS check_swap" elif [swap -l 2>&1 | egrep -i "swapfile" >/dev/null] then echo "found swap command" AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found]) AC_PATH_PROG(PATH_TO_SWAP,swap) - AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -l"[Path to swap/swapinfo binary, with any args]) + AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$PATH_TO_SWAP -l",[Path to swap/swapinfo binary, with any args]) if [swap -l 2>/dev/null | egrep -i "^lswap +path +pri +swaplo +blocks +free +maxswap" >/dev/null] then AC_DEFINE_UNQUOTED(SWAP_FORMAT,[" %*d %*s %*d,%*d %*d %*d %d %d"],[Format string for parsing swap output]) @@ -796,6 +877,13 @@ then echo " using FreeBSD format" fi EXTRAS="$EXTRAS check_swap" +elif [swapinfo -d 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null] +then + AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found]) + AC_PATH_PROG(PATH_TO_SWAP,swapinfo) + AC_DEFINE_UNQUOTED(SWAP_COMMAND,"/bin/sh '$PATH_TO_SWAP -d | /bin/tail -l +2'",[Path to swap/swapinfo binary, with any args]) + AC_DEFINE_UNQUOTED(SWAP_FORMAT,["%*s %d %*d %d"],[Format string for parsing swap output ]) + echo " using HP-UX format HP-UX" fi AC_PATH_PROG(PATH_TO_DIG,dig) @@ -810,7 +898,6 @@ elif test -f ../plugins/check_nt.c ; then EXTRAS="$EXTRAS check_nt" fi -dnl AC_EGREP_HEADER (PATTERN, HEADER-FILE, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) AC_TRY_COMPILE([#ifdef __STDC__ #include #include