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) ],
318 dnl # extra argument: --with-openssl-includes=dir
321 AC_ARG_WITH(openssl-includes,
322 [ --with-openssl-includes=DIR Directory to look for OpenSSL include files],
324 *) OPENSSL_INCLUDE_DIR="$withval"
330 dnl # extra argument: --with-openssl-libraries=dir
333 AC_ARG_WITH(openssl-libraries,
334 [ --with-openssl-libraries=DIR Directory to look for OpenSSL library files],
336 *) OPENSSL_LIB_DIR="$withval"
342 dnl # These next two arguments don't actually do anything. They're
343 dnl # place holders so that the top-level configure script can tell
344 dnl # the user how to configure lower-level modules
348 dnl # extra argument: --with-rlm-FOO-lib-dir
350 AC_ARG_WITH(rlm-FOO-lib-dir,
351 [ --with-rlm-FOO-lib-dir=DIR Directory to look for library files used by module FOO],
359 dnl # extra argument: --with-rlm-FOO-include-dir
361 AC_ARG_WITH(rlm-FOO-include-dir,
362 [ --with-rlm-FOO-include-dir=DIR Directory to look for include files used by module FOO],
369 dnl See what include-style is used by the make program.
370 dnl AC_MSG_CHECKING(include style for make)
371 dnl echo "include /dev/null" > testmake.$$
372 dnl echo "all:" >> testmake.$$
373 dnl make -f testmake.$$ >/dev/null 2>&1
382 dnl rm -f testmake.$$
383 dnl AC_MSG_RESULT(" $INCLUDE")
384 dnl AC_SUBST(INCLUDE)
387 dnl extra argument: --with-udpfromto
389 AC_ARG_WITH(udpfromto,
390 [ --with-udpfromto Compile in UDPFROMTO support. (default=yes)],
400 if test "x$WITH_UDPFROMTO" = "xyes"; then
401 AC_DEFINE(WITH_UDPFROMTO, [], [define if you want udpfromto])
404 dnl #############################################################
406 dnl # 1. Checks for programs
408 dnl #############################################################
411 AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
412 if test "x$ac_cv_path_PERL" = "x"; then
413 AC_MSG_WARN(perl not found - Simultaneous-Use and checkrad.pl may not work)
415 AC_PATH_PROG(SNMPGET, snmpget)
416 if test "x$ac_cv_path_SNMPGET" = "x"; then
417 AC_MSG_WARN(snmpget not found - Simultaneous-Use and checkrad.pl may not work)
420 AC_PATH_PROG(SNMPWALK, snmpwalk)
421 if test "x$ac_cv_path_SNMPWALK" = "x"; then
422 AC_MSG_WARN(snmpwalk not found - Simultaneous-Use and checkrad.pl may not work)
425 AC_PATH_PROG(RUSERS, rusers, /usr/bin/rusers)
427 dnl FIXME This is truly gross.
428 missing_dir=`cd $ac_aux_dir && pwd`
429 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
430 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
431 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
433 AC_PATH_PROG(LOCATE,locate)
434 AC_PATH_PROG(DIRNAME,dirname)
435 AC_PATH_PROG(GREP,grep)
437 dnl #############################################################
439 dnl # 2. Checks for libraries
441 dnl #############################################################
443 dnl If using pthreads, check for -lpthread (posix) or -lc_r (*BSD)
445 if test "x$WITH_THREADS" = "xyes"; then
446 if test $ac_cv_prog_suncc = "yes"; then
450 AC_CHECK_HEADERS(pthread.h, [], [ WITH_THREADS="no" ])
453 dnl # pthread stuff is usually in -lpthread
454 dnl # or in -lc_r, on *BSD
456 dnl # On Some systems, we need extra pre-processor flags, to get them to
457 dnl # to do the threading properly.
459 AC_CHECK_LIB(pthread, pthread_create,
460 [ CFLAGS="$CFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
461 LIBS="$LIBS -lpthread" ],
462 AC_CHECK_LIB(c_r, pthread_create,
463 [ CFLAGS="$CFLAGS -pthread -D_THREAD_SAFE" ],
464 [ WITH_THREADS="no" ]
470 dnl # If we have NO pthread libraries, remove any knowledge of threads.
472 if test "x$WITH_THREADS" != "xyes"; then
474 ac_cv_header_pthread_h="no"
478 dnl # We need sem_init() and friends, as they're the friendliest
479 dnl # semaphore functions for threading.
481 dnl # HP/UX requires linking with librt, too, to get the sem_* symbols.
482 dnl # Some systems have them in -lsem
483 dnl # Solaris has them in -lposix4
484 dnl # NetBSD has them in -lsemaphore
486 AC_SEARCH_LIBS(sem_init, pthread sem posix4 rt semaphore,
488 [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)]
492 dnl Check if we need -lsocket
493 AC_CHECK_LIB(socket, getsockname)
495 dnl Check for -lresolv
496 dnl This library may be needed later.
497 AC_CHECK_LIB(resolv, inet_aton)
499 dnl Check if we need -lnsl. Usually if we want to
500 dnl link against -lsocket we need to include -lnsl as well.
501 AC_CHECK_LIB(nsl, inet_ntoa)
503 dnl Check for OpenSSL libraries.
506 if test "x$OPENSSL_LIB_DIR" != "x"; then
507 LIBS="-L$OPENSSL_LIB_DIR $LIBS"
509 AC_CHECK_LIB(crypto, DH_new,
511 AC_DEFINE(HAVE_LIBCRYPTO, 1,
512 [Define to 1 if you have the `crypto' library (-lcrypto).])
513 AC_CHECK_LIB(ssl, SSL_new,
515 AC_DEFINE(HAVE_LIBSSL, 1,
516 [Define to 1 if you have the `ssl' library (-lssl).])
517 if test "x$OPENSSL_LIB_DIR" != "x"; then
518 OPENSSL_LIBS="-L$OPENSSL_LIB_DIR"
520 OPENSSL_LIBS="$OPENSSL_LIBS -lcrypto -lssl -lcrypto"
525 AC_CHECK_LIB(ws2_32, htonl)
527 dnl Check the pcap library for the RADIUS sniffer.
529 AC_CHECK_LIB(pcap, pcap_open_live,
531 AC_DEFINE(HAVE_LIBPCAP, 1,
532 [Define to 1 if you have the `pcap' library (-lpcap).])
534 [ AC_MSG_WARN([pcap library not found, silently disabling the RADIUS sniffer.]) ])
536 dnl #############################################################
538 dnl # 3. Checks for header files
540 dnl #############################################################
543 dnl # Interix requires us to set -D_ALL_SOURCE, otherwise
544 dnl # getopt will be #included, but won't link. <sigh>
549 CFLAGS="$CFLAGS -D_ALL_SOURCE"
552 CFLAGS="$CFLAGS -DDARWIN"
596 dnl FreeBSD requires sys/socket.h before net/if.h
597 AC_CHECK_HEADERS(net/if.h, [], [],
598 [#ifdef HAVE_SYS_SOCKET_H
599 # include <sys/socket.h>
604 AC_CHECK_HEADER(regex.h, AC_DEFINE(HAVE_REGEX_H, [], [define this if we have the <regex.h> header file]))
605 if test "x$ac_cv_header_regex_h" = "xyes"; then
613 ], [AC_DEFINE(HAVE_REG_EXTENDED, [], [define this if we have REG_EXTENDED (from <regex.h>)]) REGEX_EXTENDED=yes])
616 AC_SUBST(REGEX_EXTENDED)
619 dnl # other checks which require headers
621 if test "x$ac_cv_header_sys_security_h" = "xyes" && test "x$ac_cv_header_prot_h" = "xyes"
623 AC_DEFINE(OSFC2, [], [define if you have OSFC2 authentication])
626 if test "x$ac_cv_header_sia_h" = "xyes" && test "x$ac_cv_header_siad_h" = "xyes"
628 AC_DEFINE(OSFSIA, [], [define if you have OSFSIA authentication])
631 dnl Check for OpenSSL includes.
632 OPENSSL_INCLUDE="-DNO_OPENSSL"
633 if test "x$OPENSSL_LIBS" = "x"; then
634 AC_MSG_NOTICE([skipping test for openssl/ssl.h])
636 old_CPPFLAGS=$CPPFLAGS
637 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
638 CPPFLAGS="$CPPFLAGS -I$OPENSSL_INCLUDE_DIR"
640 dnl # stupid RedHat shit
641 CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_KRB5"
650 if test "x$OPENSSL_LIBS" != "x"; then
651 AC_MSG_CHECKING([for OpenSSL version >= 0.9.7])
653 [#include <openssl/crypto.h>
654 #if (OPENSSL_VERSION_NUMBER >= 0x00907000L)
658 if test "x$goodssl" != "xyes"; then
663 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
664 OPENSSL_INCLUDE="-I$OPENSSL_INCLUDE_DIR -DOPENSSL_NO_KRB5"
666 OPENSSL_INCLUDE="-DOPENSSL_NO_KRB5"
670 CPPFLAGS=$old_CPPFLAGS
672 AC_SUBST(OPENSSL_INCLUDE)
673 AC_SUBST(OPENSSL_LIBS)
676 dnl Check the pcap includes for the RADIUS sniffer.
677 if test "x$PCAP_LIBS" = x; then
678 AC_MSG_NOTICE([skipping test for pcap.h.])
680 AC_CHECK_HEADER(pcap.h,
681 AC_DEFINE(HAVE_PCAP_H, 1,
682 [Define to 1 if you have the <pcap.h> header file.]),
684 AC_MSG_WARN([pcap.h not found, silently disabling the RADIUS sniffer.])
689 dnl #############################################################
691 dnl # 4. Checks for typedefs
693 dnl #############################################################
696 dnl # Ensure that these are defined
703 dnl check for socklen_t
704 FR_CHECK_TYPE_INCLUDE([
705 #ifdef HAVE_SYS_TYPES_H
706 #include <sys/types.h>
708 #ifdef HAVE_SYS_SOCKET_H
709 #include <sys/socket.h>
711 ],socklen_t, int, [socklen_t is generally 'int' on systems which don't use it])
713 dnl check for uint8_t
714 FR_CHECK_TYPE_INCLUDE([
715 #ifdef HAVE_INTTYPES_H
716 #include <inttypes.h>
721 ],uint8_t, unsigned char, [uint8_t should be the canonical 'octet' for network traffic])
723 dnl check for uint16_t
724 FR_CHECK_TYPE_INCLUDE([
725 #ifdef HAVE_INTTYPES_H
726 #include <inttypes.h>
731 ],uint16_t, unsigned short, [uint16_t should be the canonical '2 octets' for network traffic])
733 dnl check for uint32_t
734 FR_CHECK_TYPE_INCLUDE([
735 #ifdef HAVE_INTTYPES_H
736 #include <inttypes.h>
741 ],uint32_t, unsigned int, [uint32_t should be the canonical 'network integer])
743 AC_CHECK_TYPE(struct in6_addr, AC_DEFINE(HAVE_STRUCT_IN6_ADDR, 1, [IPv6 address structure]), [], [
744 #ifdef HAVE_NETINET_IN_H
745 #include <netinet/in.h>
749 AC_CHECK_TYPE(struct sockaddr_storage, AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1, [Generic socket addresses]), [], [
750 #ifdef HAVE_NETINET_IN_H
751 #include <netinet/in.h>
753 #ifdef HAVE_SYS_SOCKET_H
754 #include <sys/socket.h>
758 AC_CHECK_TYPE(struct sockaddr_in6, AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6, 1, [IPv6 socket addresses]), [], [
759 #ifdef HAVE_NETINET_IN_H
760 #include <netinet/in.h>
764 AC_CHECK_TYPE(struct addrinfo, AC_DEFINE(HAVE_STRUCT_ADDRINFO, 1, [Generic DNS lookups]), [], [
765 #ifdef HAVE_SYS_TYPES_H
766 #include <sys/types.h>
768 #ifdef HAVE_SYS_SOCKET_H
769 #include <sys/socket.h>
776 dnl #############################################################
778 dnl # 5. Checks for structures and functions
780 dnl #############################################################
811 RADIUSD_NEED_DECLARATIONS( \
823 dnl # check if we have utmpx.h
824 dnl # if so, check if struct utmpx has entry ut_xtime
825 dnl # if not, set it to define ut_xtime == ut_tv.tv_sec
826 if test "x$ac_cv_header_utmpx_h" = "xyes"
828 FR_CHECK_STRUCT_HAS_MEMBER([#include <utmpx.h>], [struct utmpx], ut_xtime)
829 if test "x$ac_cv_type_struct_utmpx_has_ut_xtime" = "x"
831 AC_DEFINE(ut_xtime,ut_tv.tv_sec, [define to something if you don't have ut_xtime in struct utmpx])
835 dnl # struct ip_pktinfo
836 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in_pktinfo], ipi_addr)
837 if test "x$ac_cv_type_struct_in_pktinfo_has_ipi_addr" = "xyes"
839 AC_DEFINE(HAVE_IP_PKTINFO, [], [define if you have IP_PKTINFO (Linux)])
842 dnl # struct in6_pktinfo
843 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in6_pktinfo], ipi6_addr)
844 if test "x$ac_cv_type_struct_in6_pktinfo_has_ipi6_addr" = "xyes"
846 AC_DEFINE(HAVE_IN6_PKTINFO, [], [define if you have IN6_PKTINFO (Linux)])
849 dnl #############################################################
851 dnl # 6. Checks for compiler characteristics
853 dnl #############################################################
856 dnl # Ensure that these are defined
861 dnl # See if this is OS/2
863 AC_MSG_CHECKING(type of OS)
866 if test "$OS" = "OS/2"; then
874 dnl # Set Default CFLAGS
876 if test "x$GCC" = "xyes"; then
877 CFLAGS="$CFLAGS -Wall -D_GNU_SOURCE"
880 AC_MSG_CHECKING(for developer gcc flags)
881 if test "x$developer" = "xyes" -a "x$GCC" = "xyes"; then
882 devflags="-g -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -W -Wredundant-decls -Wundef"
883 CFLAGS="$CFLAGS $devflags"
885 AC_MSG_RESULT(yes. Using $devflags)
888 CFLAGS="$CFLAGS -DNDEBUG"
893 dnl #############################################################
895 dnl # 7. Checks for library functions
897 dnl #############################################################
899 dnl Check for libcrypt
900 dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
901 AC_CHECK_LIB(crypt, crypt,
904 if test "$CRYPTLIB" != ""; then
905 AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function])
907 AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function]))
910 dnl Check for libcipher
911 AC_CHECK_LIB(cipher, setkey,
912 CRYPTLIB="${CRYPTLIB} -lcipher"
916 if test "x$WITH_SNMP" = "xyes"; then
920 dnl Check the style of gethostbyaddr, in order of preference
921 dnl GNU (_r eight args)
922 AC_DEFINE(GNUSTYLE, [1], [GNU-Style get*byaddr_r])
923 dnl SYSV (_r six args)
924 AC_DEFINE(SYSVSTYLE, [2], [SYSV-Style get*byaddr_r])
925 dnl BSD (three args, may not be thread safe)
926 AC_DEFINE(BSDSTYLE, [3], [BSD-Style get*byaddr_r])
927 dnl Tru64 has BSD version, but it is thread safe
928 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1739____.HTM
929 dnl We need #stdio.h to define NULL on FreeBSD (at least)
930 gethostbyaddrrstyle=""
931 AC_MSG_CHECKING([gethostbyaddr_r() syntax])
934 dnl With FreeBSD, check if there's a prototype for gethostbyaddr_r.
935 dnl Some versions (FreeBSD 5.1?) have a symbol but no prototype - so we
936 dnl override this test to BSDSTYLE. FreeBSD 6.2 and up have proper GNU
938 AC_CHECK_DECLS([gethostbyaddr_r], [], [
939 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE,
940 [style of gethostbyaddr_r functions ])
941 gethostbyaddrrstyle=BSD
942 AC_MSG_WARN([FreeBSD overridden to BSD-style])
950 if test "x$gethostbyaddrrstyle" = "x"; then
954 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL, NULL) ], [
955 AC_DEFINE(GETHOSTBYADDRRSTYLE, GNUSTYLE, [style of gethostbyaddr_r functions ])
956 gethostbyaddrrstyle=GNU
959 if test "x$gethostbyaddrrstyle" = "x"; then
963 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL) ] , [
964 AC_DEFINE(GETHOSTBYADDRRSTYLE, SYSVSTYLE, [style of gethostbyaddr_r functions ])
965 gethostbyaddrrstyle=SYSV
968 if test "x$gethostbyaddrrstyle" = "x"; then
972 ], [ gethostbyaddr(NULL, 0, 0) ], [
973 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE, [style of gethostbyaddr_r functions ])
974 gethostbyaddrrstyle=BSD
978 if test "x$gethostbyaddrrstyle" = "x"; then
979 AC_MSG_RESULT([none! It must not exist, here.])
981 AC_MSG_RESULT([${gethostbyaddrrstyle}-style])
984 if test "x$gethostbyaddrrstyle" = "xBSD"; then
985 AC_MSG_WARN([ ****** BSD-style gethostbyaddr might NOT be thread-safe! ****** ])
988 dnl Check the style of gethostbyname, in order of preference
989 dnl GNU (_r seven args)
990 dnl SYSV (_r five args)
991 dnl BSD (two args, may not be thread safe)
992 dnl Tru64 has BSD version, but it _is_ thread safe
993 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1946____.HTM
994 dnl We need #stdio.h to define NULL on FreeBSD (at least)
995 gethostbynamerstyle=""
996 AC_MSG_CHECKING([gethostbyname_r() syntax])
1000 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL) ], [
1001 AC_DEFINE(GETHOSTBYNAMERSTYLE, GNUSTYLE, [style of gethostbyname_r functions ])
1002 gethostbynamerstyle=GNU
1004 if test "x$gethostbynamerstyle" = "x"; then
1008 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL) ] , [
1009 AC_DEFINE(GETHOSTBYNAMERSTYLE, SYSVSTYLE, [style of gethostbyname_r functions ])
1010 gethostbynamerstyle=SYSV
1013 if test "x$gethostbynamerstyle" = "x"; then
1017 ], [ gethostbyname(NULL) ], [
1018 AC_DEFINE(GETHOSTBYNAMERSTYLE, BSDSTYLE, [style of gethostbyname_r functions ])
1019 gethostbynamerstyle=BSD
1023 if test "x$gethostbynamerstyle" = "x"; then
1024 AC_MSG_RESULT([none! It must not exist, here.])
1026 AC_MSG_RESULT([${gethostbynamerstyle}-style])
1029 if test "x$gethostbynamerstyle" = "xBSD"; then
1030 AC_MSG_WARN([ ****** BSD-style gethostbyname might NOT be thread-safe! ****** ])
1033 dnl check for non-posix solaris ctime_r (extra buflen int arg)
1034 AC_DEFINE(POSIXSTYLE, [1], [Posix-Style ctime_r])
1035 AC_DEFINE(SOLARISSTYLE, [2], [Solaris-Style ctime_r])
1037 AC_MSG_CHECKING([ctime_r() syntax])
1040 ], [ ctime_r(NULL, NULL, 0) ], [
1041 AC_DEFINE(CTIMERSTYLE, SOLARISSTYLE, [style of ctime_r function])
1042 ctimerstyle="SOLARIS"
1044 if test "x$ctimerstyle" = "x"; then
1047 ], [ ctime_r(NULL, NULL) ], [
1048 AC_DEFINE(CTIMERSTYLE, POSIXSTYLE, [style of ctime_r function])
1053 if test "x$ctimerstyle" = "x"; then
1054 AC_MSG_RESULT([none! It must not exist, here.])
1056 AC_MSG_RESULT([${ctimerstyle}-style])
1059 AC_SUBST(HOSTINFO, $host)
1061 dnl #############################################################
1063 dnl # 8. Checks for system services
1065 dnl #############################################################
1068 dnl # Figure out where libtool is located,
1072 AC_MSG_RESULT([top_builddir=$top_builddir])
1073 dnl # AC_SUBST(top_builddir)
1077 dnl import libtool stuff
1079 dnl #############################################################
1081 dnl # Configure in any module directories.
1083 dnl #############################################################
1085 mysubdirs="$LIBLTDLPATH"
1086 if test "x$EXPERIMENTAL" = "xyes"; then
1087 bar=`ls -1 "${srcdir}"/src/modules/rlm_*/configure | sed 's%/configure%%'`
1088 dnl # get rid of LF's.
1089 mysubdirs=`echo $mysubdirs $bar`
1092 dnl # Find 'configure' in ONLY the stable modules
1094 for bar in `cat "${srcdir}"/src/modules/stable`; do
1095 if test -f "${srcdir}"/src/modules/$bar/configure; then
1096 mysubdirs="$mysubdirs src/modules/$bar"
1101 dnl ############################################################
1102 dnl # make modules by list
1103 dnl #############################################################
1104 if test "x$EXPERIMENTAL" = "xyes"; then
1105 for foo in `ls -1 "${srcdir}"/src/modules | grep rlm_`; do
1106 MODULES="$MODULES $foo"
1110 dnl # make ONLY the stable modules
1112 for foo in `cat "${srcdir}"/src/modules/stable`; do
1113 MODULES="$MODULES $foo"
1118 dnl # Don't change the variable name here. Autoconf goes bonkers
1121 AC_CONFIG_SUBDIRS($LTDL_SUBDIRS $mysubdirs)
1124 dnl #############################################################
1126 dnl # And finally, output the results.
1128 dnl #############################################################
1130 AC_CONFIG_COMMANDS([stamp-h], [echo timestamp > src/include/stamp-h])
1131 AC_CONFIG_COMMANDS([build-radpaths-h], [(cd ./src/include && /bin/sh ./build-radpaths-h)])
1132 AC_CONFIG_COMMANDS([main-chmod], [(cd ./src/main && chmod +x checkrad.pl radlast radtest)])
1133 AC_CONFIG_COMMANDS([scripts-chmod], [(cd ./scripts && chmod +x rc.radiusd radwatch check-radiusd-config radiusd.cron.daily radiusd.cron.monthly cryptpasswd)])
1136 dnl # Substitute whatever libraries we found to be necessary
1139 AC_SUBST(INSTALLSTRIP)
1141 USE_SHARED_LIBS=$enable_shared
1142 AC_SUBST(USE_SHARED_LIBS)
1143 USE_STATIC_LIBS=$enable_static
1144 AC_SUBST(USE_STATIC_LIBS)
1145 AC_SUBST(STATIC_MODULES)
1146 AC_SUBST(RADIUSD_MAJOR_VERSION)
1147 AC_SUBST(RADIUSD_MINOR_VERSION)
1148 AC_SUBST(RADIUSD_VERSION)
1152 ./src/include/build-radpaths-h \
1153 ./src/main/Makefile \
1154 ./src/main/checkrad.pl \
1155 ./src/main/radlast \
1156 ./src/main/radtest \
1157 ./scripts/rc.radiusd \
1158 ./scripts/radwatch \
1159 ./scripts/check-radiusd-config \
1160 ./scripts/radiusd.cron.daily \
1161 ./scripts/radiusd.cron.monthly \
1162 ./scripts/cryptpasswd \
1163 ./raddb/dictionary \
1164 ./raddb/radiusd.conf \
1165 ./raddb/vmpsd.conf \
1166 ./raddb/radrelay.conf