1 dnl #############################################################
3 dnl # For information about autoconf, see:
5 dnl # http://www.gnu.org/software/autoconf/
7 dnl # The recommended order is:
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...])
21 dnl #############################################################
24 AC_INIT(src/main/radiusd.c)
25 AC_CONFIG_HEADER(src/include/autoconf.h)
26 AC_REVISION($Revision$)dnl
28 dnl # The version of the software
29 RADIUSD_MAJOR_VERSION=1
30 RADIUSD_MINOR_VERSION=1.0-pre0
31 RADIUSD_VERSION="${RADIUSD_MAJOR_VERSION}.${RADIUSD_MINOR_VERSION}"
33 dnl #############################################################
35 dnl # 0. Checks for compiler, libtool, and command line options.
37 dnl #############################################################
43 dnl # check for AIX, to allow us to use some BSD functions
44 dnl # must be before macros that call the compiler.
48 AC_PROG_GCC_TRADITIONAL
52 abs_top_builddir=`pwd`
53 AC_SUBST(abs_top_builddir)
59 dnl # check for system bytesex
60 dnl # AC_DEFINES WORDS_BIGENDIAN
64 AC_CHECK_PROG(GMAKE, gmake, yes, no)
65 if test $GMAKE = no; then
66 AC_PATH_PROG(MAKE, make, /usr/local/bin/make)
68 AC_PATH_PROG(MAKE, gmake, /usr/local/gnu/bin/make)
70 makever=`$ac_cv_path_MAKE --version 2>&1 | grep "GNU Make"`
71 if test -z "$makever"; then
72 AC_MSG_ERROR(GNU Make is not installed. Please download and install it
73 from ftp://prep.ai.mit.edu/pub/gnu/make/ before continuing.)
76 dnl libltdl is installable
77 AC_LIBLTDL_INSTALLABLE
79 dnl use system-wide libtool, if it exists
80 AC_ARG_WITH(system-libtool,
81 [ --with-system-libtool try to use libtool installed in your system [default=use our own]],
82 [ AC_PATH_PROG(LIBTOOL, libtool,,$PATH:/usr/local/bin) ],
84 LIBTOOL="`pwd`/libtool"
86 dnl ensure that we're looking for dlopen
89 dnl Figure out how to build shared libraries
94 dnl Put this in later, when all distributed modules use autoconf.
95 dnl AC_ARG_WITH(disablemodulefoo,
96 dnl [ --without-rlm_foo Disables module compilation. Module list:]
97 dnl esyscmd([find src/modules -type d -name rlm_\* -print |\
98 dnl sed -e 's%src/modules/.*/% (sub)- %; s%.*/%- %' |\
99 dnl awk '{print " "$0}']))
101 AC_ARG_ENABLE(strict-dependencies,
102 [ --enable-strict-dependencies Fail configure on lack of module dependancy.])
104 dnl extra argument: --with-logdir
105 logdir='${localstatedir}/log/radius'
106 AC_MSG_CHECKING(logdir)
108 [ --with-logdir=DIR Directory for logfiles [LOCALSTATEDIR/log/radius] ],
111 AC_MSG_ERROR(Need logdir)
121 AC_MSG_RESULT($logdir)
123 dnl extra argument: --with-radacctdir
124 radacctdir='${logdir}/radacct'
125 AC_MSG_CHECKING(radacctdir)
126 AC_ARG_WITH(radacctdir,
127 [ --with-radacctdir=PATH Directory for detail files [LOGDIR/radacct] ],
130 AC_MSG_ERROR(Need radacctdir)
135 radacctdir="$withval"
140 AC_MSG_RESULT($radacctdir)
142 dnl extra argument: --with-raddbdir
143 raddbdir='${sysconfdir}/raddb'
144 AC_MSG_CHECKING(raddbdir)
145 AC_ARG_WITH(raddbdir,
146 [ --with-raddbdir=DIR Directory for config files [SYSCONFDIR/raddb] ],
149 AC_MSG_ERROR(Need raddbdir)
159 AC_MSG_RESULT($raddbdir)
161 dnl extra argument: --with-ascend-binary
163 AC_ARG_WITH(ascend-binary,
164 [ --with-ascend-binary Include support for Ascend binary filter attributes (default=yes)],
172 if test "X$ASCEND_BINARY" = "Xyes"; then
173 AC_DEFINE(ASCEND_BINARY, [], [Include support for Ascend binary filter attributes])
176 dnl extra argument: --with-threads
179 [ --with-threads Use threads, if available. (default=yes) ],
188 dnl extra argument: --with-snmp
191 [ --with-snmp Compile in SNMP support. (default=yes)],
200 dnl extra argument: --with-large-files
201 rad_enable_largefiles=no
202 AC_ARG_WITH(large-files,
203 [ --with-large-files Compile in large (2G+) file support. (default=no)],
206 rad_enable_largefiles=yes
214 dnl AC_ARG_ENABLE(ltdl-install,
215 dnl [ --disable-ltdl-install do not install libltdl])
216 dnl if test x"${enable_ltdl_install+set}" != xset; then
217 dnl enable_ltdl_install=yes
218 dnl ac_configure_args="$ac_configure_args --enable-ltdl-install"
220 dnl AC_CONFIG_SUBDIRS(libltdl)
223 dnl # Allow the user to specify a list of modules to be linked
224 dnl # statically to the server.
227 AC_ARG_WITH(static_modules,
228 [ --with-static-modules=QUOTED-MODULE-LIST],[
229 for i in $withval; do
230 STATIC_MODULES="$STATIC_MODULES -dlpreopen ../modules/rlm_$i/rlm_$i.la"
235 dnl # Enable developer C compiler warnings
237 AC_ARG_ENABLE(developer,
238 [ --enable-developer Enables features of interest to developers.],
239 [ case "$enableval" in
248 if test "x$developer" != "xno" -a -d $srcdir/CVS; then
249 dnl turn on the developer flag when taken from a CVS checkout (not a release)
253 dnl extra argument: --with-experimental-modules
255 AC_ARG_WITH(experimental-modules,
256 [ --with-experimental-modules Use experimental and unstable modules. (default=no) ],
266 dnl # extra argument: --openssl-includes=dir
268 AC_ARG_WITH(openssl-includes,
269 [ --with-openssl-includes=DIR Directory to look for OpenSSL include files],
271 *) OPENSSL_INCLUDE_DIR="$withval"
277 dnl # extra argument: --openssl-libraries=dir
279 AC_ARG_WITH(openssl-libraries,
280 [ --with-openssl-libraries=DIR Directory to look for OpenSSL library files],
282 *) OPENSSL_LIB_DIR="$withval"
288 dnl # These next two arguments don't actually do anything. They're
289 dnl # place holders so that the top-level configure script can tell
290 dnl # the user how to configure lower-level modules
294 dnl # extra argument: --with-rlm-FOO-lib-dir
296 AC_ARG_WITH(rlm-FOO-lib-dir,
297 [ --with-rlm-FOO-lib-dir=DIR Directory to look for library files used by module FOO],
305 dnl # extra argument: --with-rlm-FOO-include-dir
307 AC_ARG_WITH(rlm-FOO-include-dir,
308 [ --with-rlm-FOO-include-dir=DIR Directory to look for include files used by module FOO],
315 dnl See what include-style is used by the make program.
316 dnl AC_MSG_CHECKING(include style for make)
317 dnl echo "include /dev/null" > testmake.$$
318 dnl echo "all:" >> testmake.$$
319 dnl make -f testmake.$$ >/dev/null 2>&1
328 dnl rm -f testmake.$$
329 dnl AC_MSG_RESULT(" $INCLUDE")
330 dnl AC_SUBST(INCLUDE)
333 dnl extra argument: --with-udpfromto
335 AC_ARG_WITH(udpfromto,
336 [ --with-udpfromto Compile in UDPFROMTO support. (default=no)],
346 if test "x$WITH_UDPFROMTO" = "xyes"; then
347 AC_DEFINE(WITH_UDPFROMTO, [], [define if you want udpfromto])
350 dnl #############################################################
352 dnl # 1. Checks for programs
354 dnl #############################################################
357 AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
358 if test "x$ac_cv_path_PERL" = "x"; then
359 AC_MSG_WARN(perl not found - Simultaneous-Use and checkrad.pl may not work)
361 AC_PATH_PROG(SNMPGET, snmpget)
362 if test "x$ac_cv_path_SNMPGET" = "x"; then
363 AC_MSG_WARN(snmpget not found - Simultaneous-Use and checkrad.pl may not work)
366 AC_PATH_PROG(SNMPWALK, snmpwalk)
367 if test "x$ac_cv_path_SNMPWALK" = "x"; then
368 AC_MSG_WARN(snmpwalk not found - Simultaneous-Use and checkrad.pl may not work)
371 AC_PATH_PROG(RUSERS, rusers, /usr/bin/rusers)
373 dnl FIXME This is truly gross.
374 missing_dir=`cd $ac_aux_dir && pwd`
375 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
376 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
377 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
379 AC_PATH_PROG(LOCATE,locate)
380 AC_PATH_PROG(DIRNAME,dirname)
381 AC_PATH_PROG(GREP,grep)
383 dnl #############################################################
385 dnl # 2. Checks for libraries
387 dnl #############################################################
389 dnl If using pthreads, check for -lpthread (posix) or -lc_r (*BSD)
391 if test "x$WITH_THREADS" = "xyes"; then
392 if test $ac_cv_prog_suncc = "yes"; then
396 AC_CHECK_HEADERS(pthread.h, [], [ WITH_THREADS="no" ])
399 dnl # pthread stuff is usually in -lpthread
400 dnl # or in -lc_r, on *BSD
402 dnl # On Some systems, we need extra pre-processor flags, to get them to
403 dnl # to do the threading properly.
405 AC_CHECK_LIB(pthread, pthread_create,
406 [ CFLAGS="$CFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
407 LIBS="$LIBS -lpthread" ],
408 AC_CHECK_LIB(c_r, pthread_create,
409 [ CFLAGS="$CFLAGS -pthread -D_THREAD_SAFE" ],
410 [ WITH_THREADS="no" ]
416 dnl # If we have NO pthread libraries, remove any knowledge of threads.
418 if test "x$WITH_THREADS" != "xyes"; then
420 ac_cv_header_pthread_h="no"
424 dnl # We need sem_init() and friends, as they're the friendliest
425 dnl # semaphore functions for threading.
427 dnl # HP/UX requires linking with librt, too, to get the sem_* symbols.
428 dnl # Some systems have them in -lsem
429 dnl # Solaris has them in -lposix4
430 dnl # NetBSD has them in -lsemaphore
432 AC_SEARCH_LIBS(sem_init, pthread sem posix4 rt semaphore,
434 [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)]
438 dnl Check if we need -lsocket
439 AC_CHECK_LIB(socket, getsockname)
441 dnl Check for -lresolv
442 dnl This library may be needed later.
443 AC_CHECK_LIB(resolv, inet_aton)
445 dnl Check if we need -lnsl. Usually if we want to
446 dnl link against -lsocket we need to include -lnsl as well.
447 AC_CHECK_LIB(nsl, inet_ntoa)
449 dnl #############################################################
451 dnl # 3. Checks for header files
453 dnl #############################################################
456 dnl # Interix requires us to set -D_ALL_SOURCE, otherwise
457 dnl # getopt will be #included, but won't link. <sigh>
462 CFLAGS="$CFLAGS -D_ALL_SOURCE"
465 CFLAGS="$CFLAGS -DDARWIN"
507 AC_CHECK_HEADER(regex.h, AC_DEFINE(HAVE_REGEX_H, [], [define this if we have the <regex.h> header file]))
508 if test "x$ac_cv_header_regex_h" = "xyes"; then
516 ], [AC_DEFINE(HAVE_REG_EXTENDED, [], [define this if we have REG_EXTENDED (from <regex.h>)]) REGEX_EXTENDED=yes])
519 AC_SUBST(REGEX_EXTENDED)
522 dnl # other checks which require headers
524 if test "x$ac_cv_header_sys_security_h" = "xyes" && test "x$ac_cv_header_prot_h" = "xyes"
526 AC_DEFINE(OSFC2, [], [define if you have OSFC2 authentication])
529 if test "x$ac_cv_header_sia_h" = "xyes" && test "x$ac_cv_header_siad_h" = "xyes"
531 AC_DEFINE(OSFSIA, [], [define if you have OSFSIA authentication])
534 smart_try_dir="$OPENSSL_INCLUDE_DIR"
535 dnl # stupid RedHat shit
536 CFLAGS="$CFLAGS -DOPENSSL_NO_KRB5"
537 FR_SMART_CHECK_INCLUDE(openssl/ssl.h)
540 if test "x$ac_cv_header_openssl_ssl_h" = "xyes"; then
541 AC_DEFINE(HAVE_OPENSSL_SSL_H, [], [define if you have openssl/ssl.h])
542 old_CPPFLAGS="$CPPFLAGS"
543 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
544 CPPFLAGS="-I$OPENSSL_INCLUDE_DIR $CPPFLAGS"
552 CPPFLAGS="$old_CPPFLAGS"
554 AC_MSG_CHECKING([for OpenSSL version >= 0.9.7])
555 old_CPPFLAGS=$CPPFLAGS
557 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
558 CPPFLAGS="-I$OPENSSL_INCLUDE_DIR"
561 [#include <openssl/crypto.h>
562 #if (OPENSSL_VERSION_NUMBER >= 0x00907000L)
566 if test "x$goodssl" != "xyes"; then
573 # Look for the OpenSSL libraries.
574 smart_try_dir=$OPENSSL_LIB_DIR
575 FR_SMART_CHECK_LIB(crypto, DH_new)
576 if test "x$ac_cv_lib_crypto_DH_new" = "xyes"; then
577 FR_SMART_CHECK_LIB(ssl, SSL_new)
578 if test "x$ac_cv_lib_ssl_SSL_new" = "xyes"; then
579 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
580 OPENSSL_INCLUDE="-I$OPENSSL_INCLUDE_DIR"
582 if test "x$OPENSSL_LIB_DIR" != "x"; then
583 OPENSSL_LIBS="-L$OPENSSL_LIB_DIR"
585 OPENSSL_LIBS="$OPENSSL_LIBS -lcrypto -lssl -lcrypto"
592 CPPFLAGS=$old_CPPFLAGS
595 AC_SUBST(OPENSSL_INCLUDE)
596 AC_SUBST(OPENSSL_LIBS)
599 dnl #############################################################
601 dnl # 4. Checks for typedefs
603 dnl #############################################################
606 dnl # Ensure that these are defined
613 dnl check for socklen_t
614 FR_CHECK_TYPE_INCLUDE([
615 #ifdef HAVE_SYS_TYPES_H
616 #include <sys/types.h>
618 #ifdef HAVE_SYS_SOCKET_H
619 #include <sys/socket.h>
621 ],socklen_t, int, [socklen_t is generally 'int' on systems which don't use it])
623 dnl check for uint8_t
624 FR_CHECK_TYPE_INCLUDE([
625 #ifdef HAVE_INTTYPES_H
626 #include <inttypes.h>
631 ],uint8_t, unsigned char, [uint8_t should be the canonical 'octet' for network traffic])
633 dnl check for uint16_t
634 FR_CHECK_TYPE_INCLUDE([
635 #ifdef HAVE_INTTYPES_H
636 #include <inttypes.h>
641 ],uint16_t, unsigned short, [uint16_t should be the canonical '2 octets' for network traffic])
643 dnl check for uint32_t
644 FR_CHECK_TYPE_INCLUDE([
645 #ifdef HAVE_INTTYPES_H
646 #include <inttypes.h>
651 ],uint32_t, unsigned int, [uint32_t should be the canonical 'network integer])
653 AC_CHECK_TYPE(struct in6_addr, AC_DEFINE(HAVE_STRUCT_IN6_ADDR, 1, [IPv6 address structure]), [], [
654 #ifdef HAVE_NETINET_IN_H
655 #include <netinet/in.h>
659 AC_CHECK_TYPE(struct sockaddr_storage, AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1, [Generic socket addresses]), [], [
660 #ifdef HAVE_NETINET_IN_H
661 #include <netinet/in.h>
665 AC_CHECK_TYPE(struct sockaddr_in6, AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6, 1, [IPv6 socket addresses]), [], [
666 #ifdef HAVE_NETINET_IN_H
667 #include <netinet/in.h>
671 AC_CHECK_TYPE(struct addrinfo, AC_DEFINE(HAVE_STRUCT_ADDRINFO, 1, [Generic DNS lookups]), [], [
672 #ifdef HAVE_SYS_TYPES_H
673 #include <sys/types.h>
675 #ifdef HAVE_SYS_SOCKET_H
676 #include <sys/socket.h>
683 dnl #############################################################
685 dnl # 5. Checks for structures and functions
687 dnl #############################################################
715 RADIUSD_NEED_DECLARATIONS( \
728 dnl # check if we have utmpx.h
729 dnl # if so, check if struct utmpx has entry ut_xtime
730 dnl # if not, set it to define ut_xtime == ut_tv.tv_sec
731 if test "x$ac_cv_header_utmpx_h" = "xyes"
733 FR_CHECK_STRUCT_HAS_MEMBER([#include <utmpx.h>], [struct utmpx], ut_xtime)
734 if test "x$ac_cv_type_struct_utmpx_has_ut_xtime" = "x"
736 AC_DEFINE(ut_xtime,ut_tv.tv_sec, [define to something if you don't have ut_xtime in struct utmpx])
740 dnl # struct ip_pktinfo
741 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in_pktinfo], ipi_addr)
742 if test "x$ac_cv_type_struct_in_pktinfo_has_ipi_addr" = "xyes"
744 AC_DEFINE(HAVE_IP_PKTINFO, [], [define if you have IP_PKTINFO (Linux)])
747 dnl # struct in6_pktinfo
748 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in6_pktinfo], ipi6_addr)
749 if test "x$ac_cv_type_struct_in6_pktinfo_has_ipi6_addr" = "xyes"
751 AC_DEFINE(HAVE_IN6_PKTINFO, [], [define if you have IN6_PKTINFO (Linux)])
754 dnl #############################################################
756 dnl # 6. Checks for compiler characteristics
758 dnl #############################################################
761 dnl # Ensure that these are defined
766 dnl # See if this is OS/2
768 AC_MSG_CHECKING(type of OS)
771 if test "$OS" = "OS/2"; then
779 dnl # Set Default CFLAGS
781 if test "x$GCC" = "xyes"; then
782 CFLAGS="$CFLAGS -Wall -D_GNU_SOURCE"
785 AC_MSG_CHECKING(for developer gcc flags)
786 if test "x$developer" = "xyes" -a "x$GCC" = "xyes"; then
787 devflags="-g -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -W -Wredundant-decls -Wundef"
788 CFLAGS="$CFLAGS $devflags"
790 AC_MSG_RESULT(yes. Using $devflags)
793 CFLAGS="$CFLAGS -DNDEBUG"
798 dnl #############################################################
800 dnl # 7. Checks for library functions
802 dnl #############################################################
804 dnl Check for libcrypt
805 dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
806 AC_CHECK_LIB(crypt, crypt,
809 if test "$CRYPTLIB" != ""; then
810 AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function])
812 AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function]))
815 dnl Check for libcipher
816 AC_CHECK_LIB(cipher, setkey,
817 CRYPTLIB="${CRYPTLIB} -lcipher"
821 if test "x$WITH_SNMP" = "xyes"; then
825 dnl Check the style of gethostbyaddr, in order of preference
826 dnl GNU (_r eight args)
827 AC_DEFINE(GNUSTYLE, [1], [GNU-Style get*byaddr_r])
828 dnl SYSV (_r six args)
829 AC_DEFINE(SYSVSTYLE, [2], [SYSV-Style get*byaddr_r])
830 dnl BSD (three args, may not be thread safe)
831 AC_DEFINE(BSDSTYLE, [3], [BSD-Style get*byaddr_r])
832 dnl Tru64 has BSD version, but it is thread safe
833 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1739____.HTM
834 dnl We need #stdio.h to define NULL on FreeBSD (at least)
835 gethostbyaddrrstyle=""
836 AC_MSG_CHECKING([gethostbyaddr_r() syntax])
839 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE, [style of gethostbyaddr_r functions ])
840 gethostbyaddrrstyle=BSD
841 AC_MSG_WARN([FreeBSD overridden to BSD-style])
844 if test "x$gethostbyaddrrstyle" = "x"; then
848 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL, NULL) ], [
849 AC_DEFINE(GETHOSTBYADDRRSTYLE, GNUSTYLE, [style of gethostbyaddr_r functions ])
850 gethostbyaddrrstyle=GNU
853 if test "x$gethostbyaddrrstyle" = "x"; then
857 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL) ] , [
858 AC_DEFINE(GETHOSTBYADDRRSTYLE, SYSVSTYLE, [style of gethostbyaddr_r functions ])
859 gethostbyaddrrstyle=SYSV
862 if test "x$gethostbyaddrrstyle" = "x"; then
866 ], [ gethostbyaddr(NULL, 0, 0) ], [
867 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE, [style of gethostbyaddr_r functions ])
868 gethostbyaddrrstyle=BSD
872 if test "x$gethostbyaddrrstyle" = "x"; then
873 AC_MSG_RESULT([none! It must not exist, here.])
875 AC_MSG_RESULT([${gethostbyaddrrstyle}-style])
878 if test "x$gethostbyaddrrstyle" = "xBSD"; then
879 AC_MSG_WARN([ ****** BSD-style gethostbyaddr might NOT be thread-safe! ****** ])
882 dnl Check the style of gethostbyname, in order of preference
883 dnl GNU (_r seven args)
884 dnl SYSV (_r five args)
885 dnl BSD (two args, may not be thread safe)
886 dnl Tru64 has BSD version, but it _is_ thread safe
887 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1946____.HTM
888 dnl We need #stdio.h to define NULL on FreeBSD (at least)
889 gethostbynamerstyle=""
890 AC_MSG_CHECKING([gethostbyname_r() syntax])
894 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL) ], [
895 AC_DEFINE(GETHOSTBYNAMERSTYLE, GNUSTYLE, [style of gethostbyname_r functions ])
896 gethostbynamerstyle=GNU
898 if test "x$gethostbynamerstyle" = "x"; then
902 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL) ] , [
903 AC_DEFINE(GETHOSTBYNAMERSTYLE, SYSVSTYLE, [style of gethostbyname_r functions ])
904 gethostbynamerstyle=SYSV
907 if test "x$gethostbynamerstyle" = "x"; then
911 ], [ gethostbyname(NULL) ], [
912 AC_DEFINE(GETHOSTBYNAMERSTYLE, BSDSTYLE, [style of gethostbyname_r functions ])
913 gethostbynamerstyle=BSD
917 if test "x$gethostbynamerstyle" = "x"; then
918 AC_MSG_RESULT([none! It must not exist, here.])
920 AC_MSG_RESULT([${gethostbynamerstyle}-style])
923 if test "x$gethostbynamerstyle" = "xBSD"; then
924 AC_MSG_WARN([ ****** BSD-style gethostbyname might NOT be thread-safe! ****** ])
927 dnl check for non-posix solaris ctime_r (extra buflen int arg)
928 AC_DEFINE(POSIXSTYLE, [1], [Posix-Style ctime_r])
929 AC_DEFINE(SOLARISSTYLE, [2], [Solaris-Style ctime_r])
931 AC_MSG_CHECKING([ctime_r() syntax])
934 ], [ ctime_r(NULL, NULL, 0) ], [
935 AC_DEFINE(CTIMERSTYLE, SOLARISSTYLE, [style of ctime_r function])
936 ctimerstyle="SOLARIS"
938 if test "x$ctimerstyle" = "x"; then
941 ], [ ctime_r(NULL, NULL) ], [
942 AC_DEFINE(CTIMERSTYLE, POSIXSTYLE, [style of ctime_r function])
947 if test "x$ctimerstyle" = "x"; then
948 AC_MSG_RESULT([none! It must not exist, here.])
950 AC_MSG_RESULT([${ctimerstyle}-style])
953 AC_SUBST(HOSTINFO, $host)
955 dnl #############################################################
957 dnl # 8. Checks for system services
959 dnl #############################################################
962 dnl # Figure out where libtool is located,
966 AC_MSG_RESULT([top_builddir=$top_builddir])
967 dnl # AC_SUBST(top_builddir)
972 dnl # Work around stupid autoconf crap
974 if test "x$INCLTDL" != "x";then
975 INCLTDL='-I${top_builddir}/''libltdl'
978 dnl import libtool stuff
980 dnl #############################################################
982 dnl # Configure in any module directories.
984 dnl #############################################################
986 mysubdirs="$LIBLTDLPATH"
987 if test "x$EXPERIMENTAL" = "xyes"; then
988 bar=`ls -1 src/modules/rlm_*/configure | sed 's%/configure%%'`
989 dnl # get rid of LF's.
990 mysubdirs=`echo $mysubdirs $bar`
993 dnl # Find 'configure' in ONLY the stable modules
995 for bar in `cat src/modules/stable`; do
996 if test -f src/modules/$bar/configure; then
997 mysubdirs="$mysubdirs src/modules/$bar"
1002 dnl ############################################################
1003 dnl # make modules by list
1004 dnl #############################################################
1006 if test "x$EXPERIMENTAL" = "xyes"; then
1007 for foo in `ls -1 src/modules | grep rlm_`; do
1008 MODULES="$MODULES $foo"
1012 dnl # make ONLY the stable modules
1014 for foo in `cat src/modules/stable`; do
1015 MODULES="$MODULES $foo"
1020 dnl # Don't change the variable name here. Autoconf goes bonkers
1023 AC_CONFIG_SUBDIRS($mysubdirs)
1026 dnl #############################################################
1028 dnl # And finally, output the results.
1030 dnl #############################################################
1032 AC_CONFIG_COMMANDS([stamp-h], [echo timestamp > src/include/stamp-h])
1033 AC_CONFIG_COMMANDS([build-radpaths-h], [(cd ./src/include && /bin/sh ./build-radpaths-h)])
1034 AC_CONFIG_COMMANDS([main-chmod], [(cd ./src/main && chmod +x checkrad.pl radlast radtest)])
1035 AC_CONFIG_COMMANDS([scripts-chmod], [(cd ./scripts && chmod +x rc.radiusd radwatch check-radiusd-config radiusd.cron.daily radiusd.cron.monthly cryptpasswd)])
1038 dnl # Substitute whatever libraries we found to be necessary
1041 AC_SUBST(INSTALLSTRIP)
1043 USE_SHARED_LIBS=$enable_shared
1044 AC_SUBST(USE_SHARED_LIBS)
1045 USE_STATIC_LIBS=$enable_static
1046 AC_SUBST(USE_STATIC_LIBS)
1047 AC_SUBST(STATIC_MODULES)
1048 AC_SUBST(RADIUSD_MAJOR_VERSION)
1049 AC_SUBST(RADIUSD_MINOR_VERSION)
1050 AC_SUBST(RADIUSD_VERSION)
1051 export CFLAGS LIBS LDFLAGS CPPFLAGS
1055 ./src/include/build-radpaths-h \
1056 ./src/main/Makefile \
1057 ./src/main/checkrad.pl \
1058 ./src/main/radlast \
1059 ./src/main/radtest \
1060 ./scripts/rc.radiusd \
1061 ./scripts/radwatch \
1062 ./scripts/check-radiusd-config \
1063 ./scripts/radiusd.cron.daily \
1064 ./scripts/radiusd.cron.monthly \
1065 ./scripts/cryptpasswd \
1066 ./raddb/dictionary \
1067 ./raddb/radiusd.conf \
1068 ./raddb/radrelay.conf