Makefile 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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:=2023-05-31
  12. PKG_SOURCE_VERSION:=7d3986b7a5a20b9af0dacd053b2657210385e7bb
  13. PKG_MIRROR_HASH:=d3db5c71fdeae96782deadb413adf902009a189b7d5f21875d8f4315389849c3
  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 +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. default y
  35. endef
  36. define Package/unet-dht
  37. SECTION:=net
  38. CATEGORY:=Network
  39. DEPENDS:=unetd
  40. TITLE:=unetd DHT discovery support
  41. endef
  42. define Package/unet-cli
  43. SECTION:=net
  44. CATEGORY:=Network
  45. DEPENDS:=+unetd +ucode +ucode-mod-fs
  46. TITLE:=unetd administration command line utility
  47. endef
  48. TARGET_CFLAGS += \
  49. -I$(STAGING_DIR)/usr/include/libnl-tiny \
  50. -I$(STAGING_DIR)/usr/include
  51. CMAKE_OPTIONS += \
  52. -DLIBNL_LIBS=-lnl-tiny \
  53. -DVXLAN_SUPPORT=$(if $(CONFIG_UNETD_VXLAN_SUPPORT),ON,OFF)
  54. ifdef CONFIG_UNETD_VXLAN_SUPPORT
  55. define Build/Compile
  56. $(call CompileBPF,$(PKG_BUILD_DIR)/mss-bpf.c)
  57. $(call Build/Compile/Default,)
  58. endef
  59. endif
  60. define Package/unetd/conffiles
  61. /etc/unetd
  62. endef
  63. define Package/unetd/install
  64. $(INSTALL_DIR) \
  65. $(1)/etc/unetd \
  66. $(1)/lib/bpf \
  67. $(1)/etc/init.d \
  68. $(1)/lib/netifd/proto \
  69. $(1)/usr/sbin \
  70. $(1)/usr/lib
  71. $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libunet.so* $(1)/usr/lib/
  72. $(INSTALL_BIN) \
  73. $(PKG_INSTALL_DIR)/usr/sbin/unetd \
  74. $(PKG_INSTALL_DIR)/usr/sbin/unet-tool \
  75. $(1)/usr/sbin/
  76. $(if $(CONFIG_UNETD_VXLAN_SUPPORT),$(INSTALL_DATA) $(PKG_BUILD_DIR)/mss-bpf.o $(1)/lib/bpf/mss.o)
  77. $(INSTALL_BIN) ./files/unetd.init $(1)/etc/init.d/unetd
  78. $(INSTALL_BIN) ./files/unetd.sh $(1)/lib/netifd/proto
  79. endef
  80. define Package/unet-dht/install
  81. $(INSTALL_DIR) \
  82. $(1)/etc/init.d \
  83. $(1)/usr/sbin
  84. $(INSTALL_BIN) $(PKG_BUILD_DIR)/unet-dht $(1)/usr/sbin
  85. $(INSTALL_BIN) ./files/unet-dht.init $(1)/etc/init.d/unet-dht
  86. endef
  87. define Package/unet-cli/install
  88. $(INSTALL_DIR) $(1)/usr/sbin
  89. $(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/unet-cli $(1)/usr/sbin
  90. endef
  91. $(eval $(call BuildPackage,unetd))
  92. $(eval $(call BuildPackage,unet-dht))
  93. $(eval $(call BuildPackage,unet-cli))