packages/net/uanytun/Makefile
thepeople 9b955dbf04 This patch updates uanytun package to new upstream release 0.3.3.
For additional infos please visit http://www.anytun.org.

Signed-off-by: Christian Pointner <equinox@anytun.org>

git-svn-id: svn://svn.openwrt.org/openwrt/packages@19682 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-02-17 02:15:12 +00:00

208 lines
6.0 KiB
Makefile

#
# Copyright (C) 2008 Christian Pointner,
# <equinox@anytun.org>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# This Makefile builds uAnytun Package for OpenWRT
#
# $Id: $
include $(TOPDIR)/rules.mk
PKG_NAME:=uanytun
PKG_VERSION:=0.3.3
PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.anytun.org/download/
PKG_MD5SUM:=ca39dab02e91b0737e2b3f0839e74f6a
include $(INCLUDE_DIR)/package.mk
define Package/uanytun/template
SECTION:=net
CATEGORY:=Network
TITLE:=micro anycast tunneling daemon
URL:=http://www.anytun.org/
MAINTAINER:=Christian Pointner <equinox@anytun.org>
SUBMENU:=VPN
endef
define Package/uanytun/desc-template
uAnytun is a tiny implementation of SATP the secure anycast tunneling protocol.
SATP defines a protocol used for communication between any combination of
unicast and anycast tunnel endpoints. It has less protocol overhead than
IPSec in Tunnel mode and allows tunneling of every ETHER TYPE protocol (e.g.
ethernet, ip, arp ...). SATP directly includes cryptography and message
authentication based on the methodes used by SRTP. It is intended to deliver
a generic, scaleable and secure solution for tunneling and relaying of packets
of any protocol.
Unlike Anytun which is a full featured implementation uAnytun has no support
for multiple connections or synchronisation. It is a small single threaded
implementation intended to act as a client on small platforms.
endef
define Package/uanytun
$(call Package/uanytun/template)
DEPENDS:=+kmod-tun +libgcrypt
endef
define Package/uanytun/conffiles
/etc/config/uanytun
endef
define Package/uanytun/description
$(call Package/uanytun/desc-template)
endef
define Package/uanytun-sslcrypt
$(call Package/uanytun/template)
DEPENDS:=+kmod-tun +libopenssl
endef
define Package/uanytun-sslcrypt/conffiles
/etc/config/uanytun-sslcrypt
endef
define Package/uanytun-sslcrypt/description
$(call Package/uanytun/desc-template)
endef
define Package/uanytun-nocrypt
$(call Package/uanytun/template)
DEPENDS:=+kmod-tun
endef
define Package/uanytun-nocrypt/conffiles
/etc/config/uanytun-nocrypt
endef
define Package/uanytun-nocrypt/description
$(call Package/uanytun/desc-template)
endef
define Package/uanytun/configure
(cd $(1)/$(2)/src; \
touch include.mk; \
ln -s linux/tun.c .; \
echo '#ifndef UANYTUN_version_h_INCLUDED' > version.h; \
echo '#define UANYTUN_version_h_INCLUDED' >> version.h; \
echo '' >> version.h; \
echo '#define VERSION_STRING_0 "uanytun version '`cat $(1)/version`'"' >> version.h; \
echo '#define VERSION_STRING_1 "built on '`hostname`', '`date +"%d.%m.%Y %H:%M:%S %Z"`'"' >> version.h; \
echo '' >> version.h; \
echo '#endif' >> version.h \
)
endef
ifneq ($(CONFIG_PACKAGE_uanytun-nocrypt),)
define Build/Configure/uanytun-nocrypt
rm -rf $(PKG_BUILD_DIR)/uanytun-nocrypt
mkdir -p $(PKG_BUILD_DIR)/uanytun-nocrypt
$(CP) -r $(PKG_BUILD_DIR)/src $(PKG_BUILD_DIR)/uanytun-nocrypt
$(call Package/uanytun/configure,$(PKG_BUILD_DIR),uanytun-nocrypt)
endef
define Build/Compile/uanytun-nocrypt
$(MAKE) -C $(PKG_BUILD_DIR)/uanytun-nocrypt/src \
$(TARGET_CONFIGURE_OPTS) \
NO_CRYPT_OBJ=1 \
TARGET=Linux \
CFLAGS="$(TARGET_CFLAGS) -DNO_CRYPT" \
LDFLAGS="$(TARGET_LDFLAGS) -ldl"
$(STRIP) $(PKG_BUILD_DIR)/uanytun-nocrypt/src/uanytun
endef
endif
ifneq ($(CONFIG_PACKAGE_uanytun-sslcrypt),)
define Build/Configure/uanytun-sslcrypt
rm -rf $(PKG_BUILD_DIR)/uanytun-sslcrypt
mkdir -p $(PKG_BUILD_DIR)/uanytun-sslcrypt
$(CP) -r $(PKG_BUILD_DIR)/src $(PKG_BUILD_DIR)/uanytun-sslcrypt
$(call Package/uanytun/configure,$(PKG_BUILD_DIR),uanytun-sslcrypt)
endef
define Build/Compile/uanytun-sslcrypt
$(MAKE) -C $(PKG_BUILD_DIR)/uanytun-sslcrypt/src \
$(TARGET_CONFIGURE_OPTS) \
TARGET=Linux \
CFLAGS="$(TARGET_CFLAGS) -DUSE_SSL_CRYPTO -I$(STAGING_DIR)/usr/include" \
LDFLAGS="$(TARGET_LDFLAGS) -ldl -lcrypto"
$(STRIP) $(PKG_BUILD_DIR)/uanytun-sslcrypt/src/uanytun
endef
endif
ifneq ($(CONFIG_PACKAGE_uanytun),)
define Build/Configure/uanytun-default
rm -rf $(PKG_BUILD_DIR)/uanytun
mkdir -p $(PKG_BUILD_DIR)/uanytun
$(CP) -r $(PKG_BUILD_DIR)/src $(PKG_BUILD_DIR)/uanytun
$(call Package/uanytun/configure,$(PKG_BUILD_DIR),uanytun)
endef
define Build/Compile/uanytun-default
$(MAKE) -C $(PKG_BUILD_DIR)/uanytun/src \
$(TARGET_CONFIGURE_OPTS) \
TARGET=Linux \
CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include" \
LDFLAGS="$(TARGET_LDFLAGS) -ldl -lgcrypt -lgpg-error"
$(STRIP) $(PKG_BUILD_DIR)/uanytun/src/uanytun
endef
endif
define Build/Configure
$(call Build/Configure/uanytun-nocrypt)
$(call Build/Configure/uanytun-sslcrypt)
$(call Build/Configure/uanytun-default)
endef
define Build/Compile
$(call Build/Compile/uanytun-nocrypt)
$(call Build/Compile/uanytun-sslcrypt)
$(call Build/Compile/uanytun-default)
endef
define Build/Clean
rm -rf $(PKG_BUILD_DIR)/uanytun-nocrypt
rm -rf $(PKG_BUILD_DIR)/uanytun-sslcrypt
rm -rf $(PKG_BUILD_DIR)/uanytun
endef
define Package/uanytun/install-generic
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DATA) ./files/$(3) $(1)/etc/config/$(2)
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(2)/src/uanytun $(1)/usr/sbin/$(2)
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/uanytun.init $(1)/etc/init.d/$(2)
@sed -e 's/BIN=uanytun/BIN=$(2)/' -i $(1)/etc/init.d/$(2)
endef
define Package/uanytun/install
$(call Package/uanytun/install-generic,$(1),uanytun,uanytun.config)
endef
define Package/uanytun-sslcrypt/install
$(call Package/uanytun/install-generic,$(1),uanytun-sslcrypt,uanytun.config)
endef
define Package/uanytun-nocrypt/install
$(call Package/uanytun/install-generic,$(1),uanytun-nocrypt,uanytun-nocrypt.config)
endef
$(eval $(call BuildPackage,uanytun))
$(eval $(call BuildPackage,uanytun-sslcrypt))
$(eval $(call BuildPackage,uanytun-nocrypt))