fix build in WhiteRussian SDK
[packages.git] / net / freeradius / Makefile
1
2 # Copyright (C) 2006 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7 # $Id$
8
9 include $(TOPDIR)/rules.mk
10
11 PKG_NAME:=freeradius
12 PKG_VERSION:=1.1.1
13 PKG_RELEASE:=1
14
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
21 PKG_CAT:=zcat
22
23 PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
24
25 include $(INCLUDE_DIR)/package.mk
26
27 define Package/freeradius
28   SECTION:=net
29   CATEGORY:=Network
30   DEPENDS:=+libltdl +libopenssl +libpthread
31   TITLE:=A flexible RADIUS server
32   URL:=http://www.freeradius.org/
33 endef
34
35 define Package/freeradius/conffiles
36 /etc/freeradius/clients.conf
37 /etc/freeradius/radiusd.conf
38 endef
39
40 define Package/freeradius-democerts
41   $(call Package/freeradius)
42   DEPENDS:=freeradius
43   TITLE:=Demo certificates to test the server
44 endef
45
46 define Package/freeradius-mod-chap
47   $(call Package/freeradius)
48   DEPENDS:=freeradius
49   TITLE:=CHAP module
50 endef
51
52 define Package/freeradius-mod-detail
53   $(call Package/freeradius)
54   DEPENDS:=freeradius
55   TITLE:=Detailed accounting module
56 endef
57
58 define Package/freeradius-mod-eap
59   $(call Package/freeradius)
60   DEPENDS:=freeradius
61   TITLE:=Base EAP module
62 endef
63
64 define Package/freeradius-mod-eap/conffiles
65 /etc/freeradius/eap.conf
66 endef
67
68 define Package/freeradius-mod-eap-gtc
69   $(call Package/freeradius)
70   DEPENDS:=freeradius-mod-eap
71   TITLE:=EAP/GTC module
72 endef
73
74 define Package/freeradius-mod-eap-md5
75   $(call Package/freeradius)
76   DEPENDS:=freeradius-mod-eap
77   TITLE:=EAP/MD5 module
78 endef
79
80 define Package/freeradius-mod-eap-mschapv2
81   $(call Package/freeradius)
82   DEPENDS:=freeradius-mod-eap
83   TITLE:=EAP/MS-CHAPv2 module
84 endef
85
86 define Package/freeradius-mod-eap-peap
87   $(call Package/freeradius)
88   DEPENDS:=freeradius-mod-eap
89   TITLE:=EAP/PEAP module
90 endef
91
92 define Package/freeradius-mod-eap-tls
93   $(call Package/freeradius)
94   DEPENDS:=freeradius-mod-eap
95   TITLE:=EAP/TLS module
96 endef
97
98 define Package/freeradius-mod-eap-ttls
99   $(call Package/freeradius)
100   DEPENDS:=freeradius-mod-eap-tls
101   TITLE:=EAP/TTLS module
102 endef
103
104 define Package/freeradius-mod-files
105   $(call Package/freeradius)
106   DEPENDS:=freeradius
107   TITLE:=Module using local files for authorization
108 endef
109
110 define Package/freeradius-mod-files/conffiles
111 /etc/freeradius/acct_users
112 /etc/freeradius/preproxy_users
113 /etc/freeradius/users
114 endef
115
116 define Package/freeradius-mod-ldap
117   $(call Package/freeradius)
118   DEPENDS:=freeradius +libopenldap
119   TITLE:=LDAP module
120 endef
121
122 define Package/freeradius-mod-ldap/conffiles
123 /etc/freeradius/ldap.attrmap
124 endef
125
126 define Package/freeradius-mod-mschap
127   $(call Package/freeradius)
128   DEPENDS:=freeradius
129   TITLE:=MS-CHAP and MS-CHAPv2 module
130 endef
131
132 define Package/freeradius-mod-pap
133   $(call Package/freeradius)
134   DEPENDS:=freeradius
135   TITLE:=PAP module
136 endef
137
138 define Package/freeradius-mod-preprocess
139   $(call Package/freeradius)
140   DEPENDS:=freeradius
141   TITLE:=Request pre-processing module
142 endef
143
144 define Package/freeradius-mod-preprocess/conffiles
145 /etc/freeradius/hints
146 /etc/freeradius/huntgroups
147 endef
148
149 define Package/freeradius-mod-realm
150   $(call Package/freeradius)
151   DEPENDS:=freeradius
152   TITLE:=Realms handling module
153 endef
154
155 define Package/freeradius-mod-realm/conffiles
156 /etc/freeradius/proxy.conf
157 endef
158
159 define Package/freeradius-mod-sql
160   $(call Package/freeradius)
161   DEPENDS:=freeradius
162   TITLE:=Base SQL module
163 endef
164
165 define Package/freeradius-mod-sql-mysql
166   $(call Package/freeradius)
167   DEPENDS:=freeradius-mod-sql +libmysqlclient
168   TITLE:=MySQL module
169 endef
170
171 define Package/freeradius-mod-sql-pgsql
172   $(call Package/freeradius)
173   DEPENDS:=freeradius-mod-sql +libpq
174   TITLE:=PostgreSQL module
175 endef
176
177 define Package/freeradius-mod-sqlcounter
178   $(call Package/freeradius)
179   DEPENDS:=freeradius-mod-sql
180   TITLE:=Generic SQL Counter module
181 endef
182
183 define Package/freeradius-utils
184   $(call Package/freeradius)
185   DEPENDS:=freeradius
186   TITLE:=Misc. client utilities
187 endef
188
189 PKG_CONFIGURE_OPTIONS := \
190         --enable-shared \
191         --disable-static \
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 \
199         --without-edir \
200         --without-snmp \
201         --with-experimental-modules \
202         --without-rlm_attr-rewrite \
203         --without-rlm_checkval \
204         --without-rlm_counter \
205         --without-rlm_dbm \
206         --with-rlm_eap \
207         --without-rlm_eap_sim \
208         --without-rlm_example \
209         --without-rlm_ippool \
210         --without-rlm_krb5 \
211         --without-rlm_otp \
212         --without-rlm_pam \
213         --without-rlm_perl \
214         --without-rlm_python \
215         --without-rlm_radutmp \
216         --without-rlm_smb \
217         --with-rlm_sql \
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 \
226         --without-rlm_unix \
227
228 ifeq ($(SDK),)
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"
234   else
235     PKG_CONFIGURE_OPTIONS += --without-rlm_ldap
236   endif
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" \
242                 --without-threads
243   else
244     PKG_CONFIGURE_OPTIONS += --without-rlm_sql_mysql
245   endif
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"
250   else
251     PKG_CONFIGURE_OPTIONS += --without-rlm_sql_postgresql
252   endif
253 else
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" \
260                 --without-threads \
261                 --with-rlm_sql_postgresql-include-dir="$(STAGING_DIR)/usr/include" \
262                 --with-rlm_sql_postgresql-lib-dir="$(STAGING_DIR)/usr/lib"
263 endif
264
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" \
273                 MYSQL_CONFIG="no" \
274                 ./configure \
275                         --target=$(GNU_TARGET_NAME) \
276                         --host=$(GNU_TARGET_NAME) \
277                         --build=$(GNU_HOST_NAME) \
278                         --program-prefix="" \
279                         --program-suffix="" \
280                         --prefix=/usr \
281                         --exec-prefix=/usr \
282                         --bindir=/usr/bin \
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 \
291                         --sysconfdir=/etc \
292                         $(DISABLE_LARGEFILE) \
293                         $(DISABLE_NLS) \
294                         $(PKG_CONFIGURE_OPTIONS) \
295         );
296 endef
297
298 define Build/Compile
299         rm -rf $(PKG_INSTALL_DIR)
300         mkdir -p $(PKG_INSTALL_DIR)
301         $(MAKE) -C $(PKG_BUILD_DIR) \
302                 R="$(PKG_INSTALL_DIR)" \
303                 INSTALLSTRIP="" \
304                 all install
305 endef
306
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/ ; \
313         done
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/ ; \
318         done
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/
323 endef
324
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*
332 endef
333
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/ ; \
338         done
339 endef
340
341 define BuildPlugin
342   define Package/$(1)/install
343         [ -z "$(2)" ] || install -d -m0755 $$(1)/usr/lib/freeradius
344         for m in $(2); do \
345                 $(CP) $(PKG_INSTALL_DIR)/usr/lib/freeradius/$$$$$$$${m}{,-*}.so $$(1)/usr/lib/freeradius/ ; \
346         done
347         [ -z "$(3)" ] || install -d -m0755 $$(1)/etc/freeradius
348         for f in $(3); do \
349                 $(CP) $(PKG_INSTALL_DIR)/etc/freeradius/$$$$$$$${f} $$(1)/etc/freeradius/ ; \
350         done
351   endef
352
353   $$(eval $$(call BuildPackage,$(1)))
354 endef
355
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))