updated for better printing, some more IPX printing
[freeradius.git] / configure.in
1 AC_INIT(src/main/radiusd.c)
2 AC_CONFIG_HEADER(src/include/autoconf.h)
3 AC_REVISION($Revision$)dnl
4 dnl AC_PREFIX_DEFAULT(/usr/local)
5
6 dnl Check for GNU cc
7 AC_PROG_CC
8 AC_PROG_RANLIB
9
10 dnl Find GNU Make.
11 AC_CHECK_PROG(GMAKE, gmake, yes, no)
12 if test $GMAKE = no; then
13   AC_PATH_PROG(MAKE, make, /usr/local/bin/make)
14 else
15   AC_PATH_PROG(MAKE, gmake, /usr/local/gnu/bin/make)
16 fi
17 makever=`$ac_cv_path_MAKE --version 2>&1 | grep "GNU Make"`
18 if test -z "$makever"; then
19   AC_MSG_ERROR(GNU Make is not installed.  Please download and install it
20                 from ftp://prep.ai.mit.edu/pub/gnu/make/ before continuing.)
21 fi
22
23 dnl Set Default CFLAGS
24 if test "$GCC" = "yes"; then
25     CFLAGS="$CFLAGS -Wall -D_GNU_SOURCE"
26 fi
27
28 dnl extra argument: --with-logdir
29 logdir='${localstatedir}/log'
30 AC_MSG_CHECKING(logdir)
31 AC_ARG_WITH(logdir,
32 [  --with-logdir=DIR       Directory for logfiles [LOCALSTATEDIR/log] ],
33 [ case "$withval" in
34     no)
35         AC_MSG_ERROR(Need logdir)
36         ;;
37     yes)
38         ;;
39     *)
40         logdir="$withval"
41         ;;
42   esac ]
43 )
44 AC_SUBST(logdir)
45 AC_MSG_RESULT($logdir)
46
47 dnl extra argument: --with-radacctdir
48 radacctdir='${logdir}/radacct'
49 AC_MSG_CHECKING(radacctdir)
50 AC_ARG_WITH(radacctdir,
51 [  --with-radacctdir=PATH  Directory for detail files [LOGDIR/radacct] ],
52 [ case "$withval" in
53     no)
54         AC_MSG_ERROR(Need radacctdir)
55         ;;
56     yes)
57         ;;
58     *)
59         radacctdir="$withval"
60         ;;
61   esac ]
62 )
63 AC_SUBST(radacctdir)
64 AC_MSG_RESULT($radacctdir)
65
66 dnl extra argument: --with-raddbdir
67 raddbdir='${sysconfdir}/raddb'
68 AC_MSG_CHECKING(raddbdir)
69 AC_ARG_WITH(raddbdir,
70 [  --with-raddbdir=DIR     Directory for config files [SYSCONFDIR/raddb] ],
71 [ case "$withval" in
72     no)
73         AC_MSG_ERROR(Need raddbdir)
74         ;;
75     yes)
76         ;;
77     *)
78         raddbdir="$withval"
79         ;;
80   esac ]
81 )
82 AC_SUBST(raddbdir)
83 AC_MSG_RESULT($raddbdir)
84
85 dnl extra argument: --with-dbm
86 DBMLIB=
87 BUILDDBM=
88 AC_ARG_WITH(dbm,
89 [  --with-dbm              Compile in DBM support],
90 [ case "$withval" in
91     no)
92         ;;
93     yes)
94         AC_DEFINE(WITH_DBM)
95         DBMLIB=-ldbm
96         BUILDDBM=builddbm
97   esac ]
98 )
99
100 dnl extra argument: --with-ndbm
101 AC_ARG_WITH(ndbm,
102 [  --with-ndbm             Compile in NDBM support],
103 [ case "$withval" in
104     no)
105         ;;
106     yes)
107         AC_DEFINE(WITH_NDBM)
108         DBMLIB=-ldb
109         BUILDDBM=builddbm
110   esac ]
111 )
112
113 AC_SUBST(DBMLIB)
114 AC_SUBST(BUILDDBM)
115
116 dnl extra argument: --with-ascend-hack
117 AC_ARG_WITH(ascend-hack,
118 [  --with-ascend-hack      Include Ascend hacks],
119 [ case "$withval" in
120     no)
121         ;;
122     yes)
123         AC_DEFINE(WITH_ASCEND_HACK)
124   esac ]
125 )
126
127 dnl extra argument: --with-ascend-cpl=N
128 AC_ARG_WITH(ascend-cpl,
129 [  --with-ascend-cpl=N     Set Ascend Channels Per Line to N [23] ],
130 [ case "$withval" in
131     *)
132         AC_DEFINE_UNQUOTED(ASCEND_CHANNELS_PER_LINE, $withval)
133   esac ]
134 )
135
136 dnl extra argument: --with-ntdomain-hack
137 AC_ARG_WITH(ntdomain-hack,
138 [  --with-ntdomain-hack    Include NT Domain hack],
139 [ case "$withval" in
140     no)
141         ;;
142     yes)
143         AC_DEFINE(WITH_NTDOMAIN_HACK)
144   esac ]
145 )
146
147 dnl extra argument: --with-spcj-hack
148 AC_ARG_WITH(spcj-hack,
149 [  --with-spcj-hack        Include Specialix Jetstream hacks],
150 [ case "$withval" in
151     no)
152         ;;
153     yes)
154         AC_DEFINE(WITH_SPECIALIX_JETSTREAM_HACK)
155   esac ]
156 )
157
158 dnl extra argument: --with-dict-nocase
159 AC_ARG_WITH(dict-nocase,
160 [  --with-dict-nocase      Make dictionary case-independant],
161 [ case "$withval" in
162     no)
163         ;;
164     yes)
165         AC_DEFINE(WITH_DICT_NOCASE)
166   esac ]
167 )
168
169 dnl extra argument: --with-dynamic_modules
170 WITH_DYNAMIC_MODULES=yes
171 AC_ARG_WITH(dynamic-modules,
172 [  --with-dynamic-modules  Use runtime loadable modules ],
173 [ case "$withval" in
174     *)
175         WITH_DYNAMIC_MODULES=$withval
176   esac ]
177 )
178
179 dnl See what include-style is used by the make program.
180 AC_MSG_CHECKING(include style for make)
181 echo "include /dev/null" > testmake.$$
182 echo "all:" >> testmake.$$
183 make -f testmake.$$ >/dev/null 2>&1
184 if test $? = 0
185 then
186         INCLUDE=include
187         IQUOTE=
188 else
189         INCLUDE=.include
190         IQUOTE='"'
191 fi
192 rm -f testmake.$$
193 AC_MSG_RESULT(" $INCLUDE")
194 AC_SUBST(INCLUDE)
195 AC_SUBST(IQUOTE)
196
197 dnl Check if we have a dynamic linker.
198 AC_MSG_CHECKING(for runtime dynamic linker)
199 if test "$WITH_DYNAMIC_MODULES" = "yes" && test -f /usr/include/dlfcn.h
200 then
201         AC_DEFINE(HAVE_LIBDL)
202         HAVE_LIBDL=1
203         LIBDL="-ldl"
204         AC_MSG_RESULT("found")
205 else
206         AC_MSG_RESULT("not found")
207 fi
208 AC_SUBST(LIBDL)
209
210 dnl Modules to be built.
211 for i in `( cd src/modules; ls -1d rlm_* )`
212 do
213         if test "$HAVE_LIBDL" = ""; then
214                 MODULES="$MODULES$i.a "
215                 MODULE_PATHS="$MODULE_PATHS../modules/$i/$i.a "
216         else
217                 MODULES="$MODULES$i.so "
218         fi
219 done
220 AC_SUBST(MODULES)
221 AC_SUBST(MODULE_PATHS)
222
223 dnl Check for programs
224 AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
225 if test ! -x $ac_cv_path_PERL; then
226   AC_MSG_ERROR(perl not found - fatal)
227 fi
228 AC_PATH_PROG(SNMPGET, snmpget, /usr/local/bin/snmpget)
229 AC_PATH_PROG(RUSERS, rusers, /usr/bin/rusers)
230
231 dnl Check for headers
232 AC_HEADER_DIRENT
233 AC_HEADER_STDC
234
235 AC_CHECK_HEADERS( \
236         crypt.h \
237         errno.h \
238         resource.h \
239         getopt.h \
240         malloc.h \
241         sys/select.h \
242 )
243
244 AC_CHECK_FUNCS( \
245         getopt_long \
246         lockf \
247         strsignal \
248         snprintf \
249         vsnprintf \
250         setsid \
251 )
252
253 dnl Check for socklen_t
254 AC_TRY_COMPILE([#include <sys/types.h>
255 #include <sys/socket.h>],
256   [socklen_t foo],
257   AC_DEFINE(HAVE_SOCKLEN_T),
258 )
259
260 dnl Check for libcrypt
261 dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
262 AC_CHECK_LIB(crypt, crypt,
263   CRYPTLIB="-lcrypt",
264 )
265 AC_SUBST(CRYPTLIB)
266
267 dnl Check for -lsocket
268 AC_CHECK_LIB(socket, getsockname,
269   SOCKETLIB="-lsocket"
270 )
271 AC_SUBST(SOCKETLIB)
272
273 dnl Check for -lnsl. We don't need yp_all, but usually if we want to
274 dnl link against -lsocket we need to include -lnsl as well.
275 AC_CHECK_LIB(nsl, yp_all,
276   NSLLIB="-lnsl",
277 )
278 AC_SUBST(NSLLIB)
279
280 AC_OUTPUT(\
281         
282         ./Make.inc \
283         ./Makefile
284         ./src/Makefile \
285         ./src/include/build-radpaths-h \
286         ./src/lib/Makefile \
287         ./src/main/Makefile \
288         ./src/main/checkrad.pl \
289         ./src/main/radlast \
290         ./src/main/radtest \
291         ./src/modules/Makefile \
292         ./raddb/Makefile \
293         ./doc/Makefile \
294         ./scripts/Makefile \
295         ./scripts/rc.radiusd \
296         ./scripts/radwatch \
297 )
298
299 AC_OUTPUT_COMMANDS([echo timestamp > stamp-h])