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-pre0
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 use system-wide libtool, if it exists
79 AC_ARG_WITH(system-libtool,
80 [ --with-system-libtool try to use libtool installed in your system [default=use our own]],
81 [ AC_PATH_PROG(LIBTOOL, libtool,,$PATH:/usr/local/bin) ],
83 LIBTOOL="`pwd`/libtool"
85 dnl ensure that we're looking for dlopen
88 dnl Figure out how to build shared libraries
93 dnl Put this in later, when all distributed modules use autoconf.
94 dnl AC_ARG_WITH(disablemodulefoo,
95 dnl [ --without-rlm_foo Disables module compilation. Module list:]
96 dnl esyscmd([find src/modules -type d -name rlm_\* -print |\
97 dnl sed -e 's%src/modules/.*/% (sub)- %; s%.*/%- %' |\
98 dnl awk '{print " "$0}']))
100 AC_ARG_ENABLE(strict-dependencies,
101 [ --enable-strict-dependencies Fail configure on lack of module dependancy.])
103 dnl extra argument: --with-logdir
104 logdir='${localstatedir}/log/radius'
105 AC_MSG_CHECKING(logdir)
107 [ --with-logdir=DIR Directory for logfiles [LOCALSTATEDIR/log/radius] ],
110 AC_MSG_ERROR(Need logdir)
120 AC_MSG_RESULT($logdir)
122 dnl extra argument: --with-radacctdir
123 radacctdir='${logdir}/radacct'
124 AC_MSG_CHECKING(radacctdir)
125 AC_ARG_WITH(radacctdir,
126 [ --with-radacctdir=PATH Directory for detail files [LOGDIR/radacct] ],
129 AC_MSG_ERROR(Need radacctdir)
134 radacctdir="$withval"
139 AC_MSG_RESULT($radacctdir)
141 dnl extra argument: --with-raddbdir
142 raddbdir='${sysconfdir}/raddb'
143 AC_MSG_CHECKING(raddbdir)
144 AC_ARG_WITH(raddbdir,
145 [ --with-raddbdir=DIR Directory for config files [SYSCONFDIR/raddb] ],
148 AC_MSG_ERROR(Need raddbdir)
158 AC_MSG_RESULT($raddbdir)
160 dnl extra argument: --with-ascend-binary
162 AC_ARG_WITH(ascend-binary,
163 [ --with-ascend-binary Include support for Ascend binary filter attributes (default=yes)],
171 if test "X$ASCEND_BINARY" = "Xyes"; then
172 AC_DEFINE(ASCEND_BINARY, [], [Include support for Ascend binary filter attributes])
175 dnl extra argument: --with-threads
178 [ --with-threads Use threads, if available. (default=yes) ],
187 dnl extra argument: --with-snmp
190 [ --with-snmp Compile in SNMP support. (default=yes)],
199 dnl AC_ARG_ENABLE(ltdl-install,
200 dnl [ --disable-ltdl-install do not install libltdl])
201 dnl if test x"${enable_ltdl_install+set}" != xset; then
202 dnl enable_ltdl_install=yes
203 dnl ac_configure_args="$ac_configure_args --enable-ltdl-install"
205 dnl AC_CONFIG_SUBDIRS(libltdl)
208 dnl # Allow the user to specify a list of modules to be linked
209 dnl # statically to the server.
212 AC_ARG_WITH(static_modules,
213 [ --with-static-modules=QUOTED-MODULE-LIST],[
214 for i in $withval; do
215 STATIC_MODULES="$STATIC_MODULES -dlpreopen ../modules/rlm_$i/rlm_$i.la"
221 [ --with-modules=QUOTED-MODULE-LIST],[
222 for i in $withval; do
223 MODULES="$MODULES $i"
228 dnl # Enable developer C compiler warnings
230 AC_ARG_ENABLE(developer,
231 [ --enable-developer Enables features of interest to developers.],
232 [ case "$enableval" in
241 if test "x$developer" != "xno" -a -d $srcdir/CVS; then
242 dnl turn on the developer flag when taken from a CVS checkout (not a release)
246 dnl extra argument: --with-experimental-modules
248 AC_ARG_WITH(experimental-modules,
249 [ --with-experimental-modules Use experimental and unstable modules. (default=no) ],
259 dnl # extra argument: --with-openssl-includes=dir
262 AC_ARG_WITH(openssl-includes,
263 [ --with-openssl-includes=DIR Directory to look for OpenSSL include files],
265 *) OPENSSL_INCLUDE_DIR="$withval"
271 dnl # extra argument: --with-openssl-libraries=dir
274 AC_ARG_WITH(openssl-libraries,
275 [ --with-openssl-libraries=DIR Directory to look for OpenSSL library files],
277 *) OPENSSL_LIB_DIR="$withval"
283 dnl # These next two arguments don't actually do anything. They're
284 dnl # place holders so that the top-level configure script can tell
285 dnl # the user how to configure lower-level modules
289 dnl # extra argument: --with-rlm-FOO-lib-dir
291 AC_ARG_WITH(rlm-FOO-lib-dir,
292 [ --with-rlm-FOO-lib-dir=DIR Directory to look for library files used by module FOO],
300 dnl # extra argument: --with-rlm-FOO-include-dir
302 AC_ARG_WITH(rlm-FOO-include-dir,
303 [ --with-rlm-FOO-include-dir=DIR Directory to look for include files used by module FOO],
310 dnl See what include-style is used by the make program.
311 dnl AC_MSG_CHECKING(include style for make)
312 dnl echo "include /dev/null" > testmake.$$
313 dnl echo "all:" >> testmake.$$
314 dnl make -f testmake.$$ >/dev/null 2>&1
323 dnl rm -f testmake.$$
324 dnl AC_MSG_RESULT(" $INCLUDE")
325 dnl AC_SUBST(INCLUDE)
328 dnl extra argument: --with-udpfromto
330 AC_ARG_WITH(udpfromto,
331 [ --with-udpfromto Compile in UDPFROMTO support. (default=no)],
341 if test "x$WITH_UDPFROMTO" = "xyes"; then
342 AC_DEFINE(WITH_UDPFROMTO, [], [define if you want udpfromto])
345 dnl #############################################################
347 dnl # 1. Checks for programs
349 dnl #############################################################
352 AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
353 if test "x$ac_cv_path_PERL" = "x"; then
354 AC_MSG_WARN(perl not found - Simultaneous-Use and checkrad.pl may not work)
356 AC_PATH_PROG(SNMPGET, snmpget)
357 if test "x$ac_cv_path_SNMPGET" = "x"; then
358 AC_MSG_WARN(snmpget not found - Simultaneous-Use and checkrad.pl may not work)
361 AC_PATH_PROG(SNMPWALK, snmpwalk)
362 if test "x$ac_cv_path_SNMPWALK" = "x"; then
363 AC_MSG_WARN(snmpwalk not found - Simultaneous-Use and checkrad.pl may not work)
366 AC_PATH_PROG(RUSERS, rusers, /usr/bin/rusers)
368 dnl FIXME This is truly gross.
369 missing_dir=`cd $ac_aux_dir && pwd`
370 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
371 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
372 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
374 AC_PATH_PROG(LOCATE,locate)
375 AC_PATH_PROG(DIRNAME,dirname)
376 AC_PATH_PROG(GREP,grep)
378 dnl #############################################################
380 dnl # 2. Checks for libraries
382 dnl #############################################################
384 dnl If using pthreads, check for -lpthread (posix) or -lc_r (*BSD)
386 if test "x$WITH_THREADS" = "xyes"; then
387 if test $ac_cv_prog_suncc = "yes"; then
391 AC_CHECK_HEADERS(pthread.h, [], [ WITH_THREADS="no" ])
394 dnl # pthread stuff is usually in -lpthread
395 dnl # or in -lc_r, on *BSD
397 dnl # On Some systems, we need extra pre-processor flags, to get them to
398 dnl # to do the threading properly.
400 AC_CHECK_LIB(pthread, pthread_create,
401 [ CFLAGS="$CFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
402 LIBS="$LIBS -lpthread" ],
403 AC_CHECK_LIB(c_r, pthread_create,
404 [ CFLAGS="$CFLAGS -pthread -D_THREAD_SAFE" ],
405 [ WITH_THREADS="no" ]
411 dnl # If we have NO pthread libraries, remove any knowledge of threads.
413 if test "x$WITH_THREADS" != "xyes"; then
415 ac_cv_header_pthread_h="no"
419 dnl # We need sem_init() and friends, as they're the friendliest
420 dnl # semaphore functions for threading.
422 dnl # HP/UX requires linking with librt, too, to get the sem_* symbols.
423 dnl # Some systems have them in -lsem
424 dnl # Solaris has them in -lposix4
425 dnl # NetBSD has them in -lsemaphore
427 AC_SEARCH_LIBS(sem_init, pthread sem posix4 rt semaphore,
429 [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)]
433 dnl Check if we need -lsocket
434 AC_CHECK_LIB(socket, getsockname)
436 dnl Check for -lresolv
437 dnl This library may be needed later.
438 AC_CHECK_LIB(resolv, inet_aton)
440 dnl Check if we need -lnsl. Usually if we want to
441 dnl link against -lsocket we need to include -lnsl as well.
442 AC_CHECK_LIB(nsl, inet_ntoa)
444 dnl Check for OpenSSL libraries.
447 if test "x$OPENSSL_LIB_DIR" != "x"; then
448 LIBS="-L$OPENSSL_LIB_DIR $LIBS"
450 AC_CHECK_LIB(crypto, DH_new,
452 AC_DEFINE(HAVE_LIBCRYPTO, 1,
453 [Define to 1 if you have the `crypto' library (-lcrypto).])
454 AC_CHECK_LIB(ssl, SSL_new,
456 AC_DEFINE(HAVE_LIBSSL, 1,
457 [Define to 1 if you have the `ssl' library (-lssl).])
458 if test "x$OPENSSL_LIB_DIR" != "x"; then
459 OPENSSL_LIBS="-L$OPENSSL_LIB_DIR"
461 OPENSSL_LIBS="$OPENSSL_LIBS -lcrypto -lssl -lcrypto"
466 dnl Check the pcap library for the RADIUS sniffer.
468 AC_CHECK_LIB(pcap, pcap_open_live,
470 AC_DEFINE(HAVE_LIBPCAP, 1,
471 [Define to 1 if you have the `pcap' library (-lpcap).])
473 [ AC_MSG_WARN([pcap library not found, silently disabling the RADIUS sniffer.]) ])
475 dnl #############################################################
477 dnl # 3. Checks for header files
479 dnl #############################################################
482 dnl # Interix requires us to set -D_ALL_SOURCE, otherwise
483 dnl # getopt will be #included, but won't link. <sigh>
488 CFLAGS="$CFLAGS -D_ALL_SOURCE"
491 CFLAGS="$CFLAGS -DDARWIN"
533 AC_CHECK_HEADER(regex.h, AC_DEFINE(HAVE_REGEX_H, [], [define this if we have the <regex.h> header file]))
534 if test "x$ac_cv_header_regex_h" = "xyes"; then
542 ], [AC_DEFINE(HAVE_REG_EXTENDED, [], [define this if we have REG_EXTENDED (from <regex.h>)]) REGEX_EXTENDED=yes])
545 AC_SUBST(REGEX_EXTENDED)
548 dnl # other checks which require headers
550 if test "x$ac_cv_header_sys_security_h" = "xyes" && test "x$ac_cv_header_prot_h" = "xyes"
552 AC_DEFINE(OSFC2, [], [define if you have OSFC2 authentication])
555 if test "x$ac_cv_header_sia_h" = "xyes" && test "x$ac_cv_header_siad_h" = "xyes"
557 AC_DEFINE(OSFSIA, [], [define if you have OSFSIA authentication])
560 dnl Check for OpenSSL includes.
561 OPENSSL_INCLUDE="-DNO_OPENSSL"
562 if test "x$OPENSSL_LIBS" = "x"; then
563 AC_MSG_NOTICE([skipping test for openssl/ssl.h])
565 old_CPPFLAGS=$CPPFLAGS
566 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
567 CPPFLAGS="$CPPFLAGS -I$OPENSSL_INCLUDE_DIR"
569 dnl # stupid RedHat shit
570 CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_KRB5"
579 if test "x$OPENSSL_LIBS" != "x"; then
580 AC_MSG_CHECKING([for OpenSSL version >= 0.9.7])
582 [#include <openssl/crypto.h>
583 #if (OPENSSL_VERSION_NUMBER >= 0x00907000L)
587 if test "x$goodssl" != "xyes"; then
592 if test "x$OPENSSL_INCLUDE_DIR" != "x"; then
593 OPENSSL_INCLUDE="-I$OPENSSL_INCLUDE_DIR -DOPENSSL_NO_KRB5"
595 OPENSSL_INCLUDE="-DOPENSSL_NO_KRB5"
599 CPPFLAGS=$old_CPPFLAGS
601 AC_SUBST(OPENSSL_INCLUDE)
602 AC_SUBST(OPENSSL_LIBS)
605 dnl Check the pcap includes for the RADIUS sniffer.
606 if test "x$PCAP_LIBS" = x; then
607 AC_MSG_NOTICE([skipping test for pcap.h.])
609 AC_CHECK_HEADER(pcap.h,
610 AC_DEFINE(HAVE_PCAP_H, 1,
611 [Define to 1 if you have the <pcap.h> header file.]),
613 AC_MSG_WARN([pcap.h not found, silently disabling the RADIUS sniffer.])
618 dnl #############################################################
620 dnl # 4. Checks for typedefs
622 dnl #############################################################
625 dnl # Ensure that these are defined
632 dnl check for socklen_t
633 FR_CHECK_TYPE_INCLUDE([
634 #ifdef HAVE_SYS_TYPES_H
635 #include <sys/types.h>
637 #ifdef HAVE_SYS_SOCKET_H
638 #include <sys/socket.h>
640 ],socklen_t, int, [socklen_t is generally 'int' on systems which don't use it])
642 dnl check for uint8_t
643 FR_CHECK_TYPE_INCLUDE([
644 #ifdef HAVE_INTTYPES_H
645 #include <inttypes.h>
650 ],uint8_t, unsigned char, [uint8_t should be the canonical 'octet' for network traffic])
652 dnl check for uint16_t
653 FR_CHECK_TYPE_INCLUDE([
654 #ifdef HAVE_INTTYPES_H
655 #include <inttypes.h>
660 ],uint16_t, unsigned short, [uint16_t should be the canonical '2 octets' for network traffic])
662 dnl check for uint32_t
663 FR_CHECK_TYPE_INCLUDE([
664 #ifdef HAVE_INTTYPES_H
665 #include <inttypes.h>
670 ],uint32_t, unsigned int, [uint32_t should be the canonical 'network integer])
672 AC_CHECK_TYPE(struct in6_addr, AC_DEFINE(HAVE_STRUCT_IN6_ADDR, 1, [IPv6 address structure]), [], [
673 #ifdef HAVE_NETINET_IN_H
674 #include <netinet/in.h>
678 AC_CHECK_TYPE(struct sockaddr_storage, AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1, [Generic socket addresses]), [], [
679 #ifdef HAVE_NETINET_IN_H
680 #include <netinet/in.h>
682 #ifdef HAVE_SYS_SOCKET_H
683 #include <sys/socket.h>
687 AC_CHECK_TYPE(struct sockaddr_in6, AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6, 1, [IPv6 socket addresses]), [], [
688 #ifdef HAVE_NETINET_IN_H
689 #include <netinet/in.h>
693 AC_CHECK_TYPE(struct addrinfo, AC_DEFINE(HAVE_STRUCT_ADDRINFO, 1, [Generic DNS lookups]), [], [
694 #ifdef HAVE_SYS_TYPES_H
695 #include <sys/types.h>
697 #ifdef HAVE_SYS_SOCKET_H
698 #include <sys/socket.h>
705 dnl #############################################################
707 dnl # 5. Checks for structures and functions
709 dnl #############################################################
740 RADIUSD_NEED_DECLARATIONS( \
753 dnl # check if we have utmpx.h
754 dnl # if so, check if struct utmpx has entry ut_xtime
755 dnl # if not, set it to define ut_xtime == ut_tv.tv_sec
756 if test "x$ac_cv_header_utmpx_h" = "xyes"
758 FR_CHECK_STRUCT_HAS_MEMBER([#include <utmpx.h>], [struct utmpx], ut_xtime)
759 if test "x$ac_cv_type_struct_utmpx_has_ut_xtime" = "x"
761 AC_DEFINE(ut_xtime,ut_tv.tv_sec, [define to something if you don't have ut_xtime in struct utmpx])
765 dnl # struct ip_pktinfo
766 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in_pktinfo], ipi_addr)
767 if test "x$ac_cv_type_struct_in_pktinfo_has_ipi_addr" = "xyes"
769 AC_DEFINE(HAVE_IP_PKTINFO, [], [define if you have IP_PKTINFO (Linux)])
772 dnl # struct in6_pktinfo
773 FR_CHECK_STRUCT_HAS_MEMBER([#include <netinet/in.h>], [struct in6_pktinfo], ipi6_addr)
774 if test "x$ac_cv_type_struct_in6_pktinfo_has_ipi6_addr" = "xyes"
776 AC_DEFINE(HAVE_IN6_PKTINFO, [], [define if you have IN6_PKTINFO (Linux)])
779 dnl #############################################################
781 dnl # 6. Checks for compiler characteristics
783 dnl #############################################################
786 dnl # Ensure that these are defined
791 dnl # See if this is OS/2
793 AC_MSG_CHECKING(type of OS)
796 if test "$OS" = "OS/2"; then
804 dnl # Set Default CFLAGS
806 if test "x$GCC" = "xyes"; then
807 CFLAGS="$CFLAGS -Wall -D_GNU_SOURCE"
810 AC_MSG_CHECKING(for developer gcc flags)
811 if test "x$developer" = "xyes" -a "x$GCC" = "xyes"; then
812 devflags="-g -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -W -Wredundant-decls -Wundef"
813 CFLAGS="$CFLAGS $devflags"
815 AC_MSG_RESULT(yes. Using $devflags)
818 CFLAGS="$CFLAGS -DNDEBUG"
823 dnl #############################################################
825 dnl # 7. Checks for library functions
827 dnl #############################################################
829 dnl Check for libcrypt
830 dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
831 AC_CHECK_LIB(crypt, crypt,
834 if test "$CRYPTLIB" != ""; then
835 AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function])
837 AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT, [], [Do we have the crypt function]))
840 dnl Check for libcipher
841 AC_CHECK_LIB(cipher, setkey,
842 CRYPTLIB="${CRYPTLIB} -lcipher"
846 if test "x$WITH_SNMP" = "xyes"; then
850 dnl Check the style of gethostbyaddr, in order of preference
851 dnl GNU (_r eight args)
852 AC_DEFINE(GNUSTYLE, [1], [GNU-Style get*byaddr_r])
853 dnl SYSV (_r six args)
854 AC_DEFINE(SYSVSTYLE, [2], [SYSV-Style get*byaddr_r])
855 dnl BSD (three args, may not be thread safe)
856 AC_DEFINE(BSDSTYLE, [3], [BSD-Style get*byaddr_r])
857 dnl Tru64 has BSD version, but it is thread safe
858 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1739____.HTM
859 dnl We need #stdio.h to define NULL on FreeBSD (at least)
860 gethostbyaddrrstyle=""
861 AC_MSG_CHECKING([gethostbyaddr_r() syntax])
864 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE, [style of gethostbyaddr_r functions ])
865 gethostbyaddrrstyle=BSD
866 AC_MSG_WARN([FreeBSD overridden to BSD-style])
869 if test "x$gethostbyaddrrstyle" = "x"; then
873 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL, NULL) ], [
874 AC_DEFINE(GETHOSTBYADDRRSTYLE, GNUSTYLE, [style of gethostbyaddr_r functions ])
875 gethostbyaddrrstyle=GNU
878 if test "x$gethostbyaddrrstyle" = "x"; then
882 ], [ gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL) ] , [
883 AC_DEFINE(GETHOSTBYADDRRSTYLE, SYSVSTYLE, [style of gethostbyaddr_r functions ])
884 gethostbyaddrrstyle=SYSV
887 if test "x$gethostbyaddrrstyle" = "x"; then
891 ], [ gethostbyaddr(NULL, 0, 0) ], [
892 AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE, [style of gethostbyaddr_r functions ])
893 gethostbyaddrrstyle=BSD
897 if test "x$gethostbyaddrrstyle" = "x"; then
898 AC_MSG_RESULT([none! It must not exist, here.])
900 AC_MSG_RESULT([${gethostbyaddrrstyle}-style])
903 if test "x$gethostbyaddrrstyle" = "xBSD"; then
904 AC_MSG_WARN([ ****** BSD-style gethostbyaddr might NOT be thread-safe! ****** ])
907 dnl Check the style of gethostbyname, in order of preference
908 dnl GNU (_r seven args)
909 dnl SYSV (_r five args)
910 dnl BSD (two args, may not be thread safe)
911 dnl Tru64 has BSD version, but it _is_ thread safe
912 dnl http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/1946____.HTM
913 dnl We need #stdio.h to define NULL on FreeBSD (at least)
914 gethostbynamerstyle=""
915 AC_MSG_CHECKING([gethostbyname_r() syntax])
919 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL) ], [
920 AC_DEFINE(GETHOSTBYNAMERSTYLE, GNUSTYLE, [style of gethostbyname_r functions ])
921 gethostbynamerstyle=GNU
923 if test "x$gethostbynamerstyle" = "x"; then
927 ], [ gethostbyname_r(NULL, NULL, NULL, 0, NULL) ] , [
928 AC_DEFINE(GETHOSTBYNAMERSTYLE, SYSVSTYLE, [style of gethostbyname_r functions ])
929 gethostbynamerstyle=SYSV
932 if test "x$gethostbynamerstyle" = "x"; then
936 ], [ gethostbyname(NULL) ], [
937 AC_DEFINE(GETHOSTBYNAMERSTYLE, BSDSTYLE, [style of gethostbyname_r functions ])
938 gethostbynamerstyle=BSD
942 if test "x$gethostbynamerstyle" = "x"; then
943 AC_MSG_RESULT([none! It must not exist, here.])
945 AC_MSG_RESULT([${gethostbynamerstyle}-style])
948 if test "x$gethostbynamerstyle" = "xBSD"; then
949 AC_MSG_WARN([ ****** BSD-style gethostbyname might NOT be thread-safe! ****** ])
952 dnl check for non-posix solaris ctime_r (extra buflen int arg)
953 AC_DEFINE(POSIXSTYLE, [1], [Posix-Style ctime_r])
954 AC_DEFINE(SOLARISSTYLE, [2], [Solaris-Style ctime_r])
956 AC_MSG_CHECKING([ctime_r() syntax])
959 ], [ ctime_r(NULL, NULL, 0) ], [
960 AC_DEFINE(CTIMERSTYLE, SOLARISSTYLE, [style of ctime_r function])
961 ctimerstyle="SOLARIS"
963 if test "x$ctimerstyle" = "x"; then
966 ], [ ctime_r(NULL, NULL) ], [
967 AC_DEFINE(CTIMERSTYLE, POSIXSTYLE, [style of ctime_r function])
972 if test "x$ctimerstyle" = "x"; then
973 AC_MSG_RESULT([none! It must not exist, here.])
975 AC_MSG_RESULT([${ctimerstyle}-style])
978 AC_SUBST(HOSTINFO, $host)
980 dnl #############################################################
982 dnl # 8. Checks for system services
984 dnl #############################################################
987 dnl # Figure out where libtool is located,
991 AC_MSG_RESULT([top_builddir=$top_builddir])
992 dnl # AC_SUBST(top_builddir)
997 dnl # Work around stupid autoconf crap
999 if test "x$INCLTDL" != "x";then
1000 INCLTDL='-I${top_builddir}/''libltdl'
1003 dnl import libtool stuff
1005 dnl #############################################################
1007 dnl # Configure in any module directories.
1009 dnl #############################################################
1011 mysubdirs="$LIBLTDLPATH"
1012 if test "x$EXPERIMENTAL" = "xyes"; then
1013 bar=`ls -1 "${srcdir}"/src/modules/rlm_*/configure | sed 's%/configure%%'`
1014 dnl # get rid of LF's.
1015 mysubdirs=`echo $mysubdirs $bar`
1018 dnl # Find 'configure' in ONLY the stable modules
1020 for bar in `cat "${srcdir}"/src/modules/stable`; do
1021 if test -f "${srcdir}"/src/modules/$bar/configure; then
1022 mysubdirs="$mysubdirs src/modules/$bar"
1027 dnl ############################################################
1028 dnl # make modules by list
1029 dnl #############################################################
1030 if test "x$EXPERIMENTAL" = "xyes"; then
1031 for foo in `ls -1 "${srcdir}"/src/modules | grep rlm_`; do
1032 MODULES="$MODULES $foo"
1036 dnl # make ONLY the stable modules
1038 for foo in `cat "${srcdir}"/src/modules/stable`; do
1039 MODULES="$MODULES $foo"
1044 dnl # Don't change the variable name here. Autoconf goes bonkers
1047 AC_CONFIG_SUBDIRS($mysubdirs)
1050 dnl #############################################################
1052 dnl # And finally, output the results.
1054 dnl #############################################################
1056 AC_CONFIG_COMMANDS([stamp-h], [echo timestamp > src/include/stamp-h])
1057 AC_CONFIG_COMMANDS([build-radpaths-h], [(cd ./src/include && /bin/sh ./build-radpaths-h)])
1058 AC_CONFIG_COMMANDS([main-chmod], [(cd ./src/main && chmod +x checkrad.pl radlast radtest)])
1059 AC_CONFIG_COMMANDS([scripts-chmod], [(cd ./scripts && chmod +x rc.radiusd radwatch check-radiusd-config radiusd.cron.daily radiusd.cron.monthly cryptpasswd)])
1062 dnl # Substitute whatever libraries we found to be necessary
1065 AC_SUBST(INSTALLSTRIP)
1067 USE_SHARED_LIBS=$enable_shared
1068 AC_SUBST(USE_SHARED_LIBS)
1069 USE_STATIC_LIBS=$enable_static
1070 AC_SUBST(USE_STATIC_LIBS)
1071 AC_SUBST(STATIC_MODULES)
1072 AC_SUBST(RADIUSD_MAJOR_VERSION)
1073 AC_SUBST(RADIUSD_MINOR_VERSION)
1074 AC_SUBST(RADIUSD_VERSION)
1078 ./src/include/build-radpaths-h \
1079 ./src/main/Makefile \
1080 ./src/main/checkrad.pl \
1081 ./src/main/radlast \
1082 ./src/main/radtest \
1083 ./scripts/rc.radiusd \
1084 ./scripts/radwatch \
1085 ./scripts/check-radiusd-config \
1086 ./scripts/radiusd.cron.daily \
1087 ./scripts/radiusd.cron.monthly \
1088 ./scripts/cryptpasswd \
1089 ./raddb/dictionary \
1090 ./raddb/radiusd.conf \
1091 ./raddb/radrelay.conf