+++ /dev/null
-# Premium configuration
-PREMIUM_DIR=premium
-
-# This lists all possible hooks that are currently supported.
-PREMIUM_HOOKS="forensic_log flex_id host_cmds subnet_cmds high_availability radius host_cache"
-
-# This lists the hooks that are actually detected.
-INCLUDED_PACKAGES=
-
-AC_DEFUN([AX_PREMIUM], [
-
-for h in ${PREMIUM_HOOKS}; do
- AC_MSG_CHECKING(for premium hook $h availability...)
- if test -f premium/$h.m4; then
- INCLUDED_HOOKS="${INCLUDED_HOOKS} $h"
- INCLUDED_PACKAGES="${INCLUDED_PACKAGES} $h"
- export "HOOK_${h}=yes"
- AC_MSG_RESULT(found)
- else
- export "HOOK_${h}=no"
- AC_MSG_RESULT(no)
- fi
-done
-
-
-AM_CONDITIONAL(PREMIUM, test -d "$srcdir/premium/src")
- AC_MSG_CHECKING([if premium package is available])
-
- if test -d "$srcdir/premium/src"; then
- # Define it in the config.h, so C++ code could use it.
- AC_DEFINE([PREMIUM], [1], [Kea-premium hooks found])
-
- # Export it here, so code in configure could use it.
- PREMIUM=1
- AC_MSG_RESULT(yes)
-
- # read settings (it's possible to include config.setup file in premium repo
- # with some extra settings)
- if test -f "$srcdir/premium/config.setup"; then
- . "$srcdir/premium/config.setup"
- fi
-
- # Check availability of FreeRADIUS client
- AC_MSG_CHECKING(FreeRADIUS client)
- freeradius_dir=no
- FREERADIUS_INCLUDE=
- FREERADIUS_LIB=
- AC_ARG_WITH([freeradius],
- [AC_HELP_STRING([--with-freeradius=PATH],
- [Enables FreeRADIUS client, location is required])],
- [freeradius_dir="$withval"])
- if test "x${freeradius_dir}" = "xyes"; then
- AC_MSG_ERROR([need FreeRADIUS client path])
- elif test "x${freeradius_dir}" = "xno"; then
- AC_MSG_RESULT([no])
- freeradius_dir=""
- else
- AC_MSG_RESULT([yes])
- fi
-
- if test "x${freeradius_dir}" != "x"; then
- AC_MSG_CHECKING([looking for FreeRADIUS client include])
- if test -f ${freeradius_dir}/include/freeradius-client.h; then
- AC_MSG_RESULT([found])
- else
- AC_MSG_ERROR([no ${freeradius_dir}/include/freeradius-client.h file])
- fi
- FREERADIUS_INCLUDE="-I${freeradius_dir}/include"
-
- AC_MSG_CHECKING([looking for FreeRADIUS client library])
- freeradius_libdir="${freeradius_dir}/lib"
- if test -f ${freeradius_libdir}/libfreeradius-client.la -o \
- -f ${freeradius_libdir}/libfreeradius-client.a; then
- AC_MSG_RESULT([found])
- else
- AC_MSG_ERROR([no ${freeradius_libdir}/libfreeradius-client.[l]a file])
- fi
- FREERADIUS_LIB="-L${freeradius_libdir} -lfreeradius-client"
-
- CPPFLAGS_SAVED="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $FREERADIUS_INCLUDE"
-
- AC_MSG_CHECKING([looking for async support])
- AC_CHECK_DECL([READBLOCK_RC],
- [AC_DEFINE([ASYNC_RADIUS], [1],
- [Define to 1 if async support is available])],
- [],
- [[#include <freeradius-client.h>]])
-
- AC_MSG_CHECKING([looking for Framed-Pool])
- # Assume that if it is in the header it is in the dictionary.
- AC_CHECK_DECL([PW_FRAMED_POOL],
- [],
- [AC_MSG_ERROR([Framed-Pool is unknown: please use a more recent FreeRADIUS client version])],
- [[#include <freeradius-client.h>]])
-
- CPPFLAGS="$CPPFLAGS_SAVED"
-
- # Check availability of FreeRADIUS dictionary
- AC_MSG_CHECKING(FreeRADIUS dictionary)
- FREERADIUS_DICTIONARY=
- freeradius_dict_dir=
- freeradius_dict=
- if test "x${freeradius_dir}" != "x" -a \
- -f ${freeradius_dir}/etc/radiusclient/dictionary; then
- freeradius_dict_dir="${freeradius_dir}/etc/radiusclient"
- fi
- AC_ARG_WITH([freeradius-dictionary],
- [AC_HELP_STRING([--with-freeradius-dictionary[=PATH]],
- [FreeRADIUS dictionary location])],
- [freeradius_dict="$withval"],
- [freeradius_dict="yes"])
- if test "x${freeradius_dict}" = "xyes"; then
- if test "x${freeradius_dict_dir}" = "x"; then
- AC_MSG_ERROR([need FreeRADIUS dictionary path])
- fi
- freeradius_dict="${freeradius_dict_dir}/dictionary"
- AC_MSG_RESULT([found at default])
- elif test "x${freeradius_dict}" = "xno"; then
- AC_MSG_RESULT([no])
- freeradius_dict=""
- elif test "x${include_tier2}" != "xyes"; then
- AC_MSG_RESULT([no (radius lib not found)])
- freeradius_dict=""
- elif test -f ${freeradius_dict}; then
- AC_MSG_RESULT([found])
- else
- AC_MSG_ERROR([no ${freeradius_dict} file])
- fi
- FREERADIUS_DICTIONARY="${freeradius_dict}"
- fi
- AM_CONDITIONAL([HAVE_FREERADIUS], [test x$freeradius_dir != "x"])
- AC_SUBST(FREERADIUS_INCLUDE)
- AC_SUBST(FREERADIUS_LIB)
- AC_SUBST(FREERADIUS_DICTIONARY)
-
- #DISTCHECK_PREMIUM_CONFIGURE_FLAG="--with-tier1=${include_tier1} --with-tier2=${include_tier2}"
-
- if test "x${freeradius_dir}" != "x"; then
- DISTCHECK_PREMIUM_CONFIGURE_FLAG="$DISTCHECK_PREMIUM_CONFIGURE_FLAG --with-freeradius=${freeradius_dir}"
- fi
-
-# AC_SUBST(TIER1_PACKAGES)
-# AC_SUBST(TIER2_PACKAGES)
- AC_SUBST(INCLUDED_PACKAGES)
- AC_SUBST(SHARE_DIR)
-
- AC_CONFIG_FILES([premium/Makefile
- premium/src/Makefile
- premium/src/hooks/Makefile
- premium/src/hooks/dhcp/Makefile])
-
- # Ok, now include makefiles specific to the hooks that we detected.
- # @todo: How to make this in a loop? We have all the libraries defined in
- # INCLUDED_PACKAGES
- if test "x${HOOK_forensic_log}" = "xyes"; then
- m4_sinclude(premium/forensic_log.m4)
- true
- fi
-
- if test "x${HOOK_flex_id}" = "xyes"; then
- m4_sinclude(premium/flex_id.m4)
- true
- fi
-
- if test "x${HOOK_host_cmds}" = "xyes"; then
- m4_sinclude(premium/host_cmds.m4)
- true
- fi
-
- if test "x${HOOK_subnet_cmds}" = "xyes"; then
- m4_sinclude(premium/subnet_cmds.m4)
- true
- fi
-
- if test "x${HOOK_high_availability}" = "xyes"; then
- m4_sinclude(premium/high_availability.m4)
- true
- fi
-
- if test "x${HOOK_radius}" = "xyes"; then
- m4_sinclude(premium/radius.m4)
- true
- fi
-
- if test "x${HOOK_host_cache}" = "xyes"; then
- m4_sinclude(premium/host_cache.m4)
- true
- fi
-
- else
- AC_MSG_RESULT(no)
- fi
-])