diff --git a/configure.in b/configure.in
index 54d5700b6515ba94d04283dbb48d924682d8a63a..68ac0a00efd0729119f5b04576eab7280c389bc4 100644 (file)
--- a/configure.in
+++ b/configure.in
dnl Process this file with autoconf to produce a configure script.
-AC_REVISION ($Revision$)
-AC_PREREQ(2.58)
-AC_INIT(nagios-plugins,1.4.3)
+AC_PREREQ(2.59)
+AC_INIT(nagios-plugins,1.4.13)
AC_CONFIG_SRCDIR(NPTest.pm)
+AC_CONFIG_FILES(gl/Makefile)
+AC_CONFIG_AUX_DIR(build-aux)
AM_INIT_AUTOMAKE([1.8.3])
AM_CONFIG_HEADER(config.h)
AC_CANONICAL_HOST
dnl Deprecated configure options
-dnl Figure out how to invoke "install" and what install options to use.
-AC_PROG_INSTALL
-AC_SUBST(INSTALL)
-dnl Must come very early on due to coreutils requirement
-dnl Takes care of AC_GNU_SOURCE, AC_AIX and AC_MINIX
-gl_USE_SYSTEM_EXTENSIONS
+dnl Append user (-o), group (-g), mode (-m) to install command
+dnl There is an assumption that this is possible with ./configure's chosen install command
+extra_install_args=""
+AC_ARG_WITH(nagios_user,
+ ACX_HELP_STRING([--with-nagios-user=USER],
+ [Installs executables with this user. Defaults to install user]),
+ extra_install_args="-o $withval")
+AC_ARG_WITH(nagios_group,
+ ACX_HELP_STRING([--with-nagios-group=GROUP],
+ [Installs executables with this group. Defaults to install user]),
+ extra_install_args="$extra_install_args -g $withval")
+AC_ARG_WITH(world_permissions,
+ ACX_HELP_STRING([--without-world-permissions],
+ [Installs executables without world permissions]))
+
+if test "x$with_world_permissions" = xno ; then
+ extra_install_args="$extra_install_args -m 0550"
+fi
+
+INSTALL="$INSTALL $extra_install_args"
+INSTALL_STRIP_PROGRAM="$INSTALL_STRIP_PROGRAM $extra_install_args"
+AC_SUBST(INSTALL)
AC_PROG_CC
-AC_PROG_CPP
+gl_EARLY
AC_PROG_GCC_TRADITIONAL
AC_PROG_LIBTOOL
-AC_PROG_MAKE_SET
-AC_PROG_AWK
+AM_PROG_CC_C_O
-AC_FUNC_MALLOC
-AC_FUNC_REALLOC
AC_FUNC_ERROR_AT_LINE
-
-AC_CONFIG_LIBOBJ_DIR(lib)
-AC_FUNC_GETLOADAVG([lib])
+AC_SYS_LARGEFILE
ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD])
CGIURL="$with_cgiurl"
AC_DEFINE_UNQUOTED(CGIURL,"$CGIURL",[URL of CGI programs])
-AC_ARG_WITH(nagios_user,
- ACX_HELP_STRING([--with-nagios-user=USER],
- [set user name to run nagios]),
- with_nagios_user=$withval,
- with_nagios_user=nagios)
-AC_ARG_WITH(nagios_group,
- ACX_HELP_STRING([--with-nagios-group=GROUP],
- [set group name to run nagios]),
- with_nagios_group=$withval,
- with_nagios_group=nagios)
-AC_SUBST(with_nagios_user)
-AC_SUBST(with_nagios_group)
-INSTALL_OPTS="-o $with_nagios_user -g $with_nagios_group"
-AC_SUBST(INSTALL_OPTS)
-
AC_ARG_WITH(trusted_path,
ACX_HELP_STRING([--with-trusted-path=PATH],
[sets trusted path for executables called by scripts (default=/bin:/sbin:/usr/bin:/usr/sbin)]),
AC_SUBST(REV_DATESTAMP)
AC_SUBST(REV_TIMESTAMP)
+dnl Check if version file is present
+AM_CONDITIONAL([RELEASE_PRESENT], [test -f release])
+
dnl Checks for programs.
AC_PATH_PROG(PYTHON,python)
AC_PATH_PROG(SH,sh)
dnl openssl/gnutls
AC_ARG_WITH(openssl,
- AC_HELP_STRING([--with-openssl=DIR],
+ AC_HELP_STRING([--with-openssl=DIR],
[path to openssl installation]),)
AC_ARG_WITH(gnutls,
@@ -139,15 +139,6 @@ dnl the order should allow locally installed versions to override distros' ones
OPENSSL_DIRS="/usr /usr/local /usr/slocal /usr/local/openssl /usr/local/ssl \
/opt /opt/openssl"
-dnl
-dnl Check for miscellaneous stuff
-dnl
-
-case $host_vender-$host_os in
-osf*)
- AC_DEFINE(_OSF_SOURCE,1,[OSF needs this for getaddrinfo])
- ;;
-esac
dnl
dnl Checks for libraries.
AC_CHECK_LIB(m,floor,MATHLIBS="-lm")
AC_SUBST(MATHLIBS)
-dnl Check for libtap, to run perl-like tests
-AC_CHECK_LIB(tap, plan_tests,
- EXTRA_TEST=test_utils
+dnl Check if we buils local libtap
+AC_ARG_ENABLE(libtap,
+ AC_HELP_STRING([--enable-libtap],
+ [Enable built-in libtap for unit-testing (default: autodetect system library).]),
+ [enable_libtap=$enableval],
+ [enable_libtap=no])
+AM_CONDITIONAL([USE_LIBTAP_LOCAL],[test "$enable_libtap" = "yes"])
+
+# If not local, check if we can use the system one
+if test "$enable_libtap" != "yes" ; then
+ dnl Check for libtap, to run perl-like tests
+ AC_CHECK_LIB(tap, plan_tests,
+ enable_libtap="yes"
+ )
+fi
+
+# Finally, define tests if we use libtap
+if test "$enable_libtap" = "yes" ; then
+ EXTRA_TEST="test_utils test_disk test_tcp test_cmd test_base64"
AC_SUBST(EXTRA_TEST)
- )
+fi
+
+dnl INI Parsing
+AC_ARG_ENABLE(extra-opts,
+ AC_HELP_STRING([--enable-extra-opts],
+ [Enables parsing of plugins ini config files for extra options (default: no)]),
+ [enable_extra_opts=$enableval],
+ [enable_extra_opts=no])
+AM_CONDITIONAL([USE_PARSE_INI],[test "$enable_extra_opts" = "yes"])
+if test "$enable_extra_opts" = "yes" ; then
+ AC_DEFINE(NP_EXTRA_OPTS,[1],[Enable INI file parsing.])
+ if test "$enable_libtap" = "yes"; then
+ EXTRA_TEST="$EXTRA_TEST test_ini1 test_ini3 test_opts1 test_opts2 test_opts3"
+ AC_SUBST(EXTRA_TEST)
+ fi
+fi
dnl Check for PostgreSQL libraries
_SAVEDLIBS="$LIBS"
[sets path to pgsql installation]),
PGSQL=$withval,)
AC_CHECK_LIB(crypt,main)
-if test "$ac_cv_lib_crypt_main" = "yes"; then
+if test "$ac_cv_lib_crypt_main" = "yes" -a "x$PGSQL" != "xno"; then
if test -n "$PGSQL"; then
LDFLAGS="$LDFLAGS -L$PGSQL/lib"
CPPFLAGS="$CPPFLAGS -I$PGSQL/include"
RADIUSLIBS="-lradiusclient"
AC_SUBST(RADIUSLIBS)
else
- AC_MSG_WARN([Skipping radius plugin])
- AC_MSG_WARN([install radius libs to compile this plugin (see REQUIREMENTS).])
+ AC_CHECK_LIB(radiusclient-ng,rc_read_config)
+ if test "$ac_cv_lib_radiusclient_ng_rc_read_config" = "yes"; then
+ EXTRAS="$EXTRAS check_radius"
+ RADIUSLIBS="-lradiusclient-ng"
+ AC_SUBST(RADIUSLIBS)
+ else
+ AC_MSG_WARN([Skipping radius plugin])
+ AC_MSG_WARN([install radius libs to compile this plugin (see REQUIREMENTS).])
+ fi
fi
LIBS="$_SAVEDLIBS"
fi
LIBS="$_SAVEDLIBS"
+dnl Check for headers used by check_ide_smart
+AC_CHECK_HEADER(linux/hdreg.h, FOUNDINCLUDE=yes, FOUNDINCLUDE=no)
+if test "$FOUNDINCLUDE" = "yes" ; then
+ AC_CHECK_HEADER(linux/types.h, FOUNDINCLUDE=yes, FOUNDINCLUDE=no)
+fi
+
+if test "$FOUNDINCLUDE" = "yes" ; then
+ EXTRAS="$EXTRAS check_ide_smart"
+else
+ AC_MSG_WARN([Skipping check_ide_smart plugin.])
+ AC_MSG_WARN([check_ide_smart is linux specific. It requires linux/hdreg.h and linux/types.h.])
+fi
+
dnl Check for mysql libraries
-dnl Default is to search path for mysql_config
-AC_ARG_WITH(mysql,
- ACX_HELP_STRING([--with-mysql=DIR],
- [Compiles mysql plugins. Expects DIR/bin/mysql_config]),
- with_mysql=$withval,
- with_mysql=yes)
-if test $with_mysql != "no" ; then
- if test -x $with_mysql/bin/mysql_config ; then
- MYSQLCONFIG="$with_mysql/bin/mysql_config"
- else
- AC_PATH_PROG(MYSQLCONFIG, mysql_config)
- fi
- if test -z "$MYSQLCONFIG"; then
- with_mysql="not found"
- AC_MSG_WARN([Skipping mysql plugin])
- AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).])
- else
- with_mysql=$MYSQLCONFIG
- EXTRAS="$EXTRAS check_mysql check_mysql_query"
- MYSQLINCLUDE=`$MYSQLCONFIG --include`
- # Mysql 3 does not support --include. --cflags should be sufficient
- if test $? -ne 0 ; then
- MYSQLINCLUDE=""
- fi
- MYSQLLIBS=`$MYSQLCONFIG --libs`
- MYSQLCFLAGS=`$MYSQLCONFIG --cflags`
- AC_SUBST(MYSQLINCLUDE)
- AC_SUBST(MYSQLLIBS)
- AC_SUBST(MYSQLCFLAGS)
- fi
+np_mysqlclient
+if test $with_mysql = "no" ; then
+ AC_MSG_WARN([Skipping mysql plugin])
+ AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).])
+else
+ EXTRAS="$EXTRAS check_mysql check_mysql_query"
+ MYSQLINCLUDE="$np_mysql_include"
+ MYSQLLIBS="$np_mysql_libs"
+ MYSQLCFLAGS="$np_mysql_cflags"
+ AC_SUBST(MYSQLINCLUDE)
+ AC_SUBST(MYSQLLIBS)
+ AC_SUBST(MYSQLCFLAGS)
fi
-AC_CHECK_HEADERS(unistd.h)
+AC_ARG_WITH([ipv6],
+ [AS_HELP_STRING([--with-ipv6], [support IPv6 @<:@default=check@:>@])],
+ [], [with_ipv6=check])
dnl Check for AF_INET6 support - unistd.h required for Darwin
-AC_CACHE_CHECK([for IPv6 support], with_ipv6, [
- AC_TRY_COMPILE([#ifdef HAVE_UNISTD_H
+if test "$with_ipv6" != "no"; then
+ AC_CACHE_CHECK([for IPv6 support], np_cv_sys_ipv6, [
+ AC_TRY_COMPILE(
+ [#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <netinet/in.h>
sin6.sin6_family = AF_INET6;
sin6.sin6_port = 587;
p = &sin6.sin6_addr;],
- [with_ipv6=yes],
- [with_ipv6=no])
- ])
-
-if test x"$with_ipv6" != xno ; then
- AC_DEFINE(USE_IPV6,1,[Enable IPv6 support])
-fi
-
-dnl #########################################################################
-dnl Check if Posix getaddrinfo() is available. It is also possible to use
-dnl the version from the lwres library distributed with BIND.
-dnl #########################################################################
-AC_ARG_ENABLE([emulate-getaddrinfo],
- ACX_HELP_STRING([--enable-emulate-getaddrinfo],
- [enable getaddrinfo emulation (default=no)]),
- ,
- enable_emulate_getaddrinfo=no)
-
-AC_ARG_WITH(lwres,
- ACX_HELP_STRING([--with-lwres=DIR],
- [use lwres library for getaddrinfo (default=no)]),
- ,
- with_lwres=no)
-
-dnl ## enable force to test getaddrinfo.c
-if test x$enable_emulate_getaddrinfo = xforce ; then
- enable_emulate_getaddrinfo=yes
- have_getaddrinfo=no
-else
-
-have_getaddrinfo=no
-if test x$with_lwres != xno ; then
- if test "$with_lwres" != yes ; then
- CPPFLAGS="-I${with_lwres}/include $CPPFLAGS"
- LDFLAGS="-L${with_lwres}/lib $LDFLAGS"
- fi
- AC_CHECK_HEADERS(lwres/netdb.h, ,
- [AC_MSG_ERROR([cannot find <lwres/netdb.h>])])
- AC_CHECK_LIB(lwres, lwres_getaddrinfo, ,
- [AC_MSG_ERROR([cannot find the lwres library])],
- -lnsl -lpthread)
- have_getaddrinfo=yes
-fi
-
-if test x$have_getaddrinfo != xyes ; then
- AC_SEARCH_LIBS(getaddrinfo, socket resolv bind nsl c_r cr, have_getaddrinfo=yes)
-fi
-
-dnl # Special nonsense for systems that actually have getaddrinfo but
-dnl # redefine the name to something else, e.g. OSF
-if test x$have_getaddrinfo != xyes ; then
- AC_MSG_CHECKING(if getaddrinfo is redefined in netdb.h)
- AC_TRY_LINK([
-# include <netdb.h>
- ], [
- struct addrinfo hints, *res;
- int err;
-
- err = getaddrinfo ("host", "service", &hints, &res);
- ], [
- have_getaddrinfo=yes
- AC_MSG_RESULT(yes)
- ], [AC_MSG_RESULT(no)])
-fi
-
-fi
-
-if test x$have_getaddrinfo != xno ; then
- if test x$enable_emulate_getaddrinfo != xno ; then
- AC_MSG_ERROR([getaddrinfo found but emulate-getaddrinfo was enabled])
- fi
- AC_DEFINE(HAVE_GETADDRINFO, 1,
- [Does system provide RFC 2553/Posix getaddrinfo?])
-else
- if test x$enable_emulate_getaddrinfo != xyes ; then
-dnl AC_MSG_ERROR([getaddrinfo not found: try --with-lwres or --enable-emulate-getaddrinfo])
- enable_emulate_getaddrinfo=yes
- AC_MSG_WARN([enabling getaddrinfo emulation])
- fi
- EXTRA_NETOBJS="$EXTRA_NETOBJS getaddrinfo.o"
+ [np_cv_sys_ipv6=yes],
+ [np_cv_sys_ipv6=no])
+ ])
+ if test "$np_cv_sys_ipv6" = "no" -a "$with_ipv6" != "check"; then
+ AC_MSG_FAILURE([--with-ipv6 was given, but test for IPv6 support failed])
+ fi
+ if test "$np_cv_sys_ipv6" = "yes"; then
+ AC_DEFINE(USE_IPV6,1,[Enable IPv6 support])
+ fi
+ with_ipv6="$np_cv_sys_ipv6"
fi
-if test x"$enable_emulate_getaddrinfo" != xno ; then
- have_resolver=no
-
- dnl Try for getipnodebyname
- AC_SEARCH_LIBS(getipnodebyname, resolv bind nsl c_r cr, have_resolver=yes)
- if test x"$have_resolver" != xno ; then
- AC_DEFINE(HAVE_GETIPNODEBYNAME, 1,
- [Set when getipnodebyname is available])
- fi
-
- dnl Try for gethostbyname_r
- if test x"$have_resolver" = xno ; then
- AC_SEARCH_LIBS(gethostbyname_r, resolv bind nsl c_r cr,
- [have_resolver=yes
- ACX_WHICH_GETHOSTBYNAME_R])
- fi
-
- dnl Try for gethostbyname
- if test x"$have_resolver" = xno ; then
- if test x"$enable_pthreads" != xno ; then
- AC_MSG_WARN([using threads but cannot find gethostbyname_r or getipnodebyname])
- fi
- AC_SEARCH_LIBS(gethostbyname, resolv bind nsl, ,
- [AC_MSG_ERROR([cannot find gethostbyname])])
- fi
- EXTRA_NETOBJS="$EXTRA_NETOBJS gethostbyname.o"
-
-fi
dnl Checks for Kerberos. Must come before openssl checks for Redhat EL 3
AC_CHECK_HEADERS(krb5.h,FOUNDINCLUDE=yes,FOUNDINCLUDE=no)
CPPFLAGS="$_SAVEDCPPFLAGS"
fi
+dnl *** The following block comes from wget configure.ac ***
+dnl Unfortunately, as of this writing (OpenSSL 0.9.6), the libcrypto
+dnl shared library doesn't record its dependency on libdl, so we
+dnl need to check for it ourselves so we won't fail to link due to a
+dnl lack of -ldl. Most OSes use dlopen(), but HP-UX uses
+dnl shl_load().
+AC_CHECK_LIB(dl,dlopen)
+AC_CHECK_LIB(dl,shl_load)
dnl openssl detection/configuration
if ! test x"$with_openssl" = x"no"; then
dnl Checks for header files.
dnl
-AC_HEADER_STDC
AC_HEADER_TIME
AC_HEADER_SYS_WAIT
-AC_CHECK_HEADERS(signal.h strings.h string.h syslog.h uio.h errno.h sys/types.h sys/time.h sys/socket.h sys/loadavg.h sys/un.h sys/poll.h)
-AC_CHECK_HEADERS(features.h stdarg.h sys/unistd.h ctype.h stdlib.h)
+AC_CHECK_HEADERS(signal.h syslog.h uio.h errno.h sys/time.h sys/socket.h sys/un.h sys/poll.h)
+AC_CHECK_HEADERS(features.h stdarg.h sys/unistd.h ctype.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
ac_cv_HAVE_VA_COPY=no)])
if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
-else
+else
AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE___VA_COPY,[
AC_TRY_LINK([#include <stdarg.h>
va_list ap1,ap2;], [__va_copy(ap1,ap2);],
fi
fi
-AC_CHECK_FUNCS(vsnprintf snprintf asprintf vasprintf)
-AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
-AC_TRY_RUN([
-#include <sys/types.h>
-#include <stdarg.h>
-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_TRY_COMPILE([#include <sys/time.h>],
[struct timeval *tv;
struct timezone *tz;],
AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])))
dnl Checks for library functions.
-AC_CHECK_FUNCS(memmove select socket strdup strstr strtod strtol strtoul floor)
+AC_CHECK_FUNCS(memmove select socket strdup strstr strtol strtoul floor)
AC_CHECK_FUNCS(poll)
AC_MSG_CHECKING(return type of socket size)
AC_DEFINE_UNQUOTED(SOCKET_SIZE_TYPE, $ac_cv_socket_size_type ,
[Define type of socket size])
-AC_ARG_WITH(proc-loadavg,
- ACX_HELP_STRING([--with-proc-loadavg=PATH],
- [path to /proc/loadavg or equivalent]),
- ac_cv_proc_loadavg=$withval)
-AC_MSG_CHECKING([for /proc/loadavg])
-if test -n "$ac_cv_proc_loadavg"; then
- AC_MSG_RESULT([(command line) $ac_cv_proc_loadavg])
-elif test -f "/proc/loadavg"; then
- AC_MSG_RESULT([found /proc/loadavg])
- ac_cv_proc_loadavg="/proc/loadavg"
-else
- AC_MSG_RESULT([no])
-fi
-
-if test -n "$ac_cv_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])
-fi
dnl #### Process table test
AC_MSG_CHECKING(for ps syntax)
AC_ARG_WITH(ps_command,
- ACX_HELP_STRING([--with-ps-command=PATH],
+ ACX_HELP_STRING([--with-ps-command=PATH],
[Verbatim command to execute for ps]),
PS_COMMAND=$withval)
AC_ARG_WITH(ps_format,
[Format string for scanning ps output]),
PS_FORMAT=$withval)
AC_ARG_WITH(ps_cols,
- ACX_HELP_STRING([--with-ps-cols=NUM],
+ ACX_HELP_STRING([--with-ps-cols=NUM],
[Number of columns in ps command]),
PS_COLS=$withval)
AC_ARG_WITH(ps_varlist,
[Variable list for sscanf of 'ps' output]),
PS_VARLIST=$withval)
-if test -n "$PS_COMMAND" && test -n "$PS_FORMAT" && test -n "$PS_COLS" && test -n "$PS_VARLIST"; then
+if test -n "$PS_COMMAND" && test -n "$PS_FORMAT" && test -n "$PS_COLS" && test -n "$PS_VARLIST"; then
ac_cv_ps_command="$PS_COMMAND"
ac_cv_ps_format="$PS_FORMAT"
ac_cv_ps_varlist="$PS_VARLIST"
@@ -667,28 +555,47 @@ if test -n "$PS_COMMAND" && test -n "$PS_FORMAT" && test -n "$PS_COLS" && test -
dnl Now using the pst3/kmem hack for solaris systems to avoid truncation
elif test "$ac_cv_uname_s" = "SunOS"; then
- #
- # this is a very, very ugly hack, to hardcode the location for plugins
- #
- if test "$libexecdir" = '${exec_prefix}/libexec'; then
- if test "$exec_prefix" = "NONE"; then
- if test "$prefix" = "NONE"; then
- pst3="$ac_default_prefix/libexec/pst3"
- else
- pst3="$prefix/libexec/pst3"
- fi
- else
- pst3="$exec_prefix/libexec/pst3"
- fi
+ #
+ # this is a very, very ugly hack, to hardcode the location for plugins
+ #
+ if test "$libexecdir" = '${exec_prefix}/libexec'; then
+ if test "$exec_prefix" = "NONE"; then
+ if test "$prefix" = "NONE"; then
+ pst3="$ac_default_prefix/libexec/pst3"
+ else
+ pst3="$prefix/libexec/pst3"
+ fi
+ else
+ pst3="$exec_prefix/libexec/pst3"
+ fi
+ else
+ pst3="$libexecdir/pst3"
+ fi
+ ac_cv_ps_command="$pst3"
+ ac_cv_ps_format="%s %d %d %d %d %d %f %s %n"
+ ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
+ ac_cv_ps_cols=9
+ AC_MSG_RESULT([using nagios-plugins internal ps command (pst3) for solaris])
+ if test `isainfo -b` = 64 ; then
+ PST3CFLAGS="-m64"
+ AC_SUBST(PST3CFLAGS)
+ AC_MSG_NOTICE([using 64bit pst3])
else
- pst3="$libexecdir/pst3"
+ AC_MSG_NOTICE([using 32bit pst3])
fi
- ac_cv_ps_command="$pst3"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_cols=8
- AC_MSG_RESULT([using nagios-plugins internal ps for solaris])
- EXTRAS_ROOT="$EXTRAS_ROOT pst3"
+ EXTRAS_ROOT="$EXTRAS_ROOT pst3"
+
+dnl Removing this for the moment - Ton
+dnl Using /usr/ucb/ps on Solaris systems, to avoid truncation
+dnl Limitation that command name is not available
+dnl elif test "$ac_cv_uname_s" = "SunOS" && /usr/ucb/ps -alxwwn 2>/dev/null | \
+dnl egrep -i ["^ *F +UID +PID +PPID +%C +PRI +NI +SZ +RSS +WCHAN +S +TT +TIME +COMMAND"] > /dev/null
+dnl then
+dnl ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procpcpu,&procvsz,&procrss,procstat,&pos]"
+dnl ac_cv_ps_command="/usr/ucb/ps -alxwwn"
+dnl ac_cv_ps_format=["%*s %d %d %d %d %*d %*d %d %d%*[ 0123456789abcdef]%[OSRZT]%*s %*s %n"]
+dnl ac_cv_ps_cols=8
+dnl AC_MSG_RESULT([$ac_cv_ps_command])
dnl Some gnu/linux systems (debian for one) don't like -axwo and need axwo.
dnl so test for this first...
ac_cv_ps_cols=9
AC_MSG_RESULT([$ac_cv_ps_command])
-dnl Some *BSDs have different format for ps. This is mainly to catch FreeBSD 4.
+dnl Some *BSDs have different format for ps. This is mainly to catch FreeBSD 4.
dnl Limitation: Only first 16 chars returned for ucomm field
dnl Must come before ps -weo
elif ps -axwo 'stat uid pid ppid vsz rss pcpu ucomm command' 2>/dev/null | \
ac_cv_ps_cols=9
AC_MSG_RESULT([$ac_cv_ps_command])
-dnl Tru64 - needs %*[ +<>] in PS_FORMAT.
+dnl Tru64 - needs %*[ +<>] in PS_FORMAT.
dnl Has /usr/bin/ps and /sbin/ps - force sbin version
-dnl Can't use vsize and rssize because comes back with text (eg, 1.5M instead
+dnl Can't use vsize and rssize because comes back with text (eg, 1.5M instead
dnl of 1500). Will need big changes to check_procs to support
elif /sbin/ps -eo 'stat uid pid ppid pcpu etime comm args' 2>/dev/null | \
egrep -i ["^ *S +[UID]+ +[PID]+ +[PID]+ +[%CPU]+ +[ELAPSD]+ +[COMMAND]+ +[COMMAND]+"] > /dev/null
ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
-dnl UnixWare
+dnl UnixWare
elif ps -Al 2>/dev/null | \
egrep -i ["^ *F +S +UID +PID +PPID +CLS +PRI +NI +C +ADDR +SZ +WCHAN +TTY +TIME +COMD"] >/dev/null
then
AC_DEFINE_UNQUOTED(PS_COLS,$ac_cv_ps_cols,
[Number of columns in ps command])
EXTRAS="$EXTRAS check_procs check_nagios"
- if echo "$ac_cv_ps_varlist" | grep -q "procetime"; then
+ if echo "$ac_cv_ps_varlist" | grep "procetime" >/dev/null; then
AC_DEFINE(PS_USES_PROCETIME,"yes",
[Whether the ps utility uses the "procetime" field])
fi
AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$ac_cv_nslookup_command", [path and args for nslookup])
fi
+AC_MSG_CHECKING([for number of cpus])
+AC_TRY_COMPILE([#include <unistd.h>],
+ [sysconf(_SC_NPROCESSORS_CONF) > 0;],
+ AC_DEFINE(HAVE_SYSCONF__SC_NPROCESSORS_CONF,1,[Define if sysconf returns number of cpus])
+ AC_MSG_RESULT([sysconf(_SC_NPROCESSORS_CONF)]),
+ AC_MSG_RESULT([cannot calculate])
+ )
+
AC_PATH_PROG(PATH_TO_UPTIME,uptime)
AC_ARG_WITH(uptime_command,
ACX_HELP_STRING([--with-uptime-command=PATH],
AC_PATH_PROG(PATH_TO_SMBCLIENT,smbclient)
AC_ARG_WITH(smbclient_command,
ACX_HELP_STRING([--with-smbclient-command=PATH],
- [sets path to smbclient]),
+ [sets path to smbclient]),
PATH_TO_SMBCLIENT=$withval)
if test -n "$PATH_TO_SMBCLIENT"
then
AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
AC_PATH_PROG(PATH_TO_QSTAT,qstat)
AC_ARG_WITH(qstat_command,
- ACX_HELP_STRING([--with-qstat-command=PATH],
+ ACX_HELP_STRING([--with-qstat-command=PATH],
[Path to qstat command]), PATH_TO_QSTAT=$withval)
if test -x "$PATH_TO_QUAKESTAT"
AC_MSG_WARN([Get qstat from http://www.activesw.com/people/steve/qstat.html in order to make check_game plugin])
fi
-if test $ac_cv_path_to_qstat
+if test $ac_cv_path_to_qstat
then
AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$ac_cv_path_to_qstat",
[path to qstat/quakestat])
elif [$PATH_TO_SWAPINFO -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
then
ac_cv_have_swap=yes
- ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM",
+ ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM"
ac_cv_swap_format=["%*s %f %*d %f"]
ac_cv_swap_conv=1024
AC_MSG_RESULT([using HP-UX format swapinfo])
#include <sys/swap.h>
])
-if test "$ac_cv_have_decl_swapctl" = "yes";
+if test "$ac_cv_have_decl_swapctl" = "yes";
then
EXTRAS="$EXTRAS check_swap"
AC_MSG_CHECKING([for 2-arg (SVR4) swapctl])
if test "$ac_cv_type_swaptbl_t" = "yes" -a \
- "$ac_cv_type_swapent_t" = "yes";
+ "$ac_cv_type_swapent_t" = "yes";
then
AC_MSG_RESULT([yes])
ac_cv_check_swap_swapctl_svr4="1";
else
AC_MSG_RESULT([no])
AC_MSG_CHECKING([for 3-arg (*BSD) swapctl])
- if test "$ac_cv_member_struct_swapent_se_nblks" = "yes";
+ if test "$ac_cv_member_struct_swapent_se_nblks" = "yes";
then
AC_MSG_RESULT([yes])
AC_DEFINE([CHECK_SWAP_SWAPCTL_BSD],1,
dnl
-if test "x$ac_cv_have_swap" != "x"
+if test "x$ac_cv_have_swap" != "x"
then
AC_DEFINE(HAVE_SWAP,1,[Define if swap/swapinfo command is found])
EXTRAS="$EXTRAS check_swap"
fi
-if test "x$ac_cv_swap_command" != "x"
+if test "x$ac_cv_swap_command" != "x"
then
AC_DEFINE_UNQUOTED(SWAP_COMMAND,"$ac_cv_swap_command",
[Path to swap/swapinfo binary, with any args])
AC_PATH_PROG(PATH_TO_APTGET,apt-get)
AC_ARG_WITH(apt-get_command,
ACX_HELP_STRING([--with-apt-get-command=PATH],
- [Path to apt-get command]),
+ [Path to apt-get command]),
with_apt_get_command=$withval,
with_apt_get_command=$PATH_TO_APTGET)
AC_DEFINE_UNQUOTED(PATH_TO_APTGET,"$PATH_TO_APTGET",[Path to apt-get command, if present])
EXTRAS="$EXTRAS check_nt"
fi
-AC_MSG_CHECKING(for va_list)
-AC_TRY_COMPILE([#ifdef __STDC__
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdarg.h>
- #else
- #include <sys/types.h>
- #include <stdio.h>
- #include <varargs.h>
- #endif],
- [va_list args;],
- [AC_MSG_RESULT(yes)],
- [NEED_VA_LIST=-DNEED_VA_LIST AC_SUBST(NEED_VA_LIST) AC_MSG_RESULT(no)])
+
+dnl used in check_dhcp
+AC_CHECK_HEADERS(sys/sockio.h)
case $host in
*bsd*)
AC_DEFINE(__bsd__,1,[bsd specific code in check_dhcp.c])
;;
*linux*)
- AC_DEFINE(__linux__,1,[sun specific code in check_dhcp.c])
+ AC_DEFINE(__linux__,1,[linux specific code in check_dhcp.c])
;;
- *sun* | solaris*)
+ *sun* | *solaris*)
AC_DEFINE(__sun__,1,[sun specific code in check_dhcp.c])
;;
- *hpux*)
+ *hpux*)
AC_DEFINE(__hpux__,1,[hpux specific code in check_dhcp.c])
;;
esac
AC_SUBST(DEPLIBS)
AM_GNU_GETTEXT([external], [need-ngettext])
-AM_GNU_GETTEXT_VERSION(0.13.1)
+AM_GNU_GETTEXT_VERSION(0.15)
dnl Check for Redhat spopen problem
dnl Wierd problem where ECHILD is returned from a wait call in error
dnl We patch plugins/popen.c
dnl Need to add smp because uname different on those
dnl Can force patch to be applied with --enable-redhat-pthread-workaround
-AC_ARG_ENABLE(redhat-pthread-workaround,
- AC_HELP_STRING([--enable-redhat-pthread-workaround],
+AC_ARG_ENABLE(redhat-pthread-workaround,
+ AC_HELP_STRING([--enable-redhat-pthread-workaround],
[force Redhat patch to be applied (default: test system)]),
[ac_cv_enable_redhat_pthread_workaround=$enableval],
[ac_cv_enable_redhat_pthread_workaround=test])
if test "$ac_cv_enable_redhat_pthread_workaround" = "test" ; then
if echo $ac_cv_uname_r | egrep "\.EL(smp)?$" >/dev/null 2>&1 ; then
+ AC_MSG_NOTICE([See http://nagiosplugins.org/faq/compile/configure_appears_to_hang if this next part takes a long time])
AC_MSG_CHECKING(for redhat spopen problem)
( cd config_test && make && make test ) > /dev/null 2>&1
if test $? -eq 0 ; then
AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, [Forced workaround on redhat in spopen])
fi
+dnl Perl modules
+AC_ARG_ENABLE(perl-modules,
+ AC_HELP_STRING([--enable-perl-modules],
+ [Enables installation of Nagios::Plugin and its dependencies (default: no)]),
+ [enable_perl_modules=$enableval],
+ [enable_perl_modules=no])
+if test "$enable_perl_modules" = "yes" ; then
+ AC_SUBST(PERLMODS_DIR,perlmods)
+fi
+
+# From Tap configure
+# Checks for libraries
+case "$host" in
+ *-*-*freebsd4*)
+ LDFLAGS="$LDFLAGS -pthread"
+ HAVE_LIBPTHREAD=1
+ ;;
+ *)
+ AC_CHECK_LIB(pthread, main)
+ ;;
+esac
+
dnl External libraries - see ACKNOWLEDGEMENTS
-np_COREUTILS
-np_CURL
+gl_INIT
+
+dnl Some helpful common compile errors checked here
+if test "$ac_cv_uname_s" = 'SunOS' -a \( "x$ac_cv_prog_ac_ct_AR" = "x" -o "$ac_cv_prog_ac_ct_AR" = 'false' \) ; then
+ AC_MSG_ERROR(No ar found for Solaris - is /usr/ccs/bin in PATH?)
+fi
AC_OUTPUT(
- Makefile
- lib/Makefile
- m4/Makefile
- plugins/Makefile
- plugins/tests/Makefile
+ Makefile
+ tap/Makefile
+ lib/Makefile
+ plugins/Makefile
+ lib/tests/Makefile
plugins-root/Makefile
- plugins-scripts/Makefile
- plugins-scripts/subst
- plugins-scripts/utils.pm
- plugins-scripts/utils.sh
- command.cfg
- test.pl
- pkg/solaris/pkginfo
- po/Makefile.in
+ plugins-scripts/Makefile
+ plugins-scripts/subst
+ plugins-scripts/utils.pm
+ plugins-scripts/utils.sh
+ perlmods/Makefile
+ command.cfg
+ test.pl
+ pkg/solaris/pkginfo
+ po/Makefile.in
)
-dnl the ones below that are commented out need to be cleaned up
+dnl the ones below that are commented out need to be cleaned up
dnl in the configure code above to use with_foo instead of ac_cv_foo
dnl if we want them to show up here. it'd also make the code cleaner.
dnl i'll get to that on another rainy day :) -sf
dnl ACX_FEATURE([with],[ssh-command])
dnl ACX_FEATURE([with],[uptime-command])
-dnl ACX_FEATURE([with],[proc-loadavg])
dnl ACX_FEATURE([with],[proc-meminfo])
dnl ACX_FEATURE([with],[ps-command])
dnl ACX_FEATURE([with],[ps-format])
dnl ACX_FEATURE([with],[ps-cols])
dnl ACX_FEATURE([with],[ps-varlist])
-ACX_FEATURE([with],[lwres])
ACX_FEATURE([with],[ipv6])
ACX_FEATURE([with],[mysql])
ACX_FEATURE([with],[openssl])
ACX_FEATURE([with],[gnutls])
-ACX_FEATURE([enable],[emulate-getaddrinfo])
+ACX_FEATURE([enable],[extra-opts])
ACX_FEATURE([with],[perl])
+ACX_FEATURE([enable],[perl-modules])
ACX_FEATURE([with],[cgiurl])
-ACX_FEATURE([with],[nagios-user])
-ACX_FEATURE([with],[nagios-group])
ACX_FEATURE([with],[trusted-path])
-
+ACX_FEATURE([enable],[libtap])