Makefile 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. include $(TOPDIR)/rules.mk
  2. PKG_NAME:=bmx7
  3. PKG_VERSION:=2024.06.11
  4. PKG_RELEASE:=1
  5. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
  6. PKG_SOURCE_PROTO:=git
  7. PKG_SOURCE_URL:=https://github.com/bmx-routing/bmx7.git
  8. PKG_SOURCE_VERSION:=9020896f89006bc5d3487222eefc7ddea9e8b2bd
  9. PKG_MIRROR_HASH:=a085904a48544d71ec815fa61c329925d89aca72a051941551290d292a6150d7
  10. PKG_MAINTAINER:=Axel Neumann <axel@notmail.org>
  11. PKG_LICENSE:=GPL-2.0-or-later
  12. PKG_LICENSE_FILES:=LICENSE
  13. PKG_BUILD_PARALLEL:=1
  14. include $(INCLUDE_DIR)/package.mk
  15. TARGET_CFLAGS += $(FPIC)
  16. MAKE_ARGS += EXTRA_CFLAGS="$(TARGET_CFLAGS) \
  17. -I. \
  18. -I$(STAGING_DIR)/usr/include \
  19. -DCORE_LIMIT=20000 \
  20. -DTRAFFIC_DUMP \
  21. -DNO_TRACE_FUNCTION_CALLS \
  22. -DBMX7_LIB_IWINFO" \
  23. EXTRA_LDFLAGS="$(TARGET_LDFLAGS) \
  24. -L$(STAGING_DIR)/usr/lib -liwinfo" \
  25. GIT_REV="$(PKG_REV)" \
  26. CC="$(TARGET_CC)" \
  27. INSTALL_DIR="$(PKG_INSTALL_DIR)" \
  28. build_all
  29. MAKE_PATH:=src
  30. define Package/bmx7/Default
  31. SECTION:=net
  32. CATEGORY:=Network
  33. SUBMENU:=Routing and Redirection
  34. TITLE:=BMX7 layer 3 routing daemon
  35. URL:=https://github.com/bmx-routing/bmx7
  36. DEPENDS:=+zlib +libmbedtls +libiwinfo
  37. endef
  38. define Package/bmx7/description
  39. BMX7 routing daemon supporting securely-entrusted IPv6 (and IPv4in6) routing
  40. endef
  41. define Package/bmx7
  42. $(call Package/bmx7/Default)
  43. MENU:=1
  44. endef
  45. define Package/bmx7-uci-config
  46. $(call Package/bmx7/Default)
  47. DEPENDS:=bmx7 +libuci
  48. TITLE:=configuration plugin based on uci (recommended!)
  49. endef
  50. define Package/bmx7-iwinfo
  51. $(call Package/bmx7/Default)
  52. DEPENDS:=bmx7 +libiwinfo
  53. TITLE:=link characteristics plugin via libiwinfo (recommended!)
  54. endef
  55. define Package/bmx7-topology
  56. $(call Package/bmx7/Default)
  57. DEPENDS:=bmx7
  58. TITLE:=topology plugin
  59. endef
  60. define Package/bmx7-json
  61. $(call Package/bmx7/Default)
  62. DEPENDS:=bmx7 +libjson-c
  63. TITLE:=json plugin based on json-c
  64. endef
  65. define Package/bmx7-sms
  66. $(call Package/bmx7/Default)
  67. DEPENDS:=bmx7
  68. TITLE:=sms plugin
  69. endef
  70. define Package/bmx7-tun
  71. $(call Package/bmx7/Default)
  72. DEPENDS:=bmx7 +kmod-ip6-tunnel +kmod-iptunnel6 +kmod-tun
  73. TITLE:=ipip-based tunnel plugin (recommended!)
  74. endef
  75. define Package/bmx7-table
  76. $(call Package/bmx7/Default)
  77. DEPENDS:=bmx7 +bmx7-tun
  78. TITLE:=plugin to announce routes from tables via tunnels
  79. endef
  80. define Package/bmx7/install
  81. $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
  82. $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(MAKE_PATH)/bmx7 $(1)/usr/sbin/bmx7
  83. endef
  84. define Build/Compile
  85. $(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) $(MAKE_ARGS)
  86. endef
  87. define Package/bmx7-uci-config/conffiles
  88. /etc/config/bmx7
  89. /etc/bmx7
  90. endef
  91. define Package/bmx7-uci-config/install
  92. $(INSTALL_DIR) $(1)/usr/lib $(1)/etc/config $(1)/etc/init.d
  93. $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(MAKE_PATH)/lib/bmx7_uci_config/bmx7_config.so \
  94. $(1)/usr/lib/bmx7_config.so
  95. $(INSTALL_BIN) ./files/etc/init.d/bmx7 $(1)/etc/init.d/bmx7
  96. $(INSTALL_DATA) ./files/etc/config/bmx7 $(1)/etc/config/bmx7
  97. endef
  98. define Package/bmx7-iwinfo/install
  99. $(INSTALL_DIR) $(1)/usr/lib
  100. $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(MAKE_PATH)/lib/bmx7_iwinfo/bmx7_iwinfo.so \
  101. $(1)/usr/lib/bmx7_iwinfo.so
  102. endef
  103. define Package/bmx7-topology/install
  104. $(INSTALL_DIR) $(1)/usr/lib
  105. $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(MAKE_PATH)/lib/bmx7_topology/bmx7_topology.so \
  106. $(1)/usr/lib/bmx7_topology.so
  107. endef
  108. define Package/bmx7-json/install
  109. $(INSTALL_DIR) $(1)/usr/lib
  110. $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(MAKE_PATH)/lib/bmx7_json/bmx7_json.so \
  111. $(1)/usr/lib/bmx7_json.so
  112. endef
  113. define Package/bmx7-sms/install
  114. $(INSTALL_DIR) $(1)/usr/lib
  115. $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(MAKE_PATH)/lib/bmx7_sms/bmx7_sms.so \
  116. $(1)/usr/lib/bmx7_sms.so
  117. endef
  118. define Package/bmx7-tun/install
  119. $(INSTALL_DIR) $(1)/usr/lib
  120. $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(MAKE_PATH)/lib/bmx7_tun/bmx7_tun.so \
  121. $(1)/usr/lib/bmx7_tun.so
  122. endef
  123. define Package/bmx7-table/install
  124. $(INSTALL_DIR) $(1)/usr/lib
  125. $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(MAKE_PATH)/lib/bmx7_table/bmx7_table.so \
  126. $(1)/usr/lib/bmx7_table.so
  127. endef
  128. $(eval $(call BuildPackage,bmx7))
  129. $(eval $(call BuildPackage,bmx7-uci-config))
  130. $(eval $(call BuildPackage,bmx7-iwinfo))
  131. $(eval $(call BuildPackage,bmx7-topology))
  132. $(eval $(call BuildPackage,bmx7-json))
  133. $(eval $(call BuildPackage,bmx7-sms))
  134. $(eval $(call BuildPackage,bmx7-table))
  135. $(eval $(call BuildPackage,bmx7-tun))