X-Git-Url: https://git.tokkee.org/?p=nagiosplug.git;a=blobdiff_plain;f=configure.in;h=bdd443141e89719a3b5cbfb5754cdde52e860193;hp=be9fe83afb1570d4a645f35304cd5f814c1a2f64;hb=1a5a83bb82c35d888229fe9f815fbc663c0f4d3c;hpb=473458b30c6feba80e5387de6f1af46d33275794 diff --git a/configure.in b/configure.in index be9fe83..bdd4431 100644 --- a/configure.in +++ b/configure.in @@ -1,9 +1,10 @@ dnl Process this file with autoconf to produce a configure script. -AC_REVISION ($Revision$) -AC_PREREQ(2.58) -AC_INIT(nagios-plugins,1.4.2) +AC_PREREQ(2.59) +AC_INIT(nagios-plugins,1.4.15) AC_CONFIG_SRCDIR(NPTest.pm) -AM_INIT_AUTOMAKE +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 @@ -12,31 +13,43 @@ AC_SUBST(RELEASE) AC_PREFIX_DEFAULT(/usr/local/nagios) -dnl Figure out how to invoke "install" and what install options to use. -AC_PROG_INSTALL -AC_SUBST(INSTALL) +dnl Deprecated configure options + -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_RANLIB +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]) -dnl AM_WITH_REGEX PLUGIN_TEST=`echo $srcdir/plugins/t/*.t|sed -e 's,\.*/plugins/,,g'` AC_SUBST(PLUGIN_TEST)dnl @@ -59,21 +72,6 @@ AC_ARG_WITH(cgiurl, 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)]), @@ -82,6 +80,7 @@ AC_ARG_WITH(trusted_path, AC_SUBST(with_trusted_path) EXTRAS= +EXTRAS_ROOT= dnl PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/etc:/usr/local/bin:/usr/local/sbin:$PATH LDFLAGS="$LDFLAGS -L." @@ -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="$(@])], + [], [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 #endif #include @@ -306,116 +336,18 @@ 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]) -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 ])]) - 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 - ], [ - 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) @@ -433,9 +365,17 @@ 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 "$with_openssl" = "no"; then +if ! test x"$with_openssl" = x"no"; then dnl Check for OpenSSL location if it wasn't already specified if ! test -d "$with_openssl"; then for d in $OPENSSL_DIRS; do @@ -449,18 +389,20 @@ if ! test "$with_openssl" = "no"; then _SAVEDLDFLAGS="$LDFLAGS" dnl Check for OpenSSL header files unset FOUNDINCLUDE - CPPFLAGS="$CPPFLAGS -I$OPENSSL/include" - LDFLAGS="$LDFLAGS -R$OPENSSL/lib" + if test x"$with_openssl" != x"/usr" ; then + CPPFLAGS="$CPPFLAGS -I$with_openssl/include" + LDFLAGS="$LDFLAGS -L$with_openssl/lib" + fi dnl check for openssl in $dir/include/openssl AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h, - SSLINCLUDE="-I$OPENSSL/include" + SSLINCLUDE="-I$with_openssl/include" FOUNDINCLUDE=yes, FOUNDINCLUDE=no) dnl else check to see if $dir/include has it if test "$FOUNDINCLUDE" = "no"; then AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h, - SSLINCLUDE="-I$OPENSSL/include" + SSLINCLUDE="-I$with_openssl/include" FOUNDINCLUDE=yes, FOUNDINCLUDE=no) fi @@ -531,11 +473,10 @@ dnl 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 regex.h sys/types.h sys/time.h sys/socket.h sys/loadavg.h sys/un.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 @@ -551,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 va_list ap1,ap2;], [__va_copy(ap1,ap2);], @@ -562,37 +503,6 @@ else fi fi -AC_CHECK_FUNCS(vsnprintf snprintf asprintf vasprintf) -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_TRY_COMPILE([#include ], [struct timeval *tv; struct timezone *tz;], @@ -605,7 +515,8 @@ AC_TRY_COMPILE([#include ], 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_TRY_COMPILE([#include @@ -620,24 +531,6 @@ AC_TRY_COMPILE([#include 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 @@ -645,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, @@ -653,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, @@ -661,9 +554,7 @@ AC_ARG_WITH(ps_varlist, [Variable list for sscanf of 'ps' output]), PS_VARLIST=$withval) -AM_CONDITIONAL(WANT_PST3, false) - -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" @@ -672,28 +563,106 @@ 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 + pst3_use_64bit=1 + AC_MSG_NOTICE([using 64bit pst3]) else - pst3="$libexecdir/pst3" + AC_MSG_NOTICE([using 32bit pst3]) + fi + EXTRAS_ROOT="$EXTRAS_ROOT pst3" + + if test "$pst3_use_64bit" = 1; then + dnl Test if we can actually compile code in 64bit + old_cflags=$CFLAGS + CFLAGS="$CFLAGS -m64" + pst3_64bit_working=0 + AC_RUN_IFELSE( + [AC_LANG_PROGRAM([], [ +return sizeof(void*) == 8 ? 0 : 1; + ]) + ],[ + PST3CFLAGS="-m64" + AC_SUBST(PST3CFLAGS) + pst3_64bit_working=1 + AC_MSG_NOTICE([using -m64 for 64bit code]) + ],[ + pst3_64bit_working=0 + AC_MSG_NOTICE([compiler do not like -m64]) + ]) + CFLAGS=$old_cflags + if test "$pst3_64bit_working" = 0; then + old_cflags=$CFLAGS + CFLAGS="$CFLAGS -xarch=v9" + AC_RUN_IFELSE( + [AC_LANG_PROGRAM([], [ +return sizeof(void*) == 8 ? 0 : 1; + ]) + ],[ + PST3CFLAGS="-xarch=v9" + AC_SUBST(PST3CFLAGS) + pst3_64bit_working=1 + AC_MSG_NOTICE([using -xarch=v9 for 64bit code]) + ],[ + pst3_64bit_working=0 + AC_MSG_NOTICE([compiler do not like -xarch=v9]) + ]) + CFLAGS=$old_cflags + fi + if test "$pst3_64bit_working" = 0; then + old_cflags=$CFLAGS + CFLAGS="$CFLAGS -xarch=amd64" + AC_RUN_IFELSE( + [AC_LANG_PROGRAM([], [ +return sizeof(void*) == 8 ? 0 : 1; + ]) + ],[ + PST3CFLAGS="-xarch=amd64" + AC_SUBST(PST3CFLAGS) + pst3_64bit_working=1 + AC_MSG_NOTICE([using -xarch=amd64 for 64bit code]) + ],[ + pst3_64bit_working=0 + AC_MSG_NOTICE([compiler do not like -xarch=amd64]) + ]) + CFLAGS=$old_cflags + fi + if test "$pst3_64bit_working" = 0; then + AC_MSG_ERROR([I don't know how to build a 64-bit object!]) + fi 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]) - AM_CONDITIONAL(WANT_PST3, true) + +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... @@ -718,7 +687,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 | \ @@ -795,9 +764,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 @@ -923,7 +892,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 @@ -947,7 +916,7 @@ if test -n "$ac_cv_ps_varlist" ; 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 @@ -967,24 +936,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]) @@ -992,7 +968,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]) @@ -1071,7 +1047,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 @@ -1081,7 +1065,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]) @@ -1096,7 +1080,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]) @@ -1152,14 +1136,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]) @@ -1226,17 +1210,17 @@ fi fi -AC_MSG_CHECKING(for nslookup syntax) AC_ARG_WITH(nslookup_command, ACX_HELP_STRING([--with-nslookup-command=PATH], [sets path to nslookup executable]), ac_cv_nslookup_command=$withval) if test -n "$ac_cv_nslookup_command"; then - AC_MSG_RESULT([(command line) $ac_cv_nslookup_command]) + AC_MSG_NOTICE([Using specific nslookup at $ac_cv_nslookup_command]) else AC_PATH_PROG(PATH_TO_NSLOOKUP,nslookup) if test -n "$PATH_TO_NSLOOKUP" then + AC_MSG_CHECKING(for nslookup syntax) if $PATH_TO_NSLOOKUP -sil 127.0.0.1 2>&1 | grep ["Invalid option: sil"] >/dev/null then ac_cv_nslookup_command="$PATH_TO_NSLOOKUP" @@ -1257,11 +1241,13 @@ if test -n "$ac_cv_nslookup_command"; then AC_DEFINE_UNQUOTED(NSLOOKUP_COMMAND,"$ac_cv_nslookup_command", [path and args for nslookup]) fi -AC_PATH_PROG(PATH_TO_HOST,host) -if test -n "$ac_cv_path_PATH_TO_HOST" -then - EXTRAS="$EXTRAS check_dns" -fi +AC_MSG_CHECKING([for number of cpus]) +AC_TRY_COMPILE([#include ], + [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, @@ -1275,20 +1261,6 @@ AC_ARG_WITH(rpcinfo_command, [sets path to rpcinfo]), PATH_TO_RPCINFO=$withval) AC_DEFINE_UNQUOTED(PATH_TO_RPCINFO,"$PATH_TO_RPCINFO",[path to rpcinfo binary]) -AC_PATH_PROG(PATH_TO_NTPDATE,ntpdate) -AC_ARG_WITH(ntpdate_command, - ACX_HELP_STRING([--with-ntpdate-command=PATH], - [sets path to ntpdate]), PATH_TO_NTPDATE=$withval) -AC_PATH_PROGS(PATH_TO_NTPDC,ntpdc xntpdc) -AC_PATH_PROGS(PATH_TO_NTPQ,ntpq) -if (test -n "$PATH_TO_NTPDATE" || test -n "$PATH_TO_NTPQ") -then - AC_DEFINE_UNQUOTED(PATH_TO_NTPQ,"$PATH_TO_NTPQ",[path to ntpq binary]) - AC_DEFINE_UNQUOTED(PATH_TO_NTPDATE,"$PATH_TO_NTPDATE",[path to ntpdate binary]) -else - AC_MSG_WARN([Install NTP programs (http://www.ntp.org) if you want to monitor time synchronization]) -fi - AC_PATH_PROG(PATH_TO_LMSTAT,lmstat) if test -x "$PATH_TO_LMSTAT" then @@ -1300,7 +1272,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 @@ -1356,7 +1328,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" @@ -1372,7 +1344,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]) @@ -1475,7 +1447,7 @@ then 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]) @@ -1513,30 +1485,30 @@ AC_CHECK_HEADERS([sys/swap.h], [], [], [ AC_CHECK_DECLS([swapctl],,,[ #include #include - #include + #include #include #include ]) AC_CHECK_TYPES([swaptbl_t, swapent_t],,,[ #include - #include + #include #include #include ]) AC_CHECK_MEMBERS([struct swapent.se_nblks],,,[ - #include - #include - #include - #include - #include - ]) - -if test "$ac_cv_have_decl_swapctl" = "yes"; + #include + #include + #include + #include + #include + ]) + +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"; @@ -1545,7 +1517,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, @@ -1586,12 +1558,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]) @@ -1633,97 +1605,135 @@ if test -n "$PATH_TO_DIG"; then AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present]) fi -if test -f plugins/check_nt.c ; then - EXTRAS="$EXTRAS check_nt" -elif test -f ../plugins/check_nt.c ; then +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]), + 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]) +if test -n "$PATH_TO_APTGET" ; then + EXTRAS="$EXTRAS check_apt" +fi + + +if test -f $srcdir/plugins/check_nt.c ; then EXTRAS="$EXTRAS check_nt" fi -AC_MSG_CHECKING(for va_list) -AC_TRY_COMPILE([#ifdef __STDC__ - #include - #include - #include - #else - #include - #include - #include - #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(EXTRAS) +AC_SUBST(EXTRAS_ROOT) AC_SUBST(EXTRA_NETOBJS) AC_SUBST(DEPLIBS) -AM_GNU_GETTEXT([no-libtool], [need-ngettext]) -AM_GNU_GETTEXT_VERSION(0.11.5) +AM_GNU_GETTEXT([external], [need-ngettext]) +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 Only appears to affect nslookup and dig calls. Only affects redhat around 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. May need to check -dnl Fedora Core too in future -if echo $ac_cv_uname_r | egrep "\.EL(smp)?$" >/dev/null 2>&1 ; then - AC_MSG_CHECKING(for redhat spopen problem) - ( cd config_test && make && make test ) > /dev/null 2>&1 - if test $? -eq 0 ; then - AC_MSG_RESULT(okay) - else - AC_MSG_RESULT(error) - AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, "Problem on redhat with spopen") +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], + [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_MSG_RESULT(okay) + else + AC_MSG_RESULT(error) + AC_DEFINE(REDHAT_SPOPEN_ERROR, 1, [Workaround on redhat in spopen]) + fi fi +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 +# 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 + 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 - intl/Makefile - 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 +ACX_FEATURE([with],[apt-get-command]) dnl ACX_FEATURE([with],[dig-command]) dnl ACX_FEATURE([with],[fping-command]) dnl ACX_FEATURE([with],[mailq-command]) dnl ACX_FEATURE([with],[nslookup-command]) -dnl ACX_FEATURE([with],[ntpdate-command]) ACX_FEATURE([with],[ping6-command]) ACX_FEATURE([with],[ping-command]) dnl ACX_FEATURE([with],[qstat-command]) @@ -1734,22 +1744,20 @@ dnl ACX_FEATURE([with],[snmpgetnext-command]) 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])