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