2 # Copyright (C) 2006 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
9 include $(TOPDIR)/rules.mk
15 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
16 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
17 PKG_SOURCE_URL:=ftp://ftp.freeradius.org/pub/radius/ \
18 http://freeradius.portal-to-web.de/ \
19 ftp://ftp.uk.freeradius.org/pub/radius/
20 PKG_MD5SUM:=b38b24f6352090fdb571b9e8da52e12e
23 PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
25 include $(INCLUDE_DIR)/package.mk
27 define Package/freeradius
30 DEPENDS:=+libltdl +libopenssl +libpthread
31 TITLE:=A flexible RADIUS server
32 URL:=http://www.freeradius.org/
35 define Package/freeradius/conffiles
36 /etc/freeradius/clients.conf
37 /etc/freeradius/radiusd.conf
40 define Package/freeradius-democerts
41 $(call Package/freeradius)
43 TITLE:=Demo certificates to test the server
46 define Package/freeradius-mod-chap
47 $(call Package/freeradius)
52 define Package/freeradius-mod-detail
53 $(call Package/freeradius)
55 TITLE:=Detailed accounting module
58 define Package/freeradius-mod-eap
59 $(call Package/freeradius)
61 TITLE:=Base EAP module
64 define Package/freeradius-mod-eap/conffiles
65 /etc/freeradius/eap.conf
68 define Package/freeradius-mod-eap-gtc
69 $(call Package/freeradius)
70 DEPENDS:=freeradius-mod-eap
74 define Package/freeradius-mod-eap-md5
75 $(call Package/freeradius)
76 DEPENDS:=freeradius-mod-eap
80 define Package/freeradius-mod-eap-mschapv2
81 $(call Package/freeradius)
82 DEPENDS:=freeradius-mod-eap
83 TITLE:=EAP/MS-CHAPv2 module
86 define Package/freeradius-mod-eap-peap
87 $(call Package/freeradius)
88 DEPENDS:=freeradius-mod-eap
89 TITLE:=EAP/PEAP module
92 define Package/freeradius-mod-eap-tls
93 $(call Package/freeradius)
94 DEPENDS:=freeradius-mod-eap
98 define Package/freeradius-mod-eap-ttls
99 $(call Package/freeradius)
100 DEPENDS:=freeradius-mod-eap-tls
101 TITLE:=EAP/TTLS module
104 define Package/freeradius-mod-files
105 $(call Package/freeradius)
107 TITLE:=Module using local files for authorization
110 define Package/freeradius-mod-files/conffiles
111 /etc/freeradius/acct_users
112 /etc/freeradius/preproxy_users
113 /etc/freeradius/users
116 define Package/freeradius-mod-ldap
117 $(call Package/freeradius)
118 DEPENDS:=freeradius +libopenldap
122 define Package/freeradius-mod-ldap/conffiles
123 /etc/freeradius/ldap.attrmap
126 define Package/freeradius-mod-mschap
127 $(call Package/freeradius)
129 TITLE:=MS-CHAP and MS-CHAPv2 module
132 define Package/freeradius-mod-pap
133 $(call Package/freeradius)
138 define Package/freeradius-mod-preprocess
139 $(call Package/freeradius)
141 TITLE:=Request pre-processing module
144 define Package/freeradius-mod-preprocess/conffiles
145 /etc/freeradius/hints
146 /etc/freeradius/huntgroups
149 define Package/freeradius-mod-realm
150 $(call Package/freeradius)
152 TITLE:=Realms handling module
155 define Package/freeradius-mod-realm/conffiles
156 /etc/freeradius/proxy.conf
159 define Package/freeradius-mod-sql
160 $(call Package/freeradius)
162 TITLE:=Base SQL module
165 define Package/freeradius-mod-sql-mysql
166 $(call Package/freeradius)
167 DEPENDS:=freeradius-mod-sql +libmysqlclient
171 define Package/freeradius-mod-sql-pgsql
172 $(call Package/freeradius)
173 DEPENDS:=freeradius-mod-sql +libpq
174 TITLE:=PostgreSQL module
177 define Package/freeradius-mod-sqlcounter
178 $(call Package/freeradius)
179 DEPENDS:=freeradius-mod-sql
180 TITLE:=Generic SQL Counter module
183 define Package/freeradius-utils
184 $(call Package/freeradius)
186 TITLE:=Misc. client utilities
189 PKG_CONFIGURE_OPTIONS := \
192 --disable-ltdl-install \
193 --with-ltdl-include="$(STAGING_DIR)/usr/include" \
194 --with-ltdl-lib="$(STAGING_DIR)/usr/lib" \
195 --with-openssl-includes="$(STAGING_DIR)/usr/include" \
196 --with-openssl-libraries="$(STAGING_DIR)/usr/lib" \
197 --enable-strict-dependencies \
198 --with-raddbdir=/etc/freeradius \
201 --with-experimental-modules \
202 --without-rlm_attr-rewrite \
203 --without-rlm_checkval \
204 --without-rlm_counter \
207 --without-rlm_eap_sim \
208 --without-rlm_example \
209 --without-rlm_ippool \
214 --without-rlm_python \
215 --without-rlm_radutmp \
218 --with-rlm_sqlcounter \
219 --without-rlm_sql_db2 \
220 --without-rlm_sql_freetds \
221 --without-rlm_sql_iodbc \
222 --without-rlm_sql_oracle \
223 --without-rlm_sql_sybase \
224 --without-rlm_sql_unixodbc \
225 --without-rlm_sql_log \
229 ifneq ($(CONFIG_PACKAGE_freeradius-mod-ldap),)
230 PKG_CONFIGURE_LIBS += -lcrypto -lssl
231 PKG_CONFIGURE_OPTIONS += \
232 --with-rlm_ldap-include-dir="$(STAGING_DIR)/usr/include" \
233 --with-rlm_ldap-lib-dir="$(STAGING_DIR)/usr/lib"
235 PKG_CONFIGURE_OPTIONS += --without-rlm_ldap
237 ifneq ($(CONFIG_PACKAGE_freeradius-mod-sql-mysql),)
238 PKG_CONFIGURE_LIBS += -lz
239 PKG_CONFIGURE_OPTIONS += \
240 --with-mysql-include-dir="$(STAGING_DIR)/usr/include" \
241 --with-mysql-lib-dir="$(STAGING_DIR)/usr/lib/mysql" \
244 PKG_CONFIGURE_OPTIONS += --without-rlm_sql_mysql
246 ifneq ($(CONFIG_PACKAGE_freeradius-mod-sql-pgsql),)
247 PKG_CONFIGURE_OPTIONS += \
248 --with-rlm_sql_postgresql-include-dir="$(STAGING_DIR)/usr/include" \
249 --with-rlm_sql_postgresql-lib-dir="$(STAGING_DIR)/usr/lib"
251 PKG_CONFIGURE_OPTIONS += --without-rlm_sql_postgresql
254 PKG_CONFIGURE_LIBS += -lcrypto -lssl -lz
255 PKG_CONFIGURE_OPTIONS += \
256 --with-rlm_ldap-include-dir="$(STAGING_DIR)/usr/include" \
257 --with-rlm_ldap-lib-dir="$(STAGING_DIR)/usr/lib" \
258 --with-mysql-include-dir="$(STAGING_DIR)/usr/include" \
259 --with-mysql-lib-dir="$(STAGING_DIR)/usr/lib/mysql" \
261 --with-rlm_sql_postgresql-include-dir="$(STAGING_DIR)/usr/include" \
262 --with-rlm_sql_postgresql-lib-dir="$(STAGING_DIR)/usr/lib"
265 define Build/Configure
266 (cd $(PKG_BUILD_DIR); rm -f config.cache; \
267 $(TARGET_CONFIGURE_OPTS) \
268 CFLAGS="$(TARGET_CFLAGS)" \
269 CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \
270 LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib -L$(PKG_INSTALL_DIR)/usr/lib/freeradius" \
271 LIBS="$(PKG_CONFIGURE_LIBS)" \
272 sys_lib_search_path_spec="$(STAGING_DIR)/usr/lib $(STAGING_DIR)/lib" \
275 --target=$(GNU_TARGET_NAME) \
276 --host=$(GNU_TARGET_NAME) \
277 --build=$(GNU_HOST_NAME) \
278 --program-prefix="" \
279 --program-suffix="" \
283 --datadir=/usr/share \
284 --includedir=/usr/include \
285 --infodir=/usr/share/info \
286 --libdir=/usr/lib/freeradius \
287 --libexecdir=/usr/lib/freeradius \
288 --localstatedir=/var \
289 --mandir=/usr/share/man \
290 --sbindir=/usr/sbin \
292 $(DISABLE_LARGEFILE) \
294 $(PKG_CONFIGURE_OPTIONS) \
299 rm -rf $(PKG_INSTALL_DIR)
300 mkdir -p $(PKG_INSTALL_DIR)
301 $(MAKE) -C $(PKG_BUILD_DIR) \
302 R="$(PKG_INSTALL_DIR)" \
307 define Package/freeradius/install
308 install -m0755 -d $(1)/etc/init.d
309 install -m0755 ./files/radiusd.init $(1)/etc/init.d/radiusd
310 install -m0755 -d $(1)/etc/freeradius
311 for f in clients.conf dictionary radiusd.conf; do \
312 $(CP) $(PKG_INSTALL_DIR)/etc/freeradius/$$$${f} $(1)/etc/freeradius/ ; \
314 install -m0755 -d $(1)/usr/share/freeradius
315 $(CP) $(PKG_INSTALL_DIR)/usr/share/freeradius/dictionary $(1)/usr/share/freeradius/
316 for f in freeradius freeradius.internal rfc2865 rfc2866 rfc2867 rfc2868 rfc2869 rfc3162 rfc3576 rfc3580 microsoft wispr; do \
317 $(CP) $(PKG_INSTALL_DIR)/usr/share/freeradius/dictionary.$$$${f} $(1)/usr/share/freeradius/ ; \
319 install -m0755 -d $(1)/usr/lib/freeradius
320 $(CP) $(PKG_INSTALL_DIR)/usr/lib/freeradius/libradius{,-*}.so $(1)/usr/lib/freeradius/
321 install -m0755 -d $(1)/usr/sbin
322 $(CP) $(PKG_INSTALL_DIR)/usr/sbin/radiusd $(1)/usr/sbin/
325 define Package/freeradius-democerts/install
326 install -m0755 -d $(1)/etc/freeradius
327 $(CP) $(PKG_INSTALL_DIR)/etc/freeradius/certs $(1)/etc/freeradius/
328 rm -rf $(1)/etc/freeradius/certs/README
329 rm -rf $(1)/etc/freeradius/certs/new*
330 rm -rf $(1)/etc/freeradius/certs/demoCA/index*
331 rm -rf $(1)/etc/freeradius/certs/demoCA/serial*
334 define Package/freeradius-utils/install
335 install -m0755 -d $(1)/usr/bin
336 for f in radclient; do \
337 $(CP) $(PKG_INSTALL_DIR)/usr/bin/$$$${f} $(1)/usr/bin/ ; \
342 define Package/$(1)/install
343 [ -z "$(2)" ] || install -d -m0755 $$(1)/usr/lib/freeradius
345 $(CP) $(PKG_INSTALL_DIR)/usr/lib/freeradius/$$$$$$$${m}{,-*}.so $$(1)/usr/lib/freeradius/ ; \
347 [ -z "$(3)" ] || install -d -m0755 $$(1)/etc/freeradius
349 $(CP) $(PKG_INSTALL_DIR)/etc/freeradius/$$$$$$$${f} $$(1)/etc/freeradius/ ; \
353 $$(eval $$(call BuildPackage,$(1)))
356 $(eval $(call BuildPackage,freeradius))
357 $(eval $(call BuildPackage,freeradius-democerts))
358 $(eval $(call BuildPlugin,freeradius-mod-chap,rlm_chap,))
359 $(eval $(call BuildPlugin,freeradius-mod-detail,rlm_detail,))
360 $(eval $(call BuildPlugin,freeradius-mod-eap,libeap rlm_eap,eap.conf))
361 $(eval $(call BuildPlugin,freeradius-mod-eap-gtc,rlm_eap_gtc,))
362 $(eval $(call BuildPlugin,freeradius-mod-eap-md5,rlm_eap_md5,))
363 $(eval $(call BuildPlugin,freeradius-mod-eap-mschapv2,rlm_eap_mschapv2,))
364 $(eval $(call BuildPlugin,freeradius-mod-eap-peap,rlm_eap_peap,))
365 $(eval $(call BuildPlugin,freeradius-mod-eap-tls,rlm_eap_tls,))
366 $(eval $(call BuildPlugin,freeradius-mod-eap-ttls,rlm_eap_ttls,))
367 $(eval $(call BuildPlugin,freeradius-mod-files,rlm_files,acct_users preproxy_users users))
368 $(eval $(call BuildPlugin,freeradius-mod-ldap,rlm_ldap,ldap.attrmap))
369 $(eval $(call BuildPlugin,freeradius-mod-mschap,rlm_mschap,))
370 $(eval $(call BuildPlugin,freeradius-mod-pap,rlm_pap,))
371 $(eval $(call BuildPlugin,freeradius-mod-preprocess,rlm_preprocess,hints huntgroups))
372 $(eval $(call BuildPlugin,freeradius-mod-realm,rlm_realm,proxy.conf))
373 $(eval $(call BuildPlugin,freeradius-mod-sql,rlm_sql,sql.conf))
374 $(eval $(call BuildPlugin,freeradius-mod-sql-mysql,rlm_sql_mysql,))
375 $(eval $(call BuildPlugin,freeradius-mod-sql-pgsql,rlm_sql_postgresql,))
376 $(eval $(call BuildPlugin,freeradius-mod-sqlcounter,rlm_sqlcounter,))
377 $(eval $(call BuildPackage,freeradius-utils))