X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=configure.in;h=78434437e94c4a2f2ff8b73a9ab0490a7922e378;hb=2375feee3d81b692116f078b41df8b19aecd6e68;hp=356e4e32d42ba5171b422127748e58c3231261d1;hpb=8f253be7a4ae29a017566cc6cef01085a0d10d56;p=nagiosplug.git diff --git a/configure.in b/configure.in index 356e4e3..7843443 100644 --- a/configure.in +++ b/configure.in @@ -1,8 +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.5) +AC_PREREQ(2.59) +AC_INIT(nagios-plugins,1.4.11) 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 @@ -13,34 +15,40 @@ AC_SUBST(RELEASE) AC_PREFIX_DEFAULT(/usr/local/nagios) dnl Deprecated configure options -AC_ARG_WITH(nagios_user,, - AC_MSG_ERROR([--with-nagios-user is a deprecated option])) -AC_ARG_WITH(nagios_group,, - AC_MSG_ERROR([--with-nagios-group is a deprecated option])) -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]) - ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD]) PLUGIN_TEST=`echo $srcdir/plugins/t/*.t|sed -e 's,\.*/plugins/,,g'` @@ -128,15 +136,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. @@ -156,7 +155,7 @@ AC_SUBST(MATHLIBS) dnl Check for libtap, to run perl-like tests AC_CHECK_LIB(tap, plan_tests, - EXTRA_TEST=test_utils + EXTRA_TEST="test_utils test_disk test_tcp test_cmd test_base64" AC_SUBST(EXTRA_TEST) ) @@ -219,8 +218,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" @@ -241,44 +247,43 @@ 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 -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 #endif #include @@ -289,116 +294,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) @@ -516,11 +423,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 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 @@ -547,37 +453,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;], @@ -590,7 +465,7 @@ 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) @@ -606,24 +481,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 @@ -654,30 +511,16 @@ 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 %f %s %n" - ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]" +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([using nagios-plugins internal ps for solaris]) - EXTRAS_ROOT="$EXTRAS_ROOT pst3" + 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... @@ -931,7 +774,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 @@ -1241,6 +1084,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 ], + [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], @@ -1615,21 +1466,9 @@ elif test -f ../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*) @@ -1652,7 +1491,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 @@ -1681,9 +1520,18 @@ 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 -np_COREUTILS -np_CURL +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 @@ -1693,7 +1541,6 @@ fi AC_OUTPUT( Makefile lib/Makefile - m4/Makefile plugins/Makefile lib/tests/Makefile plugins-root/Makefile @@ -1701,6 +1548,7 @@ AC_OUTPUT( plugins-scripts/subst plugins-scripts/utils.pm plugins-scripts/utils.sh + perlmods/Makefile command.cfg test.pl pkg/solaris/pkginfo @@ -1727,20 +1575,18 @@ 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([with],[perl]) +ACX_FEATURE([enable],[perl-modules]) ACX_FEATURE([with],[cgiurl]) ACX_FEATURE([with],[trusted-path])