-#
-# Makefile
-#
+#
+# Copyright (C) 2010-2011 OpenWrt.org
# Copyright (C) 2010 Alfred E. Heggestad
#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
include $(TOPDIR)/rules.mk
PKG_NAME:=restund
-PKG_VERSION:=0.2.0
+PKG_VERSION:=0.4.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.creytiv.com/pub/
-PKG_MD5SUM:=b8fa2ab40d7952fd78c5d72ab1742232
+PKG_MD5SUM:=fcfda012e04b5402e898da211dc10b6b
+
+restund-mods:= \
+ mysql \
+
+PKG_CONFIG_DEPENDS:= \
+ $(patsubst %,CONFIG_PACKAGE_restund-mod-%,$(restund-mods)) \
include $(INCLUDE_DIR)/package.mk
-define Package/restund
+define Package/restund/Default
SECTION:=net
CATEGORY:=Network
- DEPENDS:=+libre @BROKEN
- TITLE:=libre stun server
+ SUBMENU:=Telephony
URL:=http://www.creytiv.com/
endef
-#PKG_MAKE_OPTS += USE_MYSQL=
+define Package/restund
+$(call Package/restund/Default)
+ TITLE:=Modular STUN/TURN server
+ DEPENDS:=+libre +libpthread
+endef
+
+
+restund-mod-mysql := USE_MYSQL
+
+RESTUND_MOD_OPTIONS:= \
+ $(foreach m,$(restund-mods),$(restund-mod-$(m))=$(if $(CONFIG_PACKAGE_restund-mod-$(m)),1))
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
- LIBRE_MK=$(STAGING_DIR)/usr/share/re/re.mk \
- LIBRE_INC=$(STAGING_DIR)/usr/include/re \
+ LIBRE_MK="$(STAGING_DIR)/usr/share/re/re.mk" \
+ LIBRE_INC="$(STAGING_DIR)/usr/include/re" \
+ LIBRE_SO="$(STAGING_DIR)/usr/lib" \
CC="$(TARGET_CC)" \
- CFLAGS="$(TARGET_CFLAGS)" \
+ EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
DESTDIR="$(PKG_INSTALL_DIR)" \
- $(PKG_MAKE_OPTS) \
- SYSROOT="$(TOOLCHAIN_DIR)" \
+ SYSROOT="$$$$(echo '#include <pthread.h>' | $(TARGET_CROSS)cpp -x c | sed -ne 's,^# [0-9]* \"\(.*\)/include/pthread\.h\".*,\1,p' | head -n1)" \
SYSROOT_ALT="$(STAGING_DIR)/usr" \
RELEASE=1 \
+ CROSS_COMPILE="$(TARGET_CROSS)" \
+ OS="linux" \
+ $(RESTUND_MOD_OPTIONS) \
all install
endef
define Package/restund/install
$(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/restund $(1)/usr/sbin/
- $(INSTALL_DIR) $(1)/usr/lib/$(PKG_NAME)/modules
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/$(PKG_NAME)/modules/*.so $(1)/usr/lib/$(PKG_NAME)/modules/.
+ $(CP) $(PKG_INSTALL_DIR)/usr/sbin/restund $(1)/usr/sbin/
+ $(INSTALL_DIR) $(1)/usr/lib/restund/modules
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/lib/restund/modules/auth.so \
+ $(PKG_INSTALL_DIR)/usr/lib/restund/modules/binding.so \
+ $(PKG_INSTALL_DIR)/usr/lib/restund/modules/stat.so \
+ $(PKG_INSTALL_DIR)/usr/lib/restund/modules/status.so \
+ $(PKG_INSTALL_DIR)/usr/lib/restund/modules/syslog.so \
+ $(PKG_INSTALL_DIR)/usr/lib/restund/modules/turn.so \
+ $(1)/usr/lib/restund/modules/
$(INSTALL_DIR) $(1)/etc
$(INSTALL_CONF) $(PKG_BUILD_DIR)/etc/restund.conf $(1)/etc/
+ $(SED) \
+ 's|^\(module_path\)\([ \t]\+\).*$$$$|\1\2/usr/lib/restund/modules|g' \
+ $(1)/etc/restund.conf
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/restund.init $(1)/etc/init.d/restund
endef
+define Package/restund/conffiles
+/etc/restund.conf
+endef
+
+#
+# 1. Name
+# 2. Title
+# 3. Files
+# 4. Depends
+#
+define BuildPlugin
+
+ define Package/restund-mod-$(1)
+ $$(call Package/restund/Default)
+ TITLE:= restund $(2) module
+ DEPENDS:= restund $(4)
+ endef
+
+ define Package/restund-mod-$(1)/install
+ [ -z "$(3)" ] || $(INSTALL_DIR) $$(1)/usr/lib/restund/modules
+ for f in $(3); do \
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/lib/restund/modules/$$$$$$$${f}.so \
+ $$(1)/usr/lib/restund/modules/ ; \
+ done
+ endef
+
+ $$(eval $$(call BuildPackage,restund-mod-$(1)))
+endef
+
+
$(eval $(call BuildPackage,restund))
+
+$(eval $(call BuildPlugin,mysql,MySQL database backend,mysql_ser,+PACKAGE_restund-mod-mysql:libmysqlclient))