Makefile 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. #
  2. # Copyright (C) 2008-2015 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:=lldpd
  9. PKG_VERSION:=1.0.20
  10. PKG_RELEASE:=1
  11. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
  12. PKG_SOURCE_URL:=https://github.com/lldpd/lldpd/releases/download/$(PKG_VERSION)/
  13. PKG_HASH:=c851ce102444b932b691f0d00142520333030822709fc4566ef20c651ae1714f
  14. PKG_MAINTAINER:=Stijn Tintel <[email protected]>
  15. PKG_LICENSE:=ISC
  16. PKG_CPE_ID:=cpe:/a:lldpd_project:lldpd
  17. PKG_FIXUP:=autoreconf
  18. PKG_BUILD_PARALLEL:=1
  19. PKG_BUILD_FLAGS:=lto
  20. PKG_INSTALL:=1
  21. include $(INCLUDE_DIR)/package.mk
  22. define Package/lldpd
  23. SECTION:=net
  24. CATEGORY:=Network
  25. SUBMENU:=Routing and Redirection
  26. TITLE:=Link Layer Discovery Protocol daemon
  27. URL:=https://lldpd.github.io/
  28. DEPENDS:=+libcap +libevent2 +USE_GLIBC:libbsd +LLDPD_WITH_JSON:libjson-c +LLDPD_WITH_SNMP:libnetsnmp
  29. USERID:=lldp=121:lldp=129
  30. MENU:=1
  31. endef
  32. define Package/lldpd/config
  33. source "$(SOURCE)/Config.in"
  34. endef
  35. define Package/lldpd/description
  36. LLDP (Link Layer Discovery Protocol) is an industry standard protocol designed
  37. to supplant proprietary Link-Layer protocols such as
  38. Extreme's EDP (Extreme Discovery Protocol) and
  39. CDP (Cisco Discovery Protocol).
  40. The goal of LLDP is to provide an inter-vendor compatible mechanism to deliver
  41. Link-Layer notifications to adjacent network devices.
  42. endef
  43. define Build/InstallDev
  44. $(INSTALL_DIR) $(1)/usr/lib
  45. $(CP) $(PKG_INSTALL_DIR)/usr/lib/liblldpctl.so* $(1)/usr/lib/
  46. $(INSTALL_DIR) $(1)/usr/include
  47. $(CP) $(PKG_INSTALL_DIR)/usr/include/lldpctl.h $(1)/usr/include/lldpctl.h
  48. $(CP) $(PKG_INSTALL_DIR)/usr/include/lldp-const.h $(1)/usr/include/lldp-const.h
  49. endef
  50. define Package/lldpd/install
  51. $(INSTALL_DIR) $(1)/etc/init.d
  52. $(INSTALL_DIR) $(1)/etc/lldpd.d
  53. $(INSTALL_DIR) $(1)/etc/config
  54. $(INSTALL_DIR) $(1)/usr/lib $(1)/usr/sbin
  55. $(CP) $(PKG_INSTALL_DIR)/usr/sbin/lldp{cli,ctl,d} $(1)/usr/sbin/
  56. $(CP) $(PKG_INSTALL_DIR)/usr/lib/liblldpctl.so* $(1)/usr/lib/
  57. $(INSTALL_BIN) ./files/lldpd.init $(1)/etc/init.d/lldpd
  58. $(INSTALL_CONF) ./files/lldpd.config $(1)/etc/config/lldpd
  59. ifneq ($(CONFIG_LLDPD_WITH_CDP),y)
  60. sed -i -e 's/CONFIG_LLDPD_WITH_CDP=y/CONFIG_LLDPD_WITH_CDP=n/g' $(1)/etc/init.d/lldpd
  61. sed -i -e '/cdp/d' $(1)/etc/config/lldpd
  62. endif
  63. ifneq ($(CONFIG_LLDPD_WITH_FDP),y)
  64. sed -i -e 's/CONFIG_LLDPD_WITH_FDP=y/CONFIG_LLDPD_WITH_FDP=n/g' $(1)/etc/init.d/lldpd
  65. sed -i -e '/fdp/d' $(1)/etc/config/lldpd
  66. endif
  67. ifneq ($(CONFIG_LLDPD_WITH_EDP),y)
  68. sed -i -e 's/CONFIG_LLDPD_WITH_EDP=y/CONFIG_LLDPD_WITH_EDP=n/g' $(1)/etc/init.d/lldpd
  69. sed -i -e '/edp/d' $(1)/etc/config/lldpd
  70. endif
  71. ifneq ($(CONFIG_LLDPD_WITH_SONMP),y)
  72. sed -i -e 's/CONFIG_LLDPD_WITH_SONMP=y/CONFIG_LLDPD_WITH_SONMP=n/g' $(1)/etc/init.d/lldpd
  73. sed -i -e '/sonmp/d' $(1)/etc/config/lldpd
  74. endif
  75. ifneq ($(CONFIG_LLDPD_WITH_SNMP),y)
  76. sed -i -e 's/CONFIG_LLDPD_WITH_SNMP=y/CONFIG_LLDPD_WITH_SNMP=n/g' $(1)/etc/init.d/lldpd
  77. sed -i -e '/agentxsocket/d' $(1)/etc/config/lldpd
  78. endif
  79. ifneq ($(CONFIG_LLDPD_WITH_LLDPMED),y)
  80. sed -i -e 's/CONFIG_LLDPD_WITH_LLDPMED=y/CONFIG_LLDPD_WITH_LLDPMED=n/g' $(1)/etc/init.d/lldpd
  81. sed -i -e '/agentxsocket/d' $(1)/etc/config/lldpd
  82. sed -i -e '/lldp_class/d' $(1)/etc/config/lldpd
  83. sed -i -e '/lldp_location/d' $(1)/etc/config/lldpd
  84. endif
  85. endef
  86. define Package/lldpd/conffiles
  87. /etc/config/lldpd
  88. endef
  89. CONFIGURE_ARGS += \
  90. $(if $(CONFIG_LLDPD_WITH_PRIVSEP), \
  91. --with-privsep-user=lldp \
  92. --with-privsep-group=lldp \
  93. --with-privsep-chroot=/var/run/lldp \
  94. ,--disable-privsep) \
  95. --with-readline=no \
  96. --with-embedded-libevent=no \
  97. --disable-hardening \
  98. --without-xml \
  99. --disable-doxygen-doc \
  100. --sysconfdir=/tmp \
  101. $(if $(CONFIG_LLDPD_WITH_CDP),,--disable-cdp) \
  102. $(if $(CONFIG_LLDPD_WITH_FDP),,--disable-fdp) \
  103. $(if $(CONFIG_LLDPD_WITH_EDP),,--disable-edp) \
  104. $(if $(CONFIG_LLDPD_WITH_LLDPMED),,--disable-lldpmed) \
  105. $(if $(CONFIG_LLDPD_WITH_DOT1),,--disable-dot1) \
  106. $(if $(CONFIG_LLDPD_WITH_DOT3),,--disable-dot3) \
  107. $(if $(CONFIG_LLDPD_WITH_CUSTOM),,--disable-custom) \
  108. $(if $(CONFIG_LLDPD_WITH_SONMP),,--disable-sonmp) \
  109. $(if $(CONFIG_LLDPD_WITH_JSON),--enable-json0,) \
  110. $(if $(CONFIG_LLDPD_WITH_SNMP),--with-snmp,) \
  111. $(if $(CONFIG_USE_GLIBC),,--without-libbsd)
  112. TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
  113. $(eval $(call BuildPackage,lldpd))