First Commit
[librecmc/package-feed.git] / net / fastd / Makefile
1 #
2 # Copyright (C) 2012-2015 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=fastd
11 PKG_VERSION:=18
12 PKG_RELEASE:=1
13
14 PKG_MAINTAINER:=Matthias Schiffer <mschiffer@universe-factory.net>
15 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
16 PKG_SOURCE_URL:=https://projects.universe-factory.net/attachments/download/86
17 PKG_MD5SUM:=e53236d3049f64f7955ad9556da099eb
18
19 PKG_LICENSE:=BSD-2-Clause
20 PKG_LICENSE_FILES:=COPYRIGHT
21
22 PKG_CONFIG_DEPENDS:=\
23         CONFIG_FASTD_ENABLE_METHOD_CIPHER_TEST \
24         CONFIG_FASTD_ENABLE_METHOD_COMPOSED_GMAC \
25         CONFIG_FASTD_ENABLE_METHOD_COMPOSED_UMAC \
26         CONFIG_FASTD_ENABLE_METHOD_GENERIC_GMAC \
27         CONFIG_FASTD_ENABLE_METHOD_GENERIC_POLY1305 \
28         CONFIG_FASTD_ENABLE_METHOD_GENERIC_UMAC \
29         CONFIG_FASTD_ENABLE_METHOD_NULL \
30         CONFIG_FASTD_ENABLE_METHOD_XSALSA20_POLY1305 \
31         CONFIG_FASTD_ENABLE_CIPHER_AES128_CTR \
32         CONFIG_FASTD_ENABLE_CIPHER_NULL \
33         CONFIG_FASTD_ENABLE_CIPHER_SALSA20 \
34         CONFIG_FASTD_ENABLE_CIPHER_SALSA2012 \
35         CONFIG_FASTD_ENABLE_MAC_GHASH \
36         CONFIG_FASTD_ENABLE_MAC_UHASH \
37         CONFIG_FASTD_WITH_CAPABILITIES \
38         CONFIG_FASTD_WITH_CMDLINE_USER \
39         CONFIG_FASTD_WITH_CMDLINE_LOGGING \
40         CONFIG_FASTD_WITH_CMDLINE_OPERATION \
41         CONFIG_FASTD_WITH_CMDLINE_COMMANDS \
42         CONFIG_FASTD_WITH_DYNAMIC_PEERS \
43         CONFIG_FASTD_WITH_STATUS_SOCKET
44
45
46 PKG_BUILD_DEPENDS:=nacl libuecc
47
48 include $(INCLUDE_DIR)/package.mk
49 include $(INCLUDE_DIR)/cmake.mk
50
51 define Package/fastd
52   SECTION:=net
53   CATEGORY:=Network
54   DEPENDS:=+kmod-tun +librt +libpthread +FASTD_WITH_STATUS_SOCKET:libjson-c +FASTD_WITH_CAPABILITIES:libcap
55   TITLE:=Fast and Secure Tunneling Daemon
56   URL:=https://projects.universe-factory.net/projects/fastd
57   SUBMENU:=VPN
58 endef
59
60 define Package/fastd/config
61   source "$(SOURCE)/Config.in"
62 endef
63
64 TARGET_CFLAGS += -ffunction-sections -fdata-sections
65 TARGET_LDFLAGS += -Wl,--gc-sections
66
67 CMAKE_OPTIONS += \
68         -DCMAKE_BUILD_TYPE:STRING=MINSIZEREL \
69         -DWITH_METHOD_CIPHER_TEST:BOOL=FALSE \
70         -DWITH_METHOD_COMPOSED_GMAC:BOOL=FALSE \
71         -DWITH_METHOD_COMPOSED_UMAC:BOOL=FALSE \
72         -DWITH_METHOD_GENERIC_GMAC:BOOL=FALSE \
73         -DWITH_METHOD_GENERIC_POLY1305:BOOL=FALSE \
74         -DWITH_METHOD_GENERIC_UMAC:BOOL=FALSE \
75         -DWITH_METHOD_NULL:BOOL=FALSE \
76         -DWITH_METHOD_XSALSA20_POLY1305:BOOL=FALSE \
77         -DWITH_CIPHER_AES128_CTR:BOOL=FALSE \
78         -DWITH_CIPHER_NULL:BOOL=FALSE \
79         -DWITH_CIPHER_SALSA20:BOOL=FALSE \
80         -DWITH_CIPHER_SALSA2012:BOOL=FALSE \
81         -DWITH_MAC_GHASH:BOOL=FALSE \
82         -DWITH_MAC_UHASH:BOOL=FALSE \
83         -DWITH_CAPABILITIES:BOOL=FALSE \
84         -DWITH_CMDLINE_USER:BOOL=FALSE \
85         -DWITH_CMDLINE_LOGGING:BOOL=FALSE \
86         -DWITH_CMDLINE_OPERATION:BOOL=FALSE \
87         -DWITH_CMDLINE_COMMANDS:BOOL=FALSE \
88         -DWITH_DYNAMIC_PEERS:BOOL=FALSE \
89         -DWITH_STATUS_SOCKET:BOOL=FALSE \
90         -DENABLE_SYSTEMD:BOOL=FALSE \
91         -DENABLE_LIBSODIUM:BOOL=FALSE \
92         -DENABLE_LTO:BOOL=TRUE
93
94
95 ifeq ($(CONFIG_FASTD_ENABLE_METHOD_CIPHER_TEST),y)
96 CMAKE_OPTIONS += -DWITH_METHOD_CIPHER_TEST:BOOL=TRUE
97 endif
98
99 ifeq ($(CONFIG_FASTD_ENABLE_METHOD_COMPOSED_GMAC),y)
100 CMAKE_OPTIONS += -DWITH_METHOD_COMPOSED_GMAC:BOOL=TRUE
101 endif
102
103 ifeq ($(CONFIG_FASTD_ENABLE_METHOD_COMPOSED_UMAC),y)
104 CMAKE_OPTIONS += -DWITH_METHOD_COMPOSED_UMAC:BOOL=TRUE
105 endif
106
107 ifeq ($(CONFIG_FASTD_ENABLE_METHOD_GENERIC_GMAC),y)
108 CMAKE_OPTIONS += -DWITH_METHOD_GENERIC_GMAC:BOOL=TRUE
109 endif
110
111 ifeq ($(CONFIG_FASTD_ENABLE_METHOD_GENERIC_POLY1305),y)
112 CMAKE_OPTIONS += -DWITH_METHOD_GENERIC_POLY1305:BOOL=TRUE
113 endif
114
115 ifeq ($(CONFIG_FASTD_ENABLE_METHOD_GENERIC_UMAC),y)
116 CMAKE_OPTIONS += -DWITH_METHOD_GENERIC_UMAC:BOOL=TRUE
117 endif
118
119 ifeq ($(CONFIG_FASTD_ENABLE_METHOD_NULL),y)
120 CMAKE_OPTIONS += -DWITH_METHOD_NULL:BOOL=TRUE
121 endif
122
123 ifeq ($(CONFIG_FASTD_ENABLE_METHOD_XSALSA20_POLY1305),y)
124 CMAKE_OPTIONS += -DWITH_METHOD_XSALSA20_POLY1305:BOOL=TRUE
125 endif
126
127
128 ifeq ($(CONFIG_FASTD_ENABLE_CIPHER_AES128_CTR),y)
129 CMAKE_OPTIONS += -DWITH_CIPHER_AES128_CTR:BOOL=TRUE
130 endif
131
132 ifeq ($(CONFIG_FASTD_ENABLE_CIPHER_NULL),y)
133 CMAKE_OPTIONS += -DWITH_CIPHER_NULL:BOOL=TRUE
134 endif
135
136 ifeq ($(CONFIG_FASTD_ENABLE_CIPHER_SALSA20),y)
137 CMAKE_OPTIONS += -DWITH_CIPHER_SALSA20:BOOL=TRUE
138 endif
139
140 ifeq ($(CONFIG_FASTD_ENABLE_CIPHER_SALSA2012),y)
141 CMAKE_OPTIONS += -DWITH_CIPHER_SALSA2012:BOOL=TRUE
142 endif
143
144
145 ifeq ($(CONFIG_FASTD_ENABLE_MAC_GHASH),y)
146 CMAKE_OPTIONS += -DWITH_MAC_GHASH:BOOL=TRUE
147 endif
148
149 ifeq ($(CONFIG_FASTD_ENABLE_MAC_UHASH),y)
150 CMAKE_OPTIONS += -DWITH_MAC_UHASH:BOOL=TRUE
151 endif
152
153
154 ifeq ($(CONFIG_FASTD_WITH_CAPABILITIES),y)
155 CMAKE_OPTIONS += -DWITH_CAPABILITIES:BOOL=TRUE
156 endif
157
158
159 ifeq ($(CONFIG_FASTD_WITH_CMDLINE_USER),y)
160 CMAKE_OPTIONS += -DWITH_CMDLINE_USER:BOOL=TRUE
161 endif
162
163 ifeq ($(CONFIG_FASTD_WITH_CMDLINE_LOGGING),y)
164 CMAKE_OPTIONS += -DWITH_CMDLINE_LOGGING:BOOL=TRUE
165 endif
166
167 ifeq ($(CONFIG_FASTD_WITH_CMDLINE_OPERATION),y)
168 CMAKE_OPTIONS += -DWITH_CMDLINE_OPERATION:BOOL=TRUE
169 endif
170
171 ifeq ($(CONFIG_FASTD_WITH_CMDLINE_COMMANDS),y)
172 CMAKE_OPTIONS += -DWITH_CMDLINE_COMMANDS:BOOL=TRUE
173 endif
174
175 ifeq ($(CONFIG_FASTD_WITH_DYNAMIC_PEERS),y)
176 CMAKE_OPTIONS += -DWITH_DYNAMIC_PEERS:BOOL=TRUE
177 endif
178
179 ifeq ($(CONFIG_FASTD_WITH_STATUS_SOCKET),y)
180 CMAKE_OPTIONS += -DWITH_STATUS_SOCKET:BOOL=TRUE
181 endif
182
183
184 define Package/fastd/description
185  Fast and secure tunneling daemon, which is optimized on small code size and few dependencies
186 endef
187
188 define Package/fastd/conffiles
189 /etc/config/fastd
190 endef
191
192 define Package/fastd/install
193         $(INSTALL_DIR) $(1)/usr/bin
194         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/fastd $(1)/usr/bin/
195
196         $(INSTALL_DIR) $(1)/etc/init.d/
197         $(INSTALL_BIN) $(PKG_BUILD_DIR)/doc/examples/openwrt/fastd.init $(1)/etc/init.d/fastd
198         $(INSTALL_DIR) $(1)/etc/config
199         $(INSTALL_CONF) $(PKG_BUILD_DIR)/doc/examples/openwrt/fastd.config $(1)/etc/config/fastd
200         $(INSTALL_DIR) $(1)/etc/fastd
201         $(INSTALL_DIR) $(1)/lib/upgrade/keep.d
202         $(INSTALL_DATA) files/fastd.upgrade $(1)/lib/upgrade/keep.d/fastd
203 endef
204
205 $(eval $(call BuildPackage,fastd))