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 export CFLAGS LIBS LDFLAGS CPPFLAGS
25 AC_INIT(src/main/radiusd.c)
26 AC_CONFIG_HEADER(src/include/autoconf.h)
27 AC_REVISION($Revision$)dnl
29 dnl # The version of the software
30 RADIUSD_MAJOR_VERSION=2
31 RADIUSD_MINOR_VERSION=0.0-pre0
32 RADIUSD_VERSION="${RADIUSD_MAJOR_VERSION}.${RADIUSD_MINOR_VERSION}"
35 dnl #############################################################
37 dnl # 0. Checks for compiler, libtool, and command line options.
39 dnl #############################################################
46 dnl # check for AIX, to allow us to use some BSD functions
47 dnl # must be before macros that call the compiler.
51 AC_PROG_GCC_TRADITIONAL
55 dnl Compile in large (2G+) file support.
58 dnl # check for system bytesex
59 dnl # AC_DEFINES WORDS_BIGENDIAN
63 AC_CHECK_PROG(GMAKE, gmake, yes, no)
64 if test $GMAKE = no; then
65 AC_PATH_PROG(MAKE, make, /usr/local/bin/make)
67 AC_PATH_PROG(MAKE, gmake, /usr/local/gnu/bin/make)
69 makever=`$ac_cv_path_MAKE --version 2>&1 | grep "GNU Make"`
70 if test -z "$makever"; then
71 AC_MSG_ERROR(GNU Make is not installed. Please download and install it
72 from ftp://prep.ai.mit.edu/pub/gnu/make/ before continuing.)
75 dnl libltdl is installable
76 AC_LIBLTDL_INSTALLABLE
78 dnl tell Makefile to build ltdl if needed
79 if test x"$enable_ltdl_install" = x"yes"; then
82 AC_SUBST(LTDL_SUBDIRS)
84 dnl use system-wide libtool, if it exists
85 AC_ARG_WITH(system-libtool,
86 [ --with-system-libtool try to use libtool installed in your system [default=use our own]],
87 [ AC_PATH_PROG(LIBTOOL, libtool,,$PATH:/usr/local/bin) ],
89 LIBTOOL="`pwd`/libtool"
91 dnl ensure that we're looking for dlopen
94 dnl Figure out how to build shared libraries
99 dnl Put this in later, when all distributed modules use autoconf.
100 dnl AC_ARG_WITH(disablemodulefoo,
101 dnl [ --without-rlm_foo Disables module compilation. Module list:]
102 dnl esyscmd([find src/modules -type d -name rlm_\* -print |\
103 dnl sed -e 's%src/modules/.*/% (sub)- %; s%.*/%- %' |\
104 dnl awk '{print " "$0}']))
106 AC_ARG_ENABLE(strict-dependencies,
107 [ --enable-strict-dependencies Fail configure on lack of module dependancy.])
109 dnl extra argument: --with-docdir
110 docdir='${datadir}/doc/freeradius'
111 AC_MSG_CHECKING(docdir)
113 [ --with-docdir=DIR Directory for documentation [DATADIR/doc/freeradius] ],
116 AC_MSG_ERROR(Need docdir)
120 [[\\/$]]* | ?:[[\\/]]* )
124 AC_MSG_ERROR([expected an absolute directory name for --with-docdir: $withval])
129 AC_MSG_RESULT($docdir)
131 dnl extra argument: --with-logdir
132 logdir='${localstatedir}/log/radius'
133 AC_MSG_CHECKING(logdir)
135 [ --with-logdir=DIR Directory for logfiles [LOCALSTATEDIR/log/radius] ],
138 AC_MSG_ERROR(Need logdir)
142 [[\\/$]]* | ?:[[\\/]]* )
146 AC_MSG_ERROR([expected an absolute directory name for --with-logdir: $withval])
151 AC_MSG_RESULT($logdir)
153 dnl extra argument: --with-radacctdir
154 radacctdir='${logdir}/radacct'
155 AC_MSG_CHECKING(radacctdir)
156 AC_ARG_WITH(radacctdir,
157 [ --with-radacctdir=DIR Directory for detail files [LOGDIR/radacct] ],
160 AC_MSG_ERROR(Need radacctdir)
164 [[\\/$]]* | ?:[[\\/]]* )
165 radacctdir="$withval"
168 AC_MSG_ERROR([expected an absolute directory name for --with-radacctdir: $withval])
173 AC_MSG_RESULT($radacctdir)
175 dnl extra argument: --with-raddbdir
176 raddbdir='${sysconfdir}/raddb'
177 AC_MSG_CHECKING(raddbdir)
178 AC_ARG_WITH(raddbdir,
179 [ --with-raddbdir=DIR Directory for config files [SYSCONFDIR/raddb] ],
182 AC_MSG_ERROR(Need raddbdir)
186 [[\\/$]]* | ?:[[\\/]]* )
190 AC_MSG_ERROR([expected an absolute directory name for --with-raddbdir: $withval])
195 AC_MSG_RESULT($raddbdir)
197 dnl extra argument: --with-ascend-binary
199 AC_ARG_WITH(ascend-binary,
200 [ --with-ascend-binary Include support for Ascend binary filter attributes (default=yes)],
208 if test "X$ASCEND_BINARY" = "Xyes"; then
209 AC_DEFINE(ASCEND_BINARY, [], [Include support for Ascend binary filter attributes])
212 dnl extra argument: --with-threads
215 [ --with-threads Use threads, if available. (default=yes) ],
224 dnl extra argument: --with-snmp
227 [ --with-snmp Compile in SNMP support. (default=yes)],
237 dnl # Allow the user to specify a list of modules to be linked
238 dnl # statically to the server.
241 AC_ARG_WITH(static_modules,
242 [ --with-static-modules=QUOTED-MODULE-LIST],[
243 for i in $withval; do
244 STATIC_MODULES="$STATIC_MODULES -dlpreopen ../modules/rlm_$i/rlm_$i.la"
250 [ --with-modules=QUOTED-MODULE-LIST],[
251 for i in $withval; do
252 MODULES="$MODULES $i"
257 dnl # Enable developer C compiler warnings
259 AC_ARG_ENABLE(developer,
260 [ --enable-developer Enables features of interest to developers.],
261 [ case "$enableval" in
270 if test "x$developer" != "xno" -a -d $srcdir/CVS; then
271 dnl turn on the developer flag when taken from a CVS checkout (not a release)
275 dnl extra argument: --with-experimental-modules
277 AC_ARG_WITH(experimental-modules,
278 [ --with-experimental-modules Use experimental and unstable modules. (default=no) ],
288 dnl # extra argument: --with-openssl-includes=dir
291 AC_ARG_WITH(openssl-includes,
292 [ --with-openssl-includes=DIR Directory to look for OpenSSL include files],
294 *) OPENSSL_INCLUDE_DIR="$withval"
300 dnl # extra argument: --with-openssl-libraries=dir
303 AC_ARG_WITH(openssl-libraries,
304 [ --with-openssl-libraries=DIR Directory to look for OpenSSL library files],
306 *) OPENSSL_LIB_DIR="$withval"
312 dnl # These next two arguments don't actually do anything. They're
313 dnl # place holders so that the top-level configure script can tell
314 dnl # the user how to configure lower-level modules
318 dnl # extra argument: --with-rlm-FOO-lib-dir
320 AC_ARG_WITH(rlm-FOO-lib-dir,
321 [ --with-rlm-FOO-lib-dir=DIR Directory to look for library files used by module FOO],
329 dnl # extra argument: --with-rlm-FOO-include-dir
331 AC_ARG_WITH(rlm-FOO-include-dir,
332 [ --with-rlm-FOO-include-dir=DIR Directory to look for include files used by module FOO],
339 dnl See what include-style is used by the make program.
340 dnl AC_MSG_CHECKING(include style for make)
341 dnl echo "include /dev/null" > testmake.$$
342 dnl echo "all:" >> testmake.$$
343 dnl make -f testmake.$$ >/dev/null 2>&1
352 dnl rm -f testmake.$$
353 dnl AC_MSG_RESULT(" $INCLUDE")
354 dnl AC_SUBST(INCLUDE)
357 dnl extra argument: --with-udpfromto
359 AC_ARG_WITH(udpfromto,
360 [ --with-udpfromto Compile in UDPFROMTO support. (default=no)],
370 if test "x$WITH_UDPFROMTO" = "xyes"; then
371 AC_DEFINE(WITH_UDPFROMTO, [], [define if you want udpfromto])
374 dnl #############################################################
376 dnl # 1. Checks for programs
378 dnl #############################################################
381 AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
382 if test "x$ac_cv_path_PERL" = "x"; then
383 AC_MSG_WARN(perl not found - Simultaneous-Use and checkrad.pl may not work)
385 AC_PATH_PROG(SNMPGET, snmpget)
386 if test "x$ac_cv_path_SNMPGET" = "x"; then
387 AC_MSG_WARN(snmpget not found - Simultaneous-Use and checkrad.pl may not work)
390 AC_PATH_PROG(SNMPWALK, snmpwalk)
391 if test "x$ac_cv_path_SNMPWALK" = "x"; then
392 AC_MSG_WARN(snmpwalk not found - Simultaneous-Use and checkrad.pl may not work)
395 AC_PATH_PROG(RUSERS, rusers, /usr/bin/rusers)
397 dnl FIXME This is truly gross.
398 missing_dir=`cd $ac_aux_dir && pwd`
399 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
400 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
401 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
403 AC_PATH_PROG(LOCATE,locate)
404 AC_PATH_PROG(DIRNAME,dirname)
405 AC_PATH_PROG(GREP,grep)
407 dnl #############################################################
409 dnl # 2. Checks for libraries
411 dnl #############################################################
413 dnl If using pthreads, check for -lpthread (posix) or -lc_r (*BSD)
415 if test "x$WITH_THREADS" = "xyes"; then
416 if test $ac_cv_prog_suncc = "yes"; then
420 AC_CHECK_HEADERS(pthread.h, [], [ WITH_THREADS="no" ])
423 dnl # pthread stuff is usually in -lpthread
424 dnl # or in -lc_r, on *BSD
426 dnl # On Some systems, we need extra pre-processor flags, to get them to
427 dnl # to do the threading properly.
429 AC_CHECK_LIB(pthread, pthread_create,
430 [ CFLAGS="$CFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
431 LIBS="$LIBS -lpthread" ],
432 AC_CHECK_LIB(c_r, pthread_create,
433 [ CFLAGS="$CFLAGS -pthread -D_THREAD_SAFE" ],
434 [ WITH_THREADS="no" ]
440 dnl # If we have NO pthread libraries, remove any knowledge of threads.
442 if test "x$WITH_THREADS" != "xyes"; then
444 ac_cv_header_pthread_h="no"
448 dnl # We need sem_init() and friends, as they're the friendliest
449 dnl # semaphore functions for threading.
451 dnl # HP/UX requires linking with librt, too, to get the sem_* symbols.
452 dnl # Some systems have them in -lsem
453 dnl # Solaris has them in -lposix4
454 dnl # NetBSD has them in -lsemaphore
456 AC_SEARCH_LIBS(sem_init, pthread sem posix4 rt semaphore,
458 [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)]
462 dnl Check if we need -lsocket
463 AC_CHECK_LIB(socket, getsockname)
465 dnl Check for -lresolv
466 dnl This library may be needed later.
467 AC_CHECK_LIB(resolv, inet_aton)
469 dnl Check if we need -lnsl. Usually if we want to
470 dnl link against -lsocket we need to include -lnsl as well.
471 AC_CHECK_LIB(nsl, inet_ntoa)
473 dnl Check for OpenSSL libraries.
476 if test "x$OPENSSL_LIB_DIR" != "x"; then
477 LIBS="-L$OPENSSL_LIB_DIR $LIBS"
479 AC_CHECK_LIB(crypto, DH_new,
481 AC_DEFINE(HAVE_LIBCRYPTO, 1,
482 [Define to 1 if you have the `crypto' library (-lcrypto).])
483 AC_CHECK_LIB(ssl, SSL_new,
485 AC_DEFINE(HAVE_LIBSSL, 1,
486 [Define to 1 if you have the `ssl' library (-lssl).])
487 if test "x$OPENSSL_LIB_DIR" != "x"; then
488 OPENSSL_LIBS="-L$OPENSSL_LIB_DIR"
490 OPENSSL_LIBS="$OPENSSL_LIBS -lcrypto -lssl -lcrypto"
495 dnl Check the pcap library for the RADIUS sniffer.
497 AC_CHECK_LIB(pcap, pcap_open_live,
499 AC_DEFINE(HAVE_LIBPCAP, 1,
500 [Define to 1 if you have the `pcap' library (-lpcap).])
502 [ AC_MSG_WARN([pcap library not found, silently disabling the RADIUS sniffer.]) ])
504 dnl #############################################################
506 dnl # 3. Checks for header files
508 dnl #############################################################
511 dnl # Interix requires us to set -D_ALL_SOURCE, otherwise
512 dnl # getopt will be #included, but won't link. <sigh>
517 CFLAGS="$CFLAGS -D_ALL_SOURCE"
520 CFLAGS="$CFLAGS -DDARWIN"
562 AC_CHECK_HEADER(regex.h, AC_DEFINE(HAVE_REGEX_H, [], [define this if we have the <regex.h> header file]))
563 if test "x$ac_cv_header_regex_h" = "xyes"; then
571 ], [AC_DEFINE(HAVE_REG_EXTENDED, [], [define this if we have REG_EXTENDED (from <regex.h>)]) REGEX_EXTENDED=yes])
574 AC_SUBST(REGEX_EXTENDED)
577 dnl # other checks which require headers
579 if test "x$ac_cv_header_sys_security_h" = "xyes" && test "x$ac_cv_header_prot_h" = "xyes"
581 AC_DEFINE(OSFC2, [], [define if you have OSFC2 authentication])
584 if test "x$ac_cv_header_sia_h" = "xyes" && test "x$ac_cv_header_siad_h" = "xyes"
586 AC_DEFINE(OSFSIA, [], [define if you have OSFSIA authentication])
589 dnl Check for OpenSSL includes.
590 OPENSSL_INCLUDE="-DNO_OPENSSL"
591 if test "x$OPENSSL_LIBS" = "x"; then
592 AC_MSG_NOTICE([skipping test for openssl/ssl.h])
594 old_CPPFLAGS=$CPPFLAGS
595 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
596 CPPFLAGS="$CPPFLAGS -I$OPENSSL_INCLUDE_DIR"
598 dnl # stupid RedHat shit
599 CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_KRB5"
608 if test "x$OPENSSL_LIBS" != "x"; then
609 AC_MSG_CHECKING([for OpenSSL version >= 0.9.7])
611 [#include <openssl/crypto.h>
612 #if (OPENSSL_VERSION_NUMBER >= 0x00907000L)
616 if test "x$goodssl" != "xyes"; then
621 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
622 OPENSSL_INCLUDE="-I$OPENSSL_INCLUDE_DIR -DOPENSSL_NO_KRB5"
624 OPENSSL_INCLUDE="-DOPENSSL_NO_KRB5"
628 CPPFLAGS=$old_CPPFLAGS
630 AC_SUBST(OPENSSL_INCLUDE)
631 AC_SUBST(OPENSSL_LIBS)
634 dnl Check the pcap includes for the RADIUS sniffer.
635 if test "x$PCAP_LIBS" = x; then
636 AC_MSG_NOTICE([skipping test for pcap.h.])
638 AC_CHECK_HEADER(pcap.h,
639 AC_DEFINE(HAVE_PCAP_H, 1,
640 [Define to 1 if you have the <pcap.h> header file.]),
642 AC_MSG_WARN([pcap.h not found, silently disabling the RADIUS sniffer.])
647 dnl #############################################################
649 dnl # 4. Checks for typedefs
651 dnl #############################################################
654 dnl # Ensure that these are defined
661 dnl check for socklen_t
662 FR_CHECK_TYPE_INCLUDE([
663 #ifdef HAVE_SYS_TYPES_H
664 #include <sys/types.h>
666 #ifdef HAVE_SYS_SOCKET_H
667 #include <sys/socket.h>
669 ],socklen_t, int, [socklen_t is generally 'int' on systems which don't use it])
671 dnl check for uint8_t
672 FR_CHECK_TYPE_INCLUDE([
673 #ifdef HAVE_INTTYPES_H
674 #include <inttypes.h>
679 ],uint8_t, unsigned char, [uint8_t should be the canonical 'octet' for network traffic])
681 dnl check for uint16_t
682 FR_CHECK_TYPE_INCLUDE([
683 #ifdef HAVE_INTTYPES_H
684 #include <inttypes.h>
689 ],uint16_t, unsigned short, [uint16_t should be the canonical '2 octets' for network traffic])
691 dnl check for uint32_t
692 FR_CHECK_TYPE_INCLUDE([
693 #ifdef HAVE_INTTYPES_H
694 #include <inttypes.h>
699 ],uint32_t, unsigned int, [uint32_t should be the canonical 'network integer])
701 AC_CHECK_TYPE(struct in6_addr, AC_DEFINE(HAVE_STRUCT_IN6_ADDR, 1, [IPv6 address structure]), [], [
702 #ifdef HAVE_NETINET_IN_H
703 #include <netinet/in.h>
707 AC_CHECK_TYPE(struct sockaddr_storage, AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1, [Generic socket addresses]), [], [
708 #ifdef HAVE_NETINET_IN_H
709 #include <netinet/in.h>
711 #ifdef HAVE_SYS_SOCKET_H
712 #include <sys/socket.h>
716 AC_CHECK_TYPE(struct sockaddr_in6, AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6, 1, [IPv6 socket addresses]), [], [
717 #ifdef HAVE_NETINET_IN_H
718 #include <netinet/in.h>
722 AC_CHECK_TYPE(struct addrinfo, AC_DEFINE(HAVE_STRUCT_ADDRINFO, 1, [Generic DNS lookups]), [], [
723 #ifdef HAVE_SYS_TYPES_H
724 #include <sys/types.h>
726 #ifdef HAVE_SYS_SOCKET_H
727 #include <sys/socket.h>
734 dnl #############################################################
736 dnl # 5. Checks for structures and functions
738 dnl #############################################################
769 RADIUSD_NEED_DECLARATIONS( \
782 dnl # check if we have utmpx.h
783 dnl # if so, check if struct utmpx has entry ut_xtime
784 dnl # if not, set it to define ut_xtime == ut_tv.tv_sec
785 if test "x$ac_cv_header_utmpx_h" = "xyes"
787 FR_CHECK_STRUCT_HAS_MEMBER([#include <utmpx.h>], [struct utmpx], ut_xtime)
788 if test "x$ac_cv_type_struct_utmpx_has_ut_xtime" = "x"
790 AC_DEFINE(ut_xtime,ut_tv.tv_sec, [define to something if you don't have ut_xtime in struct utmpx])
794 dnl # struct ip_pktinfo
795 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in_pktinfo], ipi_addr)
796 if test "x$ac_cv_type_struct_in_pktinfo_has_ipi_addr" = "xyes"
798 AC_DEFINE(HAVE_IP_PKTINFO, [], [define if you have IP_PKTINFO (Linux)])
801 dnl # struct in6_pktinfo
802 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in6_pktinfo], ipi6_addr)
803 if test "x$ac_cv_type_struct_in6_pktinfo_has_ipi6_addr" = "xyes"
805 AC_DEFINE(HAVE_IN6_PKTINFO, [], [define if you have IN6_PKTINFO (Linux)])
808 dnl #############################################################
810 dnl # 6. Checks for compiler characteristics
812 dnl #############################################################
815 dnl # Ensure that these are defined
820 dnl # See if this is OS/2
822 AC_MSG_CHECKING(type of OS)
825 if test "$OS" = "OS/2"; then
833 dnl # Set Default CFLAGS
835 if test "x$GCC" = "xyes"; then
836 CFLAGS="$CFLAGS -Wall -D_GNU_SOURCE"
839 AC_MSG_CHECKING(for developer gcc flags)
840 if test "x$developer" = "xyes" -a "x$GCC" = "xyes"; then
841 devflags="-g -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -W -Wredundant-decls -Wundef"
842 CFLAGS="$CFLAGS $devflags"
844 AC_MSG_RESULT(yes. Using $devflags)
847 CFLAGS="$CFLAGS -DNDEBUG"
852 dnl #############################################################
854 dnl # 7. Checks for library functions
856 dnl #############################################################
858 dnl Check for libcrypt
859 dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
860 AC_CHECK_LIB(crypt, crypt,
863 if test "$CRYPTLIB" != ""; then
864 AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function])
866 AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function]))
869 dnl Check for libcipher
870 AC_CHECK_LIB(cipher, setkey,
871 CRYPTLIB="${CRYPTLIB} -lcipher"
875 if test "x$WITH_SNMP" = "xyes"; then
879 dnl Check the style of gethostbyaddr, in order of preference
880 dnl GNU (_r eight args)
881 AC_DEFINE(GNUSTYLE, [1], [GNU-Style get*byaddr_r])
882 dnl SYSV (_r six args)
883 AC_DEFINE(SYSVSTYLE, [2], [SYSV-Style get*byaddr_r])
884 dnl BSD (three args, may not be thread safe)
885 AC_DEFINE(BSDSTYLE, [3], [BSD-Style get*byaddr_r])
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/1739____.HTM
888 dnl We need #stdio.h to define NULL on FreeBSD (at least)
889 gethostbyaddrrstyle=""
890 AC_MSG_CHECKING([gethostbyaddr_r() syntax])
893 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE, [style of gethostbyaddr_r functions ])
894 gethostbyaddrrstyle=BSD
895 AC_MSG_WARN([FreeBSD overridden to BSD-style])
898 if test "x$gethostbyaddrrstyle" = "x"; then
902 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL, NULL) ], [
903 AC_DEFINE(GETHOSTBYADDRRSTYLE, GNUSTYLE, [style of gethostbyaddr_r functions ])
904 gethostbyaddrrstyle=GNU
907 if test "x$gethostbyaddrrstyle" = "x"; then
911 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL) ] , [
912 AC_DEFINE(GETHOSTBYADDRRSTYLE, SYSVSTYLE, [style of gethostbyaddr_r functions ])
913 gethostbyaddrrstyle=SYSV
916 if test "x$gethostbyaddrrstyle" = "x"; then
920 ], [ gethostbyaddr(NULL, 0, 0) ], [
921 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE, [style of gethostbyaddr_r functions ])
922 gethostbyaddrrstyle=BSD
926 if test "x$gethostbyaddrrstyle" = "x"; then
927 AC_MSG_RESULT([none! It must not exist, here.])
929 AC_MSG_RESULT([${gethostbyaddrrstyle}-style])
932 if test "x$gethostbyaddrrstyle" = "xBSD"; then
933 AC_MSG_WARN([ ****** BSD-style gethostbyaddr might NOT be thread-safe! ****** ])
936 dnl Check the style of gethostbyname, in order of preference
937 dnl GNU (_r seven args)
938 dnl SYSV (_r five args)
939 dnl BSD (two args, may not be thread safe)
940 dnl Tru64 has BSD version, but it _is_ thread safe
941 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1946____.HTM
942 dnl We need #stdio.h to define NULL on FreeBSD (at least)
943 gethostbynamerstyle=""
944 AC_MSG_CHECKING([gethostbyname_r() syntax])
948 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL) ], [
949 AC_DEFINE(GETHOSTBYNAMERSTYLE, GNUSTYLE, [style of gethostbyname_r functions ])
950 gethostbynamerstyle=GNU
952 if test "x$gethostbynamerstyle" = "x"; then
956 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL) ] , [
957 AC_DEFINE(GETHOSTBYNAMERSTYLE, SYSVSTYLE, [style of gethostbyname_r functions ])
958 gethostbynamerstyle=SYSV
961 if test "x$gethostbynamerstyle" = "x"; then
965 ], [ gethostbyname(NULL) ], [
966 AC_DEFINE(GETHOSTBYNAMERSTYLE, BSDSTYLE, [style of gethostbyname_r functions ])
967 gethostbynamerstyle=BSD
971 if test "x$gethostbynamerstyle" = "x"; then
972 AC_MSG_RESULT([none! It must not exist, here.])
974 AC_MSG_RESULT([${gethostbynamerstyle}-style])
977 if test "x$gethostbynamerstyle" = "xBSD"; then
978 AC_MSG_WARN([ ****** BSD-style gethostbyname might NOT be thread-safe! ****** ])
981 dnl check for non-posix solaris ctime_r (extra buflen int arg)
982 AC_DEFINE(POSIXSTYLE, [1], [Posix-Style ctime_r])
983 AC_DEFINE(SOLARISSTYLE, [2], [Solaris-Style ctime_r])
985 AC_MSG_CHECKING([ctime_r() syntax])
988 ], [ ctime_r(NULL, NULL, 0) ], [
989 AC_DEFINE(CTIMERSTYLE, SOLARISSTYLE, [style of ctime_r function])
990 ctimerstyle="SOLARIS"
992 if test "x$ctimerstyle" = "x"; then
995 ], [ ctime_r(NULL, NULL) ], [
996 AC_DEFINE(CTIMERSTYLE, POSIXSTYLE, [style of ctime_r function])
1001 if test "x$ctimerstyle" = "x"; then
1002 AC_MSG_RESULT([none! It must not exist, here.])
1004 AC_MSG_RESULT([${ctimerstyle}-style])
1007 AC_SUBST(HOSTINFO, $host)
1009 dnl #############################################################
1011 dnl # 8. Checks for system services
1013 dnl #############################################################
1016 dnl # Figure out where libtool is located,
1020 AC_MSG_RESULT([top_builddir=$top_builddir])
1021 dnl # AC_SUBST(top_builddir)
1025 dnl import libtool stuff
1027 dnl #############################################################
1029 dnl # Configure in any module directories.
1031 dnl #############################################################
1033 mysubdirs="$LIBLTDLPATH"
1034 if test "x$EXPERIMENTAL" = "xyes"; then
1035 bar=`ls -1 "${srcdir}"/src/modules/rlm_*/configure | sed 's%/configure%%'`
1036 dnl # get rid of LF's.
1037 mysubdirs=`echo $mysubdirs $bar`
1040 dnl # Find 'configure' in ONLY the stable modules
1042 for bar in `cat "${srcdir}"/src/modules/stable`; do
1043 if test -f "${srcdir}"/src/modules/$bar/configure; then
1044 mysubdirs="$mysubdirs src/modules/$bar"
1049 dnl ############################################################
1050 dnl # make modules by list
1051 dnl #############################################################
1052 if test "x$EXPERIMENTAL" = "xyes"; then
1053 for foo in `ls -1 "${srcdir}"/src/modules | grep rlm_`; do
1054 MODULES="$MODULES $foo"
1058 dnl # make ONLY the stable modules
1060 for foo in `cat "${srcdir}"/src/modules/stable`; do
1061 MODULES="$MODULES $foo"
1066 dnl # Don't change the variable name here. Autoconf goes bonkers
1069 AC_CONFIG_SUBDIRS($LTDL_SUBDIRS $mysubdirs)
1072 dnl #############################################################
1074 dnl # And finally, output the results.
1076 dnl #############################################################
1078 AC_CONFIG_COMMANDS([stamp-h], [echo timestamp > src/include/stamp-h])
1079 AC_CONFIG_COMMANDS([build-radpaths-h], [(cd ./src/include && /bin/sh ./build-radpaths-h)])
1080 AC_CONFIG_COMMANDS([main-chmod], [(cd ./src/main && chmod +x checkrad.pl radlast radtest)])
1081 AC_CONFIG_COMMANDS([scripts-chmod], [(cd ./scripts && chmod +x rc.radiusd radwatch check-radiusd-config radiusd.cron.daily radiusd.cron.monthly cryptpasswd)])
1084 dnl # Substitute whatever libraries we found to be necessary
1087 AC_SUBST(INSTALLSTRIP)
1089 USE_SHARED_LIBS=$enable_shared
1090 AC_SUBST(USE_SHARED_LIBS)
1091 USE_STATIC_LIBS=$enable_static
1092 AC_SUBST(USE_STATIC_LIBS)
1093 AC_SUBST(STATIC_MODULES)
1094 AC_SUBST(RADIUSD_MAJOR_VERSION)
1095 AC_SUBST(RADIUSD_MINOR_VERSION)
1096 AC_SUBST(RADIUSD_VERSION)
1100 ./src/include/build-radpaths-h \
1101 ./src/main/Makefile \
1102 ./src/main/checkrad.pl \
1103 ./src/main/radlast \
1104 ./src/main/radtest \
1105 ./scripts/rc.radiusd \
1106 ./scripts/radwatch \
1107 ./scripts/check-radiusd-config \
1108 ./scripts/radiusd.cron.daily \
1109 ./scripts/radiusd.cron.monthly \
1110 ./scripts/cryptpasswd \
1111 ./raddb/dictionary \
1112 ./raddb/radiusd.conf \
1113 ./raddb/radrelay.conf