unetd: select unetd from unet-cli instead of depending on it
[openwrt/staging/aparcar.git] / package / network / services / unetd / Makefile
1 #
2 # Copyright (C) 2022 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:=unetd
11 PKG_SOURCE_PROTO:=git
12 PKG_SOURCE_URL=$(PROJECT_GIT)/project/unetd.git
13 PKG_SOURCE_DATE:=2022-09-01
14 PKG_SOURCE_VERSION:=d7fb9e5b065bf9eecb5bcbcf741b5f89695c5dcc
15 PKG_MIRROR_HASH:=a693c2b4b4bda5e1e44b493019e8e6e6d39c4048f417b581c801a9931e6b9b39
16
17 PKG_LICENSE:=GPL-2.0
18 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
19
20 PKG_BUILD_DEPENDS:=HAS_BPF_TOOLCHAIN:bpf-headers
21
22 PKG_BUILD_PARALLEL:=1
23
24 PKG_CONFIG_DEPENDS += CONFIG_UNETD_VXLAN_SUPPORT
25
26 include $(INCLUDE_DIR)/package.mk
27 include $(INCLUDE_DIR)/cmake.mk
28 include $(INCLUDE_DIR)/bpf.mk
29 include $(INCLUDE_DIR)/nls.mk
30
31 define Package/unetd
32 SECTION:=net
33 CATEGORY:=Network
34 TITLE:=WireGuard based VPN connection manager for OpenWrt
35 DEPENDS:=+libubox +libubus +libblobmsg-json +libnl-tiny +kmod-wireguard +UNETD_VXLAN_SUPPORT:libbpf
36 endef
37
38 define Package/unetd/config
39 config UNETD_VXLAN_SUPPORT
40 bool "VXLAN support"
41 depends on PACKAGE_unetd
42 depends on HAS_BPF_TOOLCHAIN
43 default y
44
45 endef
46
47 define Package/unet-cli
48 SECTION:=net
49 CATEGORY:=Network
50 DEPENDS:=+unetd +ucode +ucode-mod-fs
51 TITLE:=unetd administration command line utility
52 endef
53
54 TARGET_CFLAGS += \
55 -I$(STAGING_DIR)/usr/include/libnl-tiny \
56 -I$(STAGING_DIR)/usr/include
57
58 CMAKE_OPTIONS += \
59 -DLIBNL_LIBS=-lnl-tiny \
60 -DVXLAN_SUPPORT=$(if $(CONFIG_UNETD_VXLAN_SUPPORT),ON,OFF)
61
62 ifdef CONFIG_UNETD_VXLAN_SUPPORT
63 define Build/Compile
64 $(call CompileBPF,$(PKG_BUILD_DIR)/mss-bpf.c)
65 $(call Build/Compile/Default,)
66 endef
67 endif
68
69 define Package/unetd/conffiles
70 /etc/unetd
71 endef
72
73 define Package/unetd/install
74 $(INSTALL_DIR) \
75 $(1)/etc/unetd \
76 $(1)/lib/bpf \
77 $(1)/etc/init.d \
78 $(1)/lib/netifd/proto \
79 $(1)/usr/sbin \
80 $(1)/usr/lib
81 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libunet.so* $(1)/usr/lib/
82 $(INSTALL_BIN) \
83 $(PKG_INSTALL_DIR)/usr/sbin/unetd \
84 $(PKG_INSTALL_DIR)/usr/sbin/unet-tool \
85 $(1)/usr/sbin/
86 $(if $(CONFIG_UNETD_VXLAN_SUPPORT),$(INSTALL_DATA) $(PKG_BUILD_DIR)/mss-bpf.o $(1)/lib/bpf/mss.o)
87 $(INSTALL_BIN) ./files/unetd.init $(1)/etc/init.d/unetd
88 $(INSTALL_BIN) ./files/unetd.sh $(1)/lib/netifd/proto
89 endef
90
91 define Package/unet-cli/install
92 $(INSTALL_DIR) $(1)/usr/sbin
93 $(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/unet-cli $(1)/usr/sbin
94 endef
95
96 $(eval $(call BuildPackage,unetd))
97 $(eval $(call BuildPackage,unet-cli))