Code

tools/distclean: use git-clean when possible
[nagiosplug.git] / configure.in
index 8ba09cb69916cbaec1e2b8be603c02c944ce006f..d02d7f85beafe3c993eea023a5473fae09c69a08 100644 (file)
@@ -1,7 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_REVISION ($Revision$)
 AC_PREREQ(2.59)
-AC_INIT(nagios-plugins,1.4.11)
+AC_INIT(nagios-plugins,1.4.14)
 AC_CONFIG_SRCDIR(NPTest.pm)
 AC_CONFIG_FILES(gl/Makefile)
 AC_CONFIG_AUX_DIR(build-aux)
@@ -99,6 +98,17 @@ AC_SUBST(PKG_ARCH)
 AC_SUBST(REV_DATESTAMP)
 AC_SUBST(REV_TIMESTAMP)
 
+dnl Check if version file is present
+AM_CONDITIONAL([RELEASE_PRESENT], [test -f $srcdir/release])
+
+# Also read in the version from it
+if test -f $srcdir/release; then
+       NP_RELEASE="$(<release)"
+else
+       NP_RELEASE="$PACKAGE_VERSION"
+fi
+AC_SUBST(NP_RELEASE)
+
 dnl Checks for programs.
 AC_PATH_PROG(PYTHON,python)
 AC_PATH_PROG(SH,sh)
@@ -116,7 +126,7 @@ AC_SUBST(PERL, $with_perl)
 
 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,
@@ -154,23 +164,41 @@ AC_CHECK_HEADERS(math.h)
 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, 
+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], 
+  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
-       EXTRA_TEST="$EXTRA_TEST test_ini test_opts"
-       AC_SUBST(EXTRA_TEST)
        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
@@ -270,8 +298,8 @@ 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.]) 
+       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
@@ -337,6 +365,14 @@ if test "$FOUNDINCLUDE" = "no"; then
   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
@@ -448,7 +484,6 @@ 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>
@@ -457,7 +492,7 @@ 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,[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);],
@@ -503,7 +538,7 @@ AC_PATH_PROG(PATH_TO_PS,ps)
 
 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,
@@ -511,7 +546,7 @@ 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,
@@ -519,7 +554,7 @@ 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"
@@ -593,7 +628,7 @@ then
        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 | \
@@ -670,9 +705,9 @@ then
        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
@@ -798,7 +833,7 @@ then
        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
@@ -842,24 +877,31 @@ ac_cv_ping_has_timeout=no
 if test -n "$with_ping_command"
 then
        AC_MSG_RESULT([(command-line) $with_ping_command])
-       if test -n "$ac_cv_ping_packets_first"
+       if echo "$with_ping_command" | grep '%d.*%d.*%s' >/dev/null
        then
                ac_cv_ping_packets_first=yes
                ac_cv_ping_has_timeout=yes
+       elif echo "$with_ping_command" | grep '%d.*%s.*%d' >/dev/null || \
+            echo "$with_ping_command" | grep '%s.*%d.*%d' >/dev/null
+       then
+               ac_cv_ping_has_timeout=yes
+       elif echo "$with_ping_command" | grep '%d.*%s' >/dev/null
+       then
+               ac_cv_ping_packets_first=yes
        fi
 
 elif [[ "z$ac_cv_uname_s" = "zUnixWare" ]] && \
        $PATH_TO_PING -n -s 127.0.0.1 56 1 2>/dev/null | \
        egrep -i "^round-trip|^rtt" >/dev/null
 then
-        with_ping_command="$PATH_TO_PING -n -U -c %d %s"
+       with_ping_command="$PATH_TO_PING -n -U -c %d %s"
        ac_cv_ping_packets_first=yes
        AC_MSG_RESULT([$with_ping_command])
 
 elif $PATH_TO_PING -n -U -w 10 -c 1 127.0.0.1 2>/dev/null | \
        egrep -i "^round-trip|^rtt" >/dev/null
 then
-        with_ping_command="$PATH_TO_PING -n -U -w %d -c %d %s"
+       with_ping_command="$PATH_TO_PING -n -U -w %d -c %d %s"
        ac_cv_ping_packets_first=yes
   ac_cv_ping_has_timeout=yes
        AC_MSG_RESULT([$with_ping_command])
@@ -867,7 +909,7 @@ then
 elif $PATH_TO_PING -n -U -c 1 127.0.0.1 2>/dev/null | \
        egrep -i "^round-trip|^rtt" >/dev/null
 then
-        with_ping_command="$PATH_TO_PING -n -U -c %d %s"
+       with_ping_command="$PATH_TO_PING -n -U -c %d %s"
        ac_cv_ping_packets_first=yes
        AC_MSG_RESULT([$with_ping_command])
 
@@ -946,7 +988,15 @@ ac_cv_ping6_packets_first=no
 if test -n "$with_ping6_command"
 then
        AC_MSG_RESULT([(command-line) $with_ping6_command])
-       if test -n "$ac_cv_ping6_packets_first"
+       if echo "$with_ping6_command" | grep '%d.*%d.*%s' >/dev/null
+       then
+               ac_cv_ping6_packets_first=yes
+       elif echo "$with_ping6_command" | grep '%d.*%s.*%d' >/dev/null || \
+            echo "$with_ping6_command" | grep '%s.*%d.*%d' >/dev/null
+       then
+               # Just keep same logic as ping (IPv4) if we ever need ac_cv_ping6_has_timeout
+               true
+       elif echo "$with_ping6_command" | grep '%d.*%s' >/dev/null
        then
                ac_cv_ping6_packets_first=yes
        fi
@@ -956,7 +1006,7 @@ elif test "x$PATH_TO_PING6" != "x"; then
                $PATH_TO_PING6 -n -s ::1 56 1 2>/dev/null | \
                egrep -i "^round-trip|^rtt" >/dev/null
        then
-               with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
+               with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
                ac_cv_ping6_packets_first=yes
                AC_MSG_RESULT([$with_ping6_command])
 
@@ -971,7 +1021,7 @@ elif test "x$PATH_TO_PING6" != "x"; then
        elif $PATH_TO_PING6 -n -U -c 1 ::1 2>/dev/null | \
                egrep -i "^round-trip|^rtt" >/dev/null
        then
-               with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
+               with_ping6_command="$PATH_TO_PING6 -n -U -c %d %s"
                ac_cv_ping6_packets_first=yes
                AC_MSG_RESULT([$with_ping6_command])
 
@@ -1027,14 +1077,14 @@ elif test "x$PATH_TO_PING" != "x"; then
                $PATH_TO_PING -A inet6 -n -s ::1 56 1 2>/dev/null | \
                egrep -i "^round-trip|^rtt" >/dev/null
        then
-               with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
+               with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
                ac_cv_ping6_packets_first=yes
                AC_MSG_RESULT([$with_ping6_command])
 
        elif $PATH_TO_PING -A inet6 -n -U -c 1 ::1 2>/dev/null | \
                egrep -i "^round-trip|^rtt" >/dev/null
        then
-               with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
+               with_ping6_command="$PATH_TO_PING -A inet6 -n -U -c %d %s"
                ac_cv_ping6_packets_first=yes
                AC_MSG_RESULT([$with_ping6_command])
 
@@ -1163,7 +1213,7 @@ fi
 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
@@ -1219,7 +1269,7 @@ fi
 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"
@@ -1235,7 +1285,7 @@ else
        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])
@@ -1376,30 +1426,30 @@ AC_CHECK_HEADERS([sys/swap.h], [], [], [
 AC_CHECK_DECLS([swapctl],,,[
                #include <unistd.h>
                #include <sys/types.h>
-              #include <sys/param.h>
+               #include <sys/param.h>
                #include <sys/stat.h>
                #include <sys/swap.h>
                ])
 AC_CHECK_TYPES([swaptbl_t, swapent_t],,,[
                #include <sys/types.h>
-              #include <sys/param.h>
+               #include <sys/param.h>
                #include <sys/stat.h>
                #include <sys/swap.h>
                ])
 AC_CHECK_MEMBERS([struct swapent.se_nblks],,,[
-               #include <unistd.h>
-               #include <sys/types.h>
-              #include <sys/param.h>
-               #include <sys/stat.h>
-               #include <sys/swap.h>
-               ])
-
-if test "$ac_cv_have_decl_swapctl" = "yes"; 
+                 #include <unistd.h>
+                 #include <sys/types.h>
+                 #include <sys/param.h>
+                 #include <sys/stat.h>
+                 #include <sys/swap.h>
+                 ])
+
+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";
@@ -1408,7 +1458,7 @@ then
        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,
@@ -1449,12 +1499,12 @@ dnl end tests for the swapctl system calls
 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])
@@ -1499,7 +1549,7 @@ fi
 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])
@@ -1508,9 +1558,7 @@ if test -n "$PATH_TO_APTGET" ; then
 fi
 
 
-if test -f plugins/check_nt.c ; then
-  EXTRAS="$EXTRAS check_nt"
-elif test -f ../plugins/check_nt.c ; then
+if test -f $srcdir/plugins/check_nt.c ; then
   EXTRAS="$EXTRAS check_nt"
 fi
 
@@ -1523,12 +1571,12 @@ case $host in
                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
@@ -1548,8 +1596,8 @@ dnl 2.6.9-11 (okay in 2.6.9-5). Redhat investigating root cause
 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])
@@ -1571,7 +1619,7 @@ fi
 
 dnl Perl modules
 AC_ARG_ENABLE(perl-modules,
-       AC_HELP_STRING([--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])
@@ -1579,6 +1627,18 @@ 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
 gl_INIT
 
@@ -1588,24 +1648,25 @@ if test "$ac_cv_uname_s" = 'SunOS' -a \( "x$ac_cv_prog_ac_ct_AR" = "x" -o "$ac_c
 fi
 
 AC_OUTPUT(
-  Makefile 
-  lib/Makefile 
-  plugins/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 
+  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 
+  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
@@ -1639,5 +1700,5 @@ ACX_FEATURE([with],[perl])
 ACX_FEATURE([enable],[perl-modules])
 ACX_FEATURE([with],[cgiurl])
 ACX_FEATURE([with],[trusted-path])
-
+ACX_FEATURE([enable],[libtap])