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_VERSION=`cat VERSION`
31 RADIUSD_MAJOR_VERSION=`cat VERSION | sed 's/\..*//'`
32 RADIUSD_MINOR_VERSION=`cat VERSION | sed 's/^2\.//'`
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] ],
120 [[\\/$]]* | ?:[[\\/]]* )
124 AC_MSG_ERROR([expected an absolute directory name for --with-docdir: $withval])
129 AC_MSG_RESULT($docdir)
130 if test "x$docdir" = xno; then
131 AC_MSG_WARN(Documentation files will NOT be installed.)
134 dnl extra argument: --with-logdir
135 logdir='${localstatedir}/log/radius'
136 AC_MSG_CHECKING(logdir)
138 [ --with-logdir=DIR Directory for logfiles [LOCALSTATEDIR/log/radius] ],
141 AC_MSG_ERROR(Need logdir)
145 [[\\/$]]* | ?:[[\\/]]* )
149 AC_MSG_ERROR([expected an absolute directory name for --with-logdir: $withval])
154 AC_MSG_RESULT($logdir)
156 dnl extra argument: --with-radacctdir
157 radacctdir='${logdir}/radacct'
158 AC_MSG_CHECKING(radacctdir)
159 AC_ARG_WITH(radacctdir,
160 [ --with-radacctdir=DIR Directory for detail files [LOGDIR/radacct] ],
163 AC_MSG_ERROR(Need radacctdir)
167 [[\\/$]]* | ?:[[\\/]]* )
168 radacctdir="$withval"
171 AC_MSG_ERROR([expected an absolute directory name for --with-radacctdir: $withval])
176 AC_MSG_RESULT($radacctdir)
178 dnl extra argument: --with-raddbdir
179 raddbdir='${sysconfdir}/raddb'
180 AC_MSG_CHECKING(raddbdir)
181 AC_ARG_WITH(raddbdir,
182 [ --with-raddbdir=DIR Directory for config files [SYSCONFDIR/raddb] ],
185 AC_MSG_ERROR(Need raddbdir)
189 [[\\/$]]* | ?:[[\\/]]* )
193 AC_MSG_ERROR([expected an absolute directory name for --with-raddbdir: $withval])
198 AC_MSG_RESULT($raddbdir)
200 dnl extra argument: --with-ascend-binary
202 AC_ARG_WITH(ascend-binary,
203 [ --with-ascend-binary Include support for Ascend binary filter attributes (default=yes)],
211 if test "X$ASCEND_BINARY" = "Xyes"; then
212 AC_DEFINE(ASCEND_BINARY, [], [Include support for Ascend binary filter attributes])
215 dnl extra argument: --with-threads
218 [ --with-threads Use threads, if available. (default=yes) ],
227 dnl extra argument: --with-vmps
230 [ --with-vmps Compile in VMPS support. (default=yes)],
238 if test "x$WITH_VMPS" = "xyes"; then
239 AC_DEFINE(WITH_VMPS, [1], [define if you want VMPS support])
242 dnl extra argument: --with-dhcp
244 [ --with-dhcp Compile in DHCP support. (default=no)],
247 AC_DEFINE(WITH_DHCP, [1], [Include experimental support for DHCP])
256 dnl # Allow the user to specify a list of modules to be linked
257 dnl # statically to the server.
260 AC_ARG_WITH(static_modules,
261 [ --with-static-modules=QUOTED-MODULE-LIST],[
262 for i in $withval; do
263 STATIC_MODULES="$STATIC_MODULES -dlpreopen ../modules/rlm_$i/rlm_$i.la"
269 [ --with-modules=QUOTED-MODULE-LIST],[
270 for i in $withval; do
271 MODULES="$MODULES $i"
276 dnl # Enable developer C compiler warnings
278 AC_ARG_ENABLE(developer,
279 [ --enable-developer Enables features of interest to developers.],
280 [ case "$enableval" in
289 if test "x$developer" != "xno" -a -d $srcdir/CVS; then
290 dnl turn on the developer flag when taken from a CVS checkout (not a release)
294 dnl extra argument: --with-experimental-modules
296 AC_ARG_WITH(experimental-modules,
297 [ --with-experimental-modules Use experimental and unstable modules. (default=no) ],
306 dnl extra argument: --with-openssl
309 [ --with-openssl Use OpenSSL. (default=yes)],
321 dnl # extra argument: --with-openssl-includes=dir
324 AC_ARG_WITH(openssl-includes,
325 [ --with-openssl-includes=DIR Directory to look for OpenSSL include files],
327 *) OPENSSL_INCLUDE_DIR="$withval"
333 dnl # extra argument: --with-openssl-libraries=dir
336 AC_ARG_WITH(openssl-libraries,
337 [ --with-openssl-libraries=DIR Directory to look for OpenSSL library files],
339 *) OPENSSL_LIB_DIR="$withval"
345 dnl # These next two arguments don't actually do anything. They're
346 dnl # place holders so that the top-level configure script can tell
347 dnl # the user how to configure lower-level modules
351 dnl # extra argument: --with-rlm-FOO-lib-dir
353 AC_ARG_WITH(rlm-FOO-lib-dir,
354 [ --with-rlm-FOO-lib-dir=DIR Directory to look for library files used by module FOO],
362 dnl # extra argument: --with-rlm-FOO-include-dir
364 AC_ARG_WITH(rlm-FOO-include-dir,
365 [ --with-rlm-FOO-include-dir=DIR Directory to look for include files used by module FOO],
372 dnl See what include-style is used by the make program.
373 dnl AC_MSG_CHECKING(include style for make)
374 dnl echo "include /dev/null" > testmake.$$
375 dnl echo "all:" >> testmake.$$
376 dnl make -f testmake.$$ >/dev/null 2>&1
385 dnl rm -f testmake.$$
386 dnl AC_MSG_RESULT(" $INCLUDE")
387 dnl AC_SUBST(INCLUDE)
390 dnl extra argument: --with-udpfromto
392 AC_ARG_WITH(udpfromto,
393 [ --with-udpfromto Compile in UDPFROMTO support. (default=no)],
403 if test "x$WITH_UDPFROMTO" = "xyes"; then
404 AC_DEFINE(WITH_UDPFROMTO, [], [define if you want udpfromto])
407 dnl #############################################################
409 dnl # 1. Checks for programs
411 dnl #############################################################
414 AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
415 if test "x$ac_cv_path_PERL" = "x"; then
416 AC_MSG_WARN(perl not found - Simultaneous-Use and checkrad.pl may not work)
418 AC_PATH_PROG(SNMPGET, snmpget)
419 if test "x$ac_cv_path_SNMPGET" = "x"; then
420 AC_MSG_WARN(snmpget not found - Simultaneous-Use and checkrad.pl may not work)
423 AC_PATH_PROG(SNMPWALK, snmpwalk)
424 if test "x$ac_cv_path_SNMPWALK" = "x"; then
425 AC_MSG_WARN(snmpwalk not found - Simultaneous-Use and checkrad.pl may not work)
428 AC_PATH_PROG(RUSERS, rusers, /usr/bin/rusers)
430 dnl FIXME This is truly gross.
431 missing_dir=`cd $ac_aux_dir && pwd`
432 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
433 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
434 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
436 AC_PATH_PROG(LOCATE,locate)
437 AC_PATH_PROG(DIRNAME,dirname)
438 AC_PATH_PROG(GREP,grep)
440 dnl #############################################################
442 dnl # 2. Checks for libraries
444 dnl #############################################################
446 dnl If using pthreads, check for -lpthread (posix) or -lc_r (*BSD)
448 if test "x$WITH_THREADS" = "xyes"; then
449 if test $ac_cv_prog_suncc = "yes"; then
453 AC_CHECK_HEADERS(pthread.h, [], [ WITH_THREADS="no" ])
456 dnl # pthread stuff is usually in -lpthread
457 dnl # or in -lc_r, on *BSD
459 dnl # On Some systems, we need extra pre-processor flags, to get them to
460 dnl # to do the threading properly.
462 AC_CHECK_LIB(pthread, pthread_create,
463 [ CFLAGS="$CFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
464 LIBS="$LIBS -lpthread" ],
465 AC_CHECK_LIB(c_r, pthread_create,
466 [ CFLAGS="$CFLAGS -pthread -D_THREAD_SAFE" ],
467 [ WITH_THREADS="no" ]
473 dnl # If we have NO pthread libraries, remove any knowledge of threads.
475 if test "x$WITH_THREADS" != "xyes"; then
477 ac_cv_header_pthread_h="no"
481 dnl # We need sem_init() and friends, as they're the friendliest
482 dnl # semaphore functions for threading.
484 dnl # HP/UX requires linking with librt, too, to get the sem_* symbols.
485 dnl # Some systems have them in -lsem
486 dnl # Solaris has them in -lposix4
487 dnl # NetBSD has them in -lsemaphore
489 AC_SEARCH_LIBS(sem_init, pthread sem posix4 rt semaphore,
491 [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)]
495 dnl Check if we need -lsocket
496 AC_CHECK_LIB(socket, getsockname)
498 dnl Check for -lresolv
499 dnl This library may be needed later.
500 AC_CHECK_LIB(resolv, inet_aton)
502 dnl Check if we need -lnsl. Usually if we want to
503 dnl link against -lsocket we need to include -lnsl as well.
504 AC_CHECK_LIB(nsl, inet_ntoa)
506 dnl Check for OpenSSL libraries.
508 if test "x$WITH_OPENSSL" = xyes; then
510 if test "x$OPENSSL_LIB_DIR" != "x"; then
511 LIBS="-L$OPENSSL_LIB_DIR $LIBS"
513 AC_CHECK_LIB(crypto, DH_new,
515 LIBS="-lcrypto $LIBS"
516 AC_DEFINE(HAVE_LIBCRYPTO, 1,
517 [Define to 1 if you have the `crypto' library (-lcrypto).])
518 AC_CHECK_LIB(ssl, SSL_new,
520 AC_DEFINE(HAVE_LIBSSL, 1,
521 [Define to 1 if you have the `ssl' library (-lssl).])
522 if test "x$OPENSSL_LIB_DIR" != "x"; then
523 OPENSSL_LIBS="-L$OPENSSL_LIB_DIR"
525 OPENSSL_LIBS="$OPENSSL_LIBS -lcrypto -lssl -lcrypto"
531 AC_CHECK_LIB(ws2_32, htonl)
533 dnl Check the pcap library for the RADIUS sniffer.
535 AC_CHECK_LIB(pcap, pcap_open_live,
537 AC_DEFINE(HAVE_LIBPCAP, 1,
538 [Define to 1 if you have the `pcap' library (-lpcap).])
540 [ AC_MSG_WARN([pcap library not found, silently disabling the RADIUS sniffer.]) ])
542 dnl #############################################################
544 dnl # 3. Checks for header files
546 dnl #############################################################
549 dnl # Interix requires us to set -D_ALL_SOURCE, otherwise
550 dnl # getopt will be #included, but won't link. <sigh>
555 CFLAGS="$CFLAGS -D_ALL_SOURCE"
558 CFLAGS="$CFLAGS -DDARWIN"
559 LIBS="-framework DirectoryService $LIBS"
605 dnl FreeBSD requires sys/socket.h before net/if.h
606 AC_CHECK_HEADERS(net/if.h, [], [],
607 [#ifdef HAVE_SYS_SOCKET_H
608 # include <sys/socket.h>
613 AC_CHECK_HEADER(regex.h, AC_DEFINE(HAVE_REGEX_H, [], [define this if we have the <regex.h> header file]))
614 if test "x$ac_cv_header_regex_h" = "xyes"; then
622 ], [AC_DEFINE(HAVE_REG_EXTENDED, [], [define this if we have REG_EXTENDED (from <regex.h>)]) REGEX_EXTENDED=yes])
625 AC_SUBST(REGEX_EXTENDED)
628 dnl # other checks which require headers
630 if test "x$ac_cv_header_sys_security_h" = "xyes" && test "x$ac_cv_header_prot_h" = "xyes"
632 AC_DEFINE(OSFC2, [], [define if you have OSFC2 authentication])
635 if test "x$ac_cv_header_sia_h" = "xyes" && test "x$ac_cv_header_siad_h" = "xyes"
637 AC_DEFINE(OSFSIA, [], [define if you have OSFSIA authentication])
640 dnl Check for OpenSSL includes.
641 OPENSSL_INCLUDE="-DNO_OPENSSL"
642 if test "x$WITH_OPENSSL" = xyes; then
643 if test "x$OPENSSL_LIBS" = "x"; then
644 AC_MSG_NOTICE([skipping test for openssl/ssl.h])
646 old_CPPFLAGS=$CPPFLAGS
647 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
648 CPPFLAGS="$CPPFLAGS -I$OPENSSL_INCLUDE_DIR"
650 dnl # stupid RedHat shit
651 CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_KRB5"
661 if test "x$OPENSSL_LIBS" != "x"; then
662 AC_MSG_CHECKING([for OpenSSL version >= 0.9.7])
664 [#include <openssl/crypto.h>
665 #if (OPENSSL_VERSION_NUMBER >= 0x00907000L)
669 if test "x$goodssl" != "xyes"; then
674 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
675 OPENSSL_INCLUDE="-I$OPENSSL_INCLUDE_DIR -DOPENSSL_NO_KRB5"
677 OPENSSL_INCLUDE="-DOPENSSL_NO_KRB5"
681 CPPFLAGS=$old_CPPFLAGS
684 AC_SUBST(OPENSSL_INCLUDE)
685 AC_SUBST(OPENSSL_LIBS)
688 dnl Check the pcap includes for the RADIUS sniffer.
689 if test "x$PCAP_LIBS" = x; then
690 AC_MSG_NOTICE([skipping test for pcap.h.])
692 AC_CHECK_HEADER(pcap.h,
693 AC_DEFINE(HAVE_PCAP_H, 1,
694 [Define to 1 if you have the <pcap.h> header file.]),
696 AC_MSG_WARN([pcap.h not found, silently disabling the RADIUS sniffer.])
701 dnl #############################################################
703 dnl # 4. Checks for typedefs
705 dnl #############################################################
708 dnl # Ensure that these are defined
715 dnl check for socklen_t
716 FR_CHECK_TYPE_INCLUDE([
717 #ifdef HAVE_SYS_TYPES_H
718 #include <sys/types.h>
720 #ifdef HAVE_SYS_SOCKET_H
721 #include <sys/socket.h>
723 ],socklen_t, int, [socklen_t is generally 'int' on systems which don't use it])
725 dnl check for uint8_t
726 FR_CHECK_TYPE_INCLUDE([
727 #ifdef HAVE_INTTYPES_H
728 #include <inttypes.h>
733 ],uint8_t, unsigned char, [uint8_t should be the canonical 'octet' for network traffic])
735 dnl check for uint16_t
736 FR_CHECK_TYPE_INCLUDE([
737 #ifdef HAVE_INTTYPES_H
738 #include <inttypes.h>
743 ],uint16_t, unsigned short, [uint16_t should be the canonical '2 octets' for network traffic])
745 dnl check for uint32_t
746 FR_CHECK_TYPE_INCLUDE([
747 #ifdef HAVE_INTTYPES_H
748 #include <inttypes.h>
753 ],uint32_t, unsigned int, [uint32_t should be the canonical 'network integer])
755 AC_CHECK_TYPE(struct in6_addr, AC_DEFINE(HAVE_STRUCT_IN6_ADDR, 1, [IPv6 address structure]), [], [
756 #ifdef HAVE_NETINET_IN_H
757 #include <netinet/in.h>
761 AC_CHECK_TYPE(struct sockaddr_storage, AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1, [Generic socket addresses]), [], [
762 #ifdef HAVE_NETINET_IN_H
763 #include <netinet/in.h>
765 #ifdef HAVE_SYS_SOCKET_H
766 #include <sys/socket.h>
770 AC_CHECK_TYPE(struct sockaddr_in6, AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6, 1, [IPv6 socket addresses]), [], [
771 #ifdef HAVE_NETINET_IN_H
772 #include <netinet/in.h>
776 AC_CHECK_TYPE(struct addrinfo, AC_DEFINE(HAVE_STRUCT_ADDRINFO, 1, [Generic DNS lookups]), [], [
777 #ifdef HAVE_SYS_TYPES_H
778 #include <sys/types.h>
780 #ifdef HAVE_SYS_SOCKET_H
781 #include <sys/socket.h>
788 dnl #############################################################
790 dnl # 5. Checks for structures and functions
792 dnl #############################################################
823 RADIUSD_NEED_DECLARATIONS( \
835 dnl # check if we have utmpx.h
836 dnl # if so, check if struct utmpx has entry ut_xtime
837 dnl # if not, set it to define ut_xtime == ut_tv.tv_sec
838 if test "x$ac_cv_header_utmpx_h" = "xyes"
840 FR_CHECK_STRUCT_HAS_MEMBER([#include <utmpx.h>], [struct utmpx], ut_xtime)
841 if test "x$ac_cv_type_struct_utmpx_has_ut_xtime" = "x"
843 AC_DEFINE(ut_xtime,ut_tv.tv_sec, [define to something if you don't have ut_xtime in struct utmpx])
847 dnl # struct ip_pktinfo
848 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in_pktinfo], ipi_addr)
849 if test "x$ac_cv_type_struct_in_pktinfo_has_ipi_addr" = "xyes"
851 AC_DEFINE(HAVE_IP_PKTINFO, [], [define if you have IP_PKTINFO (Linux)])
854 dnl # struct in6_pktinfo
855 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in6_pktinfo], ipi6_addr)
856 if test "x$ac_cv_type_struct_in6_pktinfo_has_ipi6_addr" = "xyes"
858 AC_DEFINE(HAVE_IN6_PKTINFO, [], [define if you have IN6_PKTINFO (Linux)])
861 dnl #############################################################
863 dnl # 6. Checks for compiler characteristics
865 dnl #############################################################
868 dnl # Ensure that these are defined
873 dnl # See if this is OS/2
875 AC_MSG_CHECKING(type of OS)
878 if test "$OS" = "OS/2"; then
886 dnl # Set Default CFLAGS
888 if test "x$GCC" = "xyes"; then
889 CFLAGS="$CFLAGS -Wall -D_GNU_SOURCE"
892 AC_MSG_CHECKING(for developer gcc flags)
893 if test "x$developer" = "xyes" -a "x$GCC" = "xyes"; then
894 devflags="-g -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -W -Wredundant-decls -Wundef"
895 CFLAGS="$CFLAGS $devflags"
897 AC_MSG_RESULT(yes. Using $devflags)
900 CFLAGS="$CFLAGS -DNDEBUG"
905 dnl #############################################################
907 dnl # 7. Checks for library functions
909 dnl #############################################################
911 dnl Check for libcrypt
912 dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
913 AC_CHECK_LIB(crypt, crypt,
916 if test "$CRYPTLIB" != ""; then
917 AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function])
919 AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function]))
922 dnl Check for libcipher
923 AC_CHECK_LIB(cipher, setkey,
924 CRYPTLIB="${CRYPTLIB} -lcipher"
928 dnl Check the style of gethostbyaddr, in order of preference
929 dnl GNU (_r eight args)
930 AC_DEFINE(GNUSTYLE, [1], [GNU-Style get*byaddr_r])
931 dnl SYSV (_r six args)
932 AC_DEFINE(SYSVSTYLE, [2], [SYSV-Style get*byaddr_r])
933 dnl BSD (three args, may not be thread safe)
934 AC_DEFINE(BSDSTYLE, [3], [BSD-Style get*byaddr_r])
935 dnl Tru64 has BSD version, but it is thread safe
936 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1739____.HTM
937 dnl We need #stdio.h to define NULL on FreeBSD (at least)
938 gethostbyaddrrstyle=""
939 AC_MSG_CHECKING([gethostbyaddr_r() syntax])
942 dnl With FreeBSD, check if there's a prototype for gethostbyaddr_r.
943 dnl Some versions (FreeBSD 5.1?) have a symbol but no prototype - so we
944 dnl override this test to BSDSTYLE. FreeBSD 6.2 and up have proper GNU
946 AC_CHECK_DECLS([gethostbyaddr_r], [], [
947 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE,
948 [style of gethostbyaddr_r functions ])
949 gethostbyaddrrstyle=BSD
950 AC_MSG_WARN([FreeBSD overridden to BSD-style])
958 if test "x$gethostbyaddrrstyle" = "x"; then
962 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL, NULL) ], [
963 AC_DEFINE(GETHOSTBYADDRRSTYLE, GNUSTYLE, [style of gethostbyaddr_r functions ])
964 gethostbyaddrrstyle=GNU
967 if test "x$gethostbyaddrrstyle" = "x"; then
971 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL) ] , [
972 AC_DEFINE(GETHOSTBYADDRRSTYLE, SYSVSTYLE, [style of gethostbyaddr_r functions ])
973 gethostbyaddrrstyle=SYSV
976 if test "x$gethostbyaddrrstyle" = "x"; then
980 ], [ gethostbyaddr(NULL, 0, 0) ], [
981 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE, [style of gethostbyaddr_r functions ])
982 gethostbyaddrrstyle=BSD
986 if test "x$gethostbyaddrrstyle" = "x"; then
987 AC_MSG_RESULT([none! It must not exist, here.])
989 AC_MSG_RESULT([${gethostbyaddrrstyle}-style])
992 if test "x$gethostbyaddrrstyle" = "xBSD"; then
993 AC_MSG_WARN([ ****** BSD-style gethostbyaddr might NOT be thread-safe! ****** ])
996 dnl Check the style of gethostbyname, in order of preference
997 dnl GNU (_r seven args)
998 dnl SYSV (_r five args)
999 dnl BSD (two args, may not be thread safe)
1000 dnl Tru64 has BSD version, but it _is_ thread safe
1001 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1946____.HTM
1002 dnl We need #stdio.h to define NULL on FreeBSD (at least)
1003 gethostbynamerstyle=""
1004 AC_MSG_CHECKING([gethostbyname_r() syntax])
1008 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL) ], [
1009 AC_DEFINE(GETHOSTBYNAMERSTYLE, GNUSTYLE, [style of gethostbyname_r functions ])
1010 gethostbynamerstyle=GNU
1012 if test "x$gethostbynamerstyle" = "x"; then
1016 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL) ] , [
1017 AC_DEFINE(GETHOSTBYNAMERSTYLE, SYSVSTYLE, [style of gethostbyname_r functions ])
1018 gethostbynamerstyle=SYSV
1021 if test "x$gethostbynamerstyle" = "x"; then
1025 ], [ gethostbyname(NULL) ], [
1026 AC_DEFINE(GETHOSTBYNAMERSTYLE, BSDSTYLE, [style of gethostbyname_r functions ])
1027 gethostbynamerstyle=BSD
1031 if test "x$gethostbynamerstyle" = "x"; then
1032 AC_MSG_RESULT([none! It must not exist, here.])
1034 AC_MSG_RESULT([${gethostbynamerstyle}-style])
1037 if test "x$gethostbynamerstyle" = "xBSD"; then
1038 AC_MSG_WARN([ ****** BSD-style gethostbyname might NOT be thread-safe! ****** ])
1041 dnl check for non-posix solaris ctime_r (extra buflen int arg)
1042 AC_DEFINE(POSIXSTYLE, [1], [Posix-Style ctime_r])
1043 AC_DEFINE(SOLARISSTYLE, [2], [Solaris-Style ctime_r])
1045 AC_MSG_CHECKING([ctime_r() syntax])
1048 ], [ ctime_r(NULL, NULL, 0) ], [
1049 AC_DEFINE(CTIMERSTYLE, SOLARISSTYLE, [style of ctime_r function])
1050 ctimerstyle="SOLARIS"
1052 if test "x$ctimerstyle" = "x"; then
1055 ], [ ctime_r(NULL, NULL) ], [
1056 AC_DEFINE(CTIMERSTYLE, POSIXSTYLE, [style of ctime_r function])
1061 if test "x$ctimerstyle" = "x"; then
1062 AC_MSG_RESULT([none! It must not exist, here.])
1064 AC_MSG_RESULT([${ctimerstyle}-style])
1067 AC_SUBST(HOSTINFO, $host)
1069 dnl #############################################################
1071 dnl # 8. Checks for system services
1073 dnl #############################################################
1076 dnl # Figure out where libtool is located,
1080 AC_MSG_RESULT([top_builddir=$top_builddir])
1081 dnl # AC_SUBST(top_builddir)
1085 dnl import libtool stuff
1087 dnl #############################################################
1089 dnl # Configure in any module directories.
1091 dnl #############################################################
1093 mysubdirs="$LIBLTDLPATH"
1094 if test "x$EXPERIMENTAL" = "xyes"; then
1095 bar=`ls -1 "${srcdir}"/src/modules/rlm_*/configure | sed 's%/configure%%'`
1096 dnl # get rid of LF's.
1097 mysubdirs=`echo $mysubdirs $bar`
1100 dnl # Find 'configure' in ONLY the stable modules
1102 for bar in `cat "${srcdir}"/src/modules/stable`; do
1103 if test -f "${srcdir}"/src/modules/$bar/configure; then
1104 mysubdirs="$mysubdirs src/modules/$bar"
1109 dnl ############################################################
1110 dnl # make modules by list
1111 dnl #############################################################
1112 if test "x$EXPERIMENTAL" = "xyes"; then
1113 for foo in `ls -1 "${srcdir}"/src/modules | grep rlm_`; do
1114 MODULES="$MODULES $foo"
1118 dnl # make ONLY the stable modules
1120 for foo in `cat "${srcdir}"/src/modules/stable`; do
1121 MODULES="$MODULES $foo"
1126 dnl # Don't change the variable name here. Autoconf goes bonkers
1129 AC_CONFIG_SUBDIRS($LTDL_SUBDIRS $mysubdirs)
1132 dnl #############################################################
1134 dnl # And finally, output the results.
1136 dnl #############################################################
1138 AC_CONFIG_COMMANDS([stamp-h], [echo timestamp > src/include/stamp-h])
1139 AC_CONFIG_COMMANDS([build-radpaths-h], [(cd ./src/include && /bin/sh ./build-radpaths-h)])
1140 AC_CONFIG_COMMANDS([main-chmod], [(cd ./src/main && chmod +x checkrad.pl radlast radtest)])
1141 AC_CONFIG_COMMANDS([scripts-chmod], [(cd ./scripts && chmod +x rc.radiusd radwatch radiusd.cron.daily radiusd.cron.monthly cryptpasswd)])
1144 dnl # Substitute whatever libraries we found to be necessary
1147 AC_SUBST(INSTALLSTRIP)
1149 USE_SHARED_LIBS=$enable_shared
1150 AC_SUBST(USE_SHARED_LIBS)
1151 USE_STATIC_LIBS=$enable_static
1152 AC_SUBST(USE_STATIC_LIBS)
1153 AC_SUBST(STATIC_MODULES)
1154 AC_SUBST(RADIUSD_MAJOR_VERSION)
1155 AC_SUBST(RADIUSD_MINOR_VERSION)
1156 AC_SUBST(RADIUSD_VERSION)
1160 ./src/include/build-radpaths-h \
1161 ./src/main/Makefile \
1162 ./src/main/checkrad.pl \
1163 ./src/main/radlast \
1164 ./src/main/radtest \
1165 ./scripts/rc.radiusd \
1166 ./scripts/radwatch \
1167 ./scripts/radiusd.cron.daily \
1168 ./scripts/radiusd.cron.monthly \
1169 ./scripts/cryptpasswd \
1170 ./raddb/dictionary \
1171 ./raddb/radiusd.conf