1dnl Process this -*-m4-*- file with autoconf to produce a configure script. 2 3dnl Disable caching 4define([AC_CACHE_LOAD],) 5define([AC_CACHE_SAVE],) 6 7AC_INIT(src/nsca.c) 8AC_CONFIG_HEADER(include/config.h) 9AC_PREFIX_DEFAULT(/usr/local/nagios) 10 11PKG_NAME=nsca 12PKG_VERSION="2.7.2" 13PKG_HOME_URL="http://www.nagios.org/" 14PKG_REL_DATE="07-03-2007" 15 16dnl Figure out how to invoke "install" and what install options to use. 17AC_PROG_INSTALL 18AC_SUBST(INSTALL) 19 20dnl What OS are we running? 21AC_CANONICAL_HOST 22 23dnl Checks for programs. 24AC_PROG_CC 25AC_PROG_MAKE_SET 26 27dnl Checks for header files. 28AC_HEADER_STDC 29AC_HEADER_TIME 30AC_HEADER_SYS_WAIT 31AC_CHECK_HEADERS(db.h ctype.h errno.h fcntl.h grp.h inttypes.h netdb.h pwd.h regex.h signal.h stdint.h strings.h string.h syslog.h tcpd.h unistd.h arpa/inet.h netinet/in.h sys/config.h sys/int_types.h sys/poll.h sys/types.h sys/time.h sys/resource.h sys/socket.h sys/stat.h sys/wait.h) 32 33dnl Checks for typedefs, structures, and compiler characteristics. 34AC_C_CONST 35AC_STRUCT_TM 36AC_TYPE_MODE_T 37AC_TYPE_PID_T 38AC_TYPE_SIZE_T 39AC_TYPE_SIGNAL 40AC_TYPE_GETGROUPS 41 42dnl Check lengths for later tests of u_int32_t and int32_t 43AC_CHECK_SIZEOF(int) 44AC_CHECK_SIZEOF(short) 45AC_CHECK_SIZEOF(long) 46 47dnl Define u_int32_t if we don't have it already (Solaris, etc.) 48AC_CHECK_TYPE(uint32_t,unsigned int) 49AC_CHECK_TYPE(u_int32_t,unsigned int) 50if test "$ac_cv_type_u_int32_t" = no ; then 51 if test "$ac_cv_type_u_int32_t" = yes ; then 52 AC_DEFINE(U_INT32_T_IS_UINT32_T) 53 else 54 if test "$ac_cv_sizeof_int" = 4 ; then 55 AC_DEFINE(U_INT32_T_IS_UINT) 56 else 57 if test "$ac_cv_sizeof_long" = 4 ; then 58 AC_DEFINE(U_INT32_T_IS_ULONG) 59 else 60 if test "$ac_cv_sizeof_short" = 4 ; then 61 AC_DEFINE(U_INT32_T_IS_USHORT) 62 fi 63 fi 64 fi 65 fi 66fi 67 68dnl Define int32_t if we don't have it already 69AC_CHECK_TYPE(int32_t,int) 70if test "$ac_cv_type_int32_t" = no ; then 71 if test "$ac_cv_sizeof_int" = 4 ; then 72 AC_DEFINE(INT32_T_IS_UINT) 73 else 74 if test "$ac_cv_sizeof_long" = 4 ; then 75 AC_DEFINE(INT32_T_IS_ULONG) 76 else 77 if test "$ac_cv_sizeof_short" = 4 ; then 78 AC_DEFINE(INT32_T_IS_USHORT) 79 fi 80 fi 81 fi 82fi 83 84dnl Checks for library functions. 85AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl") 86AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket") 87AC_SUBST(SOCKETLIBS) 88AC_CHECK_LIB(wrap,main,[ 89 LIBWRAPLIBS="$LIBWRAPLIBS -lwrap" 90 AC_DEFINE(HAVE_LIBWRAP) 91 ]) 92AC_SUBST(LIBWRAPLIBS) 93AC_CHECK_FUNCS(strdup strstr strtoul) 94 95dnl socklen_t check - from curl 96AC_CHECK_TYPE([socklen_t], ,[ 97 AC_MSG_CHECKING([for socklen_t equivalent]) 98 AC_CACHE_VAL([curl_cv_socklen_t_equiv], 99 [ 100 # Systems have either "struct sockaddr *" or 101 # "void *" as the second argument to getpeername 102 curl_cv_socklen_t_equiv= 103 for arg2 in "struct sockaddr" void; do 104 for t in int size_t unsigned long "unsigned long"; do 105 AC_TRY_COMPILE([ 106 #ifdef HAVE_SYS_TYPES_H 107 #include <sys/types.h> 108 #endif 109 #ifdef HAVE_SYS_SOCKET_H 110 #include <sys/socket.h> 111 #endif 112 113 int getpeername (int, $arg2 *, $t *); 114 ],[ 115 $t len; 116 getpeername(0,0,&len); 117 ],[ 118 curl_cv_socklen_t_equiv="$t" 119 break 120 ]) 121 done 122 done 123 124 if test "x$curl_cv_socklen_t_equiv" = x; then 125 AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) 126 fi 127 ]) 128 AC_MSG_RESULT($curl_cv_socklen_t_equiv) 129 AC_DEFINE_UNQUOTED(socklen_t, $curl_cv_socklen_t_equiv, 130 [type to use in place of socklen_t if not defined])], 131 [#include <sys/types.h> 132#include <sys/socket.h>]) 133 134AC_MSG_CHECKING(for type of socket size) 135AC_TRY_COMPILE([#include <stdlib.h> 136#include <sys/types.h> 137#include <sys/socket.h> 138], 139[int a = send(1, (const void *)0, (size_t *) 0, (int *) 0);], 140[AC_DEFINE(SOCKET_SIZE_TYPE, size_t) AC_MSG_RESULT(size_t)], 141[AC_DEFINE(SOCKET_SIZE_TYPE, int) AC_MSG_RESULT(int)]) 142 143dnl Optional mcrypt library and include paths 144AC_ARG_WITH(mcrypt-lib,--with-mcrypt-lib=DIR sets location of the mcrypt client library,[ 145 LDFLAGS="${LDFLAGS} -L${withval}" 146 LD_RUN_PATH="${withval}${LD_RUN_PATH:+:}${LD_RUN_PATH}" 147 ]) 148AC_ARG_WITH(mcrypt-inc,--with-mcrypt-inc=DIR sets location of the mcrypt client include files,[ 149 CFLAGS="${CFLAGS} -I${withval}" 150 ]) 151 152dnl Old checks for libmcrypt, no longer needed - 01/17/02 EG 153dnl AC_CHECK_LIB(ltdl,main) 154dnl AC_CHECK_LIB(mcrypt,mcrypt,MCRYPTLIBFOUND=yep) 155 156dnl Check for mcrypt library 157MCRYPTLIBFOUND=yep 158AM_PATH_LIBMCRYPT(2.4.11,,MCRYPTLIBFOUND=nope) 159 160dnl added for automatic use of mcrypt stark@suse.de 161if test $MCRYPTLIBFOUND = yep; then 162 CFLAGS="${CFLAGS} -DHAVE_LIBMCRYPT ${LIBMCRYPT_CFLAGS}" 163 LDFLAGS="${LDFLAGS} ${LIBMCRYPT_LIBS}" 164fi 165 166dnl Did we find the mcrypt library? 167if test x$MCRYPTLIBFOUND = xnope; then 168 echo "" 169 echo "" 170 echo "**************************************************************" 171 echo "MCRYPT LIBRARY (libmcrypt) COULD NOT BE LOCATED..." 172 echo "" 173 echo "The mcrypt library could not be located on your system. This" 174 echo "means that you will NOT be able to use any crypto algorithms" 175 echo "in the NSCA client or daemon." 176 echo "" 177 echo "Read the SECURITY text file for more information on why" 178 echo "encryption is important to ensuring that the NSCA daemon is" 179 echo "not abused by malicious users." 180 echo "" 181 echo "You can download libmcrypt from:" 182 echo "" 183 echo " http://mcrypt.sourceforge.net/" 184 echo "" 185 echo "" 186 echo "NOTE: After you install the MCRYPT library on your system:" 187 echo "" 188 echo " 1. Make sure /etc/ld.so.conf has an entry for the" 189 echo " directory in which the MCRYPT library is installed." 190 echo " 2. Run 'ldconfig' to update the run-time linker options." 191 echo " 3. Run 'make devclean' in the NSCA distribution to clean" 192 echo " out any old references to your previous compile." 193 echo " 4. Rerun the configure script." 194 echo "" 195 echo "**************************************************************" 196 echo "" 197fi 198 199 200AC_ARG_WITH(nsca_user,--with-nsca-user=<user> sets user name to run NSCA,nsca_user=$withval,nsca_user=nagios) 201AC_ARG_WITH(nsca_grp,--with-nsca-grp=<grp> sets group name to run NSCA,nsca_grp=$withval,nsca_grp=nagios) 202AC_ARG_WITH(nsca_port,--with-nsca-port=<port> sets port number for NSCA to listen on,nsca_port=$withval,nsca_port=5667) 203AC_SUBST(nsca_user) 204AC_SUBST(nsca_grp) 205AC_SUBST(nsca_port) 206AC_DEFINE_UNQUOTED(DEFAULT_SERVER_PORT,$nsca_port) 207 208AC_PATH_PROG(PERL,perl) 209AC_OUTPUT(Makefile subst src/Makefile) 210 211perl subst init-script 212perl subst sample-config/nsca.xinetd 213perl subst sample-config/nsca.cfg 214perl subst sample-config/send_nsca.cfg 215 216 217dnl Review options 218echo "" 219echo "" 220AC_MSG_RESULT([*** Configuration summary for $PKG_NAME $PKG_VERSION $PKG_REL_DATE ***:]) 221 222echo "" 223echo " General Options:" 224echo " -------------------------" 225 226AC_MSG_RESULT([ NSCA port: $nsca_port]) 227AC_MSG_RESULT([ NSCA user: $nsca_user]) 228AC_MSG_RESULT([ NSCA group: $nsca_grp]) 229 230 231echo "" 232echo "" 233echo "Review the options above for accuracy. If they look okay," 234echo "type 'make all' to compile the NSCA daemon and client." 235echo "" 236 237