736c4c1655
FreeRADIUS is an open source server which implements a protocol for remote user Authorization, Authentication and Accounting. There are many modules. All modules without dependencies are enabled. The modules with a dependency that we have are automatically enabled if the dependency is enabled. Modules with dependencies we don't support are explicitly disabled. The configure script always looks in host directories for libraries, so it is essential to explicitly disable everything that is not actually provided. Signed-off-by: David GOUARIN <dgouarin@gmail.com> Signed-off-by: Kalpesh Panchal <kalpesh.panchal@rockwellcollins.com> Signed-off-by: Matt Weber <matthew.weber@collins.com> [Arnout: - remove second patch, superseded by other patches; - add upstream links to patches; - add more patches to avoid looking in host directories; - explicitly add dependency on !static inherited from talloc (redundant with glibc, but future-safe); - simplify Config.in comment; - check hash with PGP signature; - add conf opts for runtime paths; - add conf opts to disable unsupported modules; - add more optional dependencies; - enable/disable all modules that use a dependency; - search defaults file in /etc/default, not /etc/sysconfig. ] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
216 lines
6.2 KiB
Makefile
216 lines
6.2 KiB
Makefile
################################################################################
|
|
#
|
|
# freeradius-server
|
|
#
|
|
################################################################################
|
|
|
|
FREERADIUS_SERVER_VERSION = 3.0.25
|
|
FREERADIUS_SERVER_SITE = ftp://ftp.freeradius.org/pub/freeradius
|
|
FREERADIUS_SERVER_LICENSE = GPL-2.0
|
|
FREERADIUS_SERVER_LICENSE_FILES = COPYRIGHT
|
|
FREERADIUS_SERVER_DEPENDENCIES = libtalloc
|
|
FREERADIUS_SERVER_AUTORECONF = YES
|
|
|
|
# some compiler checks are not supported while cross compiling.
|
|
# instead of removing those checks, we cache the answers
|
|
FREERADIUS_SERVER_CONF_OPTS += \
|
|
ax_cv_cc_bounded_attribute=no \
|
|
ax_cv_cc_builtin_bswap64=no \
|
|
ax_cv_cc_builtin_choose_expr=no \
|
|
ax_cv_cc_builtin_types_compatible_p=no
|
|
|
|
# Some paths are looked up in $PATH but used on the target.
|
|
# Set them explicitly so they are still valid if it's in some other
|
|
# place on the host. Note that some of those don't necessarily exist
|
|
# on the target - in that case, the script will simply fail to work.
|
|
# Note that some paths are actually used during the build, those
|
|
# shouldn't be set explicitly here!
|
|
FREERADIUS_SERVER_CONF_OPTS += \
|
|
ac_cv_path_RUSERS=/usr/bin/rusers \
|
|
ac_cv_path_SNMPGET=/usr/bin/snmpget \
|
|
ac_cv_path_SNMPWALK=/usr/bin/snmpwalk
|
|
|
|
# Modules for which we don't have the dependencies must be disabled
|
|
# explicitly, to avoid that they're searched on the host.
|
|
FREERADIUS_SERVER_CONF_OPTS += \
|
|
--without-rlm_eap_ike \
|
|
--without-rlm_eap_tnc \
|
|
--without-rlm_mschap \
|
|
--without-rlm_perl \
|
|
--without-rlm_realm \
|
|
--without-rlm_sql_iodbc \
|
|
--without-rlm_sql_oracle \
|
|
--without-rlm_sql_freetds \
|
|
--without-rlm_yubikey
|
|
|
|
ifeq ($(BR2_PACKAGE_COLLECTD),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-collectdclient
|
|
FREERADIUS_SERVER_DEPENDENCIES += collectd
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-collectdclient
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_GDBM),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += \
|
|
--with-rlm_counter \
|
|
--with-rlm_ippool
|
|
FREERADIUS_SERVER_DEPENDENCIES += gdbm
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += \
|
|
--without-rlm_counter \
|
|
--without-rlm_ippool
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_JSON_C)$(BR2_PACKAGE_LIBCURL),yy)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-rlm_rest
|
|
FREERADIUS_SERVER_DEPENDENCIES += json-c libcurl
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-rlm_rest
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBCAP),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-libcap
|
|
FREERADIUS_SERVER_DEPENDENCIES += libcap
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-libcap
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBKRB5),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-rlm_krb5
|
|
FREERADIUS_SERVER_DEPENDENCIES += libkrb5
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-rlm_krb5
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBPCAP),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-pcap
|
|
FREERADIUS_SERVER_DEPENDENCIES += libpcap
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-pcap
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LINUX_PAM),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-rlm_pam
|
|
FREERADIUS_SERVER_DEPENDENCIES += linux-pam
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-rlm_pam
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_OPENLDAP),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-rlm_ldap
|
|
FREERADIUS_SERVER_DEPENDENCIES += openldap
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-rlm_ldap
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_MEMCACHED),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-rlm_cache_memcached
|
|
FREERADIUS_SERVER_DEPENDENCIES += mysql
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-rlm_cache_memcached
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_MYSQL),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-rlm_sql_mysql
|
|
FREERADIUS_SERVER_DEPENDENCIES += mysql
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-rlm_sql_mysql
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_PCRE),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-pcre
|
|
FREERADIUS_SERVER_DEPENDENCIES += pcre
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-pcre
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_PYTHON3),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-rlm_python
|
|
FREERADIUS_SERVER_DEPENDENCIES += python3
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-rlm_python
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_READLINE),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-readline
|
|
FREERADIUS_SERVER_DEPENDENCIES += readline
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-readline
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_REDIS),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-rlm_redis --with-rlm_rediswho
|
|
FREERADIUS_SERVER_DEPENDENCIES += redis
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-rlm_redis --without-rlm_rediswho
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_SQLITE),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-rlm_sql_sqlite
|
|
FREERADIUS_SERVER_DEPENDENCIES += sqlite
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-rlm_sql_sqlite
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_UNIXODBC),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-rlm_sql_unixodbc
|
|
FREERADIUS_SERVER_DEPENDENCIES += unixodbc
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-rlm_sql_unixodbc
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_POSTGRESQL),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-rlm_sql_postgresql
|
|
FREERADIUS_SERVER_DEPENDENCIES += postgresql
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-rlm_sql_postgresql
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_HAS_OPENSSL),y)
|
|
FREERADIUS_SERVER_DEPENDENCIES += openssl
|
|
FREERADIUS_SERVER_CONF_OPTS += \
|
|
--with-openssl \
|
|
--with-rlm_eap \
|
|
--with-rlm_eap_pwd
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += \
|
|
--without-openssl \
|
|
--without-rlm_eap \
|
|
--without-rlm_eap_pwd
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_PCRE),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-pcre
|
|
FREERADIUS_SERVER_DEPENDENCIES += pcre
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-pcre
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_RUBY),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-rlm_ruby
|
|
FREERADIUS_SERVER_DEPENDENCIES += ruby
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-rlm_ruby
|
|
endif
|
|
|
|
ifeq ($(BR2_INIT_SYSTEMD),y)
|
|
FREERADIUS_SERVER_CONF_OPTS += --with-systemd
|
|
FREERADIUS_SERVER_DEPENDENCIES += systemd
|
|
else
|
|
FREERADIUS_SERVER_CONF_OPTS += --without-systemd
|
|
endif
|
|
|
|
# TARGET_DIR is set to empty to avoid creation of symlinks in hardcoded host directories
|
|
# freeradius Makefile does not support an alternate DESTDIR, instead it uses the magic $(R) variable
|
|
FREERADIUS_SERVER_MAKE_ENV = R=$(TARGET_DIR) TARGET_DIR=""
|
|
|
|
# use MAKE1 because make install does not support parallel build
|
|
FREERADIUS_SERVER_MAKE = $(MAKE1)
|
|
|
|
define FREERADIUS_SERVER_INSTALL_INIT_SYSTEMD
|
|
$(INSTALL) -D -m 644 package/freeradius-server/radiusd.service \
|
|
$(TARGET_DIR)/usr/lib/systemd/system/radiusd.service
|
|
endef
|
|
|
|
$(eval $(autotools-package))
|