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 # Allow the user to specify a list of modules to be linked
241 dnl # statically to the server.
244 AC_ARG_WITH(static_modules,
245 [ --with-static-modules=QUOTED-MODULE-LIST],[
246 for i in $withval; do
247 STATIC_MODULES="$STATIC_MODULES -dlpreopen ../modules/rlm_$i/rlm_$i.la"
253 [ --with-modules=QUOTED-MODULE-LIST],[
254 for i in $withval; do
255 MODULES="$MODULES $i"
260 dnl # Enable developer C compiler warnings
262 AC_ARG_ENABLE(developer,
263 [ --enable-developer Enables features of interest to developers.],
264 [ case "$enableval" in
273 if test "x$developer" != "xno" -a -d $srcdir/CVS; then
274 dnl turn on the developer flag when taken from a CVS checkout (not a release)
278 dnl extra argument: --with-experimental-modules
280 AC_ARG_WITH(experimental-modules,
281 [ --with-experimental-modules Use experimental and unstable modules. (default=no) ],
291 dnl # extra argument: --with-openssl-includes=dir
294 AC_ARG_WITH(openssl-includes,
295 [ --with-openssl-includes=DIR Directory to look for OpenSSL include files],
297 *) OPENSSL_INCLUDE_DIR="$withval"
303 dnl # extra argument: --with-openssl-libraries=dir
306 AC_ARG_WITH(openssl-libraries,
307 [ --with-openssl-libraries=DIR Directory to look for OpenSSL library files],
309 *) OPENSSL_LIB_DIR="$withval"
315 dnl # These next two arguments don't actually do anything. They're
316 dnl # place holders so that the top-level configure script can tell
317 dnl # the user how to configure lower-level modules
321 dnl # extra argument: --with-rlm-FOO-lib-dir
323 AC_ARG_WITH(rlm-FOO-lib-dir,
324 [ --with-rlm-FOO-lib-dir=DIR Directory to look for library files used by module FOO],
332 dnl # extra argument: --with-rlm-FOO-include-dir
334 AC_ARG_WITH(rlm-FOO-include-dir,
335 [ --with-rlm-FOO-include-dir=DIR Directory to look for include files used by module FOO],
342 dnl See what include-style is used by the make program.
343 dnl AC_MSG_CHECKING(include style for make)
344 dnl echo "include /dev/null" > testmake.$$
345 dnl echo "all:" >> testmake.$$
346 dnl make -f testmake.$$ >/dev/null 2>&1
355 dnl rm -f testmake.$$
356 dnl AC_MSG_RESULT(" $INCLUDE")
357 dnl AC_SUBST(INCLUDE)
360 dnl extra argument: --with-udpfromto
362 AC_ARG_WITH(udpfromto,
363 [ --with-udpfromto Compile in UDPFROMTO support. (default=yes)],
373 if test "x$WITH_UDPFROMTO" = "xyes"; then
374 AC_DEFINE(WITH_UDPFROMTO, [], [define if you want udpfromto])
377 dnl #############################################################
379 dnl # 1. Checks for programs
381 dnl #############################################################
384 AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
385 if test "x$ac_cv_path_PERL" = "x"; then
386 AC_MSG_WARN(perl not found - Simultaneous-Use and checkrad.pl may not work)
388 AC_PATH_PROG(SNMPGET, snmpget)
389 if test "x$ac_cv_path_SNMPGET" = "x"; then
390 AC_MSG_WARN(snmpget not found - Simultaneous-Use and checkrad.pl may not work)
393 AC_PATH_PROG(SNMPWALK, snmpwalk)
394 if test "x$ac_cv_path_SNMPWALK" = "x"; then
395 AC_MSG_WARN(snmpwalk not found - Simultaneous-Use and checkrad.pl may not work)
398 AC_PATH_PROG(RUSERS, rusers, /usr/bin/rusers)
400 dnl FIXME This is truly gross.
401 missing_dir=`cd $ac_aux_dir && pwd`
402 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
403 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
404 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
406 AC_PATH_PROG(LOCATE,locate)
407 AC_PATH_PROG(DIRNAME,dirname)
408 AC_PATH_PROG(GREP,grep)
410 dnl #############################################################
412 dnl # 2. Checks for libraries
414 dnl #############################################################
416 dnl If using pthreads, check for -lpthread (posix) or -lc_r (*BSD)
418 if test "x$WITH_THREADS" = "xyes"; then
419 if test $ac_cv_prog_suncc = "yes"; then
423 AC_CHECK_HEADERS(pthread.h, [], [ WITH_THREADS="no" ])
426 dnl # pthread stuff is usually in -lpthread
427 dnl # or in -lc_r, on *BSD
429 dnl # On Some systems, we need extra pre-processor flags, to get them to
430 dnl # to do the threading properly.
432 AC_CHECK_LIB(pthread, pthread_create,
433 [ CFLAGS="$CFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
434 LIBS="$LIBS -lpthread" ],
435 AC_CHECK_LIB(c_r, pthread_create,
436 [ CFLAGS="$CFLAGS -pthread -D_THREAD_SAFE" ],
437 [ WITH_THREADS="no" ]
443 dnl # If we have NO pthread libraries, remove any knowledge of threads.
445 if test "x$WITH_THREADS" != "xyes"; then
447 ac_cv_header_pthread_h="no"
451 dnl # We need sem_init() and friends, as they're the friendliest
452 dnl # semaphore functions for threading.
454 dnl # HP/UX requires linking with librt, too, to get the sem_* symbols.
455 dnl # Some systems have them in -lsem
456 dnl # Solaris has them in -lposix4
457 dnl # NetBSD has them in -lsemaphore
459 AC_SEARCH_LIBS(sem_init, pthread sem posix4 rt semaphore,
461 [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)]
465 dnl Check if we need -lsocket
466 AC_CHECK_LIB(socket, getsockname)
468 dnl Check for -lresolv
469 dnl This library may be needed later.
470 AC_CHECK_LIB(resolv, inet_aton)
472 dnl Check if we need -lnsl. Usually if we want to
473 dnl link against -lsocket we need to include -lnsl as well.
474 AC_CHECK_LIB(nsl, inet_ntoa)
476 dnl Check for OpenSSL libraries.
479 if test "x$OPENSSL_LIB_DIR" != "x"; then
480 LIBS="-L$OPENSSL_LIB_DIR $LIBS"
482 AC_CHECK_LIB(crypto, DH_new,
484 AC_DEFINE(HAVE_LIBCRYPTO, 1,
485 [Define to 1 if you have the `crypto' library (-lcrypto).])
486 AC_CHECK_LIB(ssl, SSL_new,
488 AC_DEFINE(HAVE_LIBSSL, 1,
489 [Define to 1 if you have the `ssl' library (-lssl).])
490 if test "x$OPENSSL_LIB_DIR" != "x"; then
491 OPENSSL_LIBS="-L$OPENSSL_LIB_DIR"
493 OPENSSL_LIBS="$OPENSSL_LIBS -lcrypto -lssl -lcrypto"
498 AC_CHECK_LIB(ws2_32, htonl)
500 dnl Check the pcap library for the RADIUS sniffer.
502 AC_CHECK_LIB(pcap, pcap_open_live,
504 AC_DEFINE(HAVE_LIBPCAP, 1,
505 [Define to 1 if you have the `pcap' library (-lpcap).])
507 [ AC_MSG_WARN([pcap library not found, silently disabling the RADIUS sniffer.]) ])
509 dnl #############################################################
511 dnl # 3. Checks for header files
513 dnl #############################################################
516 dnl # Interix requires us to set -D_ALL_SOURCE, otherwise
517 dnl # getopt will be #included, but won't link. <sigh>
522 CFLAGS="$CFLAGS -D_ALL_SOURCE"
525 CFLAGS="$CFLAGS -DDARWIN"
569 dnl FreeBSD requires sys/socket.h before net/if.h
570 AC_CHECK_HEADERS(net/if.h, [], [],
571 [#if HAVE_SYS_SOCKET_H
572 # include <sys/socket.h>
577 AC_CHECK_HEADER(regex.h, AC_DEFINE(HAVE_REGEX_H, [], [define this if we have the <regex.h> header file]))
578 if test "x$ac_cv_header_regex_h" = "xyes"; then
586 ], [AC_DEFINE(HAVE_REG_EXTENDED, [], [define this if we have REG_EXTENDED (from <regex.h>)]) REGEX_EXTENDED=yes])
589 AC_SUBST(REGEX_EXTENDED)
592 dnl # other checks which require headers
594 if test "x$ac_cv_header_sys_security_h" = "xyes" && test "x$ac_cv_header_prot_h" = "xyes"
596 AC_DEFINE(OSFC2, [], [define if you have OSFC2 authentication])
599 if test "x$ac_cv_header_sia_h" = "xyes" && test "x$ac_cv_header_siad_h" = "xyes"
601 AC_DEFINE(OSFSIA, [], [define if you have OSFSIA authentication])
604 dnl Check for OpenSSL includes.
605 OPENSSL_INCLUDE="-DNO_OPENSSL"
606 if test "x$OPENSSL_LIBS" = "x"; then
607 AC_MSG_NOTICE([skipping test for openssl/ssl.h])
609 old_CPPFLAGS=$CPPFLAGS
610 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
611 CPPFLAGS="$CPPFLAGS -I$OPENSSL_INCLUDE_DIR"
613 dnl # stupid RedHat shit
614 CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_KRB5"
623 if test "x$OPENSSL_LIBS" != "x"; then
624 AC_MSG_CHECKING([for OpenSSL version >= 0.9.7])
626 [#include <openssl/crypto.h>
627 #if (OPENSSL_VERSION_NUMBER >= 0x00907000L)
631 if test "x$goodssl" != "xyes"; then
636 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
637 OPENSSL_INCLUDE="-I$OPENSSL_INCLUDE_DIR -DOPENSSL_NO_KRB5"
639 OPENSSL_INCLUDE="-DOPENSSL_NO_KRB5"
643 CPPFLAGS=$old_CPPFLAGS
645 AC_SUBST(OPENSSL_INCLUDE)
646 AC_SUBST(OPENSSL_LIBS)
649 dnl Check the pcap includes for the RADIUS sniffer.
650 if test "x$PCAP_LIBS" = x; then
651 AC_MSG_NOTICE([skipping test for pcap.h.])
653 AC_CHECK_HEADER(pcap.h,
654 AC_DEFINE(HAVE_PCAP_H, 1,
655 [Define to 1 if you have the <pcap.h> header file.]),
657 AC_MSG_WARN([pcap.h not found, silently disabling the RADIUS sniffer.])
662 dnl #############################################################
664 dnl # 4. Checks for typedefs
666 dnl #############################################################
669 dnl # Ensure that these are defined
676 dnl check for socklen_t
677 FR_CHECK_TYPE_INCLUDE([
678 #ifdef HAVE_SYS_TYPES_H
679 #include <sys/types.h>
681 #ifdef HAVE_SYS_SOCKET_H
682 #include <sys/socket.h>
684 ],socklen_t, int, [socklen_t is generally 'int' on systems which don't use it])
686 dnl check for uint8_t
687 FR_CHECK_TYPE_INCLUDE([
688 #ifdef HAVE_INTTYPES_H
689 #include <inttypes.h>
694 ],uint8_t, unsigned char, [uint8_t should be the canonical 'octet' for network traffic])
696 dnl check for uint16_t
697 FR_CHECK_TYPE_INCLUDE([
698 #ifdef HAVE_INTTYPES_H
699 #include <inttypes.h>
704 ],uint16_t, unsigned short, [uint16_t should be the canonical '2 octets' for network traffic])
706 dnl check for uint32_t
707 FR_CHECK_TYPE_INCLUDE([
708 #ifdef HAVE_INTTYPES_H
709 #include <inttypes.h>
714 ],uint32_t, unsigned int, [uint32_t should be the canonical 'network integer])
716 AC_CHECK_TYPE(struct in6_addr, AC_DEFINE(HAVE_STRUCT_IN6_ADDR, 1, [IPv6 address structure]), [], [
717 #ifdef HAVE_NETINET_IN_H
718 #include <netinet/in.h>
722 AC_CHECK_TYPE(struct sockaddr_storage, AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1, [Generic socket addresses]), [], [
723 #ifdef HAVE_NETINET_IN_H
724 #include <netinet/in.h>
726 #ifdef HAVE_SYS_SOCKET_H
727 #include <sys/socket.h>
731 AC_CHECK_TYPE(struct sockaddr_in6, AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6, 1, [IPv6 socket addresses]), [], [
732 #ifdef HAVE_NETINET_IN_H
733 #include <netinet/in.h>
737 AC_CHECK_TYPE(struct addrinfo, AC_DEFINE(HAVE_STRUCT_ADDRINFO, 1, [Generic DNS lookups]), [], [
738 #ifdef HAVE_SYS_TYPES_H
739 #include <sys/types.h>
741 #ifdef HAVE_SYS_SOCKET_H
742 #include <sys/socket.h>
749 dnl #############################################################
751 dnl # 5. Checks for structures and functions
753 dnl #############################################################
784 RADIUSD_NEED_DECLARATIONS( \
796 dnl # check if we have utmpx.h
797 dnl # if so, check if struct utmpx has entry ut_xtime
798 dnl # if not, set it to define ut_xtime == ut_tv.tv_sec
799 if test "x$ac_cv_header_utmpx_h" = "xyes"
801 FR_CHECK_STRUCT_HAS_MEMBER([#include <utmpx.h>], [struct utmpx], ut_xtime)
802 if test "x$ac_cv_type_struct_utmpx_has_ut_xtime" = "x"
804 AC_DEFINE(ut_xtime,ut_tv.tv_sec, [define to something if you don't have ut_xtime in struct utmpx])
808 dnl # struct ip_pktinfo
809 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in_pktinfo], ipi_addr)
810 if test "x$ac_cv_type_struct_in_pktinfo_has_ipi_addr" = "xyes"
812 AC_DEFINE(HAVE_IP_PKTINFO, [], [define if you have IP_PKTINFO (Linux)])
815 dnl # struct in6_pktinfo
816 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in6_pktinfo], ipi6_addr)
817 if test "x$ac_cv_type_struct_in6_pktinfo_has_ipi6_addr" = "xyes"
819 AC_DEFINE(HAVE_IN6_PKTINFO, [], [define if you have IN6_PKTINFO (Linux)])
822 dnl #############################################################
824 dnl # 6. Checks for compiler characteristics
826 dnl #############################################################
829 dnl # Ensure that these are defined
834 dnl # See if this is OS/2
836 AC_MSG_CHECKING(type of OS)
839 if test "$OS" = "OS/2"; then
847 dnl # Set Default CFLAGS
849 if test "x$GCC" = "xyes"; then
850 CFLAGS="$CFLAGS -Wall -D_GNU_SOURCE"
853 AC_MSG_CHECKING(for developer gcc flags)
854 if test "x$developer" = "xyes" -a "x$GCC" = "xyes"; then
855 devflags="-g -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -W -Wredundant-decls -Wundef"
856 CFLAGS="$CFLAGS $devflags"
858 AC_MSG_RESULT(yes. Using $devflags)
861 CFLAGS="$CFLAGS -DNDEBUG"
866 dnl #############################################################
868 dnl # 7. Checks for library functions
870 dnl #############################################################
872 dnl Check for libcrypt
873 dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
874 AC_CHECK_LIB(crypt, crypt,
877 if test "$CRYPTLIB" != ""; then
878 AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function])
880 AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function]))
883 dnl Check for libcipher
884 AC_CHECK_LIB(cipher, setkey,
885 CRYPTLIB="${CRYPTLIB} -lcipher"
889 if test "x$WITH_SNMP" = "xyes"; then
893 dnl Check the style of gethostbyaddr, in order of preference
894 dnl GNU (_r eight args)
895 AC_DEFINE(GNUSTYLE, [1], [GNU-Style get*byaddr_r])
896 dnl SYSV (_r six args)
897 AC_DEFINE(SYSVSTYLE, [2], [SYSV-Style get*byaddr_r])
898 dnl BSD (three args, may not be thread safe)
899 AC_DEFINE(BSDSTYLE, [3], [BSD-Style get*byaddr_r])
900 dnl Tru64 has BSD version, but it is thread safe
901 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1739____.HTM
902 dnl We need #stdio.h to define NULL on FreeBSD (at least)
903 gethostbyaddrrstyle=""
904 AC_MSG_CHECKING([gethostbyaddr_r() syntax])
906 *-freebsd[45].*|*-freebsd6.[01])
907 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE, [style of gethostbyaddr_r functions ])
908 gethostbyaddrrstyle=BSD
909 AC_MSG_WARN([FreeBSD overridden to BSD-style])
912 if test "x$gethostbyaddrrstyle" = "x"; then
916 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL, NULL) ], [
917 AC_DEFINE(GETHOSTBYADDRRSTYLE, GNUSTYLE, [style of gethostbyaddr_r functions ])
918 gethostbyaddrrstyle=GNU
921 if test "x$gethostbyaddrrstyle" = "x"; then
925 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL) ] , [
926 AC_DEFINE(GETHOSTBYADDRRSTYLE, SYSVSTYLE, [style of gethostbyaddr_r functions ])
927 gethostbyaddrrstyle=SYSV
930 if test "x$gethostbyaddrrstyle" = "x"; then
934 ], [ gethostbyaddr(NULL, 0, 0) ], [
935 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE, [style of gethostbyaddr_r functions ])
936 gethostbyaddrrstyle=BSD
940 if test "x$gethostbyaddrrstyle" = "x"; then
941 AC_MSG_RESULT([none! It must not exist, here.])
943 AC_MSG_RESULT([${gethostbyaddrrstyle}-style])
946 if test "x$gethostbyaddrrstyle" = "xBSD"; then
947 AC_MSG_WARN([ ****** BSD-style gethostbyaddr might NOT be thread-safe! ****** ])
950 dnl Check the style of gethostbyname, in order of preference
951 dnl GNU (_r seven args)
952 dnl SYSV (_r five args)
953 dnl BSD (two args, may not be thread safe)
954 dnl Tru64 has BSD version, but it _is_ thread safe
955 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1946____.HTM
956 dnl We need #stdio.h to define NULL on FreeBSD (at least)
957 gethostbynamerstyle=""
958 AC_MSG_CHECKING([gethostbyname_r() syntax])
962 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL) ], [
963 AC_DEFINE(GETHOSTBYNAMERSTYLE, GNUSTYLE, [style of gethostbyname_r functions ])
964 gethostbynamerstyle=GNU
966 if test "x$gethostbynamerstyle" = "x"; then
970 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL) ] , [
971 AC_DEFINE(GETHOSTBYNAMERSTYLE, SYSVSTYLE, [style of gethostbyname_r functions ])
972 gethostbynamerstyle=SYSV
975 if test "x$gethostbynamerstyle" = "x"; then
979 ], [ gethostbyname(NULL) ], [
980 AC_DEFINE(GETHOSTBYNAMERSTYLE, BSDSTYLE, [style of gethostbyname_r functions ])
981 gethostbynamerstyle=BSD
985 if test "x$gethostbynamerstyle" = "x"; then
986 AC_MSG_RESULT([none! It must not exist, here.])
988 AC_MSG_RESULT([${gethostbynamerstyle}-style])
991 if test "x$gethostbynamerstyle" = "xBSD"; then
992 AC_MSG_WARN([ ****** BSD-style gethostbyname might NOT be thread-safe! ****** ])
995 dnl check for non-posix solaris ctime_r (extra buflen int arg)
996 AC_DEFINE(POSIXSTYLE, [1], [Posix-Style ctime_r])
997 AC_DEFINE(SOLARISSTYLE, [2], [Solaris-Style ctime_r])
999 AC_MSG_CHECKING([ctime_r() syntax])
1002 ], [ ctime_r(NULL, NULL, 0) ], [
1003 AC_DEFINE(CTIMERSTYLE, SOLARISSTYLE, [style of ctime_r function])
1004 ctimerstyle="SOLARIS"
1006 if test "x$ctimerstyle" = "x"; then
1009 ], [ ctime_r(NULL, NULL) ], [
1010 AC_DEFINE(CTIMERSTYLE, POSIXSTYLE, [style of ctime_r function])
1015 if test "x$ctimerstyle" = "x"; then
1016 AC_MSG_RESULT([none! It must not exist, here.])
1018 AC_MSG_RESULT([${ctimerstyle}-style])
1021 AC_SUBST(HOSTINFO, $host)
1023 dnl #############################################################
1025 dnl # 8. Checks for system services
1027 dnl #############################################################
1030 dnl # Figure out where libtool is located,
1034 AC_MSG_RESULT([top_builddir=$top_builddir])
1035 dnl # AC_SUBST(top_builddir)
1039 dnl import libtool stuff
1041 dnl #############################################################
1043 dnl # Configure in any module directories.
1045 dnl #############################################################
1047 mysubdirs="$LIBLTDLPATH"
1048 if test "x$EXPERIMENTAL" = "xyes"; then
1049 bar=`ls -1 "${srcdir}"/src/modules/rlm_*/configure | sed 's%/configure%%'`
1050 dnl # get rid of LF's.
1051 mysubdirs=`echo $mysubdirs $bar`
1054 dnl # Find 'configure' in ONLY the stable modules
1056 for bar in `cat "${srcdir}"/src/modules/stable`; do
1057 if test -f "${srcdir}"/src/modules/$bar/configure; then
1058 mysubdirs="$mysubdirs src/modules/$bar"
1063 dnl ############################################################
1064 dnl # make modules by list
1065 dnl #############################################################
1066 if test "x$EXPERIMENTAL" = "xyes"; then
1067 for foo in `ls -1 "${srcdir}"/src/modules | grep rlm_`; do
1068 MODULES="$MODULES $foo"
1072 dnl # make ONLY the stable modules
1074 for foo in `cat "${srcdir}"/src/modules/stable`; do
1075 MODULES="$MODULES $foo"
1080 dnl # Don't change the variable name here. Autoconf goes bonkers
1083 AC_CONFIG_SUBDIRS($LTDL_SUBDIRS $mysubdirs)
1086 dnl #############################################################
1088 dnl # And finally, output the results.
1090 dnl #############################################################
1092 AC_CONFIG_COMMANDS([stamp-h], [echo timestamp > src/include/stamp-h])
1093 AC_CONFIG_COMMANDS([build-radpaths-h], [(cd ./src/include && /bin/sh ./build-radpaths-h)])
1094 AC_CONFIG_COMMANDS([main-chmod], [(cd ./src/main && chmod +x checkrad.pl radlast radtest)])
1095 AC_CONFIG_COMMANDS([scripts-chmod], [(cd ./scripts && chmod +x rc.radiusd radwatch check-radiusd-config radiusd.cron.daily radiusd.cron.monthly cryptpasswd)])
1098 dnl # Substitute whatever libraries we found to be necessary
1101 AC_SUBST(INSTALLSTRIP)
1103 USE_SHARED_LIBS=$enable_shared
1104 AC_SUBST(USE_SHARED_LIBS)
1105 USE_STATIC_LIBS=$enable_static
1106 AC_SUBST(USE_STATIC_LIBS)
1107 AC_SUBST(STATIC_MODULES)
1108 AC_SUBST(RADIUSD_MAJOR_VERSION)
1109 AC_SUBST(RADIUSD_MINOR_VERSION)
1110 AC_SUBST(RADIUSD_VERSION)
1114 ./src/include/build-radpaths-h \
1115 ./src/main/Makefile \
1116 ./src/main/checkrad.pl \
1117 ./src/main/radlast \
1118 ./src/main/radtest \
1119 ./scripts/rc.radiusd \
1120 ./scripts/radwatch \
1121 ./scripts/check-radiusd-config \
1122 ./scripts/radiusd.cron.daily \
1123 ./scripts/radiusd.cron.monthly \
1124 ./scripts/cryptpasswd \
1125 ./raddb/dictionary \
1126 ./raddb/radiusd.conf \
1127 ./raddb/vmpsd.conf \
1128 ./raddb/radrelay.conf