Merge pull request #143 from dangowrt/update-cjdns
[lede-routing/.git] / cjdns / Makefile
1 #
2 # Copyright (C) 2014,2015 Hyperboria.net
3 #
4 # You may redistribute this program and/or modify it under the terms of
5 # the GNU General Public License as published by the Free Software Foundation,
6 # either version 3 of the License, or (at your option) any later version.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
15 #
16
17 include $(TOPDIR)/rules.mk
18
19 PKG_NAME:=cjdns
20 PKG_VERSION:=0.17
21 PKG_RELEASE:=1
22
23 PKG_SOURCE_URL:=https://github.com/hyperboria/cjdns.git
24 PKG_SOURCE_PROTO:=git
25 PKG_SOURCE_VERSION:=1cf53a812a9b19e5ce883c16d40ac183f61d43f6
26 PKG_LICENSE:=GPL-3.0
27 PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
28 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
29 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
30
31 include $(INCLUDE_DIR)/package.mk
32
33
34 define Package/cjdns
35         SECTION:=net
36         CATEGORY:=Network
37         SUBMENU:=Routing and Redirection
38         TITLE:=Encrypted near-zero-conf mesh routing protocol
39         URL:=https://github.com/hyperboria/cjdns
40         MAINTAINER:=Lars Gierth <larsg@systemli.org>
41         DEPENDS:=@IPV6 +kmod-tun +libnl-tiny +libpthread +librt \
42                 +libuci-lua +lua-bencode +dkjson +luasocket +lua-sha2
43 endef
44
45 define Package/cjdns/description
46         Cjdns implements an encrypted IPv6 network using public-key cryptography \
47         for address allocation and a distributed hash table for routing. \
48         This provides near-zero-configuration networking, and prevents many \
49         of the security and scalability issues that plague existing networks.
50 endef
51
52 define Package/cjdns-tests
53         SECTION:=net
54         CATEGORY:=Network
55         SUBMENU:=Routing and Redirection
56         TITLE:=cjdns test cases
57         URL:=https://github.com/hyperboria/cjdns
58         MAINTAINER:=Lars Gierth <larsg@systemli.org>
59         DEPENDS:=+libpthread +librt
60 endef
61
62 define Package/cjdns-test/description
63         cjdns test cases
64 endef
65
66 define Build/Configure
67 endef
68
69 PKG_DO_VARS:=
70
71 ifneq ($(CONFIG_KERNEL_SECCOMP_FILTER),y)
72 PKG_DO_VARS+= Seccomp_NO=1
73 endif
74
75 ifneq ($(CONFIG_USE_UCLIBC),)
76 PKG_DO_VARS+= UCLIBC=1
77 endif
78
79 define Build/Compile
80         CROSS="true" \
81         CC="$(TARGET_CC)" \
82         AR="$(TARGET_AR)" \
83         RANLIB="$(TARGET_RANLIB)" \
84         CFLAGS="$(TARGET_CFLAGS)" \
85         LDFLAGS="$(TARGET_LDFLAGS)" \
86         SYSTEM="linux" \
87         TARGET_ARCH="$(CONFIG_ARCH)" \
88         SSP_SUPPORT="$(CONFIG_SSP_SUPPORT)" \
89         GYP_ADDITIONAL_ARGS="-f make-linux" \
90         $(PKG_DO_VARS) \
91         $(PKG_BUILD_DIR)/do
92 endef
93
94 define Package/cjdns/install
95         $(INSTALL_DIR) \
96                 $(1)/usr/sbin \
97                 $(1)/usr/bin \
98                 $(1)/etc/config \
99                 $(1)/etc/init.d \
100                 $(1)/etc/uci-defaults \
101                 $(1)/usr/lib/lua/cjdns
102
103         $(INSTALL_BIN) \
104                 ./files/cjdrouteconf \
105                 $(1)/usr/bin
106
107         $(INSTALL_BIN) \
108                 $(PKG_BUILD_DIR)/cjdroute \
109                 $(1)/usr/sbin
110
111         $(INSTALL_BIN) \
112                 $(PKG_BUILD_DIR)/publictoip6 \
113                 $(1)/usr/bin
114
115         $(INSTALL_BIN) \
116                 ./files/cjdns.init \
117                 $(1)/etc/init.d/cjdns
118
119         $(INSTALL_BIN) \
120                 ./files/cjdns.defaults \
121                 $(1)/etc/uci-defaults/cjdns
122
123         $(CP) \
124                 ./lua/cjdns/* \
125                 $(1)/usr/lib/lua/cjdns
126 endef
127
128 define Package/cjdns/postinst
129 #!/bin/sh
130 if [ -z $${IPKG_INSTROOT} ] ; then
131         ( . /etc/uci-defaults/cjdns ) && rm -f /etc/uci-defaults/cjdns
132         # TODO: we should have an 'Enable' button instead
133         /etc/init.d/cjdns enabled || /etc/init.d/cjdns enable
134         exit 0
135 fi
136 endef
137
138 define Package/cjdns-tests/install
139         $(INSTALL_DIR) $(1)/usr/bin
140         $(INSTALL_BIN) \
141                 $(PKG_BUILD_DIR)/build_linux/test_testcjdroute_c \
142                 $(1)/usr/bin
143 endef
144
145 $(eval $(call BuildPackage,cjdns))
146 $(eval $(call BuildPackage,cjdns-tests))