2 # Copyright (C) 2012-2015 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
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_HASH
:=714ff09d7bd75f79783f744f6f8c5af2fe456c8cf876feaa704c205a73e043c9
19 PKG_LICENSE
:=BSD-2-Clause
20 PKG_LICENSE_FILES
:=COPYRIGHT
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
46 PKG_BUILD_DEPENDS
:=nacl
48 include $(INCLUDE_DIR
)/package.mk
49 include $(INCLUDE_DIR
)/cmake.mk
54 DEPENDS
:=+kmod-tun
+librt
+libpthread
+libuecc
+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
60 define Package
/fastd
/config
61 source
"$(SOURCE)/Config.in"
64 TARGET_CFLAGS
+= -ffunction-sections
-fdata-sections
65 TARGET_LDFLAGS
+= -Wl
,--gc-sections
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
95 ifeq ($(CONFIG_FASTD_ENABLE_METHOD_CIPHER_TEST
),y
)
96 CMAKE_OPTIONS
+= -DWITH_METHOD_CIPHER_TEST
:BOOL
=TRUE
99 ifeq ($(CONFIG_FASTD_ENABLE_METHOD_COMPOSED_GMAC
),y
)
100 CMAKE_OPTIONS
+= -DWITH_METHOD_COMPOSED_GMAC
:BOOL
=TRUE
103 ifeq ($(CONFIG_FASTD_ENABLE_METHOD_COMPOSED_UMAC
),y
)
104 CMAKE_OPTIONS
+= -DWITH_METHOD_COMPOSED_UMAC
:BOOL
=TRUE
107 ifeq ($(CONFIG_FASTD_ENABLE_METHOD_GENERIC_GMAC
),y
)
108 CMAKE_OPTIONS
+= -DWITH_METHOD_GENERIC_GMAC
:BOOL
=TRUE
111 ifeq ($(CONFIG_FASTD_ENABLE_METHOD_GENERIC_POLY1305
),y
)
112 CMAKE_OPTIONS
+= -DWITH_METHOD_GENERIC_POLY1305
:BOOL
=TRUE
115 ifeq ($(CONFIG_FASTD_ENABLE_METHOD_GENERIC_UMAC
),y
)
116 CMAKE_OPTIONS
+= -DWITH_METHOD_GENERIC_UMAC
:BOOL
=TRUE
119 ifeq ($(CONFIG_FASTD_ENABLE_METHOD_NULL
),y
)
120 CMAKE_OPTIONS
+= -DWITH_METHOD_NULL
:BOOL
=TRUE
123 ifeq ($(CONFIG_FASTD_ENABLE_METHOD_XSALSA20_POLY1305
),y
)
124 CMAKE_OPTIONS
+= -DWITH_METHOD_XSALSA20_POLY1305
:BOOL
=TRUE
128 ifeq ($(CONFIG_FASTD_ENABLE_CIPHER_AES128_CTR
),y
)
129 CMAKE_OPTIONS
+= -DWITH_CIPHER_AES128_CTR
:BOOL
=TRUE
132 ifeq ($(CONFIG_FASTD_ENABLE_CIPHER_NULL
),y
)
133 CMAKE_OPTIONS
+= -DWITH_CIPHER_NULL
:BOOL
=TRUE
136 ifeq ($(CONFIG_FASTD_ENABLE_CIPHER_SALSA20
),y
)
137 CMAKE_OPTIONS
+= -DWITH_CIPHER_SALSA20
:BOOL
=TRUE
140 ifeq ($(CONFIG_FASTD_ENABLE_CIPHER_SALSA2012
),y
)
141 CMAKE_OPTIONS
+= -DWITH_CIPHER_SALSA2012
:BOOL
=TRUE
145 ifeq ($(CONFIG_FASTD_ENABLE_MAC_GHASH
),y
)
146 CMAKE_OPTIONS
+= -DWITH_MAC_GHASH
:BOOL
=TRUE
149 ifeq ($(CONFIG_FASTD_ENABLE_MAC_UHASH
),y
)
150 CMAKE_OPTIONS
+= -DWITH_MAC_UHASH
:BOOL
=TRUE
154 ifeq ($(CONFIG_FASTD_WITH_CAPABILITIES
),y
)
155 CMAKE_OPTIONS
+= -DWITH_CAPABILITIES
:BOOL
=TRUE
159 ifeq ($(CONFIG_FASTD_WITH_CMDLINE_USER
),y
)
160 CMAKE_OPTIONS
+= -DWITH_CMDLINE_USER
:BOOL
=TRUE
163 ifeq ($(CONFIG_FASTD_WITH_CMDLINE_LOGGING
),y
)
164 CMAKE_OPTIONS
+= -DWITH_CMDLINE_LOGGING
:BOOL
=TRUE
167 ifeq ($(CONFIG_FASTD_WITH_CMDLINE_OPERATION
),y
)
168 CMAKE_OPTIONS
+= -DWITH_CMDLINE_OPERATION
:BOOL
=TRUE
171 ifeq ($(CONFIG_FASTD_WITH_CMDLINE_COMMANDS
),y
)
172 CMAKE_OPTIONS
+= -DWITH_CMDLINE_COMMANDS
:BOOL
=TRUE
175 ifeq ($(CONFIG_FASTD_WITH_DYNAMIC_PEERS
),y
)
176 CMAKE_OPTIONS
+= -DWITH_DYNAMIC_PEERS
:BOOL
=TRUE
179 ifeq ($(CONFIG_FASTD_WITH_STATUS_SOCKET
),y
)
180 CMAKE_OPTIONS
+= -DWITH_STATUS_SOCKET
:BOOL
=TRUE
184 define Package
/fastd
/description
185 Fast and secure tunneling daemon
, which is optimized on small code size and few dependencies
188 define Package
/fastd
/conffiles
192 define Package
/fastd
/install
193 $(INSTALL_DIR
) $(1)/usr
/bin
194 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/bin
/fastd
$(1)/usr
/bin
/
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
205 $(eval
$(call BuildPackage
,fastd
))