Makefile 2.9 KB

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