noddos: Noddos v0.5.0 with mDNS / DNS-SD support
[feed/packages.git] / net / uanytun / Makefile
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))