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 AC_ARG_WITH(system-libtldl,
76 [ --with-system-libtldl Use the libltdl installed in your system (default=use our own)],
83 AC_LIBLTDL_INSTALLABLE
85 dnl tell Makefile to build ltdl if needed
86 if test x"$enable_ltdl_install" = x"yes"; then
90 AC_SUBST(LTDL_SUBDIRS)
92 dnl use system-wide libtool, if it exists
93 AC_ARG_WITH(system-libtool,
94 [ --with-system-libtool Use the libtool installed in your system (default=use our own)],
95 [ AC_PATH_PROG(LIBTOOL, libtool,,$PATH:/usr/local/bin) ],
97 LIBTOOL="`pwd`/libtool"
99 dnl ensure that we're looking for dlopen
102 dnl Figure out how to build shared libraries
107 dnl Put this in later, when all distributed modules use autoconf.
108 dnl AC_ARG_WITH(disablemodulefoo,
109 dnl [ --without-rlm_foo Disables module compilation. Module list:]
110 dnl esyscmd([find src/modules -type d -name rlm_\* -print |\
111 dnl sed -e 's%src/modules/.*/% (sub)- %; s%.*/%- %' |\
112 dnl awk '{print " "$0}']))
114 AC_ARG_ENABLE(strict-dependencies,
115 [ --enable-strict-dependencies Fail configure on lack of module dependancy.])
117 dnl extra argument: --with-docdir
118 docdir='${datadir}/doc/freeradius'
119 AC_MSG_CHECKING(docdir)
121 [ --with-docdir=DIR Directory for documentation [DATADIR/doc/freeradius] ],
128 [[\\/$]]* | ?:[[\\/]]* )
132 AC_MSG_ERROR([expected an absolute directory name for --with-docdir: $withval])
137 AC_MSG_RESULT($docdir)
138 if test "x$docdir" = xno; then
139 AC_MSG_WARN(Documentation files will NOT be installed.)
142 dnl extra argument: --with-logdir
143 logdir='${localstatedir}/log/radius'
144 AC_MSG_CHECKING(logdir)
146 [ --with-logdir=DIR Directory for logfiles [LOCALSTATEDIR/log/radius] ],
149 AC_MSG_ERROR(Need logdir)
153 [[\\/$]]* | ?:[[\\/]]* )
157 AC_MSG_ERROR([expected an absolute directory name for --with-logdir: $withval])
162 AC_MSG_RESULT($logdir)
164 dnl extra argument: --with-radacctdir
165 radacctdir='${logdir}/radacct'
166 AC_MSG_CHECKING(radacctdir)
167 AC_ARG_WITH(radacctdir,
168 [ --with-radacctdir=DIR Directory for detail files [LOGDIR/radacct] ],
171 AC_MSG_ERROR(Need radacctdir)
175 [[\\/$]]* | ?:[[\\/]]* )
176 radacctdir="$withval"
179 AC_MSG_ERROR([expected an absolute directory name for --with-radacctdir: $withval])
184 AC_MSG_RESULT($radacctdir)
186 dnl extra argument: --with-raddbdir
187 raddbdir='${sysconfdir}/raddb'
188 AC_MSG_CHECKING(raddbdir)
189 AC_ARG_WITH(raddbdir,
190 [ --with-raddbdir=DIR Directory for config files [SYSCONFDIR/raddb] ],
193 AC_MSG_ERROR(Need raddbdir)
197 [[\\/$]]* | ?:[[\\/]]* )
201 AC_MSG_ERROR([expected an absolute directory name for --with-raddbdir: $withval])
206 AC_MSG_RESULT($raddbdir)
208 dnl extra argument: --with-ascend-binary
210 AC_ARG_WITH(ascend-binary,
211 [ --with-ascend-binary Include support for Ascend binary filter attributes (default=yes)],
219 if test "X$ASCEND_BINARY" = "Xyes"; then
220 AC_DEFINE(ASCEND_BINARY, [], [Include support for Ascend binary filter attributes])
223 dnl extra argument: --with-threads
226 [ --with-threads Use threads, if available. (default=yes) ],
235 dnl extra argument: --with-vmps
238 [ --with-vmps Compile in VMPS support. (default=yes)],
246 if test "x$WITH_VMPS" = "xyes"; then
247 AC_DEFINE(WITH_VMPS, [1], [define if you want VMPS support])
250 dnl extra argument: --with-dhcp
252 [ --with-dhcp Compile in DHCP support. (default=no)],
255 AC_DEFINE(WITH_DHCP, [1], [Include experimental support for DHCP])
264 dnl # Allow the user to specify a list of modules to be linked
265 dnl # statically to the server.
268 AC_ARG_WITH(static_modules,
269 [ --with-static-modules=QUOTED-MODULE-LIST],[
270 for i in $withval; do
271 STATIC_MODULES="$STATIC_MODULES -dlpreopen ../modules/rlm_$i/rlm_$i.la"
277 [ --with-modules=QUOTED-MODULE-LIST],[
278 for i in $withval; do
279 MODULES="$MODULES $i"
284 dnl # Enable developer C compiler warnings
286 AC_ARG_ENABLE(developer,
287 [ --enable-developer Enables features of interest to developers.],
288 [ case "$enableval" in
297 if test "x$developer" != "xno" -a -d $srcdir/CVS; then
298 dnl turn on the developer flag when taken from a CVS checkout (not a release)
302 if test "x$developer" != "xno" -a -d $srcdir/.git; then
303 dnl turn on the developer flag when taken from a git checkout (not a release)
307 dnl extra argument: --with-experimental-modules
309 AC_ARG_WITH(experimental-modules,
310 [ --with-experimental-modules Use experimental and unstable modules. (default=no) ],
319 dnl extra argument: --with-openssl
322 [ --with-openssl Use OpenSSL. (default=yes)],
334 dnl # extra argument: --with-openssl-includes=dir
337 AC_ARG_WITH(openssl-includes,
338 [ --with-openssl-includes=DIR Directory to look for OpenSSL include files],
340 *) OPENSSL_INCLUDE_DIR="$withval"
346 dnl # extra argument: --with-openssl-libraries=dir
349 AC_ARG_WITH(openssl-libraries,
350 [ --with-openssl-libraries=DIR Directory to look for OpenSSL library files],
352 *) OPENSSL_LIB_DIR="$withval"
358 dnl # These next two arguments don't actually do anything. They're
359 dnl # place holders so that the top-level configure script can tell
360 dnl # the user how to configure lower-level modules
364 dnl # extra argument: --with-rlm-FOO-lib-dir
366 AC_ARG_WITH(rlm-FOO-lib-dir,
367 [ --with-rlm-FOO-lib-dir=DIR Directory to look for library files used by module FOO],
375 dnl # extra argument: --with-rlm-FOO-include-dir
377 AC_ARG_WITH(rlm-FOO-include-dir,
378 [ --with-rlm-FOO-include-dir=DIR Directory to look for include files used by module FOO],
385 dnl See what include-style is used by the make program.
386 dnl AC_MSG_CHECKING(include style for make)
387 dnl echo "include /dev/null" > testmake.$$
388 dnl echo "all:" >> testmake.$$
389 dnl make -f testmake.$$ >/dev/null 2>&1
398 dnl rm -f testmake.$$
399 dnl AC_MSG_RESULT(" $INCLUDE")
400 dnl AC_SUBST(INCLUDE)
403 dnl extra argument: --with-udpfromto
405 AC_ARG_WITH(udpfromto,
406 [ --with-udpfromto Compile in UDPFROMTO support. (default=no)],
416 if test "x$WITH_UDPFROMTO" = "xyes"; then
417 AC_DEFINE(WITH_UDPFROMTO, [], [define if you want udpfromto])
420 dnl #############################################################
422 dnl # 1. Checks for programs
424 dnl #############################################################
427 AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
428 if test "x$ac_cv_path_PERL" = "x"; then
429 AC_MSG_WARN(perl not found - Simultaneous-Use and checkrad.pl may not work)
431 AC_PATH_PROG(SNMPGET, snmpget)
432 if test "x$ac_cv_path_SNMPGET" = "x"; then
433 AC_MSG_WARN(snmpget not found - Simultaneous-Use and checkrad.pl may not work)
436 AC_PATH_PROG(SNMPWALK, snmpwalk)
437 if test "x$ac_cv_path_SNMPWALK" = "x"; then
438 AC_MSG_WARN(snmpwalk not found - Simultaneous-Use and checkrad.pl may not work)
441 AC_PATH_PROG(RUSERS, rusers, /usr/bin/rusers)
443 dnl FIXME This is truly gross.
444 missing_dir=`cd $ac_aux_dir && pwd`
445 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
446 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
447 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
449 AC_PATH_PROG(LOCATE,locate)
450 AC_PATH_PROG(DIRNAME,dirname)
451 AC_PATH_PROG(GREP,grep)
453 dnl #############################################################
455 dnl # 2. Checks for libraries
457 dnl #############################################################
459 dnl If using pthreads, check for -lpthread (posix) or -lc_r (*BSD)
461 if test "x$WITH_THREADS" = "xyes"; then
462 if test $ac_cv_prog_suncc = "yes"; then
466 AC_CHECK_HEADERS(pthread.h, [], [ WITH_THREADS="no" ])
469 dnl # pthread stuff is usually in -lpthread
470 dnl # or in -lc_r, on *BSD
472 dnl # On Some systems, we need extra pre-processor flags, to get them to
473 dnl # to do the threading properly.
475 AC_CHECK_LIB(pthread, pthread_create,
476 [ CFLAGS="$CFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
477 LIBS="$LIBS -lpthread" ],
478 AC_CHECK_LIB(c_r, pthread_create,
479 [ CFLAGS="$CFLAGS -pthread -D_THREAD_SAFE" ],
480 [ WITH_THREADS="no" ]
486 dnl # If we have NO pthread libraries, remove any knowledge of threads.
488 if test "x$WITH_THREADS" != "xyes"; then
490 ac_cv_header_pthread_h="no"
494 dnl # We need sem_init() and friends, as they're the friendliest
495 dnl # semaphore functions for threading.
497 dnl # HP/UX requires linking with librt, too, to get the sem_* symbols.
498 dnl # Some systems have them in -lsem
499 dnl # Solaris has them in -lposix4
500 dnl # NetBSD has them in -lsemaphore
502 AC_SEARCH_LIBS(sem_init, pthread sem posix4 rt semaphore,
504 [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)]
508 dnl Check if we need -lsocket
509 AC_CHECK_LIB(socket, getsockname)
511 dnl Check for -lresolv
512 dnl This library may be needed later.
513 AC_CHECK_LIB(resolv, inet_aton)
515 dnl Check if we need -lnsl. Usually if we want to
516 dnl link against -lsocket we need to include -lnsl as well.
517 AC_CHECK_LIB(nsl, inet_ntoa)
519 dnl Check for OpenSSL libraries.
521 if test "x$WITH_OPENSSL" = xyes; then
523 old_LDFLAGS="$LDFLAGS"
524 if test "x$OPENSSL_LIB_DIR" != "x"; then
525 LDFLAGS="$LDFLAGS -L$OPENSSL_LIB_DIR"
527 AC_CHECK_LIB(crypto, DH_new,
529 LIBS="-lcrypto $LIBS"
530 AC_DEFINE(HAVE_LIBCRYPTO, 1,
531 [Define to 1 if you have the `crypto' library (-lcrypto).])
532 AC_CHECK_LIB(ssl, SSL_new,
534 AC_DEFINE(HAVE_LIBSSL, 1,
535 [Define to 1 if you have the `ssl' library (-lssl).])
536 if test "x$OPENSSL_LIB_DIR" != "x"; then
537 OPENSSL_LIBS="-L$OPENSSL_LIB_DIR"
539 OPENSSL_LIBS="$OPENSSL_LIBS -lcrypto -lssl -lcrypto"
543 LDFLAGS="$old_LDFLAGS"
546 AC_CHECK_LIB(ws2_32, htonl)
548 dnl Check the pcap library for the RADIUS sniffer.
550 AC_CHECK_LIB(pcap, pcap_open_live,
552 AC_DEFINE(HAVE_LIBPCAP, 1,
553 [Define to 1 if you have the `pcap' library (-lpcap).])
555 [ AC_MSG_WARN([pcap library not found, silently disabling the RADIUS sniffer.]) ])
559 dnl #############################################################
561 dnl # 3. Checks for header files
563 dnl #############################################################
566 dnl # Interix requires us to set -D_ALL_SOURCE, otherwise
567 dnl # getopt will be #included, but won't link. <sigh>
572 CFLAGS="$CFLAGS -D_ALL_SOURCE"
575 CFLAGS="$CFLAGS -DDARWIN"
576 LIBS="-framework DirectoryService $LIBS"
623 dnl FreeBSD requires sys/socket.h before net/if.h
624 AC_CHECK_HEADERS(net/if.h, [], [],
625 [#ifdef HAVE_SYS_SOCKET_H
626 # include <sys/socket.h>
631 AC_CHECK_HEADER(regex.h, AC_DEFINE(HAVE_REGEX_H, [], [define this if we have the <regex.h> header file]))
632 if test "x$ac_cv_header_regex_h" = "xyes"; then
640 ], [AC_DEFINE(HAVE_REG_EXTENDED, [], [define this if we have REG_EXTENDED (from <regex.h>)]) REGEX_EXTENDED=yes])
643 AC_SUBST(REGEX_EXTENDED)
646 dnl # other checks which require headers
648 if test "x$ac_cv_header_sys_security_h" = "xyes" && test "x$ac_cv_header_prot_h" = "xyes"
650 AC_DEFINE(OSFC2, [], [define if you have OSFC2 authentication])
653 if test "x$ac_cv_header_sia_h" = "xyes" && test "x$ac_cv_header_siad_h" = "xyes"
655 AC_DEFINE(OSFSIA, [], [define if you have OSFSIA authentication])
658 dnl Check for OpenSSL includes.
659 OPENSSL_INCLUDE="-DNO_OPENSSL"
660 if test "x$WITH_OPENSSL" = xyes; then
661 if test "x$OPENSSL_LIBS" = "x"; then
662 AC_MSG_NOTICE([skipping test for openssl/ssl.h])
664 old_CPPFLAGS=$CPPFLAGS
665 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
666 CPPFLAGS="$CPPFLAGS -I$OPENSSL_INCLUDE_DIR"
668 dnl # stupid RedHat shit
669 CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_KRB5"
679 if test "x$OPENSSL_LIBS" != "x"; then
680 AC_MSG_CHECKING([for OpenSSL version >= 0.9.7])
682 [#include <openssl/crypto.h>
683 #if (OPENSSL_VERSION_NUMBER >= 0x00907000L)
687 if test "x$goodssl" != "xyes"; then
692 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
693 OPENSSL_INCLUDE="-I$OPENSSL_INCLUDE_DIR -DOPENSSL_NO_KRB5"
695 OPENSSL_INCLUDE="-DOPENSSL_NO_KRB5"
699 CPPFLAGS=$old_CPPFLAGS
702 AC_SUBST(OPENSSL_INCLUDE)
703 AC_SUBST(OPENSSL_LIBS)
706 dnl Check the pcap includes for the RADIUS sniffer.
707 if test "x$PCAP_LIBS" = x; then
708 AC_MSG_NOTICE([skipping test for pcap.h.])
710 AC_CHECK_HEADER(pcap.h,
711 AC_DEFINE(HAVE_PCAP_H, 1,
712 [Define to 1 if you have the <pcap.h> header file.]),
714 AC_MSG_WARN([pcap.h not found, silently disabling the RADIUS sniffer.])
719 dnl #############################################################
721 dnl # 4. Checks for typedefs
723 dnl #############################################################
726 dnl # Ensure that these are defined
733 dnl check for socklen_t
734 FR_CHECK_TYPE_INCLUDE([
735 #ifdef HAVE_SYS_TYPES_H
736 #include <sys/types.h>
738 #ifdef HAVE_SYS_SOCKET_H
739 #include <sys/socket.h>
741 ],socklen_t, int, [socklen_t is generally 'int' on systems which don't use it])
743 dnl check for uint8_t
744 FR_CHECK_TYPE_INCLUDE([
745 #ifdef HAVE_INTTYPES_H
746 #include <inttypes.h>
751 ],uint8_t, unsigned char, [uint8_t should be the canonical 'octet' for network traffic])
753 dnl check for uint16_t
754 FR_CHECK_TYPE_INCLUDE([
755 #ifdef HAVE_INTTYPES_H
756 #include <inttypes.h>
761 ],uint16_t, unsigned short, [uint16_t should be the canonical '2 octets' for network traffic])
763 dnl check for uint32_t
764 FR_CHECK_TYPE_INCLUDE([
765 #ifdef HAVE_INTTYPES_H
766 #include <inttypes.h>
771 ],uint32_t, unsigned int, [uint32_t should be the canonical 'network integer])
773 AC_CHECK_TYPE(struct in6_addr, AC_DEFINE(HAVE_STRUCT_IN6_ADDR, 1, [IPv6 address structure]), [], [
774 #ifdef HAVE_NETINET_IN_H
775 #include <netinet/in.h>
779 AC_CHECK_TYPE(struct sockaddr_storage, AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1, [Generic socket addresses]), [], [
780 #ifdef HAVE_NETINET_IN_H
781 #include <netinet/in.h>
783 #ifdef HAVE_SYS_SOCKET_H
784 #include <sys/socket.h>
788 AC_CHECK_TYPE(struct sockaddr_in6, AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6, 1, [IPv6 socket addresses]), [], [
789 #ifdef HAVE_NETINET_IN_H
790 #include <netinet/in.h>
794 AC_CHECK_TYPE(struct addrinfo, AC_DEFINE(HAVE_STRUCT_ADDRINFO, 1, [Generic DNS lookups]), [], [
795 #ifdef HAVE_SYS_TYPES_H
796 #include <sys/types.h>
798 #ifdef HAVE_SYS_SOCKET_H
799 #include <sys/socket.h>
806 dnl #############################################################
808 dnl # 5. Checks for structures and functions
810 dnl #############################################################
845 RADIUSD_NEED_DECLARATIONS( \
857 dnl # check if we have utmpx.h
858 dnl # if so, check if struct utmpx has entry ut_xtime
859 dnl # if not, set it to define ut_xtime == ut_tv.tv_sec
860 if test "x$ac_cv_header_utmpx_h" = "xyes"
862 FR_CHECK_STRUCT_HAS_MEMBER([#include <utmpx.h>], [struct utmpx], ut_xtime)
863 if test "x$ac_cv_type_struct_utmpx_has_ut_xtime" = "x"
865 AC_DEFINE(ut_xtime,ut_tv.tv_sec, [define to something if you don't have ut_xtime in struct utmpx])
869 dnl # struct ip_pktinfo
870 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in_pktinfo], ipi_addr)
871 if test "x$ac_cv_type_struct_in_pktinfo_has_ipi_addr" = "xyes"
873 AC_DEFINE(HAVE_IP_PKTINFO, [], [define if you have IP_PKTINFO (Linux)])
876 dnl # struct in6_pktinfo
877 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in6_pktinfo], ipi6_addr)
878 if test "x$ac_cv_type_struct_in6_pktinfo_has_ipi6_addr" = "xyes"
880 AC_DEFINE(HAVE_IN6_PKTINFO, [], [define if you have IN6_PKTINFO (Linux)])
883 dnl #############################################################
885 dnl # 6. Checks for compiler characteristics
887 dnl #############################################################
890 dnl # Ensure that these are defined
895 dnl # See if this is OS/2
897 AC_MSG_CHECKING(type of OS)
900 if test "$OS" = "OS/2"; then
908 dnl # Set Default CFLAGS
910 if test "x$GCC" = "xyes"; then
911 CFLAGS="$CFLAGS -Wall -D_GNU_SOURCE"
914 AC_MSG_CHECKING(for developer gcc flags)
915 if test "x$developer" = "xyes" -a "x$GCC" = "xyes"; then
916 devflags="-g -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -W -Wredundant-decls -Wundef"
917 CFLAGS="$CFLAGS $devflags"
919 AC_MSG_RESULT(yes. Using $devflags)
922 CFLAGS="$CFLAGS -DNDEBUG"
929 dnl #############################################################
931 dnl # 7. Checks for library functions
933 dnl #############################################################
935 dnl Check for libcrypt
936 dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
937 AC_CHECK_LIB(crypt, crypt,
940 if test "$CRYPTLIB" != ""; then
941 AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function])
943 AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function]))
946 dnl Check for libcipher
947 AC_CHECK_LIB(cipher, setkey,
948 CRYPTLIB="${CRYPTLIB} -lcipher"
952 dnl Check the style of gethostbyaddr, in order of preference
953 dnl GNU (_r eight args)
954 AC_DEFINE(GNUSTYLE, [1], [GNU-Style get*byaddr_r])
955 dnl SYSV (_r six args)
956 AC_DEFINE(SYSVSTYLE, [2], [SYSV-Style get*byaddr_r])
957 dnl BSD (three args, may not be thread safe)
958 AC_DEFINE(BSDSTYLE, [3], [BSD-Style get*byaddr_r])
959 dnl Tru64 has BSD version, but it is thread safe
960 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1739____.HTM
961 dnl We need #stdio.h to define NULL on FreeBSD (at least)
962 gethostbyaddrrstyle=""
963 AC_MSG_CHECKING([gethostbyaddr_r() syntax])
966 dnl With FreeBSD, check if there's a prototype for gethostbyaddr_r.
967 dnl Some versions (FreeBSD 5.1?) have a symbol but no prototype - so we
968 dnl override this test to BSDSTYLE. FreeBSD 6.2 and up have proper GNU
970 AC_CHECK_DECLS([gethostbyaddr_r], [], [
971 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE,
972 [style of gethostbyaddr_r functions ])
973 gethostbyaddrrstyle=BSD
974 AC_MSG_WARN([FreeBSD overridden to BSD-style])
982 if test "x$gethostbyaddrrstyle" = "x"; then
986 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL, NULL) ], [
987 AC_DEFINE(GETHOSTBYADDRRSTYLE, GNUSTYLE, [style of gethostbyaddr_r functions ])
988 gethostbyaddrrstyle=GNU
991 if test "x$gethostbyaddrrstyle" = "x"; then
995 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL) ] , [
996 AC_DEFINE(GETHOSTBYADDRRSTYLE, SYSVSTYLE, [style of gethostbyaddr_r functions ])
997 gethostbyaddrrstyle=SYSV
1000 if test "x$gethostbyaddrrstyle" = "x"; then
1004 ], [ gethostbyaddr(NULL, 0, 0) ], [
1005 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE, [style of gethostbyaddr_r functions ])
1006 gethostbyaddrrstyle=BSD
1010 if test "x$gethostbyaddrrstyle" = "x"; then
1011 AC_MSG_RESULT([none! It must not exist, here.])
1013 AC_MSG_RESULT([${gethostbyaddrrstyle}-style])
1016 if test "x$gethostbyaddrrstyle" = "xBSD"; then
1017 AC_MSG_WARN([ ****** BSD-style gethostbyaddr might NOT be thread-safe! ****** ])
1020 dnl Check the style of gethostbyname, in order of preference
1021 dnl GNU (_r seven args)
1022 dnl SYSV (_r five args)
1023 dnl BSD (two args, may not be thread safe)
1024 dnl Tru64 has BSD version, but it _is_ thread safe
1025 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1946____.HTM
1026 dnl We need #stdio.h to define NULL on FreeBSD (at least)
1027 gethostbynamerstyle=""
1028 AC_MSG_CHECKING([gethostbyname_r() syntax])
1032 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL) ], [
1033 AC_DEFINE(GETHOSTBYNAMERSTYLE, GNUSTYLE, [style of gethostbyname_r functions ])
1034 gethostbynamerstyle=GNU
1036 if test "x$gethostbynamerstyle" = "x"; then
1040 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL) ] , [
1041 AC_DEFINE(GETHOSTBYNAMERSTYLE, SYSVSTYLE, [style of gethostbyname_r functions ])
1042 gethostbynamerstyle=SYSV
1045 if test "x$gethostbynamerstyle" = "x"; then
1049 ], [ gethostbyname(NULL) ], [
1050 AC_DEFINE(GETHOSTBYNAMERSTYLE, BSDSTYLE, [style of gethostbyname_r functions ])
1051 gethostbynamerstyle=BSD
1055 if test "x$gethostbynamerstyle" = "x"; then
1056 AC_MSG_RESULT([none! It must not exist, here.])
1058 AC_MSG_RESULT([${gethostbynamerstyle}-style])
1061 if test "x$gethostbynamerstyle" = "xBSD"; then
1062 AC_MSG_WARN([ ****** BSD-style gethostbyname might NOT be thread-safe! ****** ])
1065 dnl check for non-posix solaris ctime_r (extra buflen int arg)
1066 AC_DEFINE(POSIXSTYLE, [1], [Posix-Style ctime_r])
1067 AC_DEFINE(SOLARISSTYLE, [2], [Solaris-Style ctime_r])
1069 AC_MSG_CHECKING([ctime_r() syntax])
1072 ], [ ctime_r(NULL, NULL, 0) ], [
1073 AC_DEFINE(CTIMERSTYLE, SOLARISSTYLE, [style of ctime_r function])
1074 ctimerstyle="SOLARIS"
1076 if test "x$ctimerstyle" = "x"; then
1079 ], [ ctime_r(NULL, NULL) ], [
1080 AC_DEFINE(CTIMERSTYLE, POSIXSTYLE, [style of ctime_r function])
1085 if test "x$ctimerstyle" = "x"; then
1086 AC_MSG_RESULT([none! It must not exist, here.])
1088 AC_MSG_RESULT([${ctimerstyle}-style])
1091 AC_SUBST(HOSTINFO, $host)
1093 dnl #############################################################
1095 dnl # 8. Checks for system services
1097 dnl #############################################################
1100 dnl # Figure out where libtool is located,
1104 AC_MSG_RESULT([top_builddir=$top_builddir])
1105 dnl # AC_SUBST(top_builddir)
1109 dnl import libtool stuff
1111 dnl #############################################################
1113 dnl # Configure in any module directories.
1115 dnl #############################################################
1117 mysubdirs="$LIBLTDLPATH"
1118 if test "x$EXPERIMENTAL" = "xyes"; then
1119 bar=`ls -1 "${srcdir}"/src/modules/rlm_*/configure | sed 's%/configure%%'`
1120 dnl # get rid of LF's.
1121 mysubdirs=`echo $mysubdirs $bar`
1124 dnl # Find 'configure' in ONLY the stable modules
1126 for bar in `cat "${srcdir}"/src/modules/stable`; do
1127 if test -f "${srcdir}"/src/modules/$bar/configure; then
1128 mysubdirs="$mysubdirs src/modules/$bar"
1133 dnl ############################################################
1134 dnl # make modules by list
1135 dnl #############################################################
1136 if test "x$EXPERIMENTAL" = "xyes"; then
1137 for foo in `ls -1 "${srcdir}"/src/modules | grep rlm_`; do
1138 MODULES="$MODULES $foo"
1142 dnl # make ONLY the stable modules
1144 for foo in `cat "${srcdir}"/src/modules/stable`; do
1145 MODULES="$MODULES $foo"
1150 dnl # Don't change the variable name here. Autoconf goes bonkers
1153 AC_CONFIG_SUBDIRS($LTDL_SUBDIRS $mysubdirs)
1156 dnl #############################################################
1158 dnl # And finally, output the results.
1160 dnl #############################################################
1162 AC_CONFIG_COMMANDS([stamp-h], [echo timestamp > src/include/stamp-h])
1163 AC_CONFIG_COMMANDS([build-radpaths-h], [(cd ./src/include && /bin/sh ./build-radpaths-h)])
1164 AC_CONFIG_COMMANDS([main-chmod], [(cd ./src/main && chmod +x checkrad.pl radlast radtest)])
1165 AC_CONFIG_COMMANDS([scripts-chmod], [(cd ./scripts && chmod +x rc.radiusd radwatch radiusd.cron.daily radiusd.cron.monthly cryptpasswd)])
1168 dnl # Substitute whatever libraries we found to be necessary
1171 AC_SUBST(INSTALLSTRIP)
1173 USE_SHARED_LIBS=$enable_shared
1174 AC_SUBST(USE_SHARED_LIBS)
1175 USE_STATIC_LIBS=$enable_static
1176 AC_SUBST(USE_STATIC_LIBS)
1177 AC_SUBST(STATIC_MODULES)
1178 AC_SUBST(RADIUSD_MAJOR_VERSION)
1179 AC_SUBST(RADIUSD_MINOR_VERSION)
1180 AC_SUBST(RADIUSD_VERSION)
1184 ./src/include/build-radpaths-h \
1185 ./src/main/Makefile \
1186 ./src/main/checkrad.pl \
1187 ./src/main/radlast \
1188 ./src/main/radtest \
1189 ./scripts/rc.radiusd \
1190 ./scripts/radwatch \
1191 ./scripts/radiusd.cron.daily \
1192 ./scripts/radiusd.cron.monthly \
1193 ./scripts/cryptpasswd \
1194 ./raddb/dictionary \
1195 ./raddb/radrelay.conf \
1196 ./raddb/radiusd.conf