dnl Process this file with autoconf to produce a configure script. dnl Disable caching define([AC_CACHE_LOAD],) define([AC_CACHE_SAVE],) AC_INIT(src/nrpe.c) AC_CONFIG_HEADER(common/config.h) AC_PREFIX_DEFAULT(/usr/local/nagios) PKG_NAME=nrpe PKG_VERSION="2.0b4" PKG_HOME_URL="http://www.nagios.org/" PKG_REL_DATE="06-04-2003" dnl Figure out how to invoke "install" and what install options to use. AC_PROG_INSTALL AC_SUBST(INSTALL) dnl Checks for programs. AC_PROG_CC AC_PROG_MAKE_SET dnl Checks for header files. AC_HEADER_STDC AC_HEADER_TIME AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(ctype.h dirent.h errno.h fcntl.h getopt.h grp.h netdb.h pwd.h signal.h strings.h string.h syslog.h unistd.h arpa/inet.h netinet/in.h sys/types.h sys/time.h sys/resource.h sys/wait.h sys/socket.h sys/stat.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_STRUCT_TM AC_TYPE_MODE_T AC_TYPE_PID_T AC_TYPE_SIZE_T AC_TYPE_SIGNAL AC_TYPE_GETGROUPS dnl Define u_int32_t if we don't have it already (Solaris) AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(short) AC_CHECK_SIZEOF(long) AC_CHECK_TYPE(u_int32_t,unsigned int) if test "$ac_cv_type_u_int32_t" = no ; then if test "$ac_cv_sizeof_int" = 4 ; then AC_DEFINE(U_INT32_T_IS_UINT) else if test "$ac_cv_sizeof_long" = 4 ; then AC_DEFINE(U_INT32_T_IS_ULONG) else if test "$ac_cv_sizeof_short" = 4 ; then AC_DEFINE(U_INT32_T_IS_USHORT) fi fi fi fi dnl AC_CHECK_SIZEOF(int) dnl AC_CHECK_SIZEOF(short) dnl AC_CHECK_SIZEOF(long) dnl if test "$ac_cv_sizeof_int" = 4 ; then dnl AC_CHECK_TYPE(int32_t, int) dnl AC_CHECK_TYPE(u_int32_t, unsigned int) dnl elif test "$ac_cv_sizeof_short" = 4 ; then dnl AC_CHECK_TYPE(int32_t, short) dnl AC_CHECK_TYPE(u_int32_t, unsigned short) dnl elif test "$ac_cv_sizeof_long" = 4 ; then dnl AC_CHECK_TYPE(int32_t, long) dnl AC_CHECK_TYPE(u_int32_t, unsigned long) dnl else dnl AC_MSG_ERROR([Cannot find a type with size of 32 bits]) dnl fi dnl Checks for library functions. AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl") AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket") AC_SUBST(SOCKETLIBS) AC_CHECK_FUNCS(strdup strstr strtoul initgroups) AC_MSG_CHECKING(for type of socket size) AC_TRY_COMPILE([#include #include #include ], [int a = send(1, (const void *)0, (size_t *) 0, (int *) 0);], [AC_DEFINE(SOCKET_SIZE_TYPE, size_t) AC_MSG_RESULT(size_t)], [AC_DEFINE(SOCKET_SIZE_TYPE, int) AC_MSG_RESULT(int)]) dnl Does user want to check for SSL? AC_ARG_ENABLE(ssl,--enable-ssl enables native SSL support,[ if test x$enableval = xyes; then check_for_ssl=yes else check_for_ssl=no fi ],check_for_ssl=yes) dnl Optional SSL library and include paths ssl_lib_dir= ssl_inc_dir= AC_ARG_WITH(ssl-lib,--with-ssl-lib=DIR sets location of the SSL library,[ ssl_lib_dir=$withval ]) AC_ARG_WITH(ssl-inc,--with-ssl-inc=DIR sets location of the SSL include files,[ ssl_inc_dir=$withval ]) AC_ARG_WITH(kerberos-inc,--with-kerberos-inc=DIR sets location of the Kerberos include files,[ kerberos_inc_dir=$withval ]) dnl Check for SSL support dnl Modified version of Mark Ethan Trostler's macro if test x$check_for_ssl = xyes; then AC_MSG_CHECKING(for SSL) found_ssl=no for dir in $ssl_inc_dir /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr; do ssldir="$dir" if test -f "$dir/include/openssl/ssl.h"; then found_ssl=yes CFLAGS="$CFLAGS -I$ssldir/include/openssl" break fi if test -f "$dir/include/ssl.h"; then found_ssl=yes CFLAGS="$CFLAGS -I$ssldir/include" break fi done if test x_$found_ssl != x_yes; then AC_MSG_ERROR(Cannot find ssl libraries) else printf "SSL found in $ssldir\n"; LIBS="$LIBS -lssl -lcrypto"; if test x$ssl_lib_dir != x; then LDFLAGS="$LDFLAGS -L$ssl_lib_dir"; else LDFLAGS="$LDFLAGS -L$ssldir/lib"; fi AC_DEFINE_UNQUOTED(HAVE_SSL) AC_SUBST(HAVE_SSL) dnl Generate DH parameters echo "" echo "*** Generating DH Parameters for SSL/TLS ***" if test -f "$ssldir/sbin/openssl"; then sslbin=$ssldir/sbin/openssl else sslbin=$ssldir/bin/openssl fi $sslbin dhparam -out /dev/null -C 512 > src/dh.h fi dnl RedHat 8.0 and 9.0 include openssl compiled with kerberos, so we must include header file AC_MSG_CHECKING(for Kerberos include files) found_kerberos=no for dir in $kerberos_inc_dir /usr/kerberos/include; do kerbdir="$dir" if test -f "$dir/krb5.h"; then found_kerberos=yes CFLAGS="$CFLAGS -I$kerbdir" AC_DEFINE_UNQUOTED(HAVE_KRB5_H) dnl AC_CHECK_HEADERS(krb5.h) break fi done if test x_$found_kerberos != x_yes; then printf "could not find include files\n"; else printf "found Kerberos include files in $kerbdir\n"; fi fi AC_ARG_WITH(nrpe_user,--with-nrpe-user= sets user name to run NRPE,nrpe_user=$withval,nrpe_user=nagios) AC_ARG_WITH(nrpe_group,--with-nrpe-group= sets group name to run NRPE,nrpe_grp=$withval,nrpe_grp=nagios) AC_ARG_WITH(nrpe_port,--with-nrpe-port= sets port number for NRPE to listen on,nrpe_port=$withval,nrpe_port=5666) AC_SUBST(nrpe_user) AC_SUBST(nrpe_grp) AC_SUBST(nrpe_port) AC_DEFINE_UNQUOTED(DEFAULT_SERVER_PORT,$nrpe_port) AC_ARG_ENABLE(command-args,--enable-command-args allows clients to specify command arguments. *** THIS IS A SECURITY RISK! *** Read the SECURITY file before using this option!,AC_DEFINE_UNQUOTED(ENABLE_COMMAND_ARGUMENTS)) AC_PATH_PROG(PERL,perl) AC_OUTPUT(Makefile src/Makefile subst) perl subst nrpe.cfg perl subst init-script perl subst init-script.debian perl subst init-script.freebsd perl subst nrpe.xinetd dnl Review options echo "" echo "" AC_MSG_RESULT([*** Configuration summary for $PKG_NAME $PKG_VERSION $PKG_REL_DATE ***:]) echo "" echo " General Options:" echo " -------------------------" AC_MSG_RESULT([ NRPE port: $nrpe_port]) AC_MSG_RESULT([ NRPE user: $nrpe_user]) AC_MSG_RESULT([ NRPE group: $nrpe_grp]) echo "" echo "" echo "Review the options above for accuracy. If they look okay," echo "type 'make all' to compile the NRPE daemon and client." echo ""