AC_PREREQ([2.59])
export CFLAGS LIBS LDFLAGS CPPFLAGS
-m4_define(PACKAGE_MAIN, freeradius)
-
-AC_INIT(PACKAGE_MAIN,[$]Id[$],http://bugs.freeradius.org,,http://www.freeradius.org)
-AC_CONFIG_SRCDIR(src/main/radiusd.c)
-AC_CONFIG_HEADER(src/include/autoconf.h)
+AC_INIT([freeradius],[$]Id[$],[http://bugs.freeradius.org],,[http://www.freeradius.org])
+AC_CONFIG_SRCDIR([src/main/radiusd.c])
+AC_CONFIG_HEADER([src/include/autoconf.h])
dnl #############################################################
dnl #
dnl # Still useful for custom builds
RADIUSD_VERSION_STRING=`cat VERSION`
-PACKAGE=PACKAGE_MAIN
+
+dnl #
+dnl # Add definitions to Make.inc as it's used by various build targets
+dnl #
+AC_SUBST([RADIUSD_VERSION_STRING])
+
+dnl #
+dnl # Add definitions to autoconf.h, so that the headers that we install
+dnl # contain the version number of the server.
+dnl #
+AC_DEFINE_UNQUOTED([RADIUSD_VERSION], [${RADIUSD_VERSION}], [Version integer in format <ma><ma><mi><mi><in><in>])
+AC_DEFINE_UNQUOTED([RADIUSD_VERSION_STRING], ["${RADIUSD_VERSION_STRING}"], [Raw version string from VERSION file])
dnl #############################################################
dnl #
dnl # and AC_PROG_CXX macros.
dnl #
AC_ARG_ENABLE(developer,
-[ --enable-developer Enables features of interest to developers.],
+[ --enable-developer enables features of interest to developers.],
[ case "$enableval" in
no)
developer=no
dnl #
if test "x$developer" = "xyes"; then
: ${CFLAGS=-g3}
+ : ${MAKEFLAGS=-j8}
fi
+AC_SUBST(MAKEFLAGS)
+
dnl #############################################################
dnl #
dnl # 0. Checks for compiler, libtool, and command line options.
dnl See if we have Git.
AC_CHECK_PROG(GIT, git, yes, no)
-AC_ARG_WITH(system-libltdl,
-[ --with-system-libltdl Use the libltdl installed in your system (default=use dlopen)],
-[],
-[with_system_libltdl=no])
-
-AS_IF([test "x$with_system_libltdl" = "xyes" ],
-[ LIBLTDL="-lltdl"
-INCLTDL=-DWITH_SYSTEM_LTDL])
-
-dnl use system-wide libtool, if it exists
-AC_ARG_WITH(system-libtool,
-[ --with-system-libtool Use the libtool installed in your system (default=use our own)],
-[],
-[with_system_libtool=no])
-
-AS_IF([test "x$with_system_libtool" = "xyes" ],
-[ AC_PATH_PROG(LIBTOOL, libtool,,$PATH:/usr/local/bin) AC_LIBTOOL_DLOPEN
- AC_PROG_LIBTOOL],
-[
- LIBTOOL='${top_srcdir}/scripts/jlibtool'
- AC_SUBST(LIBTOOL)
- dnl ensure that we're looking for dlopen
- AC_LIBTOOL_DLOPEN
-])
-
-
dnl Put this in later, when all distributed modules use autoconf.
dnl AC_ARG_WITH(disablemodulefoo,
-dnl [ --without-rlm_foo Disables module compilation. Module list:]
+dnl [ --without-rlm_foo Disables module compilation. Module list:]
dnl esyscmd([find src/modules -type d -name rlm_\* -print |\
dnl sed -e 's%src/modules/.*/% (sub)- %; s%.*/%- %' |\
dnl awk '{print " "$0}']))
yes)
;;
*)
- WITH_ASCEND_BINARY=""
+ WITH_ASCEND_BINARY=no
esac ]
)
-if test "X$WITH_ASCEND_BINARY" = "Xyes"; then
- AC_DEFINE(WITH_ASCEND_BINARY, [], [Include support for Ascend binary filter attributes])
+if test "x$WITH_ASCEND_BINARY" = "xyes"; then
+ AC_DEFINE(WITH_ASCEND_BINARY, [1], [Include support for Ascend binary filter attributes])
fi
dnl extra argument: --with-threads
yes)
;;
*)
- WITH_THREADS=""
+ WITH_THREADS=no
esac ]
)
+dnl extra argument: --with-tcp
+WITH_TCP=yes
+AC_ARG_WITH(tcp,
+[ --with-tcp Compile in TCP support. (default=yes)],
+[ case "$withval" in
+ yes)
+ ;;
+ *)
+ WITH_TCP=no
+ esac ]
+)
+if test "x$WITH_TCP" = "xyes"; then
+ AC_DEFINE(WITH_TCP, [1], [define if you want TCP support (For RADSec et al)])
+fi
+
dnl extra argument: --with-vmps
WITH_VMPS=yes
AC_ARG_WITH(vmps,
AC_DEFINE(WITH_DHCP, [1], [define if you want DHCP support])
fi
-
dnl #
dnl # Allow the user to specify a list of modules to be linked
dnl # statically to the server.
MODULES=
AC_ARG_WITH(modules,
-[ --with-modules=QUOTED-MODULE-LIST],[
+[ --with-modules=QUOTED-MODULE-LIST],[
for i in $withval; do
MODULES="$MODULES $i"
done
dnl #
dnl #############################################################
-CHECKRAD=checkrad.pl
+CHECKRAD=checkrad
AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
if test "x$ac_cv_path_PERL" = "x"; then
- AC_MSG_WARN(perl not found - Simultaneous-Use and checkrad.pl may not work)
+ AC_MSG_WARN(perl not found - Simultaneous-Use and checkrad may not work)
fi
AC_PATH_PROG(SNMPGET, snmpget)
if test "x$ac_cv_path_SNMPGET" = "x"; then
- AC_MSG_WARN(snmpget not found - Simultaneous-Use and checkrad.pl may not work)
+ AC_MSG_WARN(snmpget not found - Simultaneous-Use and checkrad may not work)
fi
AC_PATH_PROG(SNMPWALK, snmpwalk)
if test "x$ac_cv_path_SNMPWALK" = "x"; then
- AC_MSG_WARN(snmpwalk not found - Simultaneous-Use and checkrad.pl may not work)
+ AC_MSG_WARN(snmpwalk not found - Simultaneous-Use and checkrad may not work)
fi
AC_PATH_PROG(RUSERS, rusers, /usr/bin/rusers)
AC_CHECK_LIB(pthread, pthread_create,
[ CFLAGS="$CFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
LIBS="-lpthread $LIBS" ],
- AC_CHECK_LIB(c_r, pthread_create,
+ [ AC_CHECK_LIB(c_r, pthread_create,
[ CFLAGS="$CFLAGS -pthread -D_THREAD_SAFE" ],
[ WITH_THREADS="no" ]
- )
+ ) ]
)
fi
)
fi
+if test "x$WITH_THREADS" = "xyes"; then
+ AC_DEFINE(WITH_THREADS, [1], [define if you want thread support])
+fi
+
dnl Check if we need -lsocket
AC_CHECK_LIB(dl, dlopen)
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS( \
+ dlfcn.h \
unistd.h \
crypt.h \
errno.h \
dnl #############################################################
AC_CHECK_FUNCS( \
getopt_long \
- lockf \
+ fcntl \
strsignal \
sigaction \
sigprocmask \
fi
if test "x$EXPERIMENTAL" != "xno"; then
- EXPERIMENTAL = yes
- fi
-
- dnl append the current git hash onto the version string
- if test "x$GIT" = "xyes"; then
- RADIUSD_VERSION_COMMIT=`git log --pretty=format:'%h' -n 1`
+ EXPERIMENTAL=yes
fi
else
devflags=""
AC_MSG_RESULT(no.)
fi
+dnl append the current git hash onto the version string
+if test -d $srcdir/.git -a "x$GIT" = "xyes"; then
+ RADIUSD_VERSION_COMMIT=`git log --pretty=format:'%h' -n 1`
+ AC_DEFINE_UNQUOTED([RADIUSD_VERSION_COMMIT],["${RADIUSD_VERSION_COMMIT}"],[Commit HEAD at time of configuring])
+fi
+
FR_TLS
dnl #############################################################
AC_CHECK_FUNC(lt_dladvise_init, AC_DEFINE(HAVE_LT_DLADVISE_INIT, [], [Do we have the lt_dladvise_init function]))
LIBS="$old_LIBS"
+dnl Check for talloc
+dnl extra argument: --with-talloc-include-dir=DIR
+talloc_include_dir=
+AC_ARG_WITH(talloc-include-dir,
+ [AS_HELP_STRING([--with-talloc-include-dir=DIR],
+ [Directory where the talloc includes may be found])],
+ [case "$withval" in
+ no)
+ AC_MSG_ERROR(Need talloc-include-dir)
+ ;;
+ yes)
+ ;;
+ *)
+ talloc_include_dir="$withval"
+ ;;
+ esac])
+
+dnl Check for talloc header files
+
+smart_try_dir="$talloc_include_dir"
+FR_SMART_CHECK_INCLUDE([talloc.h])
+if test "x$ac_cv_header_talloc_h" != "xyes"; then
+ AC_MSG_WARN([talloc headers not found. Use --with-talloc-include-dir=<path>.])
+ AC_MSG_ERROR([FreeRADIUS requires libtalloc])
+else
+ INCLUDE="${SMART_CFLAGS} ${INCLUDE}"
+ LIBS="-ltalloc ${LIBS}"
+fi
+
dnl Check for libcrypt
dnl We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
AC_CHECK_LIB(crypt, crypt,
dnl #############################################################
AH_BOTTOM([#include <freeradius-devel/automask.h>])
-mysubdirs=""
-if test "x$EXPERIMENTAL" = "xyes"; then
- bar=`ls -1 "${srcdir}"/src/modules/rlm_*/configure | sed 's%/configure%%'`
- dnl # get rid of LF's.
- mysubdirs=`echo $mysubdirs $bar`
-else
- dnl #
- dnl # Find 'configure' in ONLY the stable modules
- dnl #
- for bar in `cat "${srcdir}"/src/modules/stable`; do
- if test -f "${srcdir}"/src/modules/$bar/configure; then
- mysubdirs="$mysubdirs src/modules/$bar"
- fi
- done
-fi
-
dnl ############################################################
dnl # make modules by list
dnl #############################################################
done
fi
+dnl ############################################################
+dnl # Add autoconf subdirs, based on the module list we
+dnl # previously created.
+dnl #############################################################
+mysubdirs=""
+for bar in $MODULES; do
+ if test -f "${srcdir}"/src/modules/$bar/configure; then
+ mysubdirs="$mysubdirs src/modules/$bar"
+ fi
+done
+
dnl #
dnl # Don't change the variable name here. Autoconf goes bonkers
dnl # if you do.
AC_CONFIG_COMMANDS([stamp-h], [echo timestamp > src/include/stamp-h])
AC_CONFIG_COMMANDS([build-radpaths-h], [(cd ./src/include && /bin/sh ./build-radpaths-h)])
-AC_CONFIG_COMMANDS([main-chmod], [(cd ./src/main && chmod +x checkrad.pl radlast radtest)])
+AC_CONFIG_COMMANDS([main-chmod], [(cd ./src/main && chmod +x checkrad radlast radtest)])
AC_CONFIG_COMMANDS([scripts-chmod], [(cd ./scripts && chmod +x rc.radiusd radiusd.cron.daily radiusd.cron.monthly cryptpasswd)])
dnl #
USE_STATIC_LIBS=$enable_static
AC_SUBST(USE_STATIC_LIBS)
AC_SUBST(STATIC_MODULES)
-AC_SUBST(RADIUSD_MAJOR_VERSION)
-AC_SUBST(RADIUSD_MINOR_VERSION)
-AC_SUBST(RADIUSD_INCRM_VERSION)
-AC_SUBST(RADIUSD_VERSION)
-AC_SUBST(RADIUSD_VERSION_STRING)
-AC_SUBST(RADIUSD_VERSION_COMMIT)
AC_OUTPUT(\
./Make.inc \
./src/include/build-radpaths-h \
- ./src/main/Makefile \
./src/main/radsniff.mk \
- ./src/main/checkrad.pl \
+ ./src/main/checkrad \
./src/main/radlast \
./src/main/radtest \
./scripts/rc.radiusd \