avrdude: change libelf1 dependency to libelf
[feed/packages.git] / net / knot / Makefile
1 #
2 # Copyright (C) 2014-2018 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
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:=knot
11 PKG_VERSION:=2.7.4
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
15 PKG_SOURCE_URL:=https://secure.nic.cz/files/knot-dns/
16 PKG_HASH:=acebe2fbcd8f67b0cb8969376114855316fe831df08321b795147502a5e9fd74
17
18 PKG_MAINTAINER:=Daniel Salzman <daniel.salzman@nic.cz>
19 PKG_LICENSE:=GPL-3.0 LGPL-2.0 0BSD BSD-3-Clause OLDAP-2.8
20
21 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
22 PKG_FIXUP:=autoreconf
23 PKG_INSTALL:=1
24
25 include $(INCLUDE_DIR)/package.mk
26
27 define Package/knot-lib/Default
28 SECTION:=libs
29 CATEGORY:=Libraries
30 TITLE:=Knot DNS
31 DEPENDS=+libpthread
32 URL:=https://www.knot-dns.cz
33 endef
34
35 define Package/knot/Default
36 SECTION:=net
37 CATEGORY:=Network
38 SUBMENU:=IP Addresses and Names
39 TITLE:=Knot DNS
40 DEPENDS=+libatomic
41 URL:=https://www.knot-dns.cz
42 endef
43
44 define Package/knot-libs
45 $(call Package/knot-lib/Default)
46 TITLE+= common DNS and DNSSEC libraries
47 DEPENDS+=+libgnutls
48 endef
49
50 define Package/knot-libzscanner
51 $(call Package/knot-lib/Default)
52 TITLE+= zone parser library
53 endef
54
55 define Package/knot
56 $(call Package/knot/Default)
57 TITLE+= server with control utility
58 DEPENDS+=+libedit +liburcu +knot-libs +knot-libzscanner
59 EXTRA_DEPENDS:=knot-libs (=$(PKG_VERSION)-$(PKG_RELEASE)), \
60 knot-libzscanner (=$(PKG_VERSION)-$(PKG_RELEASE))
61 USERID:=knot=5353:knot=5353
62 endef
63
64 define Package/knot-dig
65 $(call Package/knot/Default)
66 TITLE+= advanced DNS lookup utility
67 DEPENDS+=+libedit +knot-libs
68 EXTRA_DEPENDS:=knot-libs (=$(PKG_VERSION)-$(PKG_RELEASE))
69 endef
70
71 define Package/knot-host
72 $(call Package/knot/Default)
73 TITLE+= simple DNS lookup utility
74 DEPENDS+=+libedit +knot-libs
75 EXTRA_DEPENDS:=knot-libs (=$(PKG_VERSION)-$(PKG_RELEASE))
76 endef
77
78 define Package/knot-nsupdate
79 $(call Package/knot/Default)
80 TITLE+= dynamic DNS update utility
81 DEPENDS+=+libedit +knot-libs +knot-libzscanner
82 EXTRA_DEPENDS:=knot-libs (=$(PKG_VERSION)-$(PKG_RELEASE)), \
83 knot-libzscanner (=$(PKG_VERSION)-$(PKG_RELEASE))
84 endef
85
86 define Package/knot-zonecheck
87 $(call Package/knot/Default)
88 TITLE+= zonefile check utility
89 DEPENDS+=+libedit +liburcu +knot-libs +knot-libzscanner
90 EXTRA_DEPENDS:=knot-libs (=$(PKG_VERSION)-$(PKG_RELEASE)), \
91 knot-libzscanner (=$(PKG_VERSION)-$(PKG_RELEASE))
92 endef
93
94 define Package/knot-keymgr
95 $(call Package/knot/Default)
96 TITLE+= DNSSEC key management utility
97 DEPENDS+=+libedit +liburcu +knot-libs +knot-libzscanner
98 EXTRA_DEPENDS:=knot-libs (=$(PKG_VERSION)-$(PKG_RELEASE)), \
99 knot-libzscanner (=$(PKG_VERSION)-$(PKG_RELEASE))
100 endef
101
102 define Package/knot-tests
103 $(call Package/knot/Default)
104 TITLE+= tests
105 DEPENDS+=+libedit +liburcu +knot-libs +knot-libzscanner
106 EXTRA_DEPENDS:=knot-libs (=$(PKG_VERSION)-$(PKG_RELEASE)), \
107 knot-libzscanner (=$(PKG_VERSION)-$(PKG_RELEASE))
108 endef
109
110 define Package/knot-libs/description
111 Knot DNS common DNS and DNSSEC libraries.
112 endef
113
114 define Package/knot-libzscanner/description
115 Knot DNS zone parser library.
116 endef
117
118 define Package/knot/description
119 High-performance authoritative-only DNS server.
120 endef
121
122 define Package/knot-dig/description
123 Knot DNS advanced DNS lookup utility.
124 endef
125
126 define Package/knot-host/description
127 Knot DNS simple DNS lookup utility.
128 endef
129
130 define Package/knot-nsupdate/description
131 Knot DNS dynamic DNS update utility.
132 endef
133
134 define Package/knot-zonecheck/description
135 Knot DNS zonefile check utility.
136 endef
137
138 define Package/knot-keymgr/description
139 Knot DNS DNSSEC key management utility.
140 endef
141
142 define Package/knot-tests/description
143 Unit tests for the Knot DNS server and libraries.
144 Usage: /usr/share/knot/runtests.sh
145 endef
146
147 CONFIGURE_ARGS += \
148 --enable-recvmmsg=no \
149 --disable-fastparser \
150 --without-libidn \
151 --with-rundir=/var/run/knot \
152 --with-storage=/var/lib/knot \
153 --with-configdir=/etc/knot \
154 --with-conf-mapsize=20
155
156 TARGET_CFLAGS += -DPSELECT_COMPAT -DNDEBUG
157
158 define Package/knot/conffiles
159 /etc/knot/knot.conf
160 endef
161
162 define Build/Compile
163 $(MAKE) -C $(PKG_BUILD_DIR)
164 $(MAKE) -C $(PKG_BUILD_DIR)/tests check-compile
165 endef
166
167 define Build/InstallDev
168 $(INSTALL_DIR) $(1)/usr/lib
169 $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.{a,so*} $(1)/usr/lib/
170
171 $(INSTALL_DIR) $(1)/usr/include/libknot
172 $(CP) $(PKG_INSTALL_DIR)/usr/include/libknot/* $(1)/usr/include/libknot/
173
174 $(INSTALL_DIR) $(1)/usr/include/libdnssec
175 $(CP) $(PKG_INSTALL_DIR)/usr/include/libdnssec/* $(1)/usr/include/libdnssec/
176
177 $(INSTALL_DIR) $(1)/usr/include/libzscanner
178 $(CP) $(PKG_INSTALL_DIR)/usr/include/libzscanner/* $(1)/usr/include/libzscanner/
179
180 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
181 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc $(1)/usr/lib/pkgconfig/
182 endef
183
184 define Package/knot-libs/install
185 $(INSTALL_DIR) $(1)/usr/lib
186 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libdnssec.so.* $(1)/usr/lib/
187 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libknot.so.* $(1)/usr/lib/
188 endef
189
190 define Package/knot-libzscanner/install
191 $(INSTALL_DIR) $(1)/usr/lib
192 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libzscanner.so.* $(1)/usr/lib/
193 endef
194
195 define Package/knot/install
196 $(INSTALL_DIR) $(1)/usr/bin
197 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/knotc $(1)/usr/bin/
198 $(INSTALL_DIR) $(1)/usr/sbin
199 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/knotd $(1)/usr/sbin/
200
201 $(INSTALL_DIR) $(1)/etc/knot
202 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/knot/knot.sample.conf $(1)/etc/knot/knot.conf
203
204 $(INSTALL_DIR) $(1)/etc/init.d
205 $(INSTALL_BIN) ./files/knotd.init $(1)/etc/init.d/knotd
206 endef
207
208 define Package/knot-dig/install
209 $(INSTALL_DIR) $(1)/usr/bin
210 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/kdig $(1)/usr/bin/
211 endef
212
213 define Package/knot-host/install
214 $(INSTALL_DIR) $(1)/usr/bin
215 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/khost $(1)/usr/bin/
216 endef
217
218 define Package/knot-nsupdate/install
219 $(INSTALL_DIR) $(1)/usr/bin
220 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/knsupdate $(1)/usr/bin/
221 endef
222
223 define Package/knot-zonecheck/install
224 $(INSTALL_DIR) $(1)/usr/bin
225 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/kzonecheck $(1)/usr/bin/
226 endef
227
228 define Package/knot-keymgr/install
229 $(INSTALL_DIR) $(1)/usr/bin
230 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/keymgr $(1)/usr/bin/
231 endef
232
233 define Package/knot-tests/install
234 $(INSTALL_DIR) $(1)/usr/share/knot
235 $(INSTALL_BIN) ./files/runtests.sh $(1)/usr/share/knot/
236
237 $(INSTALL_DIR) $(1)/usr/share/knot/tap
238 $(INSTALL_BIN) $(PKG_BUILD_DIR)/tests/tap/runtests $(1)/usr/share/knot/tap/
239 $(INSTALL_BIN) $(PKG_BUILD_DIR)/tests/tap/libtap.sh $(1)/usr/share/knot/tap/
240
241 $(INSTALL_DIR) $(1)/usr/share/knot/tests
242
243 $(INSTALL_BIN) $(PKG_BUILD_DIR)/tests/libzscanner/.libs/zscanner-tool $(1)/usr/share/knot/tests/
244 $(INSTALL_BIN) $(PKG_BUILD_DIR)/tests/libzscanner/test_zscanner $(1)/usr/share/knot/tests/
245 $(INSTALL_DATA) $(PKG_BUILD_DIR)/tests/libzscanner/TESTS $(1)/usr/share/knot/tests/
246 cp -a $(PKG_BUILD_DIR)/tests/libzscanner/data $(1)/usr/share/knot/tests/
247
248 for module in contrib knot libdnssec libknot modules utils; do \
249 find $(PKG_BUILD_DIR)/tests/$$$${module}/.libs -maxdepth 1 -executable -type f | \
250 xargs -I{} basename {} | \
251 xargs -I{} $(INSTALL_BIN) -T $(PKG_BUILD_DIR)/tests/$$$${module}/.libs/{} \
252 $(1)/usr/share/knot/tests/$$$${module}_{}; \
253 done
254 endef
255
256 $(eval $(call BuildPackage,knot-libs))
257 $(eval $(call BuildPackage,knot-libzscanner))
258 $(eval $(call BuildPackage,knot))
259 $(eval $(call BuildPackage,knot-dig))
260 $(eval $(call BuildPackage,knot-host))
261 $(eval $(call BuildPackage,knot-nsupdate))
262 $(eval $(call BuildPackage,knot-zonecheck))
263 $(eval $(call BuildPackage,knot-keymgr))
264 $(eval $(call BuildPackage,knot-tests))