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)],
239 dnl extra argument: --with-vmps
242 [ --with-vmps Compile in VMPS support. (default=yes)],
250 if test "x$WITH_VMPS" = "xyes"; then
251 AC_DEFINE(WITH_VMPS, [], [define if you want VMPS support])
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) ],
307 dnl # extra argument: --with-openssl-includes=dir
310 AC_ARG_WITH(openssl-includes,
311 [ --with-openssl-includes=DIR Directory to look for OpenSSL include files],
313 *) OPENSSL_INCLUDE_DIR="$withval"
319 dnl # extra argument: --with-openssl-libraries=dir
322 AC_ARG_WITH(openssl-libraries,
323 [ --with-openssl-libraries=DIR Directory to look for OpenSSL library files],
325 *) OPENSSL_LIB_DIR="$withval"
331 dnl # These next two arguments don't actually do anything. They're
332 dnl # place holders so that the top-level configure script can tell
333 dnl # the user how to configure lower-level modules
337 dnl # extra argument: --with-rlm-FOO-lib-dir
339 AC_ARG_WITH(rlm-FOO-lib-dir,
340 [ --with-rlm-FOO-lib-dir=DIR Directory to look for library files used by module FOO],
348 dnl # extra argument: --with-rlm-FOO-include-dir
350 AC_ARG_WITH(rlm-FOO-include-dir,
351 [ --with-rlm-FOO-include-dir=DIR Directory to look for include files used by module FOO],
358 dnl See what include-style is used by the make program.
359 dnl AC_MSG_CHECKING(include style for make)
360 dnl echo "include /dev/null" > testmake.$$
361 dnl echo "all:" >> testmake.$$
362 dnl make -f testmake.$$ >/dev/null 2>&1
371 dnl rm -f testmake.$$
372 dnl AC_MSG_RESULT(" $INCLUDE")
373 dnl AC_SUBST(INCLUDE)
376 dnl extra argument: --with-udpfromto
378 AC_ARG_WITH(udpfromto,
379 [ --with-udpfromto Compile in UDPFROMTO support. (default=yes)],
389 if test "x$WITH_UDPFROMTO" = "xyes"; then
390 AC_DEFINE(WITH_UDPFROMTO, [], [define if you want udpfromto])
393 dnl #############################################################
395 dnl # 1. Checks for programs
397 dnl #############################################################
400 AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
401 if test "x$ac_cv_path_PERL" = "x"; then
402 AC_MSG_WARN(perl not found - Simultaneous-Use and checkrad.pl may not work)
404 AC_PATH_PROG(SNMPGET, snmpget)
405 if test "x$ac_cv_path_SNMPGET" = "x"; then
406 AC_MSG_WARN(snmpget not found - Simultaneous-Use and checkrad.pl may not work)
409 AC_PATH_PROG(SNMPWALK, snmpwalk)
410 if test "x$ac_cv_path_SNMPWALK" = "x"; then
411 AC_MSG_WARN(snmpwalk not found - Simultaneous-Use and checkrad.pl may not work)
414 AC_PATH_PROG(RUSERS, rusers, /usr/bin/rusers)
416 dnl FIXME This is truly gross.
417 missing_dir=`cd $ac_aux_dir && pwd`
418 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
419 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
420 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
422 AC_PATH_PROG(LOCATE,locate)
423 AC_PATH_PROG(DIRNAME,dirname)
424 AC_PATH_PROG(GREP,grep)
426 dnl #############################################################
428 dnl # 2. Checks for libraries
430 dnl #############################################################
432 dnl If using pthreads, check for -lpthread (posix) or -lc_r (*BSD)
434 if test "x$WITH_THREADS" = "xyes"; then
435 if test $ac_cv_prog_suncc = "yes"; then
439 AC_CHECK_HEADERS(pthread.h, [], [ WITH_THREADS="no" ])
442 dnl # pthread stuff is usually in -lpthread
443 dnl # or in -lc_r, on *BSD
445 dnl # On Some systems, we need extra pre-processor flags, to get them to
446 dnl # to do the threading properly.
448 AC_CHECK_LIB(pthread, pthread_create,
449 [ CFLAGS="$CFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
450 LIBS="$LIBS -lpthread" ],
451 AC_CHECK_LIB(c_r, pthread_create,
452 [ CFLAGS="$CFLAGS -pthread -D_THREAD_SAFE" ],
453 [ WITH_THREADS="no" ]
459 dnl # If we have NO pthread libraries, remove any knowledge of threads.
461 if test "x$WITH_THREADS" != "xyes"; then
463 ac_cv_header_pthread_h="no"
467 dnl # We need sem_init() and friends, as they're the friendliest
468 dnl # semaphore functions for threading.
470 dnl # HP/UX requires linking with librt, too, to get the sem_* symbols.
471 dnl # Some systems have them in -lsem
472 dnl # Solaris has them in -lposix4
473 dnl # NetBSD has them in -lsemaphore
475 AC_SEARCH_LIBS(sem_init, pthread sem posix4 rt semaphore,
477 [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)]
481 dnl Check if we need -lsocket
482 AC_CHECK_LIB(socket, getsockname)
484 dnl Check for -lresolv
485 dnl This library may be needed later.
486 AC_CHECK_LIB(resolv, inet_aton)
488 dnl Check if we need -lnsl. Usually if we want to
489 dnl link against -lsocket we need to include -lnsl as well.
490 AC_CHECK_LIB(nsl, inet_ntoa)
492 dnl Check for OpenSSL libraries.
495 if test "x$OPENSSL_LIB_DIR" != "x"; then
496 LIBS="-L$OPENSSL_LIB_DIR $LIBS"
498 AC_CHECK_LIB(crypto, DH_new,
500 AC_DEFINE(HAVE_LIBCRYPTO, 1,
501 [Define to 1 if you have the `crypto' library (-lcrypto).])
502 AC_CHECK_LIB(ssl, SSL_new,
504 AC_DEFINE(HAVE_LIBSSL, 1,
505 [Define to 1 if you have the `ssl' library (-lssl).])
506 if test "x$OPENSSL_LIB_DIR" != "x"; then
507 OPENSSL_LIBS="-L$OPENSSL_LIB_DIR"
509 OPENSSL_LIBS="$OPENSSL_LIBS -lcrypto -lssl -lcrypto"
514 AC_CHECK_LIB(ws2_32, htonl)
516 dnl Check the pcap library for the RADIUS sniffer.
518 AC_CHECK_LIB(pcap, pcap_open_live,
520 AC_DEFINE(HAVE_LIBPCAP, 1,
521 [Define to 1 if you have the `pcap' library (-lpcap).])
523 [ AC_MSG_WARN([pcap library not found, silently disabling the RADIUS sniffer.]) ])
525 dnl #############################################################
527 dnl # 3. Checks for header files
529 dnl #############################################################
532 dnl # Interix requires us to set -D_ALL_SOURCE, otherwise
533 dnl # getopt will be #included, but won't link. <sigh>
538 CFLAGS="$CFLAGS -D_ALL_SOURCE"
541 CFLAGS="$CFLAGS -DDARWIN"
585 dnl FreeBSD requires sys/socket.h before net/if.h
586 AC_CHECK_HEADERS(net/if.h, [], [],
587 [#ifdef HAVE_SYS_SOCKET_H
588 # include <sys/socket.h>
593 AC_CHECK_HEADER(regex.h, AC_DEFINE(HAVE_REGEX_H, [], [define this if we have the <regex.h> header file]))
594 if test "x$ac_cv_header_regex_h" = "xyes"; then
602 ], [AC_DEFINE(HAVE_REG_EXTENDED, [], [define this if we have REG_EXTENDED (from <regex.h>)]) REGEX_EXTENDED=yes])
605 AC_SUBST(REGEX_EXTENDED)
608 dnl # other checks which require headers
610 if test "x$ac_cv_header_sys_security_h" = "xyes" && test "x$ac_cv_header_prot_h" = "xyes"
612 AC_DEFINE(OSFC2, [], [define if you have OSFC2 authentication])
615 if test "x$ac_cv_header_sia_h" = "xyes" && test "x$ac_cv_header_siad_h" = "xyes"
617 AC_DEFINE(OSFSIA, [], [define if you have OSFSIA authentication])
620 dnl Check for OpenSSL includes.
621 OPENSSL_INCLUDE="-DNO_OPENSSL"
622 if test "x$OPENSSL_LIBS" = "x"; then
623 AC_MSG_NOTICE([skipping test for openssl/ssl.h])
625 old_CPPFLAGS=$CPPFLAGS
626 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
627 CPPFLAGS="$CPPFLAGS -I$OPENSSL_INCLUDE_DIR"
629 dnl # stupid RedHat shit
630 CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_KRB5"
639 if test "x$OPENSSL_LIBS" != "x"; then
640 AC_MSG_CHECKING([for OpenSSL version >= 0.9.7])
642 [#include <openssl/crypto.h>
643 #if (OPENSSL_VERSION_NUMBER >= 0x00907000L)
647 if test "x$goodssl" != "xyes"; then
652 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
653 OPENSSL_INCLUDE="-I$OPENSSL_INCLUDE_DIR -DOPENSSL_NO_KRB5"
655 OPENSSL_INCLUDE="-DOPENSSL_NO_KRB5"
659 CPPFLAGS=$old_CPPFLAGS
661 AC_SUBST(OPENSSL_INCLUDE)
662 AC_SUBST(OPENSSL_LIBS)
665 dnl Check the pcap includes for the RADIUS sniffer.
666 if test "x$PCAP_LIBS" = x; then
667 AC_MSG_NOTICE([skipping test for pcap.h.])
669 AC_CHECK_HEADER(pcap.h,
670 AC_DEFINE(HAVE_PCAP_H, 1,
671 [Define to 1 if you have the <pcap.h> header file.]),
673 AC_MSG_WARN([pcap.h not found, silently disabling the RADIUS sniffer.])
678 dnl #############################################################
680 dnl # 4. Checks for typedefs
682 dnl #############################################################
685 dnl # Ensure that these are defined
692 dnl check for socklen_t
693 FR_CHECK_TYPE_INCLUDE([
694 #ifdef HAVE_SYS_TYPES_H
695 #include <sys/types.h>
697 #ifdef HAVE_SYS_SOCKET_H
698 #include <sys/socket.h>
700 ],socklen_t, int, [socklen_t is generally 'int' on systems which don't use it])
702 dnl check for uint8_t
703 FR_CHECK_TYPE_INCLUDE([
704 #ifdef HAVE_INTTYPES_H
705 #include <inttypes.h>
710 ],uint8_t, unsigned char, [uint8_t should be the canonical 'octet' for network traffic])
712 dnl check for uint16_t
713 FR_CHECK_TYPE_INCLUDE([
714 #ifdef HAVE_INTTYPES_H
715 #include <inttypes.h>
720 ],uint16_t, unsigned short, [uint16_t should be the canonical '2 octets' for network traffic])
722 dnl check for uint32_t
723 FR_CHECK_TYPE_INCLUDE([
724 #ifdef HAVE_INTTYPES_H
725 #include <inttypes.h>
730 ],uint32_t, unsigned int, [uint32_t should be the canonical 'network integer])
732 AC_CHECK_TYPE(struct in6_addr, AC_DEFINE(HAVE_STRUCT_IN6_ADDR, 1, [IPv6 address structure]), [], [
733 #ifdef HAVE_NETINET_IN_H
734 #include <netinet/in.h>
738 AC_CHECK_TYPE(struct sockaddr_storage, AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1, [Generic socket addresses]), [], [
739 #ifdef HAVE_NETINET_IN_H
740 #include <netinet/in.h>
742 #ifdef HAVE_SYS_SOCKET_H
743 #include <sys/socket.h>
747 AC_CHECK_TYPE(struct sockaddr_in6, AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6, 1, [IPv6 socket addresses]), [], [
748 #ifdef HAVE_NETINET_IN_H
749 #include <netinet/in.h>
753 AC_CHECK_TYPE(struct addrinfo, AC_DEFINE(HAVE_STRUCT_ADDRINFO, 1, [Generic DNS lookups]), [], [
754 #ifdef HAVE_SYS_TYPES_H
755 #include <sys/types.h>
757 #ifdef HAVE_SYS_SOCKET_H
758 #include <sys/socket.h>
765 dnl #############################################################
767 dnl # 5. Checks for structures and functions
769 dnl #############################################################
800 RADIUSD_NEED_DECLARATIONS( \
812 dnl # check if we have utmpx.h
813 dnl # if so, check if struct utmpx has entry ut_xtime
814 dnl # if not, set it to define ut_xtime == ut_tv.tv_sec
815 if test "x$ac_cv_header_utmpx_h" = "xyes"
817 FR_CHECK_STRUCT_HAS_MEMBER([#include <utmpx.h>], [struct utmpx], ut_xtime)
818 if test "x$ac_cv_type_struct_utmpx_has_ut_xtime" = "x"
820 AC_DEFINE(ut_xtime,ut_tv.tv_sec, [define to something if you don't have ut_xtime in struct utmpx])
824 dnl # struct ip_pktinfo
825 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in_pktinfo], ipi_addr)
826 if test "x$ac_cv_type_struct_in_pktinfo_has_ipi_addr" = "xyes"
828 AC_DEFINE(HAVE_IP_PKTINFO, [], [define if you have IP_PKTINFO (Linux)])
831 dnl # struct in6_pktinfo
832 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in6_pktinfo], ipi6_addr)
833 if test "x$ac_cv_type_struct_in6_pktinfo_has_ipi6_addr" = "xyes"
835 AC_DEFINE(HAVE_IN6_PKTINFO, [], [define if you have IN6_PKTINFO (Linux)])
838 dnl #############################################################
840 dnl # 6. Checks for compiler characteristics
842 dnl #############################################################
845 dnl # Ensure that these are defined
850 dnl # See if this is OS/2
852 AC_MSG_CHECKING(type of OS)
855 if test "$OS" = "OS/2"; then
863 dnl # Set Default CFLAGS
865 if test "x$GCC" = "xyes"; then
866 CFLAGS="$CFLAGS -Wall -D_GNU_SOURCE"
869 AC_MSG_CHECKING(for developer gcc flags)
870 if test "x$developer" = "xyes" -a "x$GCC" = "xyes"; then
871 devflags="-g -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -W -Wredundant-decls -Wundef"
872 CFLAGS="$CFLAGS $devflags"
874 AC_MSG_RESULT(yes. Using $devflags)
877 CFLAGS="$CFLAGS -DNDEBUG"
882 dnl #############################################################
884 dnl # 7. Checks for library functions
886 dnl #############################################################
888 dnl Check for libcrypt
889 dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
890 AC_CHECK_LIB(crypt, crypt,
893 if test "$CRYPTLIB" != ""; then
894 AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function])
896 AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function]))
899 dnl Check for libcipher
900 AC_CHECK_LIB(cipher, setkey,
901 CRYPTLIB="${CRYPTLIB} -lcipher"
905 if test "x$WITH_SNMP" = "xyes"; then
909 dnl Check the style of gethostbyaddr, in order of preference
910 dnl GNU (_r eight args)
911 AC_DEFINE(GNUSTYLE, [1], [GNU-Style get*byaddr_r])
912 dnl SYSV (_r six args)
913 AC_DEFINE(SYSVSTYLE, [2], [SYSV-Style get*byaddr_r])
914 dnl BSD (three args, may not be thread safe)
915 AC_DEFINE(BSDSTYLE, [3], [BSD-Style get*byaddr_r])
916 dnl Tru64 has BSD version, but it is thread safe
917 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1739____.HTM
918 dnl We need #stdio.h to define NULL on FreeBSD (at least)
919 gethostbyaddrrstyle=""
920 AC_MSG_CHECKING([gethostbyaddr_r() syntax])
923 dnl With FreeBSD, check if there's a prototype for gethostbyaddr_r.
924 dnl Some versions (FreeBSD 5.1?) have a symbol but no prototype - so we
925 dnl override this test to BSDSTYLE. FreeBSD 6.2 and up have proper GNU
927 AC_CHECK_DECLS([gethostbyaddr_r], [], [
928 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE,
929 [style of gethostbyaddr_r functions ])
930 gethostbyaddrrstyle=BSD
931 AC_MSG_WARN([FreeBSD overridden to BSD-style])
939 if test "x$gethostbyaddrrstyle" = "x"; then
943 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL, NULL) ], [
944 AC_DEFINE(GETHOSTBYADDRRSTYLE, GNUSTYLE, [style of gethostbyaddr_r functions ])
945 gethostbyaddrrstyle=GNU
948 if test "x$gethostbyaddrrstyle" = "x"; then
952 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL) ] , [
953 AC_DEFINE(GETHOSTBYADDRRSTYLE, SYSVSTYLE, [style of gethostbyaddr_r functions ])
954 gethostbyaddrrstyle=SYSV
957 if test "x$gethostbyaddrrstyle" = "x"; then
961 ], [ gethostbyaddr(NULL, 0, 0) ], [
962 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE, [style of gethostbyaddr_r functions ])
963 gethostbyaddrrstyle=BSD
967 if test "x$gethostbyaddrrstyle" = "x"; then
968 AC_MSG_RESULT([none! It must not exist, here.])
970 AC_MSG_RESULT([${gethostbyaddrrstyle}-style])
973 if test "x$gethostbyaddrrstyle" = "xBSD"; then
974 AC_MSG_WARN([ ****** BSD-style gethostbyaddr might NOT be thread-safe! ****** ])
977 dnl Check the style of gethostbyname, in order of preference
978 dnl GNU (_r seven args)
979 dnl SYSV (_r five args)
980 dnl BSD (two args, may not be thread safe)
981 dnl Tru64 has BSD version, but it _is_ thread safe
982 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1946____.HTM
983 dnl We need #stdio.h to define NULL on FreeBSD (at least)
984 gethostbynamerstyle=""
985 AC_MSG_CHECKING([gethostbyname_r() syntax])
989 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL) ], [
990 AC_DEFINE(GETHOSTBYNAMERSTYLE, GNUSTYLE, [style of gethostbyname_r functions ])
991 gethostbynamerstyle=GNU
993 if test "x$gethostbynamerstyle" = "x"; then
997 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL) ] , [
998 AC_DEFINE(GETHOSTBYNAMERSTYLE, SYSVSTYLE, [style of gethostbyname_r functions ])
999 gethostbynamerstyle=SYSV
1002 if test "x$gethostbynamerstyle" = "x"; then
1006 ], [ gethostbyname(NULL) ], [
1007 AC_DEFINE(GETHOSTBYNAMERSTYLE, BSDSTYLE, [style of gethostbyname_r functions ])
1008 gethostbynamerstyle=BSD
1012 if test "x$gethostbynamerstyle" = "x"; then
1013 AC_MSG_RESULT([none! It must not exist, here.])
1015 AC_MSG_RESULT([${gethostbynamerstyle}-style])
1018 if test "x$gethostbynamerstyle" = "xBSD"; then
1019 AC_MSG_WARN([ ****** BSD-style gethostbyname might NOT be thread-safe! ****** ])
1022 dnl check for non-posix solaris ctime_r (extra buflen int arg)
1023 AC_DEFINE(POSIXSTYLE, [1], [Posix-Style ctime_r])
1024 AC_DEFINE(SOLARISSTYLE, [2], [Solaris-Style ctime_r])
1026 AC_MSG_CHECKING([ctime_r() syntax])
1029 ], [ ctime_r(NULL, NULL, 0) ], [
1030 AC_DEFINE(CTIMERSTYLE, SOLARISSTYLE, [style of ctime_r function])
1031 ctimerstyle="SOLARIS"
1033 if test "x$ctimerstyle" = "x"; then
1036 ], [ ctime_r(NULL, NULL) ], [
1037 AC_DEFINE(CTIMERSTYLE, POSIXSTYLE, [style of ctime_r function])
1042 if test "x$ctimerstyle" = "x"; then
1043 AC_MSG_RESULT([none! It must not exist, here.])
1045 AC_MSG_RESULT([${ctimerstyle}-style])
1048 AC_SUBST(HOSTINFO, $host)
1050 dnl #############################################################
1052 dnl # 8. Checks for system services
1054 dnl #############################################################
1057 dnl # Figure out where libtool is located,
1061 AC_MSG_RESULT([top_builddir=$top_builddir])
1062 dnl # AC_SUBST(top_builddir)
1066 dnl import libtool stuff
1068 dnl #############################################################
1070 dnl # Configure in any module directories.
1072 dnl #############################################################
1074 mysubdirs="$LIBLTDLPATH"
1075 if test "x$EXPERIMENTAL" = "xyes"; then
1076 bar=`ls -1 "${srcdir}"/src/modules/rlm_*/configure | sed 's%/configure%%'`
1077 dnl # get rid of LF's.
1078 mysubdirs=`echo $mysubdirs $bar`
1081 dnl # Find 'configure' in ONLY the stable modules
1083 for bar in `cat "${srcdir}"/src/modules/stable`; do
1084 if test -f "${srcdir}"/src/modules/$bar/configure; then
1085 mysubdirs="$mysubdirs src/modules/$bar"
1090 dnl ############################################################
1091 dnl # make modules by list
1092 dnl #############################################################
1093 if test "x$EXPERIMENTAL" = "xyes"; then
1094 for foo in `ls -1 "${srcdir}"/src/modules | grep rlm_`; do
1095 MODULES="$MODULES $foo"
1099 dnl # make ONLY the stable modules
1101 for foo in `cat "${srcdir}"/src/modules/stable`; do
1102 MODULES="$MODULES $foo"
1107 dnl # Don't change the variable name here. Autoconf goes bonkers
1110 AC_CONFIG_SUBDIRS($LTDL_SUBDIRS $mysubdirs)
1113 dnl #############################################################
1115 dnl # And finally, output the results.
1117 dnl #############################################################
1119 AC_CONFIG_COMMANDS([stamp-h], [echo timestamp > src/include/stamp-h])
1120 AC_CONFIG_COMMANDS([build-radpaths-h], [(cd ./src/include && /bin/sh ./build-radpaths-h)])
1121 AC_CONFIG_COMMANDS([main-chmod], [(cd ./src/main && chmod +x checkrad.pl radlast radtest)])
1122 AC_CONFIG_COMMANDS([scripts-chmod], [(cd ./scripts && chmod +x rc.radiusd radwatch check-radiusd-config radiusd.cron.daily radiusd.cron.monthly cryptpasswd)])
1125 dnl # Substitute whatever libraries we found to be necessary
1128 AC_SUBST(INSTALLSTRIP)
1130 USE_SHARED_LIBS=$enable_shared
1131 AC_SUBST(USE_SHARED_LIBS)
1132 USE_STATIC_LIBS=$enable_static
1133 AC_SUBST(USE_STATIC_LIBS)
1134 AC_SUBST(STATIC_MODULES)
1135 AC_SUBST(RADIUSD_MAJOR_VERSION)
1136 AC_SUBST(RADIUSD_MINOR_VERSION)
1137 AC_SUBST(RADIUSD_VERSION)
1141 ./src/include/build-radpaths-h \
1142 ./src/main/Makefile \
1143 ./src/main/checkrad.pl \
1144 ./src/main/radlast \
1145 ./src/main/radtest \
1146 ./scripts/rc.radiusd \
1147 ./scripts/radwatch \
1148 ./scripts/check-radiusd-config \
1149 ./scripts/radiusd.cron.daily \
1150 ./scripts/radiusd.cron.monthly \
1151 ./scripts/cryptpasswd \
1152 ./raddb/dictionary \
1153 ./raddb/radiusd.conf \
1154 ./raddb/vmpsd.conf \
1155 ./raddb/radrelay.conf