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, [], [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, [], [Include experimental support for DHCP])
278 dnl # Allow the user to specify a list of modules to be linked
279 dnl # statically to the server.
282 AC_ARG_WITH(static_modules,
283 [ --with-static-modules=QUOTED-MODULE-LIST],[
284 for i in $withval; do
285 STATIC_MODULES="$STATIC_MODULES -dlpreopen ../modules/rlm_$i/rlm_$i.la"
291 [ --with-modules=QUOTED-MODULE-LIST],[
292 for i in $withval; do
293 MODULES="$MODULES $i"
298 dnl # Enable developer C compiler warnings
300 AC_ARG_ENABLE(developer,
301 [ --enable-developer Enables features of interest to developers.],
302 [ case "$enableval" in
311 if test "x$developer" != "xno" -a -d $srcdir/CVS; then
312 dnl turn on the developer flag when taken from a CVS checkout (not a release)
316 dnl extra argument: --with-experimental-modules
318 AC_ARG_WITH(experimental-modules,
319 [ --with-experimental-modules Use experimental and unstable modules. (default=no) ],
328 dnl extra argument: --with-openssl
331 [ --with-openssl Use OpenSSL. (default=yes)],
343 dnl # extra argument: --with-openssl-includes=dir
346 AC_ARG_WITH(openssl-includes,
347 [ --with-openssl-includes=DIR Directory to look for OpenSSL include files],
349 *) OPENSSL_INCLUDE_DIR="$withval"
355 dnl # extra argument: --with-openssl-libraries=dir
358 AC_ARG_WITH(openssl-libraries,
359 [ --with-openssl-libraries=DIR Directory to look for OpenSSL library files],
361 *) OPENSSL_LIB_DIR="$withval"
367 dnl # These next two arguments don't actually do anything. They're
368 dnl # place holders so that the top-level configure script can tell
369 dnl # the user how to configure lower-level modules
373 dnl # extra argument: --with-rlm-FOO-lib-dir
375 AC_ARG_WITH(rlm-FOO-lib-dir,
376 [ --with-rlm-FOO-lib-dir=DIR Directory to look for library files used by module FOO],
384 dnl # extra argument: --with-rlm-FOO-include-dir
386 AC_ARG_WITH(rlm-FOO-include-dir,
387 [ --with-rlm-FOO-include-dir=DIR Directory to look for include files used by module FOO],
394 dnl See what include-style is used by the make program.
395 dnl AC_MSG_CHECKING(include style for make)
396 dnl echo "include /dev/null" > testmake.$$
397 dnl echo "all:" >> testmake.$$
398 dnl make -f testmake.$$ >/dev/null 2>&1
407 dnl rm -f testmake.$$
408 dnl AC_MSG_RESULT(" $INCLUDE")
409 dnl AC_SUBST(INCLUDE)
412 dnl extra argument: --with-udpfromto
414 AC_ARG_WITH(udpfromto,
415 [ --with-udpfromto Compile in UDPFROMTO support. (default=yes)],
425 if test "x$WITH_UDPFROMTO" = "xyes"; then
426 AC_DEFINE(WITH_UDPFROMTO, [], [define if you want udpfromto])
429 dnl #############################################################
431 dnl # 1. Checks for programs
433 dnl #############################################################
436 AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
437 if test "x$ac_cv_path_PERL" = "x"; then
438 AC_MSG_WARN(perl not found - Simultaneous-Use and checkrad.pl may not work)
440 AC_PATH_PROG(SNMPGET, snmpget)
441 if test "x$ac_cv_path_SNMPGET" = "x"; then
442 AC_MSG_WARN(snmpget not found - Simultaneous-Use and checkrad.pl may not work)
445 AC_PATH_PROG(SNMPWALK, snmpwalk)
446 if test "x$ac_cv_path_SNMPWALK" = "x"; then
447 AC_MSG_WARN(snmpwalk not found - Simultaneous-Use and checkrad.pl may not work)
450 AC_PATH_PROG(RUSERS, rusers, /usr/bin/rusers)
452 dnl FIXME This is truly gross.
453 missing_dir=`cd $ac_aux_dir && pwd`
454 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
455 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
456 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
458 AC_PATH_PROG(LOCATE,locate)
459 AC_PATH_PROG(DIRNAME,dirname)
460 AC_PATH_PROG(GREP,grep)
462 dnl #############################################################
464 dnl # 2. Checks for libraries
466 dnl #############################################################
468 dnl If using pthreads, check for -lpthread (posix) or -lc_r (*BSD)
470 if test "x$WITH_THREADS" = "xyes"; then
471 if test $ac_cv_prog_suncc = "yes"; then
475 AC_CHECK_HEADERS(pthread.h, [], [ WITH_THREADS="no" ])
478 dnl # pthread stuff is usually in -lpthread
479 dnl # or in -lc_r, on *BSD
481 dnl # On Some systems, we need extra pre-processor flags, to get them to
482 dnl # to do the threading properly.
484 AC_CHECK_LIB(pthread, pthread_create,
485 [ CFLAGS="$CFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
486 LIBS="$LIBS -lpthread" ],
487 AC_CHECK_LIB(c_r, pthread_create,
488 [ CFLAGS="$CFLAGS -pthread -D_THREAD_SAFE" ],
489 [ WITH_THREADS="no" ]
495 dnl # If we have NO pthread libraries, remove any knowledge of threads.
497 if test "x$WITH_THREADS" != "xyes"; then
499 ac_cv_header_pthread_h="no"
503 dnl # We need sem_init() and friends, as they're the friendliest
504 dnl # semaphore functions for threading.
506 dnl # HP/UX requires linking with librt, too, to get the sem_* symbols.
507 dnl # Some systems have them in -lsem
508 dnl # Solaris has them in -lposix4
509 dnl # NetBSD has them in -lsemaphore
511 AC_SEARCH_LIBS(sem_init, pthread sem posix4 rt semaphore,
513 [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)]
517 dnl Check if we need -lsocket
518 AC_CHECK_LIB(socket, getsockname)
520 dnl Check for -lresolv
521 dnl This library may be needed later.
522 AC_CHECK_LIB(resolv, inet_aton)
524 dnl Check if we need -lnsl. Usually if we want to
525 dnl link against -lsocket we need to include -lnsl as well.
526 AC_CHECK_LIB(nsl, inet_ntoa)
528 dnl Check for OpenSSL libraries.
530 if test "x$WITH_OPENSSL" = xyes; then
532 if test "x$OPENSSL_LIB_DIR" != "x"; then
533 LIBS="-L$OPENSSL_LIB_DIR $LIBS"
535 AC_CHECK_LIB(crypto, DH_new,
537 LIBS="-lcrypto $LIBS"
538 AC_DEFINE(HAVE_LIBCRYPTO, 1,
539 [Define to 1 if you have the `crypto' library (-lcrypto).])
540 AC_CHECK_LIB(ssl, SSL_new,
542 AC_DEFINE(HAVE_LIBSSL, 1,
543 [Define to 1 if you have the `ssl' library (-lssl).])
544 if test "x$OPENSSL_LIB_DIR" != "x"; then
545 OPENSSL_LIBS="-L$OPENSSL_LIB_DIR"
547 OPENSSL_LIBS="$OPENSSL_LIBS -lcrypto -lssl -lcrypto"
553 AC_CHECK_LIB(ws2_32, htonl)
555 dnl Check the pcap library for the RADIUS sniffer.
557 AC_CHECK_LIB(pcap, pcap_open_live,
559 AC_DEFINE(HAVE_LIBPCAP, 1,
560 [Define to 1 if you have the `pcap' library (-lpcap).])
562 [ AC_MSG_WARN([pcap library not found, silently disabling the RADIUS sniffer.]) ])
564 dnl #############################################################
566 dnl # 3. Checks for header files
568 dnl #############################################################
571 dnl # Interix requires us to set -D_ALL_SOURCE, otherwise
572 dnl # getopt will be #included, but won't link. <sigh>
577 CFLAGS="$CFLAGS -D_ALL_SOURCE"
580 CFLAGS="$CFLAGS -DDARWIN"
581 LIBS="-framework DirectoryService $LIBS"
626 dnl FreeBSD requires sys/socket.h before net/if.h
627 AC_CHECK_HEADERS(net/if.h, [], [],
628 [#ifdef HAVE_SYS_SOCKET_H
629 # include <sys/socket.h>
634 AC_CHECK_HEADER(regex.h, AC_DEFINE(HAVE_REGEX_H, [], [define this if we have the <regex.h> header file]))
635 if test "x$ac_cv_header_regex_h" = "xyes"; then
643 ], [AC_DEFINE(HAVE_REG_EXTENDED, [], [define this if we have REG_EXTENDED (from <regex.h>)]) REGEX_EXTENDED=yes])
646 AC_SUBST(REGEX_EXTENDED)
649 dnl # other checks which require headers
651 if test "x$ac_cv_header_sys_security_h" = "xyes" && test "x$ac_cv_header_prot_h" = "xyes"
653 AC_DEFINE(OSFC2, [], [define if you have OSFC2 authentication])
656 if test "x$ac_cv_header_sia_h" = "xyes" && test "x$ac_cv_header_siad_h" = "xyes"
658 AC_DEFINE(OSFSIA, [], [define if you have OSFSIA authentication])
661 dnl Check for OpenSSL includes.
662 OPENSSL_INCLUDE="-DNO_OPENSSL"
663 if test "x$WITH_OPENSSL" = xyes; then
664 if test "x$OPENSSL_LIBS" = "x"; then
665 AC_MSG_NOTICE([skipping test for openssl/ssl.h])
667 old_CPPFLAGS=$CPPFLAGS
668 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
669 CPPFLAGS="$CPPFLAGS -I$OPENSSL_INCLUDE_DIR"
671 dnl # stupid RedHat shit
672 CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_KRB5"
682 if test "x$OPENSSL_LIBS" != "x"; then
683 AC_MSG_CHECKING([for OpenSSL version >= 0.9.7])
685 [#include <openssl/crypto.h>
686 #if (OPENSSL_VERSION_NUMBER >= 0x00907000L)
690 if test "x$goodssl" != "xyes"; then
695 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
696 OPENSSL_INCLUDE="-I$OPENSSL_INCLUDE_DIR -DOPENSSL_NO_KRB5"
698 OPENSSL_INCLUDE="-DOPENSSL_NO_KRB5"
702 CPPFLAGS=$old_CPPFLAGS
705 AC_SUBST(OPENSSL_INCLUDE)
706 AC_SUBST(OPENSSL_LIBS)
709 dnl Check the pcap includes for the RADIUS sniffer.
710 if test "x$PCAP_LIBS" = x; then
711 AC_MSG_NOTICE([skipping test for pcap.h.])
713 AC_CHECK_HEADER(pcap.h,
714 AC_DEFINE(HAVE_PCAP_H, 1,
715 [Define to 1 if you have the <pcap.h> header file.]),
717 AC_MSG_WARN([pcap.h not found, silently disabling the RADIUS sniffer.])
722 dnl #############################################################
724 dnl # 4. Checks for typedefs
726 dnl #############################################################
729 dnl # Ensure that these are defined
736 dnl check for socklen_t
737 FR_CHECK_TYPE_INCLUDE([
738 #ifdef HAVE_SYS_TYPES_H
739 #include <sys/types.h>
741 #ifdef HAVE_SYS_SOCKET_H
742 #include <sys/socket.h>
744 ],socklen_t, int, [socklen_t is generally 'int' on systems which don't use it])
746 dnl check for uint8_t
747 FR_CHECK_TYPE_INCLUDE([
748 #ifdef HAVE_INTTYPES_H
749 #include <inttypes.h>
754 ],uint8_t, unsigned char, [uint8_t should be the canonical 'octet' for network traffic])
756 dnl check for uint16_t
757 FR_CHECK_TYPE_INCLUDE([
758 #ifdef HAVE_INTTYPES_H
759 #include <inttypes.h>
764 ],uint16_t, unsigned short, [uint16_t should be the canonical '2 octets' for network traffic])
766 dnl check for uint32_t
767 FR_CHECK_TYPE_INCLUDE([
768 #ifdef HAVE_INTTYPES_H
769 #include <inttypes.h>
774 ],uint32_t, unsigned int, [uint32_t should be the canonical 'network integer])
776 AC_CHECK_TYPE(struct in6_addr, AC_DEFINE(HAVE_STRUCT_IN6_ADDR, 1, [IPv6 address structure]), [], [
777 #ifdef HAVE_NETINET_IN_H
778 #include <netinet/in.h>
782 AC_CHECK_TYPE(struct sockaddr_storage, AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1, [Generic socket addresses]), [], [
783 #ifdef HAVE_NETINET_IN_H
784 #include <netinet/in.h>
786 #ifdef HAVE_SYS_SOCKET_H
787 #include <sys/socket.h>
791 AC_CHECK_TYPE(struct sockaddr_in6, AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6, 1, [IPv6 socket addresses]), [], [
792 #ifdef HAVE_NETINET_IN_H
793 #include <netinet/in.h>
797 AC_CHECK_TYPE(struct addrinfo, AC_DEFINE(HAVE_STRUCT_ADDRINFO, 1, [Generic DNS lookups]), [], [
798 #ifdef HAVE_SYS_TYPES_H
799 #include <sys/types.h>
801 #ifdef HAVE_SYS_SOCKET_H
802 #include <sys/socket.h>
809 dnl #############################################################
811 dnl # 5. Checks for structures and functions
813 dnl #############################################################
844 RADIUSD_NEED_DECLARATIONS( \
856 dnl # check if we have utmpx.h
857 dnl # if so, check if struct utmpx has entry ut_xtime
858 dnl # if not, set it to define ut_xtime == ut_tv.tv_sec
859 if test "x$ac_cv_header_utmpx_h" = "xyes"
861 FR_CHECK_STRUCT_HAS_MEMBER([#include <utmpx.h>], [struct utmpx], ut_xtime)
862 if test "x$ac_cv_type_struct_utmpx_has_ut_xtime" = "x"
864 AC_DEFINE(ut_xtime,ut_tv.tv_sec, [define to something if you don't have ut_xtime in struct utmpx])
868 dnl # struct ip_pktinfo
869 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in_pktinfo], ipi_addr)
870 if test "x$ac_cv_type_struct_in_pktinfo_has_ipi_addr" = "xyes"
872 AC_DEFINE(HAVE_IP_PKTINFO, [], [define if you have IP_PKTINFO (Linux)])
875 dnl # struct in6_pktinfo
876 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in6_pktinfo], ipi6_addr)
877 if test "x$ac_cv_type_struct_in6_pktinfo_has_ipi6_addr" = "xyes"
879 AC_DEFINE(HAVE_IN6_PKTINFO, [], [define if you have IN6_PKTINFO (Linux)])
882 dnl #############################################################
884 dnl # 6. Checks for compiler characteristics
886 dnl #############################################################
889 dnl # Ensure that these are defined
894 dnl # See if this is OS/2
896 AC_MSG_CHECKING(type of OS)
899 if test "$OS" = "OS/2"; then
907 dnl # Set Default CFLAGS
909 if test "x$GCC" = "xyes"; then
910 CFLAGS="$CFLAGS -Wall -D_GNU_SOURCE"
913 AC_MSG_CHECKING(for developer gcc flags)
914 if test "x$developer" = "xyes" -a "x$GCC" = "xyes"; then
915 devflags="-g -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -W -Wredundant-decls -Wundef"
916 CFLAGS="$CFLAGS $devflags"
918 AC_MSG_RESULT(yes. Using $devflags)
921 CFLAGS="$CFLAGS -DNDEBUG"
926 dnl #############################################################
928 dnl # 7. Checks for library functions
930 dnl #############################################################
932 dnl Check for libcrypt
933 dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
934 AC_CHECK_LIB(crypt, crypt,
937 if test "$CRYPTLIB" != ""; then
938 AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function])
940 AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function]))
943 dnl Check for libcipher
944 AC_CHECK_LIB(cipher, setkey,
945 CRYPTLIB="${CRYPTLIB} -lcipher"
949 if test "x$WITH_SNMP" = "xyes"; then
953 dnl Check the style of gethostbyaddr, in order of preference
954 dnl GNU (_r eight args)
955 AC_DEFINE(GNUSTYLE, [1], [GNU-Style get*byaddr_r])
956 dnl SYSV (_r six args)
957 AC_DEFINE(SYSVSTYLE, [2], [SYSV-Style get*byaddr_r])
958 dnl BSD (three args, may not be thread safe)
959 AC_DEFINE(BSDSTYLE, [3], [BSD-Style get*byaddr_r])
960 dnl Tru64 has BSD version, but it is thread safe
961 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1739____.HTM
962 dnl We need #stdio.h to define NULL on FreeBSD (at least)
963 gethostbyaddrrstyle=""
964 AC_MSG_CHECKING([gethostbyaddr_r() syntax])
967 dnl With FreeBSD, check if there's a prototype for gethostbyaddr_r.
968 dnl Some versions (FreeBSD 5.1?) have a symbol but no prototype - so we
969 dnl override this test to BSDSTYLE. FreeBSD 6.2 and up have proper GNU
971 AC_CHECK_DECLS([gethostbyaddr_r], [], [
972 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE,
973 [style of gethostbyaddr_r functions ])
974 gethostbyaddrrstyle=BSD
975 AC_MSG_WARN([FreeBSD overridden to BSD-style])
983 if test "x$gethostbyaddrrstyle" = "x"; then
987 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL, NULL) ], [
988 AC_DEFINE(GETHOSTBYADDRRSTYLE, GNUSTYLE, [style of gethostbyaddr_r functions ])
989 gethostbyaddrrstyle=GNU
992 if test "x$gethostbyaddrrstyle" = "x"; then
996 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL) ] , [
997 AC_DEFINE(GETHOSTBYADDRRSTYLE, SYSVSTYLE, [style of gethostbyaddr_r functions ])
998 gethostbyaddrrstyle=SYSV
1001 if test "x$gethostbyaddrrstyle" = "x"; then
1005 ], [ gethostbyaddr(NULL, 0, 0) ], [
1006 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE, [style of gethostbyaddr_r functions ])
1007 gethostbyaddrrstyle=BSD
1011 if test "x$gethostbyaddrrstyle" = "x"; then
1012 AC_MSG_RESULT([none! It must not exist, here.])
1014 AC_MSG_RESULT([${gethostbyaddrrstyle}-style])
1017 if test "x$gethostbyaddrrstyle" = "xBSD"; then
1018 AC_MSG_WARN([ ****** BSD-style gethostbyaddr might NOT be thread-safe! ****** ])
1021 dnl Check the style of gethostbyname, in order of preference
1022 dnl GNU (_r seven args)
1023 dnl SYSV (_r five args)
1024 dnl BSD (two args, may not be thread safe)
1025 dnl Tru64 has BSD version, but it _is_ thread safe
1026 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1946____.HTM
1027 dnl We need #stdio.h to define NULL on FreeBSD (at least)
1028 gethostbynamerstyle=""
1029 AC_MSG_CHECKING([gethostbyname_r() syntax])
1033 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL) ], [
1034 AC_DEFINE(GETHOSTBYNAMERSTYLE, GNUSTYLE, [style of gethostbyname_r functions ])
1035 gethostbynamerstyle=GNU
1037 if test "x$gethostbynamerstyle" = "x"; then
1041 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL) ] , [
1042 AC_DEFINE(GETHOSTBYNAMERSTYLE, SYSVSTYLE, [style of gethostbyname_r functions ])
1043 gethostbynamerstyle=SYSV
1046 if test "x$gethostbynamerstyle" = "x"; then
1050 ], [ gethostbyname(NULL) ], [
1051 AC_DEFINE(GETHOSTBYNAMERSTYLE, BSDSTYLE, [style of gethostbyname_r functions ])
1052 gethostbynamerstyle=BSD
1056 if test "x$gethostbynamerstyle" = "x"; then
1057 AC_MSG_RESULT([none! It must not exist, here.])
1059 AC_MSG_RESULT([${gethostbynamerstyle}-style])
1062 if test "x$gethostbynamerstyle" = "xBSD"; then
1063 AC_MSG_WARN([ ****** BSD-style gethostbyname might NOT be thread-safe! ****** ])
1066 dnl check for non-posix solaris ctime_r (extra buflen int arg)
1067 AC_DEFINE(POSIXSTYLE, [1], [Posix-Style ctime_r])
1068 AC_DEFINE(SOLARISSTYLE, [2], [Solaris-Style ctime_r])
1070 AC_MSG_CHECKING([ctime_r() syntax])
1073 ], [ ctime_r(NULL, NULL, 0) ], [
1074 AC_DEFINE(CTIMERSTYLE, SOLARISSTYLE, [style of ctime_r function])
1075 ctimerstyle="SOLARIS"
1077 if test "x$ctimerstyle" = "x"; then
1080 ], [ ctime_r(NULL, NULL) ], [
1081 AC_DEFINE(CTIMERSTYLE, POSIXSTYLE, [style of ctime_r function])
1086 if test "x$ctimerstyle" = "x"; then
1087 AC_MSG_RESULT([none! It must not exist, here.])
1089 AC_MSG_RESULT([${ctimerstyle}-style])
1092 AC_SUBST(HOSTINFO, $host)
1094 dnl #############################################################
1096 dnl # 8. Checks for system services
1098 dnl #############################################################
1101 dnl # Figure out where libtool is located,
1105 AC_MSG_RESULT([top_builddir=$top_builddir])
1106 dnl # AC_SUBST(top_builddir)
1110 dnl import libtool stuff
1112 dnl #############################################################
1114 dnl # Configure in any module directories.
1116 dnl #############################################################
1118 mysubdirs="$LIBLTDLPATH"
1119 if test "x$EXPERIMENTAL" = "xyes"; then
1120 bar=`ls -1 "${srcdir}"/src/modules/rlm_*/configure | sed 's%/configure%%'`
1121 dnl # get rid of LF's.
1122 mysubdirs=`echo $mysubdirs $bar`
1125 dnl # Find 'configure' in ONLY the stable modules
1127 for bar in `cat "${srcdir}"/src/modules/stable`; do
1128 if test -f "${srcdir}"/src/modules/$bar/configure; then
1129 mysubdirs="$mysubdirs src/modules/$bar"
1134 dnl ############################################################
1135 dnl # make modules by list
1136 dnl #############################################################
1137 if test "x$EXPERIMENTAL" = "xyes"; then
1138 for foo in `ls -1 "${srcdir}"/src/modules | grep rlm_`; do
1139 MODULES="$MODULES $foo"
1143 dnl # make ONLY the stable modules
1145 for foo in `cat "${srcdir}"/src/modules/stable`; do
1146 MODULES="$MODULES $foo"
1151 dnl # Don't change the variable name here. Autoconf goes bonkers
1154 AC_CONFIG_SUBDIRS($LTDL_SUBDIRS $mysubdirs)
1157 dnl #############################################################
1159 dnl # And finally, output the results.
1161 dnl #############################################################
1163 AC_CONFIG_COMMANDS([stamp-h], [echo timestamp > src/include/stamp-h])
1164 AC_CONFIG_COMMANDS([build-radpaths-h], [(cd ./src/include && /bin/sh ./build-radpaths-h)])
1165 AC_CONFIG_COMMANDS([main-chmod], [(cd ./src/main && chmod +x checkrad.pl radlast radtest)])
1166 AC_CONFIG_COMMANDS([scripts-chmod], [(cd ./scripts && chmod +x rc.radiusd radwatch check-radiusd-config radiusd.cron.daily radiusd.cron.monthly cryptpasswd)])
1169 dnl # Substitute whatever libraries we found to be necessary
1172 AC_SUBST(INSTALLSTRIP)
1174 USE_SHARED_LIBS=$enable_shared
1175 AC_SUBST(USE_SHARED_LIBS)
1176 USE_STATIC_LIBS=$enable_static
1177 AC_SUBST(USE_STATIC_LIBS)
1178 AC_SUBST(STATIC_MODULES)
1179 AC_SUBST(RADIUSD_MAJOR_VERSION)
1180 AC_SUBST(RADIUSD_MINOR_VERSION)
1181 AC_SUBST(RADIUSD_VERSION)
1185 ./src/include/build-radpaths-h \
1186 ./src/main/Makefile \
1187 ./src/main/checkrad.pl \
1188 ./src/main/radlast \
1189 ./src/main/radtest \
1190 ./scripts/rc.radiusd \
1191 ./scripts/radwatch \
1192 ./scripts/radiusd.cron.daily \
1193 ./scripts/radiusd.cron.monthly \
1194 ./scripts/cryptpasswd \
1195 ./raddb/dictionary \
1196 ./raddb/radiusd.conf