Add freeradius package
[openwrt/staging/dedeckeh.git] / openwrt / package / freeradius / Makefile
diff --git a/openwrt/package/freeradius/Makefile b/openwrt/package/freeradius/Makefile
new file mode 100644 (file)
index 0000000..54b0403
--- /dev/null
@@ -0,0 +1,188 @@
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=freeradius
+PKG_VERSION:=1.0.2
+PKG_RELEASE:=1
+PKG_MD5SUM:=f5dfce4efbb03bbc47ceae08270a875e
+
+PKG_SOURCE_URL:=ftp://ftp.freeradius.org/pub/radius/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_CAT:=zcat
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
+
+include $(TOPDIR)/package/rules.mk
+
+define PKG_mod_template
+
+$$(IPKG_$(1)):
+       install -d -m0755 $$(IDIR_$(1))/usr/lib/freeradius
+       for m in $(2); do \
+               cp -fpR $(PKG_INSTALL_DIR)/usr/lib/freeradius/$$$${m}{,-*}.so \
+                 $$(IDIR_$(1))/usr/lib/freeradius/ ; \
+       done
+       install -d -m0755 $$(IDIR_$(1))/etc/freeradius
+       for f in $(3); do \
+               cp -fpR $(PKG_INSTALL_DIR)/etc/freeradius/$$$${f} \
+                 $$(IDIR_$(1))/etc/freeradius/ ; \
+       done
+       $(RSTRIP) $$(IDIR_$(1))
+       $(IPKG_BUILD) $$(IDIR_$(1)) $(PACKAGE_DIR)
+
+endef
+
+$(eval $(call PKG_template,FREERADIUS,freeradius,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,FREERADIUS_DEMOCERTS,freeradius-democerts,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,FREERADIUS_MOD_CHAP,freeradius-mod-chap,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,FREERADIUS_MOD_EAP,freeradius-mod-eap,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,FREERADIUS_MOD_EAP_GTC,freeradius-mod-eap-gtc,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,FREERADIUS_MOD_EAP_MD5,freeradius-mod-eap-md5,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,FREERADIUS_MOD_EAP_MSCHAPV2,freeradius-mod-eap-mschapv2,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,FREERADIUS_MOD_EAP_PEAP,freeradius-mod-eap-peap,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,FREERADIUS_MOD_EAP_TLS,freeradius-mod-eap-tls,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,FREERADIUS_MOD_EAP_TTLS,freeradius-mod-eap-ttls,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,FREERADIUS_MOD_FILES,freeradius-mod-files,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,FREERADIUS_MOD_LDAP,freeradius-mod-ldap,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,FREERADIUS_MOD_MSCHAP,freeradius-mod-mschap,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,FREERADIUS_MOD_PAP,freeradius-mod-pap,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,FREERADIUS_MOD_SQL,freeradius-mod-sql,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,FREERADIUS_MOD_SQL_MYSQL,freeradius-mod-sql-mysql,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,FREERADIUS_MOD_SQL_PGSQL,freeradius-mod-sql-pgsql,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,FREERADIUS_UTILS,freeradius-utils,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+
+$(eval $(call PKG_mod_template,FREERADIUS_MOD_CHAP,rlm_chap,))
+$(eval $(call PKG_mod_template,FREERADIUS_MOD_EAP,libeap rlm_eap,eap.conf))
+$(eval $(call PKG_mod_template,FREERADIUS_MOD_EAP_GTC,rlm_eap_gtc,))
+$(eval $(call PKG_mod_template,FREERADIUS_MOD_EAP_MD5,rlm_eap_md5,))
+$(eval $(call PKG_mod_template,FREERADIUS_MOD_EAP_MSCHAPV2,rlm_eap_mschapv2,))
+$(eval $(call PKG_mod_template,FREERADIUS_MOD_EAP_PEAP,rlm_eap_peap,))
+$(eval $(call PKG_mod_template,FREERADIUS_MOD_EAP_TLS,rlm_eap_tls,))
+$(eval $(call PKG_mod_template,FREERADIUS_MOD_EAP_TTLS,rlm_eap_ttls,))
+$(eval $(call PKG_mod_template,FREERADIUS_MOD_FILES,rlm_files,acct_users preproxy_users users))
+$(eval $(call PKG_mod_template,FREERADIUS_MOD_LDAP,rlm_ldap,ldap.attrmap))
+$(eval $(call PKG_mod_template,FREERADIUS_MOD_MSCHAP,rlm_mschap,))
+$(eval $(call PKG_mod_template,FREERADIUS_MOD_PAP,rlm_pap,))
+$(eval $(call PKG_mod_template,FREERADIUS_MOD_SQL,rlm_sql,sql.conf))
+$(eval $(call PKG_mod_template,FREERADIUS_MOD_SQL_MYSQL,rlm_sql_mysql,))
+$(eval $(call PKG_mod_template,FREERADIUS_MOD_SQL_PGSQL,rlm_sql_postgresql,))
+
+$(PKG_BUILD_DIR)/.configured:
+       (cd $(PKG_BUILD_DIR); rm -rf config.{cache,status} ; \
+               $(TARGET_CONFIGURE_OPTS) \
+               CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include" \
+               CPPFLAGS="-I$(STAGING_DIR)/usr/include" \
+               LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(PKG_INSTALL_DIR)/usr/lib/freeradius" \
+               lt_sys_lib_search_path_spec="$(STAGING_DIR)/usr/lib" \
+               MYSQL_CONFIG="no" \
+               ./configure \
+                 --target=$(GNU_TARGET_NAME) \
+                 --host=$(GNU_TARGET_NAME) \
+                 --build=$(GNU_HOST_NAME) \
+                 --program-prefix="" \
+                 --program-suffix="" \
+                 --prefix=/usr \
+                 --exec-prefix=/usr \
+                 --bindir=/usr/bin \
+                 --datadir=/usr/share \
+                 --includedir=/usr/include \
+                 --infodir=/usr/share/info \
+                 --libdir=/usr/lib/freeradius \
+                 --libexecdir=/usr/lib/freeradius \
+                 --localstatedir=/var \
+                 --mandir=/usr/share/man \
+                 --sbindir=/usr/sbin \
+                 --sysconfdir=/etc \
+                 $(DISABLE_LARGEFILE) \
+                 $(DISABLE_NLS) \
+                 --enable-shared \
+                 --disable-static \
+                 --disable-ltdl-install \
+                 --with-ltdl-include="$(STAGING_DIR)/usr/include" \
+                 --with-ltdl-lib="$(STAGING_DIR)/usr/lib" \
+                 --with-openssl-includes="$(STAGING_DIR)/usr/include" \
+                 --with-openssl-libraries="$(STAGING_DIR)/usr/lib" \
+                 --enable-strict-dependencies \
+                 --with-raddbdir=/etc/freeradius \
+                 --without-edir \
+                 --without-snmp \
+                 --without-rlm_attr-rewrite \
+                 --with-rlm_checkval \
+                 --without-rlm_counter \
+                 --without-rlm_dbm \
+                 --with-rlm_eap \
+                 --without-rlm_eap_sim \
+                 --with-rlm_files \
+                 --without-rlm_ippool \
+                 --without-rlm_krb5 \
+                 --with-rlm_ldap-include-dir="$(STAGING_DIR)/usr/include" \
+                 --with-rlm_ldap-lib-dir="$(STAGING_DIR)/usr/lib" \
+                 --without-rlm_pam \
+                 --without-rlm_radutmp \
+                 --without-rlm_sql_iodbc \
+                 --with-mysql-include-dir="$(STAGING_DIR)/usr/include/mysql" \
+                 --with-mysql-lib-dir="$(STAGING_DIR)/usr/lib/mysql" \
+                 --without-rlm_sql_oracle \
+                 --with-rlm_sql_postgresql-include-dir="$(STAGING_DIR)/usr/include" \
+                 --with-rlm_sql_postgresql-lib-dir="$(STAGING_DIR)/usr/lib" \
+                 --without-rlm_sql_unixodbc \
+                 --without-rlm_unix \
+                 --without-rlm_x99-token \
+       )
+       touch $(PKG_BUILD_DIR)/.configured
+
+$(PKG_BUILD_DIR)/.built:
+       $(MAKE) -C $(PKG_BUILD_DIR)
+       mkdir -p $(PKG_INSTALL_DIR)
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               R="$(PKG_INSTALL_DIR)" \
+               INSTALLSTRIP="" \
+               install
+       touch $(PKG_BUILD_DIR)/.built
+
+$(IPKG_FREERADIUS):
+       install -m0755 -d $(IDIR_FREERADIUS)/etc/init.d
+       install -m0755 ./files/radiusd.init $(IDIR_FREERADIUS)/etc/init.d/radiusd
+       install -m0755 -d $(IDIR_FREERADIUS)/etc/freeradius
+       for f in clients.conf dictionary radiusd.conf; do \
+               cp -fpR $(PKG_INSTALL_DIR)/etc/freeradius/$${f} \
+                 $(IDIR_FREERADIUS)/etc/freeradius/ ; \
+       done
+       install -m0755 -d $(IDIR_FREERADIUS)/usr/share/freeradius
+       cp -fpR $(PKG_INSTALL_DIR)/usr/share/freeradius/dictionary \
+               $(IDIR_FREERADIUS)/usr/share/freeradius/
+       for f in cisco freeradius microsoft tunnel wispr; do \
+               cp -fpR $(PKG_INSTALL_DIR)/usr/share/freeradius/dictionary.$${f} \
+                 $(IDIR_FREERADIUS)/usr/share/freeradius/ ; \
+       done
+       install -m0755 -d $(IDIR_FREERADIUS)/usr/lib/freeradius
+       cp -fpR $(PKG_INSTALL_DIR)/usr/lib/freeradius/libradius{,-*}.so \
+         $(IDIR_FREERADIUS)/usr/lib/freeradius/
+       install -m0755 -d $(IDIR_FREERADIUS)/usr/sbin
+       cp -fpR $(PKG_INSTALL_DIR)/usr/sbin/radiusd \
+         $(IDIR_FREERADIUS)/usr/sbin/
+       $(RSTRIP) $(IDIR_FREERADIUS)
+       $(IPKG_BUILD) $(IDIR_FREERADIUS) $(PACKAGE_DIR)
+
+$(IPKG_FREERADIUS_DEMOCERTS):
+       install -m0755 -d $(IDIR_FREERADIUS_DEMOCERTS)/etc/freeradius
+       cp -fpR $(PKG_INSTALL_DIR)/etc/freeradius/certs \
+         $(IDIR_FREERADIUS_DEMOCERTS)/etc/freeradius/
+       rm -rf $(IDIR_FREERADIUS_DEMOCERTS)/etc/freeradius/certs/README
+       rm -rf $(IDIR_FREERADIUS_DEMOCERTS)/etc/freeradius/certs/new*
+       rm -rf $(IDIR_FREERADIUS_DEMOCERTS)/etc/freeradius/certs/demoCA/index*
+       rm -rf $(IDIR_FREERADIUS_DEMOCERTS)/etc/freeradius/certs/demoCA/serial*
+       $(RSTRIP) $(IDIR_FREERADIUS_DEMOCERTS)
+       $(IPKG_BUILD) $(IDIR_FREERADIUS_DEMOCERTS) $(PACKAGE_DIR)
+
+$(IPKG_FREERADIUS_UTILS):
+       install -m0755 -d $(IDIR_FREERADIUS_UTILS)/usr/bin
+       for f in radclient radeapclient; do \
+         cp -fpR $(PKG_INSTALL_DIR)/usr/bin/$${f} \
+           $(IDIR_FREERADIUS_UTILS)/usr/bin/ ; \
+       done
+       $(RSTRIP) $(IDIR_FREERADIUS_UTILS)
+       $(IPKG_BUILD) $(IDIR_FREERADIUS_UTILS) $(PACKAGE_DIR)
+