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