mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-06-26 12:16:37 +02:00
495 lines
15 KiB
Plaintext
495 lines
15 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
AC_INIT(src/ircd.c)
|
|
if test $# = 0; then
|
|
echo "You might want to run ./Config or provide some parameters to this script."
|
|
echo "./configure --help for information about this script"
|
|
exit 0
|
|
fi
|
|
AC_CONFIG_HEADER(include/setup.h)
|
|
AC_PROG_CC
|
|
if test "$ac_cv_prog_gcc" = "yes"; then
|
|
CFLAGS="$CFLAGS -funsigned-char"
|
|
AC_CACHE_CHECK(if gcc has a working -pipe, ac_cv_pipe, [
|
|
save_cflags="$CFLAGS"
|
|
CFLAGS="$CFLAGS -pipe"
|
|
AC_TRY_COMPILE(,, ac_cv_pipe="yes", ac_cv_pipe="no")
|
|
CFLAGS="$save_cflags"
|
|
])
|
|
if test "$ac_cv_pipe" = "yes"; then
|
|
CFLAGS="-pipe $CFLAGS"
|
|
fi
|
|
fi
|
|
|
|
dnl (the gcc flag detection trick is taken from xemacs/Vin Shelton)
|
|
|
|
dnl UnrealIRCd might not be strict-aliasing safe at this time
|
|
case "`$CC -v --help 2>&1`" in
|
|
*-fstrict-aliasing* ) CFLAGS="$CFLAGS -fno-strict-aliasing" ;;
|
|
esac
|
|
|
|
dnl Pointer signedness warnings are really a pain and 99.9% of the time
|
|
dnl they are of absolutely no use whatsoever. IMO the person who decided
|
|
dnl to enable this without -Wall should be shot on sight.
|
|
case "`$CC -v --help 2>&1`" in
|
|
*-Wpointer-sign* ) CFLAGS="$CFLAGS -Wno-pointer-sign" ;;
|
|
esac
|
|
|
|
AC_PATH_PROG(RM,rm)
|
|
AC_PATH_PROG(CP,cp)
|
|
AC_PATH_PROG(TOUCH,touch)
|
|
AC_PATH_PROG(OPENSSLPATH,openssl)
|
|
AC_PATH_PROG(INSTALL,install)
|
|
AC_CHECK_PROG(MAKER, gmake, gmake, make)
|
|
AC_PATH_PROG(GMAKE,gmake)
|
|
AC_PATH_PROG(GUNZIP, gunzip)
|
|
AC_PATH_PROG(PKGCONFIG, pkg-config)
|
|
|
|
dnl Checks for libraries.
|
|
AC_CHECK_LIB(descrypt, crypt, [AC_DEFINE(HAVE_CRYPT) IRCDLIBS="$IRCDLIBS-ldescrypt " MKPASSWDLIBS="-ldescrypt"],
|
|
AC_CHECK_LIB(crypt, crypt,[ AC_DEFINE(HAVE_CRYPT) IRCDLIBS="$IRCDLIBS-lcrypt " MKPASSWDLIBS="-lcrypt"]))
|
|
AC_CHECK_LIB(socket, socket,IRCDLIBS="$IRCDLIBS-lsocket " SOCKLIB="-lsocket")
|
|
AC_CHECK_LIB(nsl, inet_ntoa,IRCDLIBS="$IRCDLIBS-lnsl " INETLIB="-lnsl")
|
|
|
|
AC_SUBST(IRCDLIBS)
|
|
AC_SUBST(MKPASSWDLIBS)
|
|
|
|
dnl module checking based on Hyb7's module checking code
|
|
AC_DEFUN([AC_ENABLE_DYN],
|
|
[
|
|
AC_CHECK_FUNC(dlopen,, [AC_CHECK_LIB(dl, dlopen,IRCDLIBS="$IRCDLIBS -ldl",
|
|
[
|
|
AC_MSG_WARN(Dynamic linking is not enabled because dlopen was not found)
|
|
AC_DEFINE(STATIC_LINKING)
|
|
])])
|
|
|
|
hold_cflags=$CFLAGS
|
|
CFLAGS="$CFLAGS -export-dynamic"
|
|
AC_CACHE_CHECK(if we need the -export-dynamic flag, ac_cv_export_dynamic, [
|
|
AC_TRY_LINK(, [int i];, ac_cv_export_dynamic=yes, ac_cv_export_dynamic=no)])
|
|
if test "$ac_cv_export_dynamic" = "no"; then
|
|
CFLAGS=$hold_cflags
|
|
fi
|
|
|
|
AC_CACHE_CHECK(for compiler option to produce PIC,ac_cv_pic,[
|
|
if test "$ac_cv_prog_gcc" = "yes"; then
|
|
ac_cv_pic="-fPIC -DPIC -shared"
|
|
case `uname -s` in
|
|
Darwin*[)]
|
|
ac_cv_pic="-bundle -flat_namespace -undefined suppress"
|
|
;;
|
|
HP-UX*[)]
|
|
ac_cv_pic="-fPIC"
|
|
;;
|
|
esac
|
|
else
|
|
case `uname -s` in
|
|
SunOS*[)]
|
|
ac_cv_pic="-KPIC -DPIC -G"
|
|
;;
|
|
esac
|
|
fi
|
|
])
|
|
AC_CACHE_CHECK(if your system prepends an underscore on symbols,ac_cv_underscore,[
|
|
cat >uscore.c << __EOF__
|
|
int main() {
|
|
return 0;
|
|
}
|
|
__EOF__
|
|
$CC -o uscore $CFLAGS uscore.c 1>&5
|
|
if test -z "`strings -a uscore |grep '^_main$'`"; then
|
|
ac_cv_underscore=no
|
|
else
|
|
ac_cv_underscore=yes
|
|
fi
|
|
rm -f uscore uscore.c
|
|
])
|
|
if test "$ac_cv_underscore" = "yes"; then
|
|
AC_DEFINE(UNDERSCORE)
|
|
fi
|
|
|
|
MODULEFLAGS=$ac_cv_pic
|
|
AC_DEFINE(DYNAMIC_LINKING)
|
|
])
|
|
AC_DEFUN([AC_ENABLE_INET6],[
|
|
AC_CACHE_CHECK(if your system has IPv6 support, ac_cv_ip6, [
|
|
save_libs="$LIBS"
|
|
LIBS="$LIBS $SOCKLIB"
|
|
AC_TRY_RUN([
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
int main() {
|
|
if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
|
|
exit(1);
|
|
exit(0);
|
|
}
|
|
], ac_cv_ip6=yes, ac_cv_ip6=no)
|
|
])
|
|
if test "$ac_cv_ip6" = "no"; then
|
|
AC_MSG_WARN(Your system does not support IPv6 so it will not be enabled)
|
|
else
|
|
AC_DEFINE(INET6)
|
|
dnl in6addr_any detection code taken from ratbox
|
|
AC_MSG_CHECKING([for struct in6addr_any])
|
|
AC_COMPILE_IFELSE(
|
|
[AC_LANG_PROGRAM(
|
|
[[#define IN_AUTOCONF
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>]],
|
|
[[struct in6_addr a = in6addr_any;]]
|
|
)],
|
|
[AC_MSG_RESULT(yes)],
|
|
[
|
|
AC_MSG_RESULT(no)
|
|
AC_DEFINE(NO_IN6ADDR_ANY)
|
|
]
|
|
)
|
|
fi
|
|
LIBS="$save_libs"
|
|
])
|
|
|
|
AC_CHECK_HEADER(sys/param.h,AC_DEFINE(PARAMH))
|
|
AC_CHECK_HEADER(stdlib.h,AC_DEFINE(STDLIBH))
|
|
AC_CHECK_HEADER(stddef.h,AC_DEFINE(STDDEFH))
|
|
AC_CHECK_HEADER(sys/syslog.h,AC_DEFINE(SYSSYSLOGH))
|
|
AC_CHECK_HEADER(unistd.h,AC_DEFINE(UNISTDH))
|
|
AC_CHECK_HEADER(string.h,AC_DEFINE(STRINGH))
|
|
AC_CHECK_HEADER(strings.h,AC_DEFINE(STRINGSH))
|
|
AC_CHECK_HEADER(malloc.h,AC_DEFINE(MALLOCH,<malloc.h>))
|
|
AC_CHECK_HEADER(sys/rusage.h,AC_DEFINE(RUSAGEH))
|
|
AC_CHECK_HEADER(glob.h,AC_DEFINE(GLOBH))
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
AC_TYPE_SIZE_T
|
|
AC_HEADER_TIME
|
|
AC_STRUCT_TM
|
|
AC_TYPE_UID_T
|
|
unreal_CHECK_TYPE_SIZES
|
|
|
|
AC_CACHE_CHECK(what kind of nonblocking sockets you have, ac_cv_nonblocking,[
|
|
save_libs="$LIBS"
|
|
LIBS="$LIBS $SOCKLIB"
|
|
AC_TRY_RUN([
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <fcntl.h>
|
|
#include <sys/ioctl.h>
|
|
#include <sys/file.h>
|
|
#include <signal.h>
|
|
alarmed() {
|
|
exit(1);
|
|
}
|
|
int main() {
|
|
#ifdef O_NONBLOCK
|
|
char b[12], x[32];
|
|
int f, l = sizeof(x);
|
|
f = socket(AF_INET, SOCK_DGRAM, 0);
|
|
if (f >= 0 && !(fcntl(f, F_SETFL, O_NONBLOCK))) {
|
|
signal(SIGALRM, alarmed);
|
|
alarm(3);
|
|
recvfrom(f, b, 12, 0, (struct sockaddr *)x, &l);
|
|
alarm(0);
|
|
exit(0);
|
|
}
|
|
#endif
|
|
exit(1);
|
|
}
|
|
],ac_cv_nonblocking=O_NONBLOCK,[
|
|
AC_TRY_RUN([
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <fcntl.h>
|
|
#include <sys/ioctl.h>
|
|
#include <sys/file.h>
|
|
#include <signal.h>
|
|
alarmed() {
|
|
exit(0);
|
|
}
|
|
int main() {
|
|
#ifdef O_NDELAY
|
|
char b[12], x[32];
|
|
int f, l = sizeof(x);
|
|
f = socket(AF_INET, SOCK_DGRAM, 0);
|
|
if (f >= 0 && !(fcntl(f, F_SETFL, O_NDELAY))) {
|
|
signal(SIGALRM, alarmed);
|
|
alarm(3);
|
|
recvfrom(f, b, 12, 0, (struct sockaddr *)x, &l);
|
|
alarm(0);
|
|
exit(0);
|
|
}
|
|
#endif
|
|
exit(1);
|
|
}],ac_cv_nonblocking=O_NDELAY,[
|
|
AC_TRY_RUN([
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <fcntl.h>
|
|
#include <sys/ioctl.h>
|
|
#include <sys/file.h>
|
|
#include <signal.h>
|
|
alarmed() {
|
|
exit(1);
|
|
}
|
|
int main() {
|
|
#ifdef FIONBIO
|
|
char b[12], x[32];
|
|
int f, l = sizeof(x);
|
|
f = socket(AF_INET, SOCK_DGRAM, 0);
|
|
if (f >= 0 && !(fcntl(f, F_SETFL, FIONBIO))) {
|
|
signal(SIGALRM, alarmed);
|
|
alarm(3);
|
|
recvfrom(f, b, 12, 0, (struct sockaddr *)x, &l);
|
|
alarm(0);
|
|
exit(0);
|
|
}
|
|
#endif
|
|
exit(1);
|
|
], ac_cv_nonblocking=FIONBIO,ac_cv_nonblocking=none)])])])
|
|
if test "$ac_cv_nonblocking" = "O_NONBLOCK"; then
|
|
AC_DEFINE(NBLOCK_POSIX)
|
|
elif test "$ac_cv_nonblocking" = "O_NDELAY"; then
|
|
AC_DEFINE(NBLOCK_BSD)
|
|
elif test "$ac_cv_nonblocking" = "FIONBIO"; then
|
|
AC_DEFINE(NBLOCK_SYSV)
|
|
fi
|
|
LIBS="$save_libs"
|
|
dnl Checks for library functions.
|
|
AC_PROG_GCC_TRADITIONAL
|
|
AC_FUNC_SETPGRP
|
|
AC_FUNC_SETVBUF_REVERSED
|
|
AC_FUNC_ALLOCA
|
|
AC_CHECK_FUNCS(snprintf,AC_DEFINE(HAVE_SNPRINTF))
|
|
AC_CHECK_FUNCS(vsnprintf,AC_DEFINE(HAVE_VSNPRINTF))
|
|
AC_CHECK_FUNCS(strlcpy, AC_DEFINE(HAVE_STRLCPY))
|
|
AC_CHECK_FUNCS(strlcat, AC_DEFINE(HAVE_STRLCAT))
|
|
AC_CHECK_FUNCS(strlncat, AC_DEFINE(HAVE_STRLNCAT))
|
|
AC_CHECK_FUNCS(inet_pton, AC_DEFINE(HAVE_INET_PTON))
|
|
AC_CHECK_FUNCS(inet_ntop, AC_DEFINE(HAVE_INET_NTOP))
|
|
dnl Check if it supports C99 style variable length arrays
|
|
AC_CACHE_CHECK(if C99 variable length arrays are supported, ac_cv_varlen_arrays, [
|
|
AC_TRY_COMPILE(,[
|
|
int main() {
|
|
int i = 5;
|
|
int a[i];
|
|
a[0] = 1;
|
|
return 0;
|
|
}], ac_cv_varlen_arrays=yes, ac_cv_varlen_arrays=no)
|
|
])
|
|
if test "$ac_cv_varlen_arrays" = "yes" ; then
|
|
AC_DEFINE(HAVE_C99_VARLEN_ARRAY)
|
|
fi
|
|
AC_CACHE_CHECK(if we can set the core size to unlimited, ac_cv_force_core,[
|
|
AC_TRY_RUN([
|
|
#include <sys/time.h>
|
|
#include <sys/resource.h>
|
|
#include <unistd.h>
|
|
int main() {
|
|
struct rlimit corelim;
|
|
corelim.rlim_cur = corelim.rlim_max = RLIM_INFINITY;
|
|
if (setrlimit(RLIMIT_CORE, &corelim))
|
|
exit(1);
|
|
exit(0);
|
|
}
|
|
],ac_cv_force_core=yes,ac_cv_force_core=no)
|
|
])
|
|
if test "$ac_cv_force_core" = "yes"; then
|
|
AC_DEFINE(FORCE_CORE)
|
|
fi
|
|
AC_FUNC_VPRINTF
|
|
AC_CHECK_FUNCS(gettimeofday,AC_DEFINE(GETTIMEOFDAY),[AC_CHECK_FUNCS(lrand48,AC_DEFINE(LRADN48))])
|
|
AC_CHECK_FUNCS(getrusage,AC_DEFINE(GETRUSAGE_2),[AC_CHECK_FUNCS(times,AC_DEFINE(TIMES_2))])
|
|
AC_CHECK_FUNCS(setproctitle,AC_DEFINE(HAVE_SETPROCTITLE),[
|
|
AC_CHECK_LIB(util,setproctitle,AC_DEFINE(HAVE_SETPROCTITLE) IRCDLIBS="$IRCDLIBS-lutil",[
|
|
AC_EGREP_HEADER([#define.*PS_STRINGS.*],sys/exec.h,AC_DEFINE(HAVE_PSSTRINGS),[
|
|
AC_CHECK_FUNCS(pstat,AC_DEFINE(HAVE_PSTAT))
|
|
])
|
|
])
|
|
])
|
|
AC_CACHE_CHECK(what type of signals you have, ac_cv_sigtype, [
|
|
AC_TRY_RUN([
|
|
#include <signal.h>
|
|
int main() {
|
|
sigaction(SIGTERM, (struct sigaction *)0L, (struct sigaction *)0L);
|
|
}
|
|
], ac_cv_sigtype=POSIX, [
|
|
AC_TRY_RUN([
|
|
#include <signal.h>
|
|
int calls = 0;
|
|
void handler()
|
|
{
|
|
if (calls)
|
|
return;
|
|
calls++;
|
|
kill(getpid(), SIGTERM);
|
|
sleep(1);
|
|
}
|
|
|
|
int main() {
|
|
signal(SIGTERM, handler);
|
|
kill(getpid(), SIGTERM);
|
|
exit(0);
|
|
}
|
|
], ac_cv_sigtype=BSD,ac_cv_sigtype=SYSV)])])
|
|
|
|
if test "$ac_cv_sigtype" = "POSIX"; then
|
|
AC_DEFINE(POSIX_SIGNALS)
|
|
elif test "$ac_cv_sigtype" = "BSD"; then
|
|
AC_DEFINE(BSD_RELIABLE_SIGNALS)
|
|
else
|
|
AC_DEFINE(SYSV_UNRELIABLE_SIGNALS)
|
|
fi
|
|
AC_CHECK_FUNCS(strtoken,,AC_DEFINE(NEED_STRTOKEN))
|
|
AC_CHECK_FUNCS(strtok,,AC_DEFINE(NEED_STRTOK))
|
|
AC_CHECK_FUNCS(strerror,,AC_DEFINE(NEED_STRERROR))
|
|
AC_CHECK_FUNCS(index,,AC_DEFINE(NOINDEX))
|
|
AC_CHECK_FUNCS(strtoul,,STRTOUL="strtoul.o")
|
|
AC_CHECK_FUNCS(bcopy,,AC_DEFINE(NEED_BCOPY))
|
|
AC_CHECK_FUNCS(bcmp,,AC_DEFINE(NEED_BCMP))
|
|
AC_CHECK_FUNCS(bzero,,AC_DEFINE(NEED_BZERO))
|
|
AC_CHECK_FUNCS(strcasecmp,AC_DEFINE(GOT_STRCASECMP))
|
|
save_libs="$LIBS"
|
|
LIBS="$LIBS $SOCKLIB $INETLIB"
|
|
AC_CHECK_FUNCS(inet_addr,,AC_DEFINE(NEED_INET_ADDR))
|
|
AC_CHECK_FUNCS(inet_ntoa,,AC_DEFINE(NEED_INET_NTOA))
|
|
AC_CHECK_FUNCS(inet_netof,,AC_DEFINE(NEED_INET_NETOF))
|
|
LIBS="$save_libs"
|
|
AC_CHECK_FUNCS(syslog,AC_DEFINE(HAVE_SYSLOG))
|
|
AC_CHECK_FUNCS(vsyslog,AC_DEFINE(HAVE_VSYSLOG))
|
|
AC_SUBST(STRTOUL)
|
|
AC_SUBST(CRYPTOLIB)
|
|
AC_SUBST(MODULEFLAGS)
|
|
AC_ARG_WITH(listen, [AC_HELP_STRING([--with-listen=backlog],[Specify the listen backlog value])],
|
|
AC_DEFINE_UNQUOTED(LISTEN_SIZE,$withval),AC_DEFINE(LISTEN_SIZE,5))
|
|
AC_ARG_WITH(nick-history, [AC_HELP_STRING([--with-nick-history=length],[Specify the length of the nickname history])],
|
|
AC_DEFINE_UNQUOTED(NICKNAMEHISTORYLENGTH,$withval), AC_DEFINE(NICKNAMEHISTORYLENGTH,2000))
|
|
AC_ARG_WITH(sendq, [AC_HELP_STRING([--with-sendq=maxsendq],[Specify the max sendq for the server])],
|
|
AC_DEFINE_UNQUOTED(MAXSENDQLENGTH,$withval),AC_DEFINE(MAXSENDQLENGTH,3000000))
|
|
AC_ARG_WITH(bufferpool, [AC_HELP_STRING([--with-bufferpool=size],[Specify the size of the buffer pool])],
|
|
AC_DEFINE_UNQUOTED(BUFFERPOOL,[($withval * MAXSENDQLENGTH)]),AC_DEFINE(BUFFERPOOL,[(18 * MAXSENDQLENGTH)]))
|
|
AC_ARG_WITH(hostname, [AC_HELP_STRING([--with-hostname=host],[Specify the local hostname of the server])], AC_DEFINE_UNQUOTED(DOMAINNAME,"$withval"),AC_DEFINE_UNQUOTED(DOMAINNAME,"`hostname`"))
|
|
AC_DEFINE_UNQUOTED(MYOSNAME,"`uname -a`")
|
|
AC_ARG_WITH(permissions, [AC_HELP_STRING([--with-permissions=permissions],[Specify the default permissions for
|
|
configuration files])], AC_DEFINE_UNQUOTED(DEFAULT_PERMISSIONS,$withval), AC_DEFINE(DEFAULT_PERMISSIONS, 0600))
|
|
AC_ARG_WITH(dpath, [AC_HELP_STRING([--with-dpath=path],[Specify the path where configuration files are stored])],
|
|
AC_DEFINE_UNQUOTED(DPATH, "$withval") IRCDDIR="$withval", AC_DEFINE_UNQUOTED(DPATH,"`pwd`") IRCDDIR="`pwd`")
|
|
AC_ARG_WITH(fd-setsize, [AC_HELP_STRING([--with-fd-setsize=size],[Specify the max file descriptors to use])],
|
|
ac_fd=$withval, ac_fd=1024)
|
|
AC_DEFINE_UNQUOTED(MAXCONNECTIONS, $ac_fd)
|
|
AC_ARG_WITH(spath, [AC_HELP_STRING([--with-spath],[Specify the location of the executable])],
|
|
AC_DEFINE_UNQUOTED(SPATH,"$withval") BINDIR="$withval",AC_DEFINE_UNQUOTED(SPATH,"`pwd`/src/ircd") BINDIR="`pwd`/src/ircd")
|
|
AC_ARG_ENABLE(nospoof, [AC_HELP_STRING([--enable-nospoof],[Enable spoofing protection])], AC_DEFINE(NOSPOOF))
|
|
AC_ARG_ENABLE(prefixaq, [AC_HELP_STRING([--enable-prefixaq],[Enable chanadmin and chanowner prefixes])], AC_DEFINE(PREFIX_AQ))
|
|
AC_ARG_ENABLE(hub, [AC_HELP_STRING([--enable-hub],[Compile as a hub server])], AC_DEFINE(HUB))
|
|
AC_ARG_WITH(showlistmodes, [AC_HELP_STRING([--with-showlistmodes], [Specify whether modes are shown in /list])],
|
|
AC_DEFINE(LIST_SHOW_MODES))
|
|
AC_ARG_WITH(topicisnuhost, [AC_HELP_STRING([--with-topicisnuhost], [Display nick!user@host as the topic setter])],
|
|
AC_DEFINE(TOPIC_NICK_IS_NUHOST))
|
|
AC_ARG_WITH(shunnotices, [AC_HELP_STRING([--with-shunnotices], [Notify a user when he/she is no longer shunned])],
|
|
AC_DEFINE(SHUN_NOTICES))
|
|
AC_ARG_WITH(no-operoverride, [AC_HELP_STRING([--with-no-operoverride], [Disable OperOverride])],
|
|
AC_DEFINE(NO_OPEROVERRIDE))
|
|
AC_ARG_WITH(disableusermod, [AC_HELP_STRING([--with-disableusermod], [Disable /set* and /chg*])],
|
|
AC_DEFINE(DISABLE_USERMOD))
|
|
AC_ARG_WITH(operoverride-verify, [AC_HELP_STRING([--with-operoverride-verify], [Require opers to invite themselves to +s/+p channels])],
|
|
AC_DEFINE(OPEROVERRIDE_VERIFY))
|
|
CHECK_SSL
|
|
CHECK_ZLIB
|
|
CHECK_LIBCURL
|
|
AC_ARG_ENABLE(dynamic-linking, [AC_HELP_STRING([--enable-dynamic-linking],[Make the IRCd dynamically link shared objects rather than statically])], [AC_ENABLE_DYN], [AC_DEFINE(STATIC_LINKING)])
|
|
AC_ARG_ENABLE(inet6, [AC_HELP_STRING([--enable-inet6],[Make the IRCd support IPv6])], [AC_ENABLE_INET6])
|
|
AC_SUBST(IRCDDIR)
|
|
AC_SUBST(BINDIR)
|
|
AC_MSG_CHECKING(if FD_SETSIZE is large enough to allow $ac_fd file descriptors)
|
|
AC_TRY_RUN([
|
|
#include <sys/types.h>
|
|
#include <sys/time.h>
|
|
int main() {
|
|
if (FD_SETSIZE >= $ac_fd)
|
|
exit(0);
|
|
exit(1);
|
|
}
|
|
], AC_MSG_RESULT(yes), [
|
|
FD_SETSIZE="-DFD_SETSIZE=$ac_fd"
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
AC_SUBST(FD_SETSIZE)
|
|
case `uname -s` in
|
|
*SunOS*)
|
|
CFLAGS="$CFLAGS -D_SOLARIS"
|
|
IRCDLIBS="$IRCDLIBS -lresolv "
|
|
;;
|
|
*solaris*)
|
|
CFLAGS="$CFLAGS -D_SOLARIS"
|
|
IRCDLIBS="$IRCDLIBS -lresolv "
|
|
;;
|
|
esac
|
|
|
|
dnl REMEMBER TO CHANGE WITH A NEW TRE RELEASE!
|
|
tre_version="0.7.2"
|
|
AC_MSG_RESULT(extracting TRE regex library)
|
|
cur_dir=`pwd`
|
|
cd extras
|
|
dnl remove old tre directory to force a recompile...
|
|
rm -rf tre-$tre_version
|
|
if test "x$ac_cv_path_GUNZIP" = "x" ; then
|
|
tar xfz tre.tar.gz
|
|
else
|
|
cp tre.tar.gz tre.tar.gz.bak
|
|
gunzip -f tre.tar.gz
|
|
cp tre.tar.gz.bak tre.tar.gz
|
|
tar xf tre.tar
|
|
fi
|
|
AC_MSG_RESULT(configuring TRE regex library)
|
|
cd tre-$tre_version
|
|
./configure --disable-agrep --disable-shared --disable-system-abi --disable-wchar --disable-multibyte --prefix=$cur_dir/extras/regexp || exit 1
|
|
AC_MSG_RESULT(compiling TRE regex library)
|
|
$ac_cv_prog_MAKER || exit 1
|
|
AC_MSG_RESULT(installing TRE regex library)
|
|
$ac_cv_prog_MAKER install || exit 1
|
|
TREINCDIR="$cur_dir/extras/regexp/include"
|
|
AC_SUBST(TREINCDIR)
|
|
if test "x$ac_cv_path_PKGCONFIG" = "x" ; then
|
|
TRELIBS="-L../extras/regexp/lib -ltre"
|
|
else
|
|
TRELIBS=`$ac_cv_path_PKGCONFIG --libs tre.pc`
|
|
fi
|
|
AC_SUBST(TRELIBS)
|
|
cd $cur_dir
|
|
|
|
|
|
dnl REMEMBER TO CHANGE WITH A NEW C-ARES RELEASE!
|
|
cares_version="1.3.0"
|
|
AC_MSG_RESULT(extracting c-ares resolver library)
|
|
cur_dir=`pwd`
|
|
cd extras
|
|
dnl remove old c-ares directory to force a recompile...
|
|
rm -rf c-ares-$cares_version
|
|
if test "x$ac_cv_path_GUNZIP" = "x" ; then
|
|
tar xfz c-ares.tar.gz
|
|
else
|
|
cp c-ares.tar.gz c-ares.tar.gz.bak
|
|
gunzip -f c-ares.tar.gz
|
|
cp c-ares.tar.gz.bak c-ares.tar.gz
|
|
tar xf c-ares.tar
|
|
fi
|
|
AC_MSG_RESULT(configuring c-ares library)
|
|
cd c-ares-$cares_version
|
|
./configure --prefix=$cur_dir/extras/c-ares || exit 1
|
|
AC_MSG_RESULT(compiling c-ares resolver library)
|
|
$ac_cv_prog_MAKER || exit 1
|
|
AC_MSG_RESULT(installing c-ares resolver library)
|
|
$ac_cv_prog_MAKER install || exit 1
|
|
CARESINCDIR="$cur_dir/extras/c-ares/include"
|
|
AC_SUBST(CARESINCDIR)
|
|
CARESLIBDIR="-L../extras/c-ares/lib"
|
|
AC_SUBST(CARESLIBDIR)
|
|
CARESLIBS="-lcares"
|
|
AC_SUBST(CARESLIBS)
|
|
cd $cur_dir
|
|
|
|
|
|
AC_OUTPUT(Makefile src/modules/Makefile unreal ircdcron/ircdchk)
|
|
chmod 0700 unreal
|
|
chmod 0700 ircdcron/ircdchk
|