]> jfr.im git - irc/rakaur/praxis.git/blob - autoconf/configure.in
Fixes from clang warnings.
[irc/rakaur/praxis.git] / autoconf / configure.in
1 dnl praxis: services for TSora IRC networks.
2 dnl src/config.c: Configuration file parser.
3 dnl
4 dnl Copyright (c) 2004 Eric Will <rakaur@malkier.net>
5 dnl Copyright (c) 2003-2004 shrike development team.
6 dnl
7 dnl $Id$
8
9 AC_INIT
10
11 AC_CONFIG_AUX_DIR(autoconf)
12 AC_CONFIG_HEADER(include/setup.h)
13 AC_PREFIX_DEFAULT(~/praxis)
14 SOURCE_ROOT=`pwd`
15 MOD_TARGET=shared_modules
16 MOD_INSTALL_TARGET=install_shared_modules
17
18 AC_PROG_MAKE_SET
19 AC_PROG_CC
20 AC_PROG_INSTALL
21 AC_EXEEXT
22 AC_PATH_PROG(RM, rm)
23 AC_PATH_PROG(MV, mv)
24 AC_PATH_PROG(CP, cp)
25 AC_PATH_PROG(AR, ar)
26 AC_PATH_PROG(RANLIB, ranlib)
27 AC_C_INLINE
28
29 AC_HEADER_STDC
30 AC_CHECK_HEADERS(sys/time.h sys/select.h getopt.h)
31
32 AC_C_CONST
33 AC_TYPE_SIZE_T
34 AC_HEADER_TIME
35 AC_STRUCT_TM
36
37 AC_TYPE_SIGNAL
38 AC_FUNC_STRFTIME
39 AC_CHECK_FUNCS(select strlcpy strlcat getaddrinfo gettimeofday umask mmap)
40 AC_CHECK_FUNC(socket,, AC_CHECK_LIB(socket, socket))
41 AC_CHECK_FUNC(gethostbyname,, AC_CHECK_LIB(nsl, gethostbyname))
42 dnl AC_CHECK_FUNC(dlopen,, AC_CHECK_LIB(dl, dlopen))
43
44 HARDASSERT="no"
45 AC_MSG_CHECKING(if you want hard asserts)
46 AC_ARG_ENABLE(hard-assert,
47 [ --enable-hard-assert Enable hard asserts.
48 --disable-hard-assert Disable hard asserts. ],
49 [
50 case "$enableval" in
51 yes)
52 HARDASSERT="yes"
53 AC_DEFINE([HARD_ASSERT], 1, [Uncomment to enable hard asserts.])
54 ;;
55 no)
56 HARDASSERT="no"
57 ;;
58 esac
59 ])
60 AC_MSG_RESULT($HARDASSERT)
61
62 LARGENET="no"
63 AC_MSG_CHECKING(if you want large network support)
64 AC_ARG_ENABLE(large-net,
65 [ --enable-large-net Enable large network support.
66 --disable-large-net Disable large network support. ],
67 [
68 case "$enableval" in
69 yes)
70 LARGENET="yes"
71 AC_DEFINE([LARGE_NETWORK], 1, [Uncomment to enable large network support.])
72 ;;
73 no)
74 LARGENET="no"
75 ;;
76 esac
77 ])
78 AC_MSG_RESULT($LARGENET)
79
80 SHARED_MODULES="yes"
81 AC_MSG_CHECKING(if you want shared modules)
82 AC_ARG_ENABLE(shared-modules,
83 [ --enable-shared-modules Enable shared module support.
84 --disable-shared-modules Disable shared module support. ],
85 [
86 case "$enableval" in
87 yes)
88 SHARED_MODULES="yes"
89 ;;
90 no)
91 SHARED_MODULES="no"
92 ;;
93 esac
94 ])
95 AC_MSG_RESULT($SHARED_MODULES)
96
97 if test "$SHARED_MODULES" = yes; then
98 AC_CHECK_HEADERS(dlfcn.h)
99 AC_SEARCH_LIBS(dlopen, [dl c_r],
100 [
101 AC_DEFINE(HAVE_DLOPEN, 1, [Define if the dlopen function is available.])
102 MOD_TARGET="shared_modules"
103 MOD_INSTALL_TARGET="install_shared_modules"
104 AC_CHECK_FUNC(dlsym, ,
105 [
106 AC_MSG_WARN([dlsym is not available, shared modules disabled])
107 SHARED_MODULES="no"
108 ])
109 AC_CHECK_FUNCS(dlfunc)
110 ],
111 [
112 SHARED_MODULES="no"
113 ])
114 fi
115
116 if test "$SHARED_MODULES" = yes; then
117 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
118 MY_CFLAGS="-shared -fPIC -DPIC"
119 fi
120
121 if test "$SHARED_MODULES" = no; then
122 AC_DEFINE([STATIC_MODULES], 1, [Undefine to enable shared modules.])
123 MOD_TARGET="static_modules"
124 MOD_INSTALL_TARGET=
125 LIBS="${LIBS} ../modules/libmodules.a userserv/libuserserv.a"
126 LDFLAGS="${LDFLAGS} -L../modules -Luserserv -lmodules -luserserv"
127 fi
128
129 AC_SUBST(MOD_TARGET)
130 AC_SUBST(MOD_INSTALL_TARGET)
131 AC_SUBST(MY_CFLAGS)
132 AC_SUBST(HARDASSERT)
133 AC_SUBST(LARGENET)
134
135 if test "$SHARED_MODULES" = no; then
136 tmp_mod=static
137 else
138 tmp_mod=shared
139 fi
140
141 if test "$HARDASSERT" = no; then
142 tmp_assert=soft
143 else
144 tmp_assert=hard
145 fi
146
147 AC_OUTPUT(Makefile sqlite/Makefile src/Makefile modules/Makefile)
148
149 echo ""
150 echo "Modules ................. $tmp_mod"
151 echo "Assert debugging ........ $tmp_assert"
152 echo "Large network support ... $LARGENET"
153 echo ""