1 dnl #############################################################
3 dnl # For information about autoconf, see:
5 dnl # http://www.gnu.org/software/autoconf/
7 dnl # The recommended order is:
10 dnl # 0. checks for compiler, libtool, and command line options
11 dnl # 1. checks for programs
12 dnl # 2. checks for libraries
13 dnl # 3. checks for header files
14 dnl # 4. checks for typedefs
15 dnl # 5. checks for structures and functions
16 dnl # 6. checks for compiler characteristics
17 dnl # 7. checks for library functions
18 dnl # 8. checks for system services
19 dnl # AC_OUTPUT([file...])
21 dnl #############################################################
24 export CFLAGS LIBS LDFLAGS CPPFLAGS
25 AC_INIT(src/main/radiusd.c)
26 AC_CONFIG_HEADER(src/include/autoconf.h)
27 AC_REVISION($Revision$)dnl
29 dnl # The version of the software
30 RADIUSD_VERSION=`cat VERSION`
31 RADIUSD_MAJOR_VERSION=`cat VERSION | sed 's/\..*//'`
32 RADIUSD_MINOR_VERSION=`cat VERSION | sed 's/^2\.//'`
35 dnl #############################################################
37 dnl # 0. Checks for compiler, libtool, and command line options.
39 dnl #############################################################
46 dnl # check for AIX, to allow us to use some BSD functions
47 dnl # must be before macros that call the compiler.
51 AC_PROG_GCC_TRADITIONAL
55 dnl Compile in large (2G+) file support.
58 dnl # check for system bytesex
59 dnl # AC_DEFINES WORDS_BIGENDIAN
63 AC_CHECK_PROG(GMAKE, gmake, yes, no)
64 if test $GMAKE = no; then
65 AC_PATH_PROG(MAKE, make, /usr/local/bin/make)
67 AC_PATH_PROG(MAKE, gmake, /usr/local/gnu/bin/make)
69 makever=`$ac_cv_path_MAKE --version 2>&1 | grep "GNU Make"`
70 if test -z "$makever"; then
71 AC_MSG_ERROR(GNU Make is not installed. Please download and install it
72 from ftp://prep.ai.mit.edu/pub/gnu/make/ before continuing.)
75 dnl libltdl is installable
76 AC_LIBLTDL_INSTALLABLE
78 dnl tell Makefile to build ltdl if needed
79 if test x"$enable_ltdl_install" = x"yes"; then
82 AC_SUBST(LTDL_SUBDIRS)
84 dnl use system-wide libtool, if it exists
85 AC_ARG_WITH(system-libtool,
86 [ --with-system-libtool try to use libtool installed in your system [default=use our own]],
87 [ AC_PATH_PROG(LIBTOOL, libtool,,$PATH:/usr/local/bin) ],
89 LIBTOOL="`pwd`/libtool"
91 dnl ensure that we're looking for dlopen
94 dnl Figure out how to build shared libraries
99 dnl Put this in later, when all distributed modules use autoconf.
100 dnl AC_ARG_WITH(disablemodulefoo,
101 dnl [ --without-rlm_foo Disables module compilation. Module list:]
102 dnl esyscmd([find src/modules -type d -name rlm_\* -print |\
103 dnl sed -e 's%src/modules/.*/% (sub)- %; s%.*/%- %' |\
104 dnl awk '{print " "$0}']))
106 AC_ARG_ENABLE(strict-dependencies,
107 [ --enable-strict-dependencies Fail configure on lack of module dependancy.])
109 dnl extra argument: --with-docdir
110 docdir='${datadir}/doc/freeradius'
111 AC_MSG_CHECKING(docdir)
113 [ --with-docdir=DIR Directory for documentation [DATADIR/doc/freeradius] ],
120 [[\\/$]]* | ?:[[\\/]]* )
124 AC_MSG_ERROR([expected an absolute directory name for --with-docdir: $withval])
129 AC_MSG_RESULT($docdir)
130 if test "x$docdir" = xno; then
131 AC_MSG_WARN(Documentation files will NOT be installed.)
134 dnl extra argument: --with-logdir
135 logdir='${localstatedir}/log/radius'
136 AC_MSG_CHECKING(logdir)
138 [ --with-logdir=DIR Directory for logfiles [LOCALSTATEDIR/log/radius] ],
141 AC_MSG_ERROR(Need logdir)
145 [[\\/$]]* | ?:[[\\/]]* )
149 AC_MSG_ERROR([expected an absolute directory name for --with-logdir: $withval])
154 AC_MSG_RESULT($logdir)
156 dnl extra argument: --with-radacctdir
157 radacctdir='${logdir}/radacct'
158 AC_MSG_CHECKING(radacctdir)
159 AC_ARG_WITH(radacctdir,
160 [ --with-radacctdir=DIR Directory for detail files [LOGDIR/radacct] ],
163 AC_MSG_ERROR(Need radacctdir)
167 [[\\/$]]* | ?:[[\\/]]* )
168 radacctdir="$withval"
171 AC_MSG_ERROR([expected an absolute directory name for --with-radacctdir: $withval])
176 AC_MSG_RESULT($radacctdir)
178 dnl extra argument: --with-raddbdir
179 raddbdir='${sysconfdir}/raddb'
180 AC_MSG_CHECKING(raddbdir)
181 AC_ARG_WITH(raddbdir,
182 [ --with-raddbdir=DIR Directory for config files [SYSCONFDIR/raddb] ],
185 AC_MSG_ERROR(Need raddbdir)
189 [[\\/$]]* | ?:[[\\/]]* )
193 AC_MSG_ERROR([expected an absolute directory name for --with-raddbdir: $withval])
198 AC_MSG_RESULT($raddbdir)
200 dnl extra argument: --with-ascend-binary
202 AC_ARG_WITH(ascend-binary,
203 [ --with-ascend-binary Include support for Ascend binary filter attributes (default=yes)],
211 if test "X$ASCEND_BINARY" = "Xyes"; then
212 AC_DEFINE(ASCEND_BINARY, [], [Include support for Ascend binary filter attributes])
215 dnl extra argument: --with-threads
218 [ --with-threads Use threads, if available. (default=yes) ],
227 dnl extra argument: --with-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, [1], [define if you want VMPS support])
265 dnl extra argument: --with-dhcp
267 [ --with-dhcp Compile in DHCP support. (default=no)],
270 AC_DEFINE(WITH_DHCP, [1], [Include experimental support for DHCP])
279 dnl # Allow the user to specify a list of modules to be linked
280 dnl # statically to the server.
283 AC_ARG_WITH(static_modules,
284 [ --with-static-modules=QUOTED-MODULE-LIST],[
285 for i in $withval; do
286 STATIC_MODULES="$STATIC_MODULES -dlpreopen ../modules/rlm_$i/rlm_$i.la"
292 [ --with-modules=QUOTED-MODULE-LIST],[
293 for i in $withval; do
294 MODULES="$MODULES $i"
299 dnl # Enable developer C compiler warnings
301 AC_ARG_ENABLE(developer,
302 [ --enable-developer Enables features of interest to developers.],
303 [ case "$enableval" in
312 if test "x$developer" != "xno" -a -d $srcdir/CVS; then
313 dnl turn on the developer flag when taken from a CVS checkout (not a release)
317 dnl extra argument: --with-experimental-modules
319 AC_ARG_WITH(experimental-modules,
320 [ --with-experimental-modules Use experimental and unstable modules. (default=no) ],
329 dnl extra argument: --with-openssl
332 [ --with-openssl Use OpenSSL. (default=yes)],
344 dnl # extra argument: --with-openssl-includes=dir
347 AC_ARG_WITH(openssl-includes,
348 [ --with-openssl-includes=DIR Directory to look for OpenSSL include files],
350 *) OPENSSL_INCLUDE_DIR="$withval"
356 dnl # extra argument: --with-openssl-libraries=dir
359 AC_ARG_WITH(openssl-libraries,
360 [ --with-openssl-libraries=DIR Directory to look for OpenSSL library files],
362 *) OPENSSL_LIB_DIR="$withval"
368 dnl # These next two arguments don't actually do anything. They're
369 dnl # place holders so that the top-level configure script can tell
370 dnl # the user how to configure lower-level modules
374 dnl # extra argument: --with-rlm-FOO-lib-dir
376 AC_ARG_WITH(rlm-FOO-lib-dir,
377 [ --with-rlm-FOO-lib-dir=DIR Directory to look for library files used by module FOO],
385 dnl # extra argument: --with-rlm-FOO-include-dir
387 AC_ARG_WITH(rlm-FOO-include-dir,
388 [ --with-rlm-FOO-include-dir=DIR Directory to look for include files used by module FOO],
395 dnl See what include-style is used by the make program.
396 dnl AC_MSG_CHECKING(include style for make)
397 dnl echo "include /dev/null" > testmake.$$
398 dnl echo "all:" >> testmake.$$
399 dnl make -f testmake.$$ >/dev/null 2>&1
408 dnl rm -f testmake.$$
409 dnl AC_MSG_RESULT(" $INCLUDE")
410 dnl AC_SUBST(INCLUDE)
413 dnl extra argument: --with-udpfromto
415 AC_ARG_WITH(udpfromto,
416 [ --with-udpfromto Compile in UDPFROMTO support. (default=yes)],
426 if test "x$WITH_UDPFROMTO" = "xyes"; then
427 AC_DEFINE(WITH_UDPFROMTO, [], [define if you want udpfromto])
430 dnl #############################################################
432 dnl # 1. Checks for programs
434 dnl #############################################################
437 AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
438 if test "x$ac_cv_path_PERL" = "x"; then
439 AC_MSG_WARN(perl not found - Simultaneous-Use and checkrad.pl may not work)
441 AC_PATH_PROG(SNMPGET, snmpget)
442 if test "x$ac_cv_path_SNMPGET" = "x"; then
443 AC_MSG_WARN(snmpget not found - Simultaneous-Use and checkrad.pl may not work)
446 AC_PATH_PROG(SNMPWALK, snmpwalk)
447 if test "x$ac_cv_path_SNMPWALK" = "x"; then
448 AC_MSG_WARN(snmpwalk not found - Simultaneous-Use and checkrad.pl may not work)
451 AC_PATH_PROG(RUSERS, rusers, /usr/bin/rusers)
453 dnl FIXME This is truly gross.
454 missing_dir=`cd $ac_aux_dir && pwd`
455 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
456 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
457 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
459 AC_PATH_PROG(LOCATE,locate)
460 AC_PATH_PROG(DIRNAME,dirname)
461 AC_PATH_PROG(GREP,grep)
463 dnl #############################################################
465 dnl # 2. Checks for libraries
467 dnl #############################################################
469 dnl If using pthreads, check for -lpthread (posix) or -lc_r (*BSD)
471 if test "x$WITH_THREADS" = "xyes"; then
472 if test $ac_cv_prog_suncc = "yes"; then
476 AC_CHECK_HEADERS(pthread.h, [], [ WITH_THREADS="no" ])
479 dnl # pthread stuff is usually in -lpthread
480 dnl # or in -lc_r, on *BSD
482 dnl # On Some systems, we need extra pre-processor flags, to get them to
483 dnl # to do the threading properly.
485 AC_CHECK_LIB(pthread, pthread_create,
486 [ CFLAGS="$CFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
487 LIBS="$LIBS -lpthread" ],
488 AC_CHECK_LIB(c_r, pthread_create,
489 [ CFLAGS="$CFLAGS -pthread -D_THREAD_SAFE" ],
490 [ WITH_THREADS="no" ]
496 dnl # If we have NO pthread libraries, remove any knowledge of threads.
498 if test "x$WITH_THREADS" != "xyes"; then
500 ac_cv_header_pthread_h="no"
504 dnl # We need sem_init() and friends, as they're the friendliest
505 dnl # semaphore functions for threading.
507 dnl # HP/UX requires linking with librt, too, to get the sem_* symbols.
508 dnl # Some systems have them in -lsem
509 dnl # Solaris has them in -lposix4
510 dnl # NetBSD has them in -lsemaphore
512 AC_SEARCH_LIBS(sem_init, pthread sem posix4 rt semaphore,
514 [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)]
518 dnl Check if we need -lsocket
519 AC_CHECK_LIB(socket, getsockname)
521 dnl Check for -lresolv
522 dnl This library may be needed later.
523 AC_CHECK_LIB(resolv, inet_aton)
525 dnl Check if we need -lnsl. Usually if we want to
526 dnl link against -lsocket we need to include -lnsl as well.
527 AC_CHECK_LIB(nsl, inet_ntoa)
529 dnl Check for OpenSSL libraries.
531 if test "x$WITH_OPENSSL" = xyes; then
533 if test "x$OPENSSL_LIB_DIR" != "x"; then
534 LIBS="-L$OPENSSL_LIB_DIR $LIBS"
536 AC_CHECK_LIB(crypto, DH_new,
538 LIBS="-lcrypto $LIBS"
539 AC_DEFINE(HAVE_LIBCRYPTO, 1,
540 [Define to 1 if you have the `crypto' library (-lcrypto).])
541 AC_CHECK_LIB(ssl, SSL_new,
543 AC_DEFINE(HAVE_LIBSSL, 1,
544 [Define to 1 if you have the `ssl' library (-lssl).])
545 if test "x$OPENSSL_LIB_DIR" != "x"; then
546 OPENSSL_LIBS="-L$OPENSSL_LIB_DIR"
548 OPENSSL_LIBS="$OPENSSL_LIBS -lcrypto -lssl -lcrypto"
554 AC_CHECK_LIB(ws2_32, htonl)
556 dnl Check the pcap library for the RADIUS sniffer.
558 AC_CHECK_LIB(pcap, pcap_open_live,
560 AC_DEFINE(HAVE_LIBPCAP, 1,
561 [Define to 1 if you have the `pcap' library (-lpcap).])
563 [ AC_MSG_WARN([pcap library not found, silently disabling the RADIUS sniffer.]) ])
565 dnl #############################################################
567 dnl # 3. Checks for header files
569 dnl #############################################################
572 dnl # Interix requires us to set -D_ALL_SOURCE, otherwise
573 dnl # getopt will be #included, but won't link. <sigh>
578 CFLAGS="$CFLAGS -D_ALL_SOURCE"
581 CFLAGS="$CFLAGS -DDARWIN"
582 LIBS="-framework DirectoryService $LIBS"
628 dnl FreeBSD requires sys/socket.h before net/if.h
629 AC_CHECK_HEADERS(net/if.h, [], [],
630 [#ifdef HAVE_SYS_SOCKET_H
631 # include <sys/socket.h>
636 AC_CHECK_HEADER(regex.h, AC_DEFINE(HAVE_REGEX_H, [], [define this if we have the <regex.h> header file]))
637 if test "x$ac_cv_header_regex_h" = "xyes"; then
645 ], [AC_DEFINE(HAVE_REG_EXTENDED, [], [define this if we have REG_EXTENDED (from <regex.h>)]) REGEX_EXTENDED=yes])
648 AC_SUBST(REGEX_EXTENDED)
651 dnl # other checks which require headers
653 if test "x$ac_cv_header_sys_security_h" = "xyes" && test "x$ac_cv_header_prot_h" = "xyes"
655 AC_DEFINE(OSFC2, [], [define if you have OSFC2 authentication])
658 if test "x$ac_cv_header_sia_h" = "xyes" && test "x$ac_cv_header_siad_h" = "xyes"
660 AC_DEFINE(OSFSIA, [], [define if you have OSFSIA authentication])
663 dnl Check for OpenSSL includes.
664 OPENSSL_INCLUDE="-DNO_OPENSSL"
665 if test "x$WITH_OPENSSL" = xyes; then
666 if test "x$OPENSSL_LIBS" = "x"; then
667 AC_MSG_NOTICE([skipping test for openssl/ssl.h])
669 old_CPPFLAGS=$CPPFLAGS
670 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
671 CPPFLAGS="$CPPFLAGS -I$OPENSSL_INCLUDE_DIR"
673 dnl # stupid RedHat shit
674 CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_KRB5"
684 if test "x$OPENSSL_LIBS" != "x"; then
685 AC_MSG_CHECKING([for OpenSSL version >= 0.9.7])
687 [#include <openssl/crypto.h>
688 #if (OPENSSL_VERSION_NUMBER >= 0x00907000L)
692 if test "x$goodssl" != "xyes"; then
697 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
698 OPENSSL_INCLUDE="-I$OPENSSL_INCLUDE_DIR -DOPENSSL_NO_KRB5"
700 OPENSSL_INCLUDE="-DOPENSSL_NO_KRB5"
704 CPPFLAGS=$old_CPPFLAGS
707 AC_SUBST(OPENSSL_INCLUDE)
708 AC_SUBST(OPENSSL_LIBS)
711 dnl Check the pcap includes for the RADIUS sniffer.
712 if test "x$PCAP_LIBS" = x; then
713 AC_MSG_NOTICE([skipping test for pcap.h.])
715 AC_CHECK_HEADER(pcap.h,
716 AC_DEFINE(HAVE_PCAP_H, 1,
717 [Define to 1 if you have the <pcap.h> header file.]),
719 AC_MSG_WARN([pcap.h not found, silently disabling the RADIUS sniffer.])
724 dnl #############################################################
726 dnl # 4. Checks for typedefs
728 dnl #############################################################
731 dnl # Ensure that these are defined
738 dnl check for socklen_t
739 FR_CHECK_TYPE_INCLUDE([
740 #ifdef HAVE_SYS_TYPES_H
741 #include <sys/types.h>
743 #ifdef HAVE_SYS_SOCKET_H
744 #include <sys/socket.h>
746 ],socklen_t, int, [socklen_t is generally 'int' on systems which don't use it])
748 dnl check for uint8_t
749 FR_CHECK_TYPE_INCLUDE([
750 #ifdef HAVE_INTTYPES_H
751 #include <inttypes.h>
756 ],uint8_t, unsigned char, [uint8_t should be the canonical 'octet' for network traffic])
758 dnl check for uint16_t
759 FR_CHECK_TYPE_INCLUDE([
760 #ifdef HAVE_INTTYPES_H
761 #include <inttypes.h>
766 ],uint16_t, unsigned short, [uint16_t should be the canonical '2 octets' for network traffic])
768 dnl check for uint32_t
769 FR_CHECK_TYPE_INCLUDE([
770 #ifdef HAVE_INTTYPES_H
771 #include <inttypes.h>
776 ],uint32_t, unsigned int, [uint32_t should be the canonical 'network integer])
778 AC_CHECK_TYPE(struct in6_addr, AC_DEFINE(HAVE_STRUCT_IN6_ADDR, 1, [IPv6 address structure]), [], [
779 #ifdef HAVE_NETINET_IN_H
780 #include <netinet/in.h>
784 AC_CHECK_TYPE(struct sockaddr_storage, AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1, [Generic socket addresses]), [], [
785 #ifdef HAVE_NETINET_IN_H
786 #include <netinet/in.h>
788 #ifdef HAVE_SYS_SOCKET_H
789 #include <sys/socket.h>
793 AC_CHECK_TYPE(struct sockaddr_in6, AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6, 1, [IPv6 socket addresses]), [], [
794 #ifdef HAVE_NETINET_IN_H
795 #include <netinet/in.h>
799 AC_CHECK_TYPE(struct addrinfo, AC_DEFINE(HAVE_STRUCT_ADDRINFO, 1, [Generic DNS lookups]), [], [
800 #ifdef HAVE_SYS_TYPES_H
801 #include <sys/types.h>
803 #ifdef HAVE_SYS_SOCKET_H
804 #include <sys/socket.h>
811 dnl #############################################################
813 dnl # 5. Checks for structures and functions
815 dnl #############################################################
846 RADIUSD_NEED_DECLARATIONS( \
858 dnl # check if we have utmpx.h
859 dnl # if so, check if struct utmpx has entry ut_xtime
860 dnl # if not, set it to define ut_xtime == ut_tv.tv_sec
861 if test "x$ac_cv_header_utmpx_h" = "xyes"
863 FR_CHECK_STRUCT_HAS_MEMBER([#include <utmpx.h>], [struct utmpx], ut_xtime)
864 if test "x$ac_cv_type_struct_utmpx_has_ut_xtime" = "x"
866 AC_DEFINE(ut_xtime,ut_tv.tv_sec, [define to something if you don't have ut_xtime in struct utmpx])
870 dnl # struct ip_pktinfo
871 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in_pktinfo], ipi_addr)
872 if test "x$ac_cv_type_struct_in_pktinfo_has_ipi_addr" = "xyes"
874 AC_DEFINE(HAVE_IP_PKTINFO, [], [define if you have IP_PKTINFO (Linux)])
877 dnl # struct in6_pktinfo
878 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in6_pktinfo], ipi6_addr)
879 if test "x$ac_cv_type_struct_in6_pktinfo_has_ipi6_addr" = "xyes"
881 AC_DEFINE(HAVE_IN6_PKTINFO, [], [define if you have IN6_PKTINFO (Linux)])
884 dnl #############################################################
886 dnl # 6. Checks for compiler characteristics
888 dnl #############################################################
891 dnl # Ensure that these are defined
896 dnl # See if this is OS/2
898 AC_MSG_CHECKING(type of OS)
901 if test "$OS" = "OS/2"; then
909 dnl # Set Default CFLAGS
911 if test "x$GCC" = "xyes"; then
912 CFLAGS="$CFLAGS -Wall -D_GNU_SOURCE"
915 AC_MSG_CHECKING(for developer gcc flags)
916 if test "x$developer" = "xyes" -a "x$GCC" = "xyes"; then
917 devflags="-g -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -W -Wredundant-decls -Wundef"
918 CFLAGS="$CFLAGS $devflags"
920 AC_MSG_RESULT(yes. Using $devflags)
923 CFLAGS="$CFLAGS -DNDEBUG"
928 dnl #############################################################
930 dnl # 7. Checks for library functions
932 dnl #############################################################
934 dnl Check for libcrypt
935 dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
936 AC_CHECK_LIB(crypt, crypt,
939 if test "$CRYPTLIB" != ""; then
940 AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function])
942 AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function]))
945 dnl Check for libcipher
946 AC_CHECK_LIB(cipher, setkey,
947 CRYPTLIB="${CRYPTLIB} -lcipher"
951 if test "x$WITH_SNMP" = "xyes"; then
955 dnl Check the style of gethostbyaddr, in order of preference
956 dnl GNU (_r eight args)
957 AC_DEFINE(GNUSTYLE, [1], [GNU-Style get*byaddr_r])
958 dnl SYSV (_r six args)
959 AC_DEFINE(SYSVSTYLE, [2], [SYSV-Style get*byaddr_r])
960 dnl BSD (three args, may not be thread safe)
961 AC_DEFINE(BSDSTYLE, [3], [BSD-Style get*byaddr_r])
962 dnl Tru64 has BSD version, but it is thread safe
963 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1739____.HTM
964 dnl We need #stdio.h to define NULL on FreeBSD (at least)
965 gethostbyaddrrstyle=""
966 AC_MSG_CHECKING([gethostbyaddr_r() syntax])
969 dnl With FreeBSD, check if there's a prototype for gethostbyaddr_r.
970 dnl Some versions (FreeBSD 5.1?) have a symbol but no prototype - so we
971 dnl override this test to BSDSTYLE. FreeBSD 6.2 and up have proper GNU
973 AC_CHECK_DECLS([gethostbyaddr_r], [], [
974 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE,
975 [style of gethostbyaddr_r functions ])
976 gethostbyaddrrstyle=BSD
977 AC_MSG_WARN([FreeBSD overridden to BSD-style])
985 if test "x$gethostbyaddrrstyle" = "x"; then
989 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL, NULL) ], [
990 AC_DEFINE(GETHOSTBYADDRRSTYLE, GNUSTYLE, [style of gethostbyaddr_r functions ])
991 gethostbyaddrrstyle=GNU
994 if test "x$gethostbyaddrrstyle" = "x"; then
998 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL) ] , [
999 AC_DEFINE(GETHOSTBYADDRRSTYLE, SYSVSTYLE, [style of gethostbyaddr_r functions ])
1000 gethostbyaddrrstyle=SYSV
1003 if test "x$gethostbyaddrrstyle" = "x"; then
1007 ], [ gethostbyaddr(NULL, 0, 0) ], [
1008 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE, [style of gethostbyaddr_r functions ])
1009 gethostbyaddrrstyle=BSD
1013 if test "x$gethostbyaddrrstyle" = "x"; then
1014 AC_MSG_RESULT([none! It must not exist, here.])
1016 AC_MSG_RESULT([${gethostbyaddrrstyle}-style])
1019 if test "x$gethostbyaddrrstyle" = "xBSD"; then
1020 AC_MSG_WARN([ ****** BSD-style gethostbyaddr might NOT be thread-safe! ****** ])
1023 dnl Check the style of gethostbyname, in order of preference
1024 dnl GNU (_r seven args)
1025 dnl SYSV (_r five args)
1026 dnl BSD (two args, may not be thread safe)
1027 dnl Tru64 has BSD version, but it _is_ thread safe
1028 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1946____.HTM
1029 dnl We need #stdio.h to define NULL on FreeBSD (at least)
1030 gethostbynamerstyle=""
1031 AC_MSG_CHECKING([gethostbyname_r() syntax])
1035 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL) ], [
1036 AC_DEFINE(GETHOSTBYNAMERSTYLE, GNUSTYLE, [style of gethostbyname_r functions ])
1037 gethostbynamerstyle=GNU
1039 if test "x$gethostbynamerstyle" = "x"; then
1043 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL) ] , [
1044 AC_DEFINE(GETHOSTBYNAMERSTYLE, SYSVSTYLE, [style of gethostbyname_r functions ])
1045 gethostbynamerstyle=SYSV
1048 if test "x$gethostbynamerstyle" = "x"; then
1052 ], [ gethostbyname(NULL) ], [
1053 AC_DEFINE(GETHOSTBYNAMERSTYLE, BSDSTYLE, [style of gethostbyname_r functions ])
1054 gethostbynamerstyle=BSD
1058 if test "x$gethostbynamerstyle" = "x"; then
1059 AC_MSG_RESULT([none! It must not exist, here.])
1061 AC_MSG_RESULT([${gethostbynamerstyle}-style])
1064 if test "x$gethostbynamerstyle" = "xBSD"; then
1065 AC_MSG_WARN([ ****** BSD-style gethostbyname might NOT be thread-safe! ****** ])
1068 dnl check for non-posix solaris ctime_r (extra buflen int arg)
1069 AC_DEFINE(POSIXSTYLE, [1], [Posix-Style ctime_r])
1070 AC_DEFINE(SOLARISSTYLE, [2], [Solaris-Style ctime_r])
1072 AC_MSG_CHECKING([ctime_r() syntax])
1075 ], [ ctime_r(NULL, NULL, 0) ], [
1076 AC_DEFINE(CTIMERSTYLE, SOLARISSTYLE, [style of ctime_r function])
1077 ctimerstyle="SOLARIS"
1079 if test "x$ctimerstyle" = "x"; then
1082 ], [ ctime_r(NULL, NULL) ], [
1083 AC_DEFINE(CTIMERSTYLE, POSIXSTYLE, [style of ctime_r function])
1088 if test "x$ctimerstyle" = "x"; then
1089 AC_MSG_RESULT([none! It must not exist, here.])
1091 AC_MSG_RESULT([${ctimerstyle}-style])
1094 AC_SUBST(HOSTINFO, $host)
1096 dnl #############################################################
1098 dnl # 8. Checks for system services
1100 dnl #############################################################
1103 dnl # Figure out where libtool is located,
1107 AC_MSG_RESULT([top_builddir=$top_builddir])
1108 dnl # AC_SUBST(top_builddir)
1112 dnl import libtool stuff
1114 dnl #############################################################
1116 dnl # Configure in any module directories.
1118 dnl #############################################################
1120 mysubdirs="$LIBLTDLPATH"
1121 if test "x$EXPERIMENTAL" = "xyes"; then
1122 bar=`ls -1 "${srcdir}"/src/modules/rlm_*/configure | sed 's%/configure%%'`
1123 dnl # get rid of LF's.
1124 mysubdirs=`echo $mysubdirs $bar`
1127 dnl # Find 'configure' in ONLY the stable modules
1129 for bar in `cat "${srcdir}"/src/modules/stable`; do
1130 if test -f "${srcdir}"/src/modules/$bar/configure; then
1131 mysubdirs="$mysubdirs src/modules/$bar"
1136 dnl ############################################################
1137 dnl # make modules by list
1138 dnl #############################################################
1139 if test "x$EXPERIMENTAL" = "xyes"; then
1140 for foo in `ls -1 "${srcdir}"/src/modules | grep rlm_`; do
1141 MODULES="$MODULES $foo"
1145 dnl # make ONLY the stable modules
1147 for foo in `cat "${srcdir}"/src/modules/stable`; do
1148 MODULES="$MODULES $foo"
1153 dnl # Don't change the variable name here. Autoconf goes bonkers
1156 AC_CONFIG_SUBDIRS($LTDL_SUBDIRS $mysubdirs)
1159 dnl #############################################################
1161 dnl # And finally, output the results.
1163 dnl #############################################################
1165 AC_CONFIG_COMMANDS([stamp-h], [echo timestamp > src/include/stamp-h])
1166 AC_CONFIG_COMMANDS([build-radpaths-h], [(cd ./src/include && /bin/sh ./build-radpaths-h)])
1167 AC_CONFIG_COMMANDS([main-chmod], [(cd ./src/main && chmod +x checkrad.pl radlast radtest)])
1168 AC_CONFIG_COMMANDS([scripts-chmod], [(cd ./scripts && chmod +x rc.radiusd radwatch check-radiusd-config radiusd.cron.daily radiusd.cron.monthly cryptpasswd)])
1171 dnl # Substitute whatever libraries we found to be necessary
1174 AC_SUBST(INSTALLSTRIP)
1176 USE_SHARED_LIBS=$enable_shared
1177 AC_SUBST(USE_SHARED_LIBS)
1178 USE_STATIC_LIBS=$enable_static
1179 AC_SUBST(USE_STATIC_LIBS)
1180 AC_SUBST(STATIC_MODULES)
1181 AC_SUBST(RADIUSD_MAJOR_VERSION)
1182 AC_SUBST(RADIUSD_MINOR_VERSION)
1183 AC_SUBST(RADIUSD_VERSION)
1187 ./src/include/build-radpaths-h \
1188 ./src/main/Makefile \
1189 ./src/main/checkrad.pl \
1190 ./src/main/radlast \
1191 ./src/main/radtest \
1192 ./scripts/rc.radiusd \
1193 ./scripts/radwatch \
1194 ./scripts/radiusd.cron.daily \
1195 ./scripts/radiusd.cron.monthly \
1196 ./scripts/cryptpasswd \
1197 ./raddb/dictionary \
1198 ./raddb/radiusd.conf