1dnl Process this file with autoconf to produce a configure script. 2dnl $Id: configure.in,v 1.12 2017/08/16 13:47:27 bulkstream Exp $ 3AC_INIT(main.c) 4AC_CONFIG_HEADER(config.h) 5AC_CANONICAL_TARGET 6 7case "$build_os" in 8 freebsd*) 9 OS=FREEBSD 10 AC_DEFINE(FREEBSD) 11 ;; 12 solaris*) 13 OS=SOLARIS 14 AC_DEFINE(SOLARIS) 15 ;; 16 linux*) 17 case "$host_cpu" in 18 i*86|mips*|powerpc*|sparc*|x86_64*) 19 OS=LINUX 20 AC_DEFINE(LINUX) 21 ;; 22 esac 23 ;; 24 darwin*) 25 OS=MACOSX 26 AC_DEFINE(MACOSX) 27 ;; 28esac 29 30CFLAGS="$CFLAGS -O2 -Wall" 31if test "$OS" = "LINUX"; then 32 CFLAGS="$CFLAGS -Wno-unused-result -Wno-unused-but-set-variable" 33fi 34dnl LDFLAGS="$LDFLAGS -s" 35 36dnl Local libralies. 37if test -d /usr/local/lib; then 38 LIBS="-L/usr/local/lib $LIBS" 39fi 40 41dnl Solaris 2.6 depends libbind. 42dnl libbind default installation base directory. 43LIBBIND="/usr/local/bind" 44 45dnl Checks for programs. 46GCC=yes 47AC_PROG_CC 48 49 50#dnl Checks for libraries. 51 52AC_ARG_WITH(libbind, 53[ --with-libbind[[=PATH]] to use libbind.], 54libbind="$withval", 55libbind="no") 56if test "$libbind" = "yes"; then 57 if test -d "$LIBBIND/include"; then 58 CFLAGS="-I$LIBBIND/include $CFLAGS" 59 fi 60elif test "$libbind" != "no"; then 61 if test -d "$libbind"/lib; then 62 LIBS="-L${libbind}/lib $LIBS" 63 fi 64 if test -d "$libbind"/include; then 65 CFLAGS="-I${libbind}/include $CFLAGS" 66 fi 67fi 68 69if test "$OS" = "SOLARIS"; then 70 if test "$libbind" = "no"; then 71 AC_CHECK_LIB(socket, socket) 72 else 73 AC_CHECK_LIB(xnet, socket) 74 fi 75 AC_CHECK_LIB(nsl, getaddrinfo,, 76 if test "$libbind" != "no"; then 77 AC_CHECK_LIB(bind_r, getaddrinfo,, 78 AC_CHECK_LIB(bind, getaddrinfo,, 79 AC_MSG_ERROR("required functions may not work", -1))) 80 else 81 AC_MSG_ERROR("required functions may not work", -1) 82 fi 83 ) 84fi 85 86AC_ARG_WITH(libwrap, 87[ --with-libwrap[[=PATH|yes|no]] with tcp_wrapper access control.], 88libwrap="$withval", 89libwrap="yes") 90if test "$libwrap" != "no"; then 91 if test "$libwrap" != "yes"; then 92 if test -d "$libwrap"; then 93 LIBS="-L$libwrap $LIBS" 94 fi 95 fi 96 AC_CHECK_HEADER(tcpd.h, AC_DEFINE(HAVE_TCPD_H), tcpdh="no") 97 if test "$tcpdh" != "no"; then 98# if test "$OS" = "LINUX" -o "$OS" = "SOLARIS"; then 99# AC_MSG_CHECKING([for hosts_ctl in -lwrap]) 100# saveLIBS="$LIBS" 101# LIBS="-lwrap -lnsl $LIBS" 102# AC_COMPILE_IFELSE( 103# AC_LANG_PROGRAM([ 104#[int allow_severity;] 105#[int deny_severity;]], 106#[[hosts_ctl();]]), 107# AC_DEFINE(HAVE_LIBWRAP) 108# AC_MSG_RESULT([yes]), 109# LIBS="$saveLIBS" 110# AC_MSG_RESULT([no])) 111# else 112 AC_CHECK_LIB(wrap, hosts_ctl) 113# fi 114 fi 115fi 116 117AC_ARG_WITH(syslog-fac, 118[ --with-syslog-fac=FACILITY syslog facility (LOG_DAEMON).], 119syslogfac="$withval", 120syslogfac="no") 121if test "$syslogfac" != "no"; then 122 if test "$syslogfac" != "yes"; then 123 AC_MSG_CHECKING([syslog facility is]) 124 AC_MSG_RESULT("$withval") 125 echo "$withval" |grep "LOG_LOCAL" > /dev/null 2>&1 126 r=$? 127 if test $r -eq 0; then 128 AC_DEFINE_UNQUOTED(LOCAL_FAC, $withval) 129 else 130 AC_DEFINE_UNQUOTED(SYSLOG_FAC, $withval) 131 fi 132 fi 133fi 134 135AC_ARG_ENABLE(thread, 136[ --disable-thread disable pthread feature.], 137thread="$enableval", 138thread="yes") 139if test "$thread" != "no"; then 140 AC_CHECK_HEADER(pthread.h, header_ok="yes", header_ok="no") 141 if test "$header_ok" = "yes"; then 142 AC_MSG_CHECKING([whether enabling thread]) 143 save_CFLAGS="$CFLAGS"; 144 if test "$OS" = "FREEBSD" -o "$OS" = "MACOSX"; then 145 CFLAGS="$CFLAGS -pthread" 146 fi 147 save_LDFLAGS="$LDFLAGS" 148 if test "$OS" = "FREEBSD" -o "$OS" = "LINUX" -o "$OS" = "MACOSX"; then 149 LDFLAGS="$LDFLAGS -pthread" 150 elif test "$OS" = "SOLARIS"; then 151 LDFLAGS="$LDFLAGS -lpthread" 152 fi 153 AC_RUN_IFELSE([AC_LANG_SOURCE([ 154[#include <pthread.h> 155void 156init_routine() 157{ 158 return; 159} 160main() 161{ 162 pthread_once_t once_control = PTHREAD_ONCE_INIT; 163 pthread_once(&once_control, &init_routine); 164 return(0); 165}]])], 166 AC_DEFINE(USE_THREAD) AC_MSG_RESULT([yes]), 167 CFLAGS="$save_CFLAGS"; LDFLAGS="$save_LDFLAGS"; AC_MSG_RESULT([no]) 168 ) 169 fi 170fi 171 172AC_CHECK_LIB(crypt, crypt) 173 174dnl Checks for header files. 175AC_HEADER_STDC 176AC_HEADER_SYS_WAIT 177AC_CHECK_HEADERS(fcntl.h sys/time.h limits.h syslog.h unistd.h\ 178 sys/resource.h) 179 180dnl Checks for typedefs, structures, and compiler characteristics. 181AC_CHECK_TYPES(socklen_t,,, 182 [#include <sys/types.h> 183#include <sys/socket.h>]) 184 185AC_CHECK_TYPES([u_int8_t, u_int16_t, u_int32_t, uint8_t, uint16_t, uint32_t],,, 186 [#include <sys/types.h> 187#include <netdb.h>]) 188 189AC_HEADER_TIME 190 191AC_CHECK_MEMBER(struct sockaddr_dl.sdl_family, 192 [AC_DEFINE(HAVE_SOCKADDR_DL_STRUCT)],, 193 [#include <sys/types.h> 194#include <net/if_dl.h>]) 195 196AC_CHECK_MEMBER(struct sockaddr.sa_len, 197 [AC_DEFINE(HAVE_SOCKADDR_SA_LEN)],, 198 [#include <sys/types.h> 199#include <sys/socket.h>]) 200 201dnl Checks for library functions. 202AC_TYPE_SIGNAL 203AC_CHECK_FUNCS(\ 204 select\ 205 socket\ 206 getaddrinfo\ 207 getnameinfo\ 208 freeaddrinfo\ 209 ) 210 211AC_OUTPUT(Makefile) 212 213dnl from acconfig.h 214AH_TEMPLATE([FREEBSD], 215 [Define if the build system is FreeBSD]) 216AH_TEMPLATE([SOLARIS], 217 [Define if the build system is Solaris]) 218AH_TEMPLATE([LINUX], 219 [Define if the build system is Linux]) 220AH_TEMPLATE([MACOSX], 221 [Define if the build system is MacOSX]) 222AH_TEMPLATE([HAVE_LIMITS_H], 223 [Define if you have the <limits.h> header file.]) 224AH_TEMPLATE([HAVE_TCPD_H], 225 [Define if you have the <tcpd.h> header file.]) 226AH_TEMPLATE([SYSLOG_FAC], 227 [Define if you indicate your favor syslog facility.]) 228AH_TEMPLATE([LOCAL_FAC], 229 [Define if you indicate LOG_LOCALx syslog facility.]) 230AH_TEMPLATE([USE_THREAD], 231 [Define if you build a POSIX threading version.]) 232AH_TEMPLATE([HAVE_SOCKADDR_DL_STRUCT], 233 [Define if you have the sockaddr_dl structure.]) 234AH_TEMPLATE([HAVE_SOCKADDR_SA_LEN], 235 [Define if `sa_len' is member of `struct sockaddr'.]) 236