Now that 0.7 is out, the current release is 0.8-pre
[freeradius.git] / configure.in
1 dnl #############################################################
2 dnl #
3 dnl #  For information about autoconf, see:
4 dnl #
5 dnl #  http://www.gnu.org/software/autoconf/
6 dnl #  
7 dnl #  The recommended order is:
8 dnl #
9 dnl #  AC_INIT(file)
10 dnl #  0. checks for compiler, libtool, and command line options
11 dnl #  1. checks for programs
12 dnl #  2. checks for libraries
13 dnl #  3. checks for header files
14 dnl #  4. checks for typedefs
15 dnl #  5. checks for structures and functions
16 dnl #  6. checks for compiler characteristics
17 dnl #  7. checks for library functions
18 dnl #  8. checks for system services
19 dnl #  AC_OUTPUT([file...])
20 dnl #
21 dnl #############################################################
22
23 AC_INIT(src/main/radiusd.c)
24 AC_CONFIG_HEADER(src/include/autoconf.h)
25 AC_REVISION($Revision$)dnl
26
27 dnl # The version of the software
28 RADIUSD_MAJOR_VERSION=0
29 RADIUSD_MINOR_VERSION=8-pre
30 RADIUSD_VERSION="${RADIUSD_MAJOR_VERSION}.${RADIUSD_MINOR_VERSION}"
31
32 dnl #############################################################
33 dnl #
34 dnl #  0. Checks for compiler, libtool, and command line options.
35 dnl #
36 dnl #############################################################
37
38 dnl Check for GNU cc
39 AC_PROG_CC
40 AC_PROG_GCC_TRADITIONAL
41 AC_PROG_CC_SUNPRO
42 AC_PROG_RANLIB
43
44 PACKAGE=freeradius
45
46 dnl #
47 dnl # check for AIX, to allow us to use some BSD functions
48 dnl # must be before macros that call the compiler.
49 dnl #
50 AC_AIX
51
52 dnl Find GNU Make.
53 AC_CHECK_PROG(GMAKE, gmake, yes, no)
54 if test $GMAKE = no; then
55   AC_PATH_PROG(MAKE, make, /usr/local/bin/make)
56 else
57   AC_PATH_PROG(MAKE, gmake, /usr/local/gnu/bin/make)
58 fi
59 makever=`$ac_cv_path_MAKE --version 2>&1 | grep "GNU Make"`
60 if test -z "$makever"; then
61   AC_MSG_ERROR(GNU Make is not installed.  Please download and install it
62                 from ftp://prep.ai.mit.edu/pub/gnu/make/ before continuing.)
63 fi
64
65 dnl libltdl is installable
66 AC_LIBLTDL_INSTALLABLE
67
68 dnl use system-wide libtool, if it exists
69 AC_ARG_WITH(system-libtool, 
70 [  --with-system-libtool              try to use libtool installed in your system [default=use our own]],
71 [ AC_PATH_PROG(LIBTOOL, libtool,,$PATH:/usr/local/bin) ],
72 [
73   LIBTOOL="`pwd`/libtool"
74   AC_SUBST(LIBTOOL)
75   dnl ensure that we're looking for dlopen
76   AC_LIBTOOL_DLOPEN
77
78   dnl Figure out how to build shared libraries
79   AC_PROG_LIBTOOL
80 ])
81
82
83 dnl Put this in later, when all distributed modules use autoconf.
84 dnl AC_ARG_WITH(disablemodulefoo,
85 dnl [  --without-rlm_foo       Disables module compilation.  Module list:]
86 dnl esyscmd([find src/modules -type d -name rlm_\* -print |\
87 dnl     sed -e 's%src/modules/.*/% (sub)- %; s%.*/%- %' |\
88 dnl     awk '{print "                            "$0}']))
89
90 AC_ARG_ENABLE(strict-dependencies,
91 [  --enable-strict-dependencies  Fail configure on lack of module dependancy.])
92
93 dnl extra argument: --with-logdir
94 logdir='${localstatedir}/log/radius'
95 AC_MSG_CHECKING(logdir)
96 AC_ARG_WITH(logdir,
97 [  --with-logdir=DIR       Directory for logfiles [LOCALSTATEDIR/log/radius] ],
98 [ case "$withval" in
99     no)
100         AC_MSG_ERROR(Need logdir)
101         ;;
102     yes)
103         ;;
104     *)
105         logdir="$withval"
106         ;;
107   esac ]
108 )
109 AC_SUBST(logdir)
110 AC_MSG_RESULT($logdir)
111
112 dnl extra argument: --with-radacctdir
113 radacctdir='${logdir}/radacct'
114 AC_MSG_CHECKING(radacctdir)
115 AC_ARG_WITH(radacctdir,
116 [  --with-radacctdir=PATH  Directory for detail files [LOGDIR/radacct] ],
117 [ case "$withval" in
118     no)
119         AC_MSG_ERROR(Need radacctdir)
120         ;;
121     yes)
122         ;;
123     *)
124         radacctdir="$withval"
125         ;;
126   esac ]
127 )
128 AC_SUBST(radacctdir)
129 AC_MSG_RESULT($radacctdir)
130
131 dnl extra argument: --with-raddbdir
132 raddbdir='${sysconfdir}/raddb'
133 AC_MSG_CHECKING(raddbdir)
134 AC_ARG_WITH(raddbdir,
135 [  --with-raddbdir=DIR     Directory for config files [SYSCONFDIR/raddb] ],
136 [ case "$withval" in
137     no)
138         AC_MSG_ERROR(Need raddbdir)
139         ;;
140     yes)
141         ;;
142     *)
143         raddbdir="$withval"
144         ;;
145   esac ]
146 )
147 AC_SUBST(raddbdir)
148 AC_MSG_RESULT($raddbdir)
149
150 dnl extra argument: --with-dict-nocase
151 WITH_DICT_NOCASE=yes
152 AC_ARG_WITH(dict-nocase,
153 [  --with-dict-nocase      Make dictionary case-independant (default=yes)],
154 [  case "$withval" in
155     yes)
156         ;;
157     *)
158         WITH_DICT_NOCASE=""
159   esac ]
160 )
161 if test "X$WITH_DICT_NOCASE" = "Xyes"; then
162   AC_DEFINE(WITH_DICT_NOCASE)
163 fi
164
165 dnl extra argument: --with-ascend-binary
166 ASCEND_BINARY=yes
167 AC_ARG_WITH(ascend-binary,
168 [  --with-ascend-binary    Include support for Ascend binary filter attributes (default=yes)],
169 [ case "$withval" in
170     yes)
171         ;;
172     *)
173         ASCEND_BINARY=""
174   esac ]
175 )
176 if test "X$ASCEND_BINARY" = "Xyes"; then
177   AC_DEFINE(ASCEND_BINARY)
178 fi
179
180 dnl extra argument: --with-threads
181 WITH_THREADS=yes
182 AC_ARG_WITH(threads,
183 [  --with-threads          Use threads, if available.  (default=yes) ],
184 [ case "$withval" in
185     yes)
186         ;;
187     *)
188         WITH_THREADS=""
189   esac ]
190 )
191
192 dnl extra argument: --with-snmp
193 WITH_SNMP=yes
194 AC_ARG_WITH(snmp,
195 [  --with-snmp             Compile in SNMP support. (default=yes)],
196 [ case "$withval" in
197     yes)
198         ;;
199     *)
200         WITH_SNMP=no
201   esac ]
202 )
203
204 dnl AC_ARG_ENABLE(ltdl-install,
205 dnl [  --disable-ltdl-install  do not install libltdl])
206 dnl if test x"${enable_ltdl_install+set}" != xset; then
207 dnl   enable_ltdl_install=yes
208 dnl   ac_configure_args="$ac_configure_args --enable-ltdl-install"
209 dnl fi
210 dnl AC_CONFIG_SUBDIRS(libltdl)
211
212 dnl #
213 dnl #  Allow the user to specify a list of modules to be linked
214 dnl #  statically to the server.
215 dnl #
216 STATIC_MODULES=
217 AC_ARG_WITH(static_modules,
218 [  --with-static-modules=QUOTED-MODULE-LIST],[
219   for i in $withval; do
220     STATIC_MODULES="$STATIC_MODULES -dlpreopen ../modules/rlm_$i/rlm_$i.la"
221   done
222 ])
223
224 dnl #
225 dnl #  Enable developer C compiler warnings
226 dnl #
227 AC_ARG_ENABLE(developer,
228 [  --enable-developer               Enables features of interest to developers.],
229 [ case "$withval" in
230     *)
231         developer=no
232         ;;
233     yes)
234         developer=yes
235   esac ]
236 )
237
238 if test "x$developer" != "xno" -a -d $srcdir/CVS; then
239   dnl turn on the developer flag when taken from a CVS checkout (not a release)
240   developer="yes"
241 fi
242
243 dnl extra argument: --with-experimental-modules
244 EXPERIMENTAL=
245 AC_ARG_WITH(experimental-modules,
246 [  --with-experimental-modules      Use experimental and unstable modules. (default=no) ],
247 [ case "$withval" in
248     yes)
249         EXPERIMENTAL=yes
250         ;;
251     *)
252   esac ]
253 )
254
255 dnl #
256 dnl #  These next two arguments don't actually do anything.  They're
257 dnl #  place holders so that the top-level configure script can tell
258 dnl #  the user how to configure lower-level modules
259 dnl #
260
261 dnl #
262 dnl # extra argument: --with-rlm-FOO-lib-dir
263 dnl #
264 AC_ARG_WITH(rlm-FOO-lib-dir,
265 [  --with-rlm-FOO-lib-dir=DIR       Directory to look for library files used by module FOO],
266 [ case "$withval" in
267     *)
268         ;;
269   esac ]
270 )
271
272 dnl #
273 dnl # extra argument: --with-rlm-FOO-include-dir
274 dnl #
275 AC_ARG_WITH(rlm-FOO-include-dir,
276 [  --with-rlm-FOO-include-dir=DIR   Directory to look for include files used by module FOO],
277 [ case "$withval" in
278     *)
279         ;;
280   esac ]
281 )
282
283 dnl See what include-style is used by the make program.
284 dnl AC_MSG_CHECKING(include style for make)
285 dnl echo "include /dev/null" > testmake.$$
286 dnl echo "all:" >> testmake.$$
287 dnl make -f testmake.$$ >/dev/null 2>&1
288 dnl if test $? = 0
289 dnl then
290 dnl     INCLUDE=include
291 dnl     IQUOTE=
292 dnl else
293 dnl     INCLUDE=.include
294 dnl     IQUOTE='"'
295 dnl fi
296 dnl rm -f testmake.$$
297 dnl AC_MSG_RESULT(" $INCLUDE")
298 dnl AC_SUBST(INCLUDE)
299 dnl AC_SUBST(IQUOTE)
300
301 dnl #############################################################
302 dnl #
303 dnl #  1. Checks for programs
304 dnl #
305 dnl #############################################################
306
307 CHECKRAD=checkrad.pl
308 AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
309 if test "x$ac_cv_path_PERL" = "x"; then
310   AC_MSG_WARN(perl not found - Simultaneous-Use and checkrad.pl may not work)
311 fi
312 AC_PATH_PROG(SNMPGET, snmpget)
313 if test "x$ac_cv_path_SNMPGET" = "x"; then
314   AC_MSG_WARN(snmpget not found - Simultaneous-Use and checkrad.pl may not work)
315 fi
316
317 AC_PATH_PROG(SNMPWALK, snmpwalk)
318 if test "x$ac_cv_path_SNMPWALK" = "x"; then
319   AC_MSG_WARN(snmpwalk not found - Simultaneous-Use and checkrad.pl may not work)
320 fi
321
322 AC_PATH_PROG(RUSERS, rusers, /usr/bin/rusers)
323
324 dnl FIXME This is truly gross.
325 missing_dir=`cd $ac_aux_dir && pwd`
326 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
327 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
328 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
329
330 AC_PATH_PROG(LOCATE,locate)
331 AC_PATH_PROG(DIRNAME,dirname)
332 AC_PATH_PROG(GREP,grep)
333
334 dnl #############################################################
335 dnl #
336 dnl #  2. Checks for libraries
337 dnl #
338 dnl #############################################################
339
340 dnl If using pthreads, check for -lpthread (posix) or -lc_r (*BSD)
341 old_CFLAGS=$CFLAGS
342 if test "x$WITH_THREADS" = "xyes"; then 
343   if test $ac_cv_prog_suncc = "yes"; then
344     CFLAGS="$CFLAGS -mt"
345   fi
346
347   AC_CHECK_HEADERS(pthread.h, [], [ WITH_THREADS="no" ])
348
349 dnl # 
350 dnl # pthread stuff is usually in -lpthread
351 dnl # or in -lc_r, on *BSD
352 dnl # 
353 dnl # On Some systems, we need extra pre-processor flags, to get them to
354 dnl # to do the threading properly.
355 dnl # 
356   AC_CHECK_LIB(pthread, pthread_create,
357                 [ CFLAGS="$CFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS" ],
358                 AC_CHECK_LIB(c_r, pthread_create,
359                             [ CFLAGS="$CFLAGS -pthread -D_THREAD_SAFE" ],
360                             [ WITH_THREADS="no" ]
361                             )
362                 )
363 fi
364
365 dnl # 
366 dnl # If we have NO pthread libraries, remove any knowledge of threads.
367 dnl # 
368 if test "x$WITH_THREADS" != "xyes"; then
369   CFLAGS=$old_CFLAGS
370   ac_cv_header_pthread_h="no"
371   WITH_THREADS=no
372 else
373   dnl #
374   dnl #  We need sem_init() and friends, as they're the friendliest
375   dnl #  semaphore functions for threading.
376   dnl #
377   dnl # HP/UX requires linking with librt, too, to get the sem_* symbols.
378   dnl # Some systems have them in -lsem
379   dnl # Solaris has them in -lposix4
380
381   AC_SEARCH_LIBS(sem_init, pthread sem posix4 rt,
382         [],
383         [AC_MSG_ERROR(-lsem not found.  You may want to download it from ftp://ftp.to.gd-es.com/pub/BSDI/libsem.tar.bz2 or ftp://ftp.freeradius.org/pub/radius/contrib/libsem.tar.gz)]
384    )
385 fi
386
387 dnl Check if we need -lsocket
388 AC_CHECK_LIB(socket, getsockname)
389
390 dnl Check for -lresolv
391 dnl This library may be needed later.
392 AC_CHECK_LIB(resolv, inet_aton)
393
394 dnl Check if we need -lnsl. Usually if we want to
395 dnl link against -lsocket we need to include -lnsl as well.
396 AC_CHECK_LIB(nsl, inet_ntoa)
397
398 dnl #############################################################
399 dnl #
400 dnl #  3. Checks for header files
401 dnl #
402 dnl #############################################################
403
404 AC_HEADER_DIRENT
405 AC_HEADER_STDC
406 AC_HEADER_TIME
407 AC_HEADER_SYS_WAIT
408
409 AC_CHECK_HEADERS( \
410         unistd.h \
411         crypt.h \
412         errno.h \
413         resource.h \
414         getopt.h \
415         malloc.h \
416         utmp.h \
417         utmpx.h \
418         signal.h \
419         sys/select.h \
420         syslog.h \
421         inttypes.h \
422         stdint.h \
423         stdio.h \
424         netdb.h \
425         semaphore.h \
426         arpa/inet.h \
427         netinet/in.h \
428         sys/types.h \
429         sys/socket.h \
430         sys/time.h \
431         sys/wait.h \
432         sys/security.h \
433         fcntl.h \
434         sys/fcntl.h \
435         prot.h \
436         sia.h \
437         siad.h
438 )
439
440 REGEX=no
441 AC_CHECK_HEADER(regex.h, AC_DEFINE(HAVE_REGEX_H))
442 if test "x$ac_cv_header_regex_h" = "xyes"; then
443   REGEX_EXTENDED=no
444   REGEX=yes
445   AC_EGREP_CPP(yes,
446     [#include <regex.h>
447      #ifdef REG_EXTENDED
448        yes
449      #endif
450      ], [AC_DEFINE(HAVE_REG_EXTENDED) REGEX_EXTENDED=yes])
451 fi
452 AC_SUBST(REGEX)
453 AC_SUBST(REGEX_EXTENDED)
454
455 dnl #
456 dnl #  other checks which require headers
457 dnl #
458 if test "x$ac_cv_header_sys_security_h" = "xyes" && test "x$ac_cv_header_prot_h" = "xyes"
459 then
460   AC_DEFINE(OSFC2)
461 fi
462
463 if test "x$ac_cv_header_sia_h" = "xyes" && test "x$ac_cv_header_siad_h" = "xyes"
464 then
465   AC_DEFINE(OSFSIA)
466 fi
467
468
469 dnl #############################################################
470 dnl #
471 dnl #  4. Checks for typedefs
472 dnl #
473 dnl #############################################################
474
475 dnl #
476 dnl # Ensure that these are defined
477 dnl #
478 AC_TYPE_OFF_T 
479 AC_TYPE_PID_T
480 AC_TYPE_SIZE_T
481 AC_TYPE_UID_T
482
483 dnl check for socklen_t
484 AC_CHECK_TYPE_INCLUDE([
485 #ifdef HAVE_SYS_TYPES_H
486 #include <sys/types.h>
487 #endif
488 #ifdef HAVE_SYS_SOCKET_H
489 #include <sys/socket.h>
490 #endif
491 ],socklen_t, int)
492
493 dnl check for uint8_t
494 AC_CHECK_TYPE_INCLUDE([
495 #ifdef HAVE_INTTYPES_H
496 #include <inttypes.h>
497 #endif
498 #ifdef HAVE_STDINT_H
499 #include <stdint.h>
500 #endif
501 ],uint8_t, unsigned char)
502
503 dnl check for uint16_t
504 AC_CHECK_TYPE_INCLUDE([
505 #ifdef HAVE_INTTYPES_H
506 #include <inttypes.h>
507 #endif
508 #ifdef HAVE_STDINT_H
509 #include <stdint.h>
510 #endif
511 ],uint16_t, unsigned short)
512
513 dnl check for uint32_t
514 AC_CHECK_TYPE_INCLUDE([
515 #ifdef HAVE_INTTYPES_H
516 #include <inttypes.h>
517 #endif
518 #ifdef HAVE_STDINT_H
519 #include <stdint.h>
520 #endif
521 ],uint32_t, unsigned int)
522
523 dnl #############################################################
524 dnl #
525 dnl #  5. Checks for structures and functions
526 dnl #
527 dnl #############################################################
528 AC_CHECK_FUNCS( \
529         getopt_long \
530         lockf \
531         strsignal \
532         sigaction \
533         sigprocmask \
534         pthread_sigmask \
535         snprintf \
536         vsnprintf \
537         setsid \
538         strncasecmp \
539         strcasecmp \
540         localtime_r \
541         ctime_r \
542         gmtime_r \
543         strsep \
544         inet_aton \
545         gethostname \
546         setlinebuf \
547         setvbuf \
548         getusershell
549 )
550 RADIUSD_NEED_DECLARATIONS( \
551         crypt \
552         strncasecmp \
553         strcasecmp \
554         inet_aton \
555         gethostname \
556         setlinebuf \
557         getusershell \
558         endusershell
559 )
560
561 AC_TYPE_SIGNAL
562
563 dnl # check if we have utmpx.h
564 dnl # if so, check if struct utmpx has entry ut_xtime
565 dnl # if not, set it to define ut_xtime == ut_tv.tv_sec
566 if test "x$ac_cv_header_utmpx_h" = "xyes"
567 then
568  AC_CHECK_STRUCT_HAS_MEMBER([#include <utmpx.h>], [struct utmpx], ut_xtime)
569  if test "x$ac_cv_type_struct_utmpx_ut_xtime" = "x"
570  then
571    AC_DEFINE(ut_xtime,ut_tv.tv_sec)
572  fi
573 fi
574
575 dnl #############################################################
576 dnl #
577 dnl #  6. Checks for compiler characteristics
578 dnl #
579 dnl #############################################################
580
581 dnl #
582 dnl # Ensure that these are defined
583 dnl #
584 AC_C_CONST 
585
586 dnl #
587 dnl # See if this is OS/2
588 dnl #
589 AC_MSG_CHECKING(type of OS)
590 OS=`uname -s`
591 AC_MSG_RESULT($OS)
592 if test "$OS" = "OS/2"; then
593         LIBPREFIX=
594 else
595         LIBPREFIX=lib
596 fi
597 AC_SUBST(LIBPREFIX)
598
599 dnl #
600 dnl # Set Default CFLAGS
601 dnl #
602 if test "x$GCC" = "xyes"; then
603     CFLAGS="$CFLAGS -Wall -D_GNU_SOURCE"
604 fi
605
606 AC_MSG_CHECKING(for developer gcc flags)
607 if test "x$developer" = "xyes" -a "x$GCC" = "xyes"; then
608   devflags="-g -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs"
609   CFLAGS="$CFLAGS $devflags"
610   INSTALLSTRIP=""
611   AC_MSG_RESULT(yes.  Using $devflags)
612 else
613   devflags=""
614   CFLAGS="$CFLAGS -DNDEBUG"
615   INSTALLSTRIP="-s"
616   AC_MSG_RESULT(no.)
617 fi
618
619 dnl #############################################################
620 dnl #
621 dnl #  7. Checks for library functions
622 dnl #
623 dnl #############################################################
624
625 dnl Check for libcrypt
626 dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
627 AC_CHECK_LIB(crypt, crypt,
628   CRYPTLIB="-lcrypt"
629 )
630 if test "$CRYPTLIB" != ""; then
631   AC_DEFINE(HAVE_CRYPT)
632 else
633   AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT))
634 fi
635
636 dnl Check for libcipher
637 AC_CHECK_LIB(cipher, setkey,
638    CRYPTLIB="${CRYPTLIB} -lcipher"
639 )
640 AC_SUBST(CRYPTLIB)
641
642 if test "x$WITH_SNMP" = "xyes"; then
643   SNMP_CHECKS
644 fi
645
646 gethostbyaddrrstyle=""
647 AC_MSG_CHECKING([gethostbyaddr_r() syntax])
648 AC_TRY_COMPILE([#include <netdb.h>], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL) ] , [
649         AC_DEFINE(GETHOSTBYADDRRSTYLE, SYSVSTYLE)
650         gethostbyaddrrstyle=SYSV
651 ])
652 AC_TRY_COMPILE([#include <netdb.h>], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL, NULL) ], [
653         AC_DEFINE(GETHOSTBYADDRRSTYLE, GNUSTYLE)
654         gethostbyaddrrstyle=GNU
655 ])
656
657 AC_TRY_COMPILE([#include <netdb.h>], [ gethostbyaddr(NULL, 0, 0)  ], [
658         AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE)
659         gethostbyaddrrstyle=BSD
660 ])
661
662 if test "x$gethostbyaddrrstyle" = "x"; then
663         AC_MSG_RESULT([none!  It must not exist, here.])
664 else
665         AC_MSG_RESULT([${gethostbyaddrrstyle}-style])
666 fi
667
668
669 dnl #############################################################
670 dnl #
671 dnl #  8. Checks for system services
672 dnl #
673 dnl #############################################################
674
675 dnl #
676 dnl # Figure out where libtool is located,
677 dnl #
678 top_builddir=`pwd`
679 AC_MSG_RESULT([top_builddir=$top_builddir])
680 AC_SUBST(top_builddir)
681 AC_SUBST(LIBLTDL)
682 AC_SUBST(INCLTDL)
683
684 dnl #
685 dnl #  Work around stupid autoconf crap
686 dnl #
687 if test "x$INCLTDL" != "x";then
688   INCLTDL='-I${top_builddir}/''libltdl'
689 fi
690
691 dnl import libtool stuff
692
693 dnl #############################################################
694 dnl #
695 dnl #  Configure in any module directories.
696 dnl #
697 dnl #############################################################
698
699 mysubdirs=
700 if test "x$EXPERIMENTAL" = "xyes"; then
701   for foo in `find src/modules -name configure -print`; do
702     bar=`echo $foo | sed 's%/configure$%%g'`
703     mysubdirs="$mysubdirs $bar"
704   done
705 else
706    dnl # 
707    dnl # Find 'configure' in ONLY the stable modules
708    dnl # 
709    for foo in `find \`cat src/modules/stable | sed 's%rlm%src/modules/rlm%g'\` -name configure -print`; do
710     bar=`echo $foo | sed 's%/configure$%%g'`
711     mysubdirs="$mysubdirs $bar"
712   done
713 fi
714
715 dnl ############################################################
716 dnl # make modules by list
717 dnl #############################################################
718 MODULES=
719 if test "x$EXPERIMENTAL" = "xyes"; then
720   for foo in `ls src/modules | grep rlm_`; do
721     MODULES="$MODULES $foo"
722   done
723 else
724    dnl #
725    dnl # make ONLY the stable modules
726    dnl #
727    for foo in `cat src/modules/stable`; do
728     MODULES="$MODULES $foo"
729    done
730 fi
731
732 dnl #
733 dnl #  Don't change the variable name here.  Autoconf goes bonkers
734 dnl #  if you do.
735 dnl #
736 AC_CONFIG_SUBDIRS($mysubdirs)
737 AC_SUBST(MODULES)
738
739 dnl #############################################################
740 dnl #
741 dnl #  And finally, output the results.
742 dnl #
743 dnl #############################################################
744
745 dnl #
746 dnl #  Substitute whatever libraries we found to be necessary
747 dnl #
748 AC_SUBST(LIBS)
749 AC_SUBST(INSTALLSTRIP)
750
751 USE_SHARED_LIBS=$enable_shared
752 AC_SUBST(USE_SHARED_LIBS)
753 USE_STATIC_LIBS=$enable_static
754 AC_SUBST(USE_STATIC_LIBS)
755 AC_SUBST(STATIC_MODULES)
756 AC_SUBST(RADIUSD_MAJOR_VERSION)
757 AC_SUBST(RADIUSD_MINOR_VERSION)
758 AC_SUBST(RADIUSD_VERSION)
759 export CFLAGS LIBS
760
761 AC_OUTPUT(\
762         ./Make.inc \
763         ./src/include/build-radpaths-h \
764         ./src/main/Makefile \
765         ./src/main/checkrad.pl \
766         ./src/main/radlast \
767         ./src/main/radtest \
768         ./scripts/rc.radiusd \
769         ./scripts/radwatch \
770         ./scripts/check-radiusd-config \
771         ./scripts/radiusd.cron.daily \
772         ./scripts/radiusd.cron.monthly \
773         ./scripts/cryptpasswd \
774         ./raddb/radiusd.conf
775 )
776
777 AC_OUTPUT_COMMANDS([echo timestamp > src/include/stamp-h])
778 AC_OUTPUT_COMMANDS([(cd ./src/include && /bin/sh ./build-radpaths-h)])
779 AC_OUTPUT_COMMANDS([(cd ./src/main   && chmod +x checkrad.pl radlast radtest)])
780 AC_OUTPUT_COMMANDS([(cd ./scripts    && chmod +x rc.radiusd radwatch check-radiusd-config radiusd.cron.daily radiusd.cron.monthly cryptpasswd)])
781 AC_OUTPUT_COMMANDS([
782 cat >> src/include/autoconf.h <<EOF
783
784 #define HOSTINFO        "$host"
785 #define RADIUSD_VERSION "$RADIUSD_VERSION"
786 EOF
787 ],host=$host)