]> jfr.im git - irc/rizon/plexus4.git/blame - configure.ac
[ci skip] Start on cmake build system
[irc/rizon/plexus4.git] / configure.ac
CommitLineData
e67a04a3 1# Inspired by work Copyright (C) 2006 Luca Filipozzi
2# vim: set fdm=marker ts=2 sw=2 et:
3
4AC_REVISION([$Id$])
5
6AC_PREREQ(2.69)
a7653a41 7AC_INIT([plexus], [20170604_0-605], [https://gitlab.com/rizon/plexus4/])
85db72b5 8AM_INIT_AUTOMAKE(1.11.1 subdir-objects)
adb21d03 9AC_CONFIG_MACRO_DIR([m4])
e67a04a3 10AC_CONFIG_HEADER(config.h)
11AC_CONFIG_SRCDIR(src/ircd.c)
12
13# Checks for programs.
14AC_PROG_CC_C99
0a502155 15AM_PROG_CC_C_O
e67a04a3 16AS_IF([test "$ac_cv_prog_cc_c99" = "no"],
17 [AC_MSG_ERROR([no suitable C99 compiler found. Aborting.])])
18AC_PROG_YACC
19AM_PROG_LEX
20AC_PROG_INSTALL
21
22# Initializing libtool.
23LT_CONFIG_LTDL_DIR([libltdl])
24LT_INIT([dlopen disable-static])
25LTDL_INIT([recursive convenience])
26LIBTOOL="$LIBTOOL --silent"
27
28# Checks for libraries.
adb21d03 29GCC_STACK_PROTECT_CC
30
a9188935 31AX_APPEND_COMPILE_FLAGS([-fno-strict-aliasing])
32
e67a04a3 33AX_CHECK_LIB_IPV4
34AX_CHECK_LIB_IPV6
35
36# Checks for typedefs, structures, and compiler characteristics.
37AC_C_BIGENDIAN
38
39# Checks for library functions.
1881d892 40AC_CHECK_FUNCS_ONCE(strtok_r \
e67a04a3 41 usleep \
42 strlcat \
43 strlcpy)
44
45# Checks for header files.
46AC_CHECK_HEADERS_ONCE(crypt.h \
47 sys/resource.h \
48 sys/param.h \
49 types.h \
50 socket.h \
51 sys/wait.h \
52 wait.h)
53
54AC_SEARCH_LIBS(crypt, crypt)
55
df784bf6 56AC_ARG_ENABLE(libgeoip,
15751612 57 [AS_HELP_STRING([--enable-libgeoip],[Enable GeoIP support])],
21d6ab12 58 [AC_CHECK_HEADER(GeoIP.h,
59 [AC_SEARCH_LIBS(GeoIP_id_by_ipnum_v6_gl, GeoIP,
15751612 60 [AC_DEFINE(HAVE_LIBGEOIP, 1, [Define to 1 if libGeoIP (-lGeoIP) is available.])])])], [], [])
21d6ab12 61
e6ff5061 62AC_DEFUN([_LUA_CHECK], [
47ec08ed 63 AX_PROG_LUA([5.1],[],
e6ff5061 64 [
cd49faed
A
65 AX_LUA_HEADERS([],[AC_MSG_ERROR([No lua headers found. Try --disable-lua])])
66 AX_LUA_LIBS([],[AC_MSG_ERROR([No lua libs found. Try --disable-lua])])
e6ff5061
C
67 [EXTRA_LIBS="${EXTRA_LIBS} ${LUA_LIB}" ; ]
68 [CPPFLAGS="${CPPFLAGS} ${LUA_INCLUDE}" ; ]
69 AC_DEFINE(USE_LUA,1,[use lua])
70 lua=true
71 ],
72 [
cd49faed 73 AC_MSG_ERROR([No lua found. Try --disable-lua])
e6ff5061
C
74 ])
75])
614f5fee
A
76AC_ARG_ENABLE(lua,
77 [AS_HELP_STRING([--enable-lua],[Enable Lua])],
e6ff5061
C
78 [
79 if test "x$enableval" = "xno"; then
80 AC_MSG_RESULT([disabled])
81 else
82 _LUA_CHECK()
83 fi
84 ],
85 [
e6ff5061 86 ])
614f5fee 87
846a8989 88AC_ARG_ENABLE(libjansson,
6ce27a83
A
89 [AS_HELP_STRING([--enable-libjansson],[Enable libjansson])],
90 [AC_CHECK_HEADER(jansson.h,
91 [AC_SEARCH_LIBS(json_object, jansson,
92 [AC_DEFINE(HAVE_LIBJANSSON, 1, [Define to 1 if libjansson (-ljansson) is available.])],
93 [AC_MSG_ERROR([No libjansson found])]
94 )],
95 [AC_MSG_ERROR([No jansson.h found])]
96 )]
97)
846a8989 98
6c0c70df 99AX_PKG_SWIG(2.0.7, [swig=true], [])
614f5fee 100
cd6f2b05
A
101AC_ARG_ENABLE(libmicrohttpd,
102 [AS_HELP_STRING([--enable-libmicrohttpd],[Enable libmicrohttpd])],
6ce27a83
A
103 [AC_CHECK_HEADER(microhttpd.h,
104 [AC_SEARCH_LIBS(MHD_start_daemon, microhttpd,
105 [AC_DEFINE(HAVE_LIBMICROHTTPD, 1, [Define to 1 if libmicrohttpd (-lmicrohttpd) is available.])],
106 [AC_MSG_ERROR([No libmicrohttpd found])]
107 )],
108 [AC_MSG_ERROR([No microhttpd.h found])]
109 )]
110)
cd6f2b05 111
614f5fee
A
112AS_IF([test x$swig$lua = xtruetrue], [
113 AC_DEFINE(HAVE_SWIG_LUA, 1, [Define to 1 if Lua (-llua) is available and SWIG is available.])
114])
115AM_CONDITIONAL([HAVE_SWIG_LUA], [test x$swig$lua = xtruetrue])
116
929c1799 117AX_CHECK_OPENSSL
e67a04a3 118
45e9dd99 119# Check for pkg-config
52b729fb 120USE_CHECK=0
0a326995 121if test m4_ifdef([PKG_CHECK_MODULES], [yes], [no]) == yes; then
52b729fb
A
122 AC_CHECK_HEADER(check.h,
123 [PKG_CHECK_MODULES([CHECK], [check], [
124 USE_CHECK=1
125 AC_REQUIRE_AUX_FILE([tap-driver.sh])
126 AC_PROG_AWK
127 ])])
45e9dd99 128fi
52b729fb 129AM_CONDITIONAL([HAVE_CHECK], [test "$USE_CHECK" -eq 1])
45e9dd99 130
1a6d683e
A
131AC_CHECK_LIB(dl, dlopen, AC_SUBST(LDL, "-ldl"))
132
45e9dd99 133AC_ARG_ENABLE(assert, AS_HELP_STRING([--enable-assert],
e67a04a3 134 [Enable assert() statements]),
135 [assert=$enableval], [assert=no])
136
137AS_IF([test "$assert" = "no"],
138 [AC_DEFINE(NDEBUG, 1, [Define to disable assert() statements.])])
139
064c336b 140AC_DEFINE([NICKNAMEHISTORYLENGTH], 32768, [Size of the WHOWAS array.])
7ea4ec0c 141AC_DEFINE([MP_CHUNK_SIZE_CHANNEL], 1024*1024, [Size of the channel mempool chunk.])
142AC_DEFINE([MP_CHUNK_SIZE_MEMBER], 2048*1024, [Size of the channel-member mempool chunk.])
143AC_DEFINE([MP_CHUNK_SIZE_BAN], 1024*1024, [Size of the ban mempool chunk.])
144AC_DEFINE([MP_CHUNK_SIZE_CLIENT], 1024*1024, [Size of the client mempool chunk.])
145AC_DEFINE([MP_CHUNK_SIZE_LCLIENT], 512*1024, [Size of the local client mempool chunk.])
146AC_DEFINE([MP_CHUNK_SIZE_DNODE], 32*1024, [Size of the dlink_node mempool chunk.])
d2f49544 147AC_DEFINE([MP_CHUNK_SIZE_DBUF], 512*1024, [Size of the dbuf mempool chunk.])
7ea4ec0c 148AC_DEFINE([MP_CHUNK_SIZE_AUTH], 128*1024, [Size of the auth mempool chunk.])
149AC_DEFINE([MP_CHUNK_SIZE_DNS], 64*1024, [Size of the dns mempool chunk.])
150AC_DEFINE([MP_CHUNK_SIZE_WATCH], 8*1024, [Size of the watch mempool chunk.])
7ea4ec0c 151AC_DEFINE([MP_CHUNK_SIZE_USERHOST], 128*1024, [Size of the userhost mempool chunk.])
152AC_DEFINE([MP_CHUNK_SIZE_IP_ENTRY], 128*1024, [Size of the ip_entry mempool chunk.])
24695eab 153AC_DEFINE([MP_CHUNK_SIZE_INVITE], 8*1024, [Size of the invite mempool chunk.])
e67a04a3 154
155# Argument processing.
156AX_ARG_ENABLE_IOLOOP_MECHANISM
e67a04a3 157AX_ARG_ENABLE_HALFOPS
8f8e1152 158AX_ARG_ENABLE_CHANAQ
e67a04a3 159AX_ARG_ENABLE_DEBUGGING
160AX_ARG_ENABLE_WARNINGS
161
162AC_DEFINE_DIR([PREFIX],[prefix],[Set to prefix.])
163AC_DEFINE_DIR([SYSCONFDIR],[sysconfdir],[Set to sysconfdir.])
164AC_DEFINE_DIR([LIBDIR],[libdir],[Set to libdir.])
a971ad0a 165AC_DEFINE_DIR([LIBEXECDIR],[libexecdir],[Set to libexecdir.])
e67a04a3 166AC_DEFINE_DIR([DATADIR],[datadir],[Set to datadir.])
167AC_DEFINE_DIR([LOCALSTATEDIR],[localstatedir],[Set to localstatedir.])
168
169AC_CONFIG_FILES( \
170 Makefile \
e67a04a3 171 src/Makefile \
846a8989 172 ircd/Makefile \
e67a04a3 173 libltdl/Makefile \
e67a04a3 174 modules/Makefile \
599830b8 175 extra/Makefile \
e67a04a3 176 modules/core/Makefile \
177 doc/Makefile \
178 help/Makefile \
614f5fee 179 tools/Makefile \
3e402c28
A
180 scripts/Makefile \
181 test/Makefile)
e67a04a3 182
183AC_OUTPUT