Code

Added -A/--dig-arguments to check_dig (#1889453/#1874041)
[nagiosplug.git] / configure.in
index 54040ac94a9f22e6921acb16182a063dbc55bda6..d0bd0efc6e7dfef6e5b16afd36e8cd5a83526e13 100644 (file)
@@ -1,7 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 AC_REVISION ($Revision$)
 AC_PREREQ(2.59)
-AC_INIT(nagios-plugins,1.4.8)
+AC_INIT(nagios-plugins,1.4.11)
 AC_CONFIG_SRCDIR(NPTest.pm)
 AC_CONFIG_FILES(gl/Makefile)
 AC_CONFIG_AUX_DIR(build-aux)
@@ -48,6 +48,7 @@ AC_PROG_LIBTOOL
 AM_PROG_CC_C_O
 
 AC_FUNC_ERROR_AT_LINE
+AC_SYS_LARGEFILE
 
 ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD])
 
@@ -155,7 +156,7 @@ AC_SUBST(MATHLIBS)
 
 dnl Check for libtap, to run perl-like tests
 AC_CHECK_LIB(tap, plan_tests, 
-       EXTRA_TEST="test_utils test_disk"
+       EXTRA_TEST="test_utils test_disk test_tcp test_cmd test_base64"
        AC_SUBST(EXTRA_TEST)
        )
 
@@ -218,8 +219,15 @@ if test "$ac_cv_lib_radiusclient_rc_read_config" = "yes"; then
        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"
 
@@ -240,6 +248,19 @@ else
 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
 np_mysqlclient
 if test $with_mysql = "no" ; then
@@ -255,9 +276,15 @@ else
   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>
@@ -268,12 +295,16 @@ AC_CACHE_CHECK([for IPv6 support], with_ipv6, [
                        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
 
 
@@ -404,6 +435,7 @@ AC_STRUCT_TM
 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>
@@ -481,16 +513,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...
@@ -1054,6 +1119,14 @@ if test -n "$ac_cv_nslookup_command"; then
        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],
@@ -1429,6 +1502,9 @@ elif test -f ../plugins/check_nt.c ; then
 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])
@@ -1450,7 +1526,7 @@ AC_SUBST(EXTRA_NETOBJS)
 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
@@ -1466,6 +1542,7 @@ AC_ARG_ENABLE(redhat-pthread-workaround,
        [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
@@ -1479,11 +1556,21 @@ elif test "$ac_cv_enable_redhat_pthread_workaround" = "yes" ; 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
 
@@ -1497,6 +1584,7 @@ AC_OUTPUT(
   plugins-scripts/subst 
   plugins-scripts/utils.pm 
   plugins-scripts/utils.sh 
+  perlmods/Makefile
   command.cfg 
   test.pl 
   pkg/solaris/pkginfo 
@@ -1534,6 +1622,7 @@ ACX_FEATURE([with],[mysql])
 ACX_FEATURE([with],[openssl])
 ACX_FEATURE([with],[gnutls])
 ACX_FEATURE([with],[perl])
+ACX_FEATURE([enable],[perl-modules])
 ACX_FEATURE([with],[cgiurl])
 ACX_FEATURE([with],[trusted-path])