Makefile (4929B)
1 # 2 # Copyright (C) 2008-2014 Christian Pointner, 3 # <equinox@anytun.org> 4 # 5 # This is free software, licensed under the GNU General Public License v2. 6 # See /LICENSE for more information. 7 # 8 # This Makefile builds uAnytun Package for OpenWRT 9 # 10 # $Id: $ 11 12 include $(TOPDIR)/rules.mk 13 14 PKG_NAME:=uanytun 15 PKG_VERSION:=0.3.5 16 PKG_RELEASE:=1 17 18 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz 19 PKG_SOURCE_URL:=http://www.anytun.org/download/ 20 PKG_MD5SUM:=ce47ad45003ff1d84eaf5276941b9ddf 21 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) 22 PKG_MAINTAINER:=Christian Pointner <equinox@spreadspace.org> 23 PKG_LICENSE:=GPL-3.0+ 24 PKG_LICENSE_FILES:=LICENSE 25 include $(INCLUDE_DIR)/package.mk 26 27 28 define Package/uanytun/template 29 SECTION:=net 30 CATEGORY:=Network 31 SUBMENU:=VPN 32 DEPENDS:=+kmod-tun 33 TITLE:=micro anycast tunneling daemon 34 URL:=http://www.anytun.org/ 35 endef 36 37 38 define Package/uanytun 39 $(call Package/uanytun/template) 40 TITLE+= (gcrypt) 41 VARIANT:=gcrypt 42 DEPENDS+=+libgcrypt 43 endef 44 45 define Package/uanytun/conffiles 46 /etc/config/uanytun 47 endef 48 49 define Package/uanytun/description 50 uAnytun is a tiny implementation of SATP the secure anycast tunneling protocol. 51 SATP defines a protocol used for communication between any combination of 52 unicast and anycast tunnel endpoints. It has less protocol overhead than 53 IPSec in Tunnel mode and allows tunneling of every ETHER TYPE protocol (e.g. 54 ethernet, ip, arp ...). SATP directly includes cryptography and message 55 authentication based on the methods used by SRTP. It is intended to deliver 56 a generic, scalable and secure solution for tunneling and relaying of packets 57 of any protocol. 58 Unlike Anytun which is a full featured implementation uAnytun has no support 59 for multiple connections or synchronisation. It is a small single threaded 60 implementation intended to act as a client on small platforms. 61 endef 62 63 64 define Package/uanytun-nettle 65 $(call Package/uanytun/template) 66 TITLE+= (nettle) 67 VARIANT:=nettle 68 DEPENDS+=+libnettle 69 endef 70 71 Package/uanytun-nettle/conffiles=$(Package/uanytun/conffiles) 72 Package/uanytun-nettle/description=$(Package/uanytun/description) 73 74 75 define Package/uanytun-sslcrypt 76 $(call Package/uanytun/template) 77 TITLE+= (openssl) 78 VARIANT:=sslcrypt 79 DEPENDS+=+libopenssl 80 endef 81 82 Package/uanytun-sslcrypt/conffiles=$(Package/uanytun/conffiles) 83 Package/uanytun-sslcrypt/description=$(Package/uanytun/description) 84 85 86 define Package/uanytun-nocrypt 87 $(call Package/uanytun/template) 88 TITLE+= (no crypt) 89 VARIANT:=nocrypt 90 endef 91 92 Package/uanytun-nocrypt/conffiles=$(Package/uanytun/conffiles) 93 Package/uanytun-nocrypt/description=$(Package/uanytun/description) 94 95 96 97 define Build/Configure 98 (cd $(PKG_BUILD_DIR)/src; \ 99 touch include.mk; \ 100 ln -s linux/tun.c .; \ 101 echo '#ifndef UANYTUN_version_h_INCLUDED' > version.h; \ 102 echo '#define UANYTUN_version_h_INCLUDED' >> version.h; \ 103 echo '' >> version.h; \ 104 echo '#define VERSION_STRING_0 "uanytun version '`cat $(PKG_BUILD_DIR)/version`'"' >> version.h; \ 105 echo '#define VERSION_STRING_1 "built on '`hostname`', '`date +"%d.%m.%Y %H:%M:%S %Z"`'"' >> version.h; \ 106 echo '' >> version.h; \ 107 echo '#endif' >> version.h \ 108 ) 109 endef 110 111 VARIANT_CFLAGS:= 112 VARIANT_LDFLAGS:=-ldl 113 VARIANT_MAKE_OPTS:= 114 115 ifeq ($(BUILD_VARIANT),gcrypt) 116 VARIANT_CFLAGS+=-DUSE_GCRYPT 117 VARIANT_LDFLAGS+=-lgpg-error -lgcrypt 118 endif 119 120 ifeq ($(BUILD_VARIANT),nettle) 121 VARIANT_CFLAGS+=-DUSE_NETTLE 122 VARIANT_LDFLAGS+=-lnettle 123 endif 124 125 ifeq ($(BUILD_VARIANT),sslcrypt) 126 VARIANT_CFLAGS+=-DUSE_SSL_CRYPTO 127 VARIANT_LDFLAGS+=-lcrypto 128 endif 129 130 ifeq ($(BUILD_VARIANT),nocrypt) 131 VARIANT_CFLAGS+=-DNO_CRYPT 132 VARIANT_MAKE_OPTS+=NO_CRYPT_OBJ=1 133 endif 134 135 define Build/Compile 136 $(MAKE) -C $(PKG_BUILD_DIR)/src \ 137 $(TARGET_CONFIGURE_OPTS) \ 138 $(VARIANT_MAKE_OPTS) \ 139 TARGET=Linux \ 140 CFLAGS="$(TARGET_CFLAGS) $(VARIANT_CFLAGS) $(TARGET_CPPFLAGS)" \ 141 LDFLAGS="$(TARGET_LDFLAGS) $(VARIANT_LDFLAGS)" 142 $(STRIP) $(PKG_BUILD_DIR)/src/uanytun 143 endef 144 145 146 define Package/uanytun/install-generic 147 $(INSTALL_DIR) $(1)/etc/config 148 $(INSTALL_DATA) ./files/$(2) $(1)/etc/config/$(PKG_NAME) 149 $(INSTALL_DIR) $(1)/usr/sbin 150 $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/uanytun $(1)/usr/sbin/$(PKG_NAME) 151 $(INSTALL_DIR) $(1)/etc/init.d 152 $(INSTALL_BIN) ./files/uanytun.init $(1)/etc/init.d/$(PKG_NAME) 153 endef 154 155 define Package/uanytun/install 156 $(call Package/uanytun/install-generic,$(1),uanytun.config) 157 endef 158 159 define Package/uanytun-nettle/install 160 $(call Package/uanytun/install-generic,$(1),uanytun.config) 161 endef 162 163 define Package/uanytun-sslcrypt/install 164 $(call Package/uanytun/install-generic,$(1),uanytun.config) 165 endef 166 167 define Package/uanytun-nocrypt/install 168 $(call Package/uanytun/install-generic,$(1),uanytun-nocrypt.config) 169 endef 170 171 172 $(eval $(call BuildPackage,uanytun)) 173 $(eval $(call BuildPackage,uanytun-nettle)) 174 $(eval $(call BuildPackage,uanytun-sslcrypt)) 175 $(eval $(call BuildPackage,uanytun-nocrypt))