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-pre2
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] ],
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-snmp
230 [ --with-snmp Compile in SNMP support. (default=yes)],
240 dnl # extra argument: --with-snmp-include-dir
242 AC_ARG_WITH(snmp-include-dir,
243 [ --with-snmp-include-dir=DIR Directory to look for include files used by SNMP],
250 dnl extra argument: --with-vmps
253 [ --with-vmps Compile in VMPS support. (default=yes)],
261 if test "x$WITH_VMPS" = "xyes"; then
262 AC_DEFINE(WITH_VMPS, [], [define if you want VMPS support])
267 dnl # Allow the user to specify a list of modules to be linked
268 dnl # statically to the server.
271 AC_ARG_WITH(static_modules,
272 [ --with-static-modules=QUOTED-MODULE-LIST],[
273 for i in $withval; do
274 STATIC_MODULES="$STATIC_MODULES -dlpreopen ../modules/rlm_$i/rlm_$i.la"
280 [ --with-modules=QUOTED-MODULE-LIST],[
281 for i in $withval; do
282 MODULES="$MODULES $i"
287 dnl # Enable developer C compiler warnings
289 AC_ARG_ENABLE(developer,
290 [ --enable-developer Enables features of interest to developers.],
291 [ case "$enableval" in
300 if test "x$developer" != "xno" -a -d $srcdir/CVS; then
301 dnl turn on the developer flag when taken from a CVS checkout (not a release)
305 dnl extra argument: --with-experimental-modules
307 AC_ARG_WITH(experimental-modules,
308 [ --with-experimental-modules Use experimental and unstable modules. (default=no) ],
317 dnl extra argument: --with-openssl
320 [ --with-openssl Use OpenSSL. (default=yes)],
332 dnl # extra argument: --with-openssl-includes=dir
335 AC_ARG_WITH(openssl-includes,
336 [ --with-openssl-includes=DIR Directory to look for OpenSSL include files],
338 *) OPENSSL_INCLUDE_DIR="$withval"
344 dnl # extra argument: --with-openssl-libraries=dir
347 AC_ARG_WITH(openssl-libraries,
348 [ --with-openssl-libraries=DIR Directory to look for OpenSSL library files],
350 *) OPENSSL_LIB_DIR="$withval"
356 dnl # These next two arguments don't actually do anything. They're
357 dnl # place holders so that the top-level configure script can tell
358 dnl # the user how to configure lower-level modules
362 dnl # extra argument: --with-rlm-FOO-lib-dir
364 AC_ARG_WITH(rlm-FOO-lib-dir,
365 [ --with-rlm-FOO-lib-dir=DIR Directory to look for library files used by module FOO],
373 dnl # extra argument: --with-rlm-FOO-include-dir
375 AC_ARG_WITH(rlm-FOO-include-dir,
376 [ --with-rlm-FOO-include-dir=DIR Directory to look for include files used by module FOO],
383 dnl See what include-style is used by the make program.
384 dnl AC_MSG_CHECKING(include style for make)
385 dnl echo "include /dev/null" > testmake.$$
386 dnl echo "all:" >> testmake.$$
387 dnl make -f testmake.$$ >/dev/null 2>&1
396 dnl rm -f testmake.$$
397 dnl AC_MSG_RESULT(" $INCLUDE")
398 dnl AC_SUBST(INCLUDE)
401 dnl extra argument: --with-udpfromto
403 AC_ARG_WITH(udpfromto,
404 [ --with-udpfromto Compile in UDPFROMTO support. (default=yes)],
414 if test "x$WITH_UDPFROMTO" = "xyes"; then
415 AC_DEFINE(WITH_UDPFROMTO, [], [define if you want udpfromto])
418 dnl #############################################################
420 dnl # 1. Checks for programs
422 dnl #############################################################
425 AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
426 if test "x$ac_cv_path_PERL" = "x"; then
427 AC_MSG_WARN(perl not found - Simultaneous-Use and checkrad.pl may not work)
429 AC_PATH_PROG(SNMPGET, snmpget)
430 if test "x$ac_cv_path_SNMPGET" = "x"; then
431 AC_MSG_WARN(snmpget not found - Simultaneous-Use and checkrad.pl may not work)
434 AC_PATH_PROG(SNMPWALK, snmpwalk)
435 if test "x$ac_cv_path_SNMPWALK" = "x"; then
436 AC_MSG_WARN(snmpwalk not found - Simultaneous-Use and checkrad.pl may not work)
439 AC_PATH_PROG(RUSERS, rusers, /usr/bin/rusers)
441 dnl FIXME This is truly gross.
442 missing_dir=`cd $ac_aux_dir && pwd`
443 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
444 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
445 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
447 AC_PATH_PROG(LOCATE,locate)
448 AC_PATH_PROG(DIRNAME,dirname)
449 AC_PATH_PROG(GREP,grep)
451 dnl #############################################################
453 dnl # 2. Checks for libraries
455 dnl #############################################################
457 dnl If using pthreads, check for -lpthread (posix) or -lc_r (*BSD)
459 if test "x$WITH_THREADS" = "xyes"; then
460 if test $ac_cv_prog_suncc = "yes"; then
464 AC_CHECK_HEADERS(pthread.h, [], [ WITH_THREADS="no" ])
467 dnl # pthread stuff is usually in -lpthread
468 dnl # or in -lc_r, on *BSD
470 dnl # On Some systems, we need extra pre-processor flags, to get them to
471 dnl # to do the threading properly.
473 AC_CHECK_LIB(pthread, pthread_create,
474 [ CFLAGS="$CFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
475 LIBS="$LIBS -lpthread" ],
476 AC_CHECK_LIB(c_r, pthread_create,
477 [ CFLAGS="$CFLAGS -pthread -D_THREAD_SAFE" ],
478 [ WITH_THREADS="no" ]
484 dnl # If we have NO pthread libraries, remove any knowledge of threads.
486 if test "x$WITH_THREADS" != "xyes"; then
488 ac_cv_header_pthread_h="no"
492 dnl # We need sem_init() and friends, as they're the friendliest
493 dnl # semaphore functions for threading.
495 dnl # HP/UX requires linking with librt, too, to get the sem_* symbols.
496 dnl # Some systems have them in -lsem
497 dnl # Solaris has them in -lposix4
498 dnl # NetBSD has them in -lsemaphore
500 AC_SEARCH_LIBS(sem_init, pthread sem posix4 rt semaphore,
502 [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)]
506 dnl Check if we need -lsocket
507 AC_CHECK_LIB(socket, getsockname)
509 dnl Check for -lresolv
510 dnl This library may be needed later.
511 AC_CHECK_LIB(resolv, inet_aton)
513 dnl Check if we need -lnsl. Usually if we want to
514 dnl link against -lsocket we need to include -lnsl as well.
515 AC_CHECK_LIB(nsl, inet_ntoa)
517 dnl Check for OpenSSL libraries.
519 if test "x$WITH_OPENSSL" = xyes; then
521 if test "x$OPENSSL_LIB_DIR" != "x"; then
522 LIBS="-L$OPENSSL_LIB_DIR $LIBS"
524 AC_CHECK_LIB(crypto, DH_new,
526 AC_DEFINE(HAVE_LIBCRYPTO, 1,
527 [Define to 1 if you have the `crypto' library (-lcrypto).])
528 AC_CHECK_LIB(ssl, SSL_new,
530 AC_DEFINE(HAVE_LIBSSL, 1,
531 [Define to 1 if you have the `ssl' library (-lssl).])
532 if test "x$OPENSSL_LIB_DIR" != "x"; then
533 OPENSSL_LIBS="-L$OPENSSL_LIB_DIR"
535 OPENSSL_LIBS="$OPENSSL_LIBS -lcrypto -lssl -lcrypto"
541 AC_CHECK_LIB(ws2_32, htonl)
543 dnl Check the pcap library for the RADIUS sniffer.
545 AC_CHECK_LIB(pcap, pcap_open_live,
547 AC_DEFINE(HAVE_LIBPCAP, 1,
548 [Define to 1 if you have the `pcap' library (-lpcap).])
550 [ AC_MSG_WARN([pcap library not found, silently disabling the RADIUS sniffer.]) ])
552 dnl #############################################################
554 dnl # 3. Checks for header files
556 dnl #############################################################
559 dnl # Interix requires us to set -D_ALL_SOURCE, otherwise
560 dnl # getopt will be #included, but won't link. <sigh>
565 CFLAGS="$CFLAGS -D_ALL_SOURCE"
568 CFLAGS="$CFLAGS -DDARWIN"
612 dnl FreeBSD requires sys/socket.h before net/if.h
613 AC_CHECK_HEADERS(net/if.h, [], [],
614 [#ifdef HAVE_SYS_SOCKET_H
615 # include <sys/socket.h>
620 AC_CHECK_HEADER(regex.h, AC_DEFINE(HAVE_REGEX_H, [], [define this if we have the <regex.h> header file]))
621 if test "x$ac_cv_header_regex_h" = "xyes"; then
629 ], [AC_DEFINE(HAVE_REG_EXTENDED, [], [define this if we have REG_EXTENDED (from <regex.h>)]) REGEX_EXTENDED=yes])
632 AC_SUBST(REGEX_EXTENDED)
635 dnl # other checks which require headers
637 if test "x$ac_cv_header_sys_security_h" = "xyes" && test "x$ac_cv_header_prot_h" = "xyes"
639 AC_DEFINE(OSFC2, [], [define if you have OSFC2 authentication])
642 if test "x$ac_cv_header_sia_h" = "xyes" && test "x$ac_cv_header_siad_h" = "xyes"
644 AC_DEFINE(OSFSIA, [], [define if you have OSFSIA authentication])
647 dnl Check for OpenSSL includes.
648 OPENSSL_INCLUDE="-DNO_OPENSSL"
649 if test "x$WITH_OPENSSL" = xyes; then
650 if test "x$OPENSSL_LIBS" = "x"; then
651 AC_MSG_NOTICE([skipping test for openssl/ssl.h])
653 old_CPPFLAGS=$CPPFLAGS
654 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
655 CPPFLAGS="$CPPFLAGS -I$OPENSSL_INCLUDE_DIR"
657 dnl # stupid RedHat shit
658 CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_KRB5"
667 if test "x$OPENSSL_LIBS" != "x"; then
668 AC_MSG_CHECKING([for OpenSSL version >= 0.9.7])
670 [#include <openssl/crypto.h>
671 #if (OPENSSL_VERSION_NUMBER >= 0x00907000L)
675 if test "x$goodssl" != "xyes"; then
680 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
681 OPENSSL_INCLUDE="-I$OPENSSL_INCLUDE_DIR -DOPENSSL_NO_KRB5"
683 OPENSSL_INCLUDE="-DOPENSSL_NO_KRB5"
687 CPPFLAGS=$old_CPPFLAGS
690 AC_SUBST(OPENSSL_INCLUDE)
691 AC_SUBST(OPENSSL_LIBS)
694 dnl Check the pcap includes for the RADIUS sniffer.
695 if test "x$PCAP_LIBS" = x; then
696 AC_MSG_NOTICE([skipping test for pcap.h.])
698 AC_CHECK_HEADER(pcap.h,
699 AC_DEFINE(HAVE_PCAP_H, 1,
700 [Define to 1 if you have the <pcap.h> header file.]),
702 AC_MSG_WARN([pcap.h not found, silently disabling the RADIUS sniffer.])
707 dnl #############################################################
709 dnl # 4. Checks for typedefs
711 dnl #############################################################
714 dnl # Ensure that these are defined
721 dnl check for socklen_t
722 FR_CHECK_TYPE_INCLUDE([
723 #ifdef HAVE_SYS_TYPES_H
724 #include <sys/types.h>
726 #ifdef HAVE_SYS_SOCKET_H
727 #include <sys/socket.h>
729 ],socklen_t, int, [socklen_t is generally 'int' on systems which don't use it])
731 dnl check for uint8_t
732 FR_CHECK_TYPE_INCLUDE([
733 #ifdef HAVE_INTTYPES_H
734 #include <inttypes.h>
739 ],uint8_t, unsigned char, [uint8_t should be the canonical 'octet' for network traffic])
741 dnl check for uint16_t
742 FR_CHECK_TYPE_INCLUDE([
743 #ifdef HAVE_INTTYPES_H
744 #include <inttypes.h>
749 ],uint16_t, unsigned short, [uint16_t should be the canonical '2 octets' for network traffic])
751 dnl check for uint32_t
752 FR_CHECK_TYPE_INCLUDE([
753 #ifdef HAVE_INTTYPES_H
754 #include <inttypes.h>
759 ],uint32_t, unsigned int, [uint32_t should be the canonical 'network integer])
761 AC_CHECK_TYPE(struct in6_addr, AC_DEFINE(HAVE_STRUCT_IN6_ADDR, 1, [IPv6 address structure]), [], [
762 #ifdef HAVE_NETINET_IN_H
763 #include <netinet/in.h>
767 AC_CHECK_TYPE(struct sockaddr_storage, AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1, [Generic socket addresses]), [], [
768 #ifdef HAVE_NETINET_IN_H
769 #include <netinet/in.h>
771 #ifdef HAVE_SYS_SOCKET_H
772 #include <sys/socket.h>
776 AC_CHECK_TYPE(struct sockaddr_in6, AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6, 1, [IPv6 socket addresses]), [], [
777 #ifdef HAVE_NETINET_IN_H
778 #include <netinet/in.h>
782 AC_CHECK_TYPE(struct addrinfo, AC_DEFINE(HAVE_STRUCT_ADDRINFO, 1, [Generic DNS lookups]), [], [
783 #ifdef HAVE_SYS_TYPES_H
784 #include <sys/types.h>
786 #ifdef HAVE_SYS_SOCKET_H
787 #include <sys/socket.h>
794 dnl #############################################################
796 dnl # 5. Checks for structures and functions
798 dnl #############################################################
829 RADIUSD_NEED_DECLARATIONS( \
841 dnl # check if we have utmpx.h
842 dnl # if so, check if struct utmpx has entry ut_xtime
843 dnl # if not, set it to define ut_xtime == ut_tv.tv_sec
844 if test "x$ac_cv_header_utmpx_h" = "xyes"
846 FR_CHECK_STRUCT_HAS_MEMBER([#include <utmpx.h>], [struct utmpx], ut_xtime)
847 if test "x$ac_cv_type_struct_utmpx_has_ut_xtime" = "x"
849 AC_DEFINE(ut_xtime,ut_tv.tv_sec, [define to something if you don't have ut_xtime in struct utmpx])
853 dnl # struct ip_pktinfo
854 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in_pktinfo], ipi_addr)
855 if test "x$ac_cv_type_struct_in_pktinfo_has_ipi_addr" = "xyes"
857 AC_DEFINE(HAVE_IP_PKTINFO, [], [define if you have IP_PKTINFO (Linux)])
860 dnl # struct in6_pktinfo
861 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in6_pktinfo], ipi6_addr)
862 if test "x$ac_cv_type_struct_in6_pktinfo_has_ipi6_addr" = "xyes"
864 AC_DEFINE(HAVE_IN6_PKTINFO, [], [define if you have IN6_PKTINFO (Linux)])
867 dnl #############################################################
869 dnl # 6. Checks for compiler characteristics
871 dnl #############################################################
874 dnl # Ensure that these are defined
879 dnl # See if this is OS/2
881 AC_MSG_CHECKING(type of OS)
884 if test "$OS" = "OS/2"; then
892 dnl # Set Default CFLAGS
894 if test "x$GCC" = "xyes"; then
895 CFLAGS="$CFLAGS -Wall -D_GNU_SOURCE"
898 AC_MSG_CHECKING(for developer gcc flags)
899 if test "x$developer" = "xyes" -a "x$GCC" = "xyes"; then
900 devflags="-g -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -W -Wredundant-decls -Wundef"
901 CFLAGS="$CFLAGS $devflags"
903 AC_MSG_RESULT(yes. Using $devflags)
906 CFLAGS="$CFLAGS -DNDEBUG"
911 dnl #############################################################
913 dnl # 7. Checks for library functions
915 dnl #############################################################
917 dnl Check for libcrypt
918 dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
919 AC_CHECK_LIB(crypt, crypt,
922 if test "$CRYPTLIB" != ""; then
923 AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function])
925 AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function]))
928 dnl Check for libcipher
929 AC_CHECK_LIB(cipher, setkey,
930 CRYPTLIB="${CRYPTLIB} -lcipher"
934 if test "x$WITH_SNMP" = "xyes"; then
938 dnl Check the style of gethostbyaddr, in order of preference
939 dnl GNU (_r eight args)
940 AC_DEFINE(GNUSTYLE, [1], [GNU-Style get*byaddr_r])
941 dnl SYSV (_r six args)
942 AC_DEFINE(SYSVSTYLE, [2], [SYSV-Style get*byaddr_r])
943 dnl BSD (three args, may not be thread safe)
944 AC_DEFINE(BSDSTYLE, [3], [BSD-Style get*byaddr_r])
945 dnl Tru64 has BSD version, but it is thread safe
946 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1739____.HTM
947 dnl We need #stdio.h to define NULL on FreeBSD (at least)
948 gethostbyaddrrstyle=""
949 AC_MSG_CHECKING([gethostbyaddr_r() syntax])
952 dnl With FreeBSD, check if there's a prototype for gethostbyaddr_r.
953 dnl Some versions (FreeBSD 5.1?) have a symbol but no prototype - so we
954 dnl override this test to BSDSTYLE. FreeBSD 6.2 and up have proper GNU
956 AC_CHECK_DECLS([gethostbyaddr_r], [], [
957 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE,
958 [style of gethostbyaddr_r functions ])
959 gethostbyaddrrstyle=BSD
960 AC_MSG_WARN([FreeBSD overridden to BSD-style])
968 if test "x$gethostbyaddrrstyle" = "x"; then
972 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL, NULL) ], [
973 AC_DEFINE(GETHOSTBYADDRRSTYLE, GNUSTYLE, [style of gethostbyaddr_r functions ])
974 gethostbyaddrrstyle=GNU
977 if test "x$gethostbyaddrrstyle" = "x"; then
981 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL) ] , [
982 AC_DEFINE(GETHOSTBYADDRRSTYLE, SYSVSTYLE, [style of gethostbyaddr_r functions ])
983 gethostbyaddrrstyle=SYSV
986 if test "x$gethostbyaddrrstyle" = "x"; then
990 ], [ gethostbyaddr(NULL, 0, 0) ], [
991 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE, [style of gethostbyaddr_r functions ])
992 gethostbyaddrrstyle=BSD
996 if test "x$gethostbyaddrrstyle" = "x"; then
997 AC_MSG_RESULT([none! It must not exist, here.])
999 AC_MSG_RESULT([${gethostbyaddrrstyle}-style])
1002 if test "x$gethostbyaddrrstyle" = "xBSD"; then
1003 AC_MSG_WARN([ ****** BSD-style gethostbyaddr might NOT be thread-safe! ****** ])
1006 dnl Check the style of gethostbyname, in order of preference
1007 dnl GNU (_r seven args)
1008 dnl SYSV (_r five args)
1009 dnl BSD (two args, may not be thread safe)
1010 dnl Tru64 has BSD version, but it _is_ thread safe
1011 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1946____.HTM
1012 dnl We need #stdio.h to define NULL on FreeBSD (at least)
1013 gethostbynamerstyle=""
1014 AC_MSG_CHECKING([gethostbyname_r() syntax])
1018 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL) ], [
1019 AC_DEFINE(GETHOSTBYNAMERSTYLE, GNUSTYLE, [style of gethostbyname_r functions ])
1020 gethostbynamerstyle=GNU
1022 if test "x$gethostbynamerstyle" = "x"; then
1026 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL) ] , [
1027 AC_DEFINE(GETHOSTBYNAMERSTYLE, SYSVSTYLE, [style of gethostbyname_r functions ])
1028 gethostbynamerstyle=SYSV
1031 if test "x$gethostbynamerstyle" = "x"; then
1035 ], [ gethostbyname(NULL) ], [
1036 AC_DEFINE(GETHOSTBYNAMERSTYLE, BSDSTYLE, [style of gethostbyname_r functions ])
1037 gethostbynamerstyle=BSD
1041 if test "x$gethostbynamerstyle" = "x"; then
1042 AC_MSG_RESULT([none! It must not exist, here.])
1044 AC_MSG_RESULT([${gethostbynamerstyle}-style])
1047 if test "x$gethostbynamerstyle" = "xBSD"; then
1048 AC_MSG_WARN([ ****** BSD-style gethostbyname might NOT be thread-safe! ****** ])
1051 dnl check for non-posix solaris ctime_r (extra buflen int arg)
1052 AC_DEFINE(POSIXSTYLE, [1], [Posix-Style ctime_r])
1053 AC_DEFINE(SOLARISSTYLE, [2], [Solaris-Style ctime_r])
1055 AC_MSG_CHECKING([ctime_r() syntax])
1058 ], [ ctime_r(NULL, NULL, 0) ], [
1059 AC_DEFINE(CTIMERSTYLE, SOLARISSTYLE, [style of ctime_r function])
1060 ctimerstyle="SOLARIS"
1062 if test "x$ctimerstyle" = "x"; then
1065 ], [ ctime_r(NULL, NULL) ], [
1066 AC_DEFINE(CTIMERSTYLE, POSIXSTYLE, [style of ctime_r function])
1071 if test "x$ctimerstyle" = "x"; then
1072 AC_MSG_RESULT([none! It must not exist, here.])
1074 AC_MSG_RESULT([${ctimerstyle}-style])
1077 AC_SUBST(HOSTINFO, $host)
1079 dnl #############################################################
1081 dnl # 8. Checks for system services
1083 dnl #############################################################
1086 dnl # Figure out where libtool is located,
1090 AC_MSG_RESULT([top_builddir=$top_builddir])
1091 dnl # AC_SUBST(top_builddir)
1095 dnl import libtool stuff
1097 dnl #############################################################
1099 dnl # Configure in any module directories.
1101 dnl #############################################################
1103 mysubdirs="$LIBLTDLPATH"
1104 if test "x$EXPERIMENTAL" = "xyes"; then
1105 bar=`ls -1 "${srcdir}"/src/modules/rlm_*/configure | sed 's%/configure%%'`
1106 dnl # get rid of LF's.
1107 mysubdirs=`echo $mysubdirs $bar`
1110 dnl # Find 'configure' in ONLY the stable modules
1112 for bar in `cat "${srcdir}"/src/modules/stable`; do
1113 if test -f "${srcdir}"/src/modules/$bar/configure; then
1114 mysubdirs="$mysubdirs src/modules/$bar"
1119 dnl ############################################################
1120 dnl # make modules by list
1121 dnl #############################################################
1122 if test "x$EXPERIMENTAL" = "xyes"; then
1123 for foo in `ls -1 "${srcdir}"/src/modules | grep rlm_`; do
1124 MODULES="$MODULES $foo"
1128 dnl # make ONLY the stable modules
1130 for foo in `cat "${srcdir}"/src/modules/stable`; do
1131 MODULES="$MODULES $foo"
1136 dnl # Don't change the variable name here. Autoconf goes bonkers
1139 AC_CONFIG_SUBDIRS($LTDL_SUBDIRS $mysubdirs)
1142 dnl #############################################################
1144 dnl # And finally, output the results.
1146 dnl #############################################################
1148 AC_CONFIG_COMMANDS([stamp-h], [echo timestamp > src/include/stamp-h])
1149 AC_CONFIG_COMMANDS([build-radpaths-h], [(cd ./src/include && /bin/sh ./build-radpaths-h)])
1150 AC_CONFIG_COMMANDS([main-chmod], [(cd ./src/main && chmod +x checkrad.pl radlast radtest)])
1151 AC_CONFIG_COMMANDS([scripts-chmod], [(cd ./scripts && chmod +x rc.radiusd radwatch check-radiusd-config radiusd.cron.daily radiusd.cron.monthly cryptpasswd)])
1154 dnl # Substitute whatever libraries we found to be necessary
1157 AC_SUBST(INSTALLSTRIP)
1159 USE_SHARED_LIBS=$enable_shared
1160 AC_SUBST(USE_SHARED_LIBS)
1161 USE_STATIC_LIBS=$enable_static
1162 AC_SUBST(USE_STATIC_LIBS)
1163 AC_SUBST(STATIC_MODULES)
1164 AC_SUBST(RADIUSD_MAJOR_VERSION)
1165 AC_SUBST(RADIUSD_MINOR_VERSION)
1166 AC_SUBST(RADIUSD_VERSION)
1170 ./src/include/build-radpaths-h \
1171 ./src/main/Makefile \
1172 ./src/main/checkrad.pl \
1173 ./src/main/radlast \
1174 ./src/main/radtest \
1175 ./scripts/rc.radiusd \
1176 ./scripts/radwatch \
1177 ./scripts/check-radiusd-config \
1178 ./scripts/radiusd.cron.daily \
1179 ./scripts/radiusd.cron.monthly \
1180 ./scripts/cryptpasswd \
1181 ./raddb/dictionary \
1182 ./raddb/radiusd.conf \
1183 ./raddb/vmpsd.conf \
1184 ./raddb/radrelay.conf