#
# ngIRCd -- The Next Generation IRC Daemon
-# Copyright (c)2001-2010 Alexander Barton <alex@barton.de>
+# Copyright (c)2001-2012 Alexander Barton (alex@barton.de) and Contributors
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# Please read the file COPYING, README and AUTHORS for more information.
#
+define(VERSION_ID,esyscmd(git describe|sed -e 's/rel-//g'|sed -e 's/-/~/'|tr -d \\n))
+
# -- Initialisation --
-AC_PREREQ(2.50)
-AC_INIT(ngircd, 16)
-AC_CONFIG_SRCDIR(src/ngircd/ngircd.c)
+AC_PREREQ([2.67])
+AC_INIT([ngIRCd], VERSION_ID,
+ [ngircd-ml@ngircd.barton.de], [ngircd], [http://ngircd.barton.de/])
+
+AC_CONFIG_SRCDIR([src/ngircd/ngircd.c])
+AC_CONFIG_HEADER([src/config.h])
AC_CANONICAL_TARGET
-AM_INIT_AUTOMAKE(1.6)
-AM_CONFIG_HEADER(src/config.h)
+
+AM_INIT_AUTOMAKE([1.11])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
# -- Templates for config.h --
AH_TEMPLATE([DEBUG], [Define if debug-mode should be enabled])
+AH_TEMPLATE([HAVE_sockaddr_in_len], [Define if sockaddr_in.sin_len exists])
AH_TEMPLATE([HAVE_socklen_t], [Define if socklen_t exists])
+AH_TEMPLATE([IDENTAUTH], [Define if the server should do IDENT requests])
+AH_TEMPLATE([IRCPLUS], [Define if IRC+ protocol should be used])
+AH_TEMPLATE([PAM], [Define if PAM should be used])
AH_TEMPLATE([SNIFFER], [Define if IRC sniffer should be enabled])
AH_TEMPLATE([STRICT_RFC], [Define if ngIRCd should behave strict RFC compliant])
AH_TEMPLATE([SYSLOG], [Define if syslog should be used for logging])
-AH_TEMPLATE([ZLIB], [Define if zlib compression should be enabled])
AH_TEMPLATE([TCPWRAP], [Define if TCP wrappers should be used])
-AH_TEMPLATE([IRCPLUS], [Define if IRC+ protocol should be used])
AH_TEMPLATE([WANT_IPV6], [Define if IPV6 protocol should be enabled])
-AH_TEMPLATE([ZEROCONF], [Define if support for Zeroconf should be included])
-AH_TEMPLATE([IDENTAUTH], [Define if the server should do IDENT requests])
-AH_TEMPLATE([PAM], [Define if PAM should be used])
-AH_TEMPLATE([HAVE_sockaddr_in_len], [Define if sockaddr_in.sin_len exists])
+AH_TEMPLATE([ZLIB], [Define if zlib compression should be enabled])
AH_TEMPLATE([TARGET_OS], [Target operating system name])
AH_TEMPLATE([TARGET_VENDOR], [Target system vendor])
# -- C Compiler --
AC_PROG_CC
+AC_PROG_CC_STDC
# -- Helper programs --
# -- Compiler Features --
-AM_C_PROTOTYPES
AC_C_CONST
AC_C_INLINE
+AM_C_PROTOTYPES
# -- Hard coded system and compiler dependencies/features/options ... --
# -- Headers --
AC_HEADER_STDC
-AC_HEADER_TIME
AC_HEADER_SYS_WAIT
+AC_HEADER_TIME
+# Required header files
AC_CHECK_HEADERS([ \
- ctype.h errno.h fcntl.h netdb.h netinet/in.h netinet/in_systm.h \
- stdlib.h string.h strings.h sys/socket.h sys/time.h unistd.h \
+ fcntl.h netdb.h netinet/in.h netinet/in_systm.h stdlib.h string.h \
+ strings.h sys/socket.h sys/time.h unistd.h \
],,AC_MSG_ERROR([required C header missing!]))
+# Optional header files
AC_CHECK_HEADERS([ \
- arpa/inet.h ctype.h malloc.h netinet/ip.h stdbool.h stddef.h varargs.h \
- ],[],[],[[
- #ifdef HAVE_SYS_TYPES_H
- #include <sys/types.h>
- #endif
- #ifdef HAVE_SYS_SOCKET_H
- #include <sys/socket.h>
- #endif
- #ifdef HAVE_NETINET_IN_H
- #include <netinet/in.h>
- #endif
- ]]
-)
+ arpa/inet.h inttypes.h malloc.h netinet/ip.h stdbool.h stddef.h \
+ stdint.h varargs.h \
+ ])
# -- Datatypes --
AC_MSG_RESULT(no)
])
+AC_TYPE_PID_T
AC_TYPE_SIGNAL
AC_TYPE_SIZE_T
+AC_TYPE_SSIZE_T
+AC_TYPE_UID_T
+AC_TYPE_UINT16_T
+AC_TYPE_UINT32_T
+AC_TYPE_UINT8_T
AC_CHECK_MEMBER([struct sockaddr_in.sin_len], AC_DEFINE(HAVE_sockaddr_in_len),,
[#include <arpa/inet.h>])
# -- Functions --
AC_FUNC_FORK
+AC_FUNC_MALLOC
+AC_FUNC_REALLOC
AC_FUNC_STRFTIME
+# Required functions
AC_CHECK_FUNCS([ \
- bind gethostbyaddr gethostbyname gethostname inet_ntoa \
- setsid setsockopt socket strcasecmp waitpid],,AC_MSG_ERROR([required function missing!]))
+ alarm dup2 endpwent gethostbyaddr gethostbyname gethostname \
+ gettimeofday inet_ntoa memmove memset setsid socket strcasecmp \
+ strchr strcspn strerror strncasecmp strrchr strspn strstr \
+ ],,
+ AC_MSG_ERROR([required function missing!]))
-AC_CHECK_FUNCS(getaddrinfo getnameinfo inet_aton isdigit sigaction sigprocmask snprintf \
- vsnprintf strdup strlcpy strlcat strtok_r)
+# Optional functions
+AC_CHECK_FUNCS([ \
+ gai_strerror getaddrinfo getnameinfo inet_aton sigaction sigprocmask \
+ snprintf vsnprintf strdup strlcpy strlcat strtok_r waitpid])
# -- Configuration options --
CPPFLAGS="-I$withval/include $CPPFLAGS"
LDFLAGS="-L$withval/lib $LDFLAGS"
fi
- AC_CHECK_FUNCS(poll, x_io_backend=poll\(\),
+ AC_CHECK_FUNCS(poll, [
+ AC_CHECK_HEADERS(poll.h,
+ x_io_backend=poll\(\),
+ AC_MSG_ERROR(
+ [Can't enable poll IO support!])
+ )
+ ], [
AC_MSG_ERROR([Can't enable poll IO support!])
- )
+ ])
fi
],
[
- AC_CHECK_FUNCS(poll, x_io_backend=poll\(\))
+ AC_CHECK_FUNCS(poll, [
+ AC_CHECK_HEADERS(poll.h, x_io_backend=poll\(\))
+ ])
]
)
fi
if test "$x_io_backend" = "none"; then
- AC_MSG_ERROR([No useabe IO API activated/found!?])
+ AC_MSG_ERROR([No useable IO API activated/found!?])
fi
# use SSL?
]
)
-# include support for "zeroconf"?
-
-x_zeroconf_on=no
-AC_ARG_WITH(zeroconf,
- [ --with-zeroconf enable support for "Zeroconf"],
- [ if test "$withval" != "no"; then
- if test "$withval" != "yes"; then
- CFLAGS="-I$withval/include $CFLAGS"
- CPPFLAGS="-I$withval/include $CPPFLAGS"
- LDFLAGS="-L$withval/lib $LDFLAGS"
- fi
- AC_CHECK_FUNCS(DNSServiceRegistrationCreate, x_zeroconf_on=osx,
- [
- AC_CHECK_LIB(pthread, pthread_mutexattr_init)
- AC_CHECK_LIB(howl, sw_discovery_init)
- AC_CHECK_FUNCS(sw_discovery_init, \
- x_zeroconf_on=howl, \
- AC_MSG_ERROR([Can't enable Zeroconf!]))
- ])
- fi
- ]
-)
-if test "$x_zeroconf_on" = "osx"; then
- AC_CHECK_HEADERS([DNSServiceDiscovery/DNSServiceDiscovery.h \
- mach/port.h],,AC_MSG_ERROR([required C header missing!]))
- AC_DEFINE(ZEROCONF, 1)
-fi
-if test "$x_zeroconf_on" = "howl"; then
- for dir in /usr/local/include /usr/local/include/howl* \
- /usr/include /usr/include/howl* \
- /usr/local/include/avahi* /usr/include/avahi*; do
- test -d "$dir" || continue
- AC_MSG_CHECKING([for Howl headers in $dir])
- if test -f "$dir/rendezvous/rendezvous.h"; then
- if test "$dir" != "/usr/local/include" -a \
- "$dir" != "/usr/include"; then
- CFLAGS="-I$dir $CFLAGS"
- CPPFLAGS="-I$dir $CPPFLAGS"
- fi
- AC_MSG_RESULT(yes)
- break
- else
- AC_MSG_RESULT(no)
- fi
- done
- AC_CHECK_HEADERS([rendezvous/rendezvous.h],, \
- AC_MSG_ERROR([required C header missing!]))
- AC_DEFINE(ZEROCONF, 1)
-fi
-
# do IDENT requests using libident?
x_identauth_on=no
# -- Generate files --
-AC_OUTPUT([ \
+AC_CONFIG_FILES([ \
Makefile \
+ contrib/Anope/Makefile \
+ contrib/Debian/Makefile \
+ contrib/MacOSX/Makefile \
+ contrib/MacOSX/ngIRCd.pmdoc/Makefile \
+ contrib/MacOSX/ngIRCd.xcodeproj/Makefile \
+ contrib/Makefile \
doc/Makefile \
doc/src/Makefile \
- src/Makefile \
- src/portab/Makefile \
+ man/Makefile \
src/ipaddr/Makefile \
- src/tool/Makefile \
+ src/Makefile \
src/ngircd/Makefile \
+ src/portab/Makefile \
src/testsuite/Makefile \
- man/Makefile \
- contrib/Makefile \
- contrib/Debian/Makefile \
- contrib/MacOSX/Makefile \
- contrib/MacOSX/ngIRCd.xcodeproj/Makefile \
- contrib/MacOSX/ngIRCd.pmdoc/Makefile \
+ src/tool/Makefile \
])
+AC_OUTPUT
+
type dpkg >/dev/null 2>&1
if test $? -eq 0; then
# Generate debian/ link if the dpkg command exists
&& echo "yes" \
|| echo "no"
-echo $ECHO_N " Zeroconf support: $ECHO_C"
-case "$x_zeroconf_on" in
- osx)
- echo $ECHO_N "Apple $ECHO_C"
- ;;
- howl)
- echo $ECHO_N "Howl $ECHO_C"
- ;;
- *)
- echo $ECHO_N "no $ECHO_C"
- ;;
-esac
+echo $ECHO_N " IDENT support: $ECHO_C"
+test "$x_identauth_on" = "yes" \
+ && echo $ECHO_N "yes $ECHO_C" \
+ || echo $ECHO_N "no $ECHO_C"
echo $ECHO_N " IRC+ protocol: $ECHO_C"
test "$x_ircplus_on" = "yes" \
&& echo "yes" \
|| echo "no"
-echo $ECHO_N " IDENT support: $ECHO_C"
-test "$x_identauth_on" = "yes" \
+echo $ECHO_N " IPv6 protocol: $ECHO_C"
+test "$x_ipv6_on" = "yes" \
&& echo $ECHO_N "yes $ECHO_C" \
|| echo $ECHO_N "no $ECHO_C"
echo $ECHO_N " I/O backend: $ECHO_C"
echo "\"$x_io_backend\""
-echo $ECHO_N " IPv6 protocol: $ECHO_C"
-test "$x_ipv6_on" = "yes" \
+echo $ECHO_N " PAM support: $ECHO_C"
+test "$x_pam_on" = "yes" \
&& echo $ECHO_N "yes $ECHO_C" \
|| echo $ECHO_N "no $ECHO_C"
echo $ECHO_N " SSL support: $ECHO_C"
echo "$x_ssl_lib"
-echo $ECHO_N " PAM support: $ECHO_C"
-test "$x_pam_on" = "yes" \
- && echo "yes" \
- || echo "no"
-
echo
# -eof-