diff --git a/configure.in b/configure.in
index 81033a031da01f823cb738ff1f7fcfca9bffa5a0..17fd14c4f2be18f0f2c22e7500dcf54ae6b5e034 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.59)
-AC_INIT(nagios-plugins,1.4.7)
+AC_INIT(nagios-plugins,1.4.13)
AC_CONFIG_SRCDIR(NPTest.pm)
AC_CONFIG_FILES(gl/Makefile)
AC_CONFIG_AUX_DIR(build-aux)
AM_PROG_CC_C_O
AC_FUNC_ERROR_AT_LINE
+AC_SYS_LARGEFILE
ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD])
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 test_disk"
+dnl Add libtap for tests
+AC_ARG_ENABLE(libtap,
+ AC_HELP_STRING([--enable-libtap],
+ [Enables configuring of libtap in external/tap/. Run "make tap" to compile (default: no)]),
+ [enable_libtap=$enableval],
+ [enable_libtap=no])
+dnl Have to define TAP_DIR so that Makefile can pull it as an extra dist
+TAP_DIR=external/tap-1.01
+AC_SUBST(TAP_DIR)
+if test "$enable_libtap" = yes; then
+ dnl Have to have AC_CONFIG_SUBDIRS as a literal
+ AC_CONFIG_SUBDIRS([external/tap-1.01])
+ 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_ini test_opts"
+ 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
- MYSQLINCLUDE=`$MYSQLCONFIG --include`
- # Mysql 3 does not support --include. --cflags should be sufficient
- if test $? -ne 0 ; then
- MYSQLINCLUDE=""
- TEMP_INCLUDE="-I$with_mysql/include" # Guessed location
- else
- TEMP_INCLUDE=$MYSQLINCLUDE
- fi
- MYSQLLIBS=`$MYSQLCONFIG --libs`
- MYSQLCFLAGS=`$MYSQLCONFIG --cflags`
- AC_SUBST(MYSQLINCLUDE)
- AC_SUBST(MYSQLLIBS)
- AC_SUBST(MYSQLCFLAGS)
- dnl Test for mysqlclient. Some redhat systems have mysql_config, but no headers
- _SAVEDCPPFLAGS=$CPPFLAGS
- _SAVEDLDFLAGS="$LDFLAGS"
- CPPFLAGS="$CPPFLAGS $TEMP_INCLUDE"
- LDFLAGS="$LDFLAGS $MYSQLLIBS"
- AC_CHECK_LIB([mysqlclient], [mysql_init], [with_mysql=$MYSQLCONFIG
-EXTRAS="$EXTRA check_mysql check_mysql_query"], [with_mysql="not found"])
- CPPFLAGS=$_SAVEDCPPFLAGS
- LDFLAGS=$_SAVEDLDFLAGS
- 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_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])
+ [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
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
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_TYPE_SIGNAL
+AC_TYPE_MBSTATE_T
AC_CACHE_CHECK([for va_copy],ac_cv_HAVE_VA_COPY,[
AC_TRY_LINK([#include <stdarg.h>
@@ -509,16 +546,49 @@ if test -n "$PS_COMMAND" && test -n "$PS_FORMAT" && test -n "$PS_COLS" && test -
ac_cv_ps_cols="$PS_COLS"
AC_MSG_RESULT([(command-line) $ac_cv_ps_command])
+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
+ 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
+ AC_MSG_NOTICE([using 32bit pst3])
+ fi
+ 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
-elif test "$ac_cv_uname_s" = "SunOS" && /usr/ucb/ps -alxwwn 2>/dev/null | \
- egrep -i ["^ *F +UID +PID +PPID +%C +PRI +NI +SZ +RSS +WCHAN +S +TT +TIME +COMMAND"] > /dev/null
-then
- ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procpcpu,&procvsz,&procrss,procstat,&pos]"
- ac_cv_ps_command="/usr/ucb/ps -alxwwn"
- ac_cv_ps_format=["%*s %d %d %d %d %*d %*d %d %d%*[ 0123456789abcdef]%[OSRZT]%*s %*s %n"]
- ac_cv_ps_cols=8
- AC_MSG_RESULT([$ac_cv_ps_command])
+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_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],
fi
+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*)
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
[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
+
dnl External libraries - see ACKNOWLEDGEMENTS
gl_INIT
dnl Some helpful common compile errors checked here
-if test "$ac_cv_uname_s" = 'SunOS' -a "$ac_cv_prog_ac_ct_AR" = 'false' ; then
+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
plugins-scripts/subst
plugins-scripts/utils.pm
plugins-scripts/utils.sh
+ perlmods/Makefile
command.cfg
test.pl
pkg/solaris/pkginfo
ACX_FEATURE([with],[mysql])
ACX_FEATURE([with],[openssl])
ACX_FEATURE([with],[gnutls])
+ACX_FEATURE([enable],[extra-opts])
ACX_FEATURE([with],[perl])
+ACX_FEATURE([enable],[perl-modules])
ACX_FEATURE([with],[cgiurl])
ACX_FEATURE([with],[trusted-path])