pnp4nagios/configure.ac
2017-05-20 15:29:39 +02:00

314 lines
9.3 KiB
Plaintext

# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
AC_INIT(pnp, 0.6.25, pnp4nagios-devel@lists.sourceforge.net)
AC_CONFIG_SRCDIR(src/)
AC_CONFIG_HEADERS(include/config.h:include/config.h.in)
AC_PREFIX_DEFAULT(/usr/local/pnp4nagios)
AC_DEFINE([DEFAULT_NAGIOS_USER], [nagios], [Default Nagios User])
AC_DEFINE([DEFAULT_NAGIOS_GROUP], [nagios], [Default Nagios Group])
PKG_NAME=pnp4nagios
PKG_VERSION="0.6.25"
PKG_HOME_URL="http://www.pnp4nagios.org/pnp/start"
PKG_REL_DATE="03-01-2015"
AC_SUBST(PKG_NAME)
AC_SUBST(PKG_VERSION)
AC_SUBST(PKG_HOME_URL)
AC_SUBST(PKG_REL_DATE)
AC_SUBST(ac_configure_args)
XML_STRUCTURE_VERSION="4"
AC_SUBST(XML_STRUCTURE_VERSION)
dnl Figure out how to invoke "install" and what install options to use.
AC_PROG_INSTALL
AC_SUBST(INSTALL)
#dnl What OS are we running?
AC_CANONICAL_HOST
dnl Checks for programs.
AC_PROG_CC
AC_PROG_MAKE_SET
AC_PATH_PROG([STRIP],[strip],[true])
AC_PATH_PROG(CP,cp)
# Checks for libraries.
# Checks for header files.
AC_HEADER_STDC
AC_HEADER_DIRENT
AC_HEADER_SYS_WAIT
#AC_CHECK_HEADERS(netinet/in.h string.h sys/socket.h unistd.h stdio.h stdlib.h getopt.h signal.h)
AC_CHECK_HEADERS(dirent.h stdio.h errno.h unistd.h syslog.h signal.h stdlib.h dirent.h string.h pthread.h getopt.h grp.h pwd.h sys/mman.h sys/types.h sys/wait.h sys/stat.h sys/socket.h sys/loadavg.h netinet/in.h fcntl.h limits.h)
# Checks for typedefs, structures, and compiler characteristics.
AC_TYPE_PID_T
AC_TYPE_SIGNAL
AC_TYPE_UID_T
# Checks for structure members
#AC_CHECK_MEMBER([struct dirent.d_type], [AC_MSG_RESULT([We successfully have a `dirent_d_type'!])],
# [AC_MSG_ERROR([We need `dirent.d_type'!])],
# [#include <dirent.h>])
AC_STRUCT_DIRENT_D_TYPE
# Checks for library functions.
AC_FUNC_FORK
AC_CHECK_FUNCS([bzero socket alarm strerror strspn getloadavg])
AC_FUNC_MALLOC
AC_FUNC_STAT
AC_C_CONST
dnl Layout Methods
layout="default"
AC_ARG_WITH(layout,[ --with-layout=\[default,debian\] sets directory layout],layout=$withval)
case $layout in
debian)
prefix="/"
sysconfdir="/etc/${PKG_NAME}"
localstatedir="/var/log/${PKG_NAME}"
libexecdir="/usr/lib/${PKG_NAME}/libexec"
libdir="/usr/lib/${PKG_NAME}"
datarootdir="/usr/share/${PKG_NAME}/html"
PERFDATA_LOG="/var/log/${PKG_NAME}/perfdata.log"
PERFDATA_DIR="/var/lib/${PKG_NAME}/perfdata"
PERFDATA_SPOOL_DIR="/var/spool/${PKG_NAME}"
bindir="/usr/bin"
sbindir="/usr/sbin"
;;
default-0.4)
prefix="/usr/local/nagios"
sysconfdir="\${prefix}/etc/pnp"
localstatedir="\${prefix}/var"
libexecdir="\${prefix}/libexec"
datarootdir="\${prefix}/share/pnp"
libdir="\${prefix}/lib/pnp"
PERFDATA_LOG="\${prefix}/var/perfdata.log"
PERFDATA_DIR="\${prefix}/share/perfdata"
PERFDATA_SPOOL_DIR="\${prefix}/var/spool/perfdata"
;;
default)
PERFDATA_LOG="${localstatedir}/perfdata.log"
PERFDATA_DIR="${localstatedir}/perfdata"
PERFDATA_SPOOL_DIR="${localstatedir}/spool"
mandir="\${prefix}/man"
;;
esac
AC_ARG_WITH(kohana,[ --without-kohana does not install the kohana framework],KOHANA=no,KOHANA=yes)
AC_SUBST(KOHANA)
AC_ARG_WITH(kohana_system,[ --with-kohana_system=<existing kohana system dir> Points to an already installed kohana framework],KOHANA_SYSTEM=$withval,KOHANA_SYSTEM=$libdir/kohana/system)
AC_SUBST(KOHANA_SYSTEM)
AC_ARG_WITH(nagios_user,[ --with-nagios-user=<user> sets user name to run nagios],nagios_user=$withval,nagios_user=nagios)
AC_ARG_WITH(nagios_group,[ --with-nagios-group=<grp> sets group name to run nagios],nagios_grp=$withval,nagios_grp=nagios)
AC_SUBST(nagios_user)
AC_SUBST(nagios_grp)
AC_DEFINE_UNQUOTED(DEFAULT_NAGIOS_USER,"$nagios_user")
AC_DEFINE_UNQUOTED(DEFAULT_NAGIOS_GROUP,"$nagios_grp")
INSTALL_OPTS="-o $nagios_user -g $nagios_grp"
AC_SUBST(INSTALL_OPTS)
# Checks for programs.
AC_PATH_PROG(PERL,perl)
# Check for Perl lib path
PERL_LIB_PATH=no
AC_ARG_WITH(perl_lib_path,[ --with-perl_lib_path=<path_to_perl_libs> sets path to rrdtool RRDs perl modules.],PERL_LIB_PATH=$withval,PERL_LIB_PATH=no)
AC_SUBST(PERL_LIB_PATH)
# Check for rrdtool
RRDTOOL=no
AC_ARG_WITH(rrdtool,[ --with-rrdtool=<path_to_rrdtool> sets path to rrdtool],RRDTOOL=$withval,RRDTOOL=no)
if test RRDTOOL=no; then
AC_PATH_PROG(RRDTOOL,rrdtool)
fi
AC_MSG_CHECKING(rrdtool path $RRDTOOL)
if [ test -d $RRDTOOL ];then
AC_MSG_RESULT(no)
AC_MSG_ERROR([$RRDTOOL is a directory! PNP needs the Path to the rrdtool binary!])
fi
AC_MSG_RESULT(yes)
AC_MSG_CHECKING(for executable Bit on $RRDTOOL)
if [ ! test -x $RRDTOOL] ;then
AC_MSG_RESULT(no)
AC_MSG_ERROR([$RRDTOOL is not executable!])
fi
AC_MSG_RESULT(yes)
AC_SUBST(RRDTOOL)
AC_ARG_WITH(perfdata-logfile,[ --with-perfdata-logfile=<perfdata_logfile> Tell me where I should store the 'process_perfdata.pl' Logfile],
PERFDATA_LOG=$withval
)
AC_SUBST(PERFDATA_LOG)
AC_ARG_WITH(perfdata-dir,[ --with-perfdata-dir=<path_to_perfdata> Tell me where I should store the RRD Database Files],
PERFDATA_DIR=$withval
)
AC_SUBST(PERFDATA_DIR)
AC_ARG_WITH(perfdata-spool-dir,[ --with-perfdata-spool-dir=<path_to_perfdata_spool_dir> Tell me where I should store perfdata files for bulk mode with npcd],
PERFDATA_SPOOL_DIR=$withval
)
AC_SUBST(PERFDATA_SPOOL_DIR)
AC_ARG_WITH(debug,[ --with-debug Enable debuging for process_perfdata.pl],
DEBUG="2",
DEBUG="0"
)
AC_SUBST(DEBUG)
dnl Check for location of Apache conf.d directory
HTTP_CONF=no
AC_ARG_WITH(httpd_conf,[ --with-httpd-conf=<path_to_conf> sets path to Apache conf.d directory],HTTPD_CONF=$withval,HTTPD_CONF=no)
if test x$HTTPD_CONF = xno; then
if test -d /etc/httpd/conf.d; then
HTTPD_CONF="/etc/httpd/conf.d"
elif test -d /etc/apache2/conf.d; then
HTTPD_CONF="/etc/apache2/conf.d"
elif test -d /etc/apache/conf.d; then
HTTPD_CONF="/etc/apache/conf.d"
else
HTTPD_CONF="/etc/httpd/conf.d"
fi
fi
AC_SUBST(HTTPD_CONF)
dnl Check for location of init scripts
init_dir=/etc/rc.d/init.d
if test -d /etc/rc.d/init.d; then
init_dir="/etc/rc.d/init.d"
elif test -d /usr/local/etc/rc.d; then
init_dir="/usr/local/etc/rc.d"
elif test -d /etc/rc.d; then
init_dir="/etc/rc.d"
elif test -d /etc/init.d; then
init_dir="/etc/init.d"
elif test -d /sbin/init.d; then
init_dir="/sbin/init.d"
fi
BASE_URL=${PKG_NAME}
AC_ARG_WITH(base-url,[ --with-base-url=/${PKG_NAME} ],BASE_URL=$withval,BASE_URL=/${PKG_NAME})
AC_SUBST(BASE_URL)
dnl User can override init script location
AC_ARG_WITH(init_dir,[ --with-init-dir=<path> sets directory to place init script into],init_dir=$withval)
AC_SUBST(init_dir)
pnpsender_name=pnpsender
AC_SUBST(pnpsender_name)
npcd_name=npcd
AC_SUBST(npcd_name)
pp_pl_name=process_perfdata.pl
AC_SUBST(pp_pl_name)
dnl - Modified version from www.erlang.org
dnl - Some 12/15/05 mods made after reading http://xaxxon.slackworks.com/phuku/dl.html
AC_MSG_CHECKING(for linker flags for loadable modules)
case $host_os in
solaris2*|sysv4*)
MOD_LDFLAGS="-G"
;;
aix4*|aix5*|aix6*|aix7*)
#MOD_LDFLAGS="-G -bnoentry -bexpall"
MOD_LDFLAGS="-shared -Wl,-G -Wl,-bM:SRE -Wl,-bnoentry -Wl,-bexpall"
;;
freebsd2*)
# Non-ELF GNU linker
MOD_LDFLAGS="-Bshareable"
;;
darwin*)
# Mach-O linker, a shared lib and a loadable
# object file is not the same thing.
MOD_LDFLAGS="-bundle -flat_namespace -undefined suppress"
MOD_CFLAGS="$MOD_CFLAGS -fno-common"
;;
linux* | k*bsd*-gnu*)
# assume GNU linker and ELF
MOD_LDFLAGS="-shared"
MOD_CFLAGS="-fPIC"
;;
*)
# assume GNU linker and ELF
MOD_LDFLAGS="-shared"
;;
esac
AC_MSG_RESULT([$MOD_LDFLAGS])
AC_SUBST(MOD_CFLAGS)
AC_SUBST(MOD_LDFLAGS)
#
# Checking for Perl Modules
#
AC_MSG_CHECKING(for Perl Module Time::HiRes)
$PERL -MTime::HiRes -e exit >/dev/null 2>&1
if test $? -ne 0; then
AC_MSG_RESULT(no)
AC_MSG_ERROR(Perl Module Time::HiRes not available)
else
AC_MSG_RESULT(yes)
fi
AC_MSG_CHECKING(for Perl Module Getopt::Long)
$PERL -MGetopt::Long -e exit >/dev/null 2>&1
if test $? -ne 0; then
AC_MSG_RESULT(no)
AC_MSG_ERROR(Perl Module Getopt::Long not available)
else
AC_MSG_RESULT(yes)
fi
RRDS=0
AC_MSG_CHECKING(for optional Perl Module RRDs)
$PERL -I${PERL_LIB_PATH} -MRRDs -e exit >/dev/null 2>&1
if test $? -ne 0; then
AC_MSG_RESULT(no)
AC_MSG_WARN(Perl Module RRDs not available)
RRDS=0
else
AC_MSG_RESULT(yes)
RRDS=1
fi
AC_SUBST(RRDS)
AC_CONFIG_FILES( subst Makefile share/Makefile lib/Makefile scripts/Makefile src/Makefile sample-config/Makefile man/Makefile )
AC_OUTPUT()
$PERL subst summary
$PERL subst scripts/process_perfdata.pl
$PERL subst scripts/rrd_convert.pl
$PERL subst scripts/rrd_modify.pl
$PERL subst scripts/rc.npcd
$PERL subst scripts/rc.pnp_gearman_worker
$PERL subst scripts/check_pnp_rrds.pl
$PERL subst share/pnp/index.php
$PERL subst share/pnp/install.php
$PERL subst sample-config/httpd.conf
$PERL subst sample-config/lighttpd.pnp4nagios.conf
$PERL subst sample-config/nginx.pnp4nagios.conf
$PERL subst sample-config/nagios.cfg-sample
$PERL subst sample-config/misccommands.cfg-sample
$PERL subst sample-config/pnp/config.php
$PERL subst sample-config/pnp/npcd.cfg-sample
$PERL subst sample-config/pnp/process_perfdata.cfg-sample
$PERL subst sample-config/pnp/pnp4nagios_release
$PERL subst contrib/ssi/status-header.ssi
$PERL subst man/npcd.8
$PERL summary