quagga.mk 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. ################################################################################
  2. #
  3. # quagga
  4. #
  5. ################################################################################
  6. QUAGGA_VERSION = 1.2.4
  7. QUAGGA_SITE = http://download.savannah.gnu.org/releases/quagga
  8. QUAGGA_INSTALL_STAGING = YES
  9. QUAGGA_DEPENDENCIES = host-gawk host-pkgconf
  10. QUAGGA_LICENSE = GPL-2.0+
  11. QUAGGA_LICENSE_FILES = COPYING
  12. QUAGGA_CPE_ID_VENDOR = quagga
  13. QUAGGA_SELINUX_MODULES = zebra
  14. # We need to override the sysconf and localstate directories so that
  15. # quagga can create files as the quagga user without extra
  16. # intervention
  17. QUAGGA_CONF_OPTS = \
  18. --program-transform-name='' \
  19. --sysconfdir=/etc/quagga \
  20. --localstatedir=/var/run/quagga
  21. # quagga has its own internal copy of getopt_long. To avoid conflicts with libc's
  22. # getopt, we need to make sure that the getopt function itself is also built.
  23. QUAGGA_CONF_ENV = \
  24. CFLAGS="$(TARGET_CFLAGS) -DREALLY_NEED_PLAIN_GETOPT"
  25. ifeq ($(BR2_PACKAGE_LIBCAP),y)
  26. QUAGGA_CONF_OPTS += --enable-capabilities
  27. QUAGGA_DEPENDENCIES += libcap
  28. else
  29. QUAGGA_CONF_OPTS += --disable-capabilities
  30. endif
  31. ifeq ($(BR2_PACKAGE_LIBXCRYPT),y)
  32. QUAGGA_DEPENDENCIES += libxcrypt
  33. endif
  34. ifeq ($(BR2_PACKAGE_PROTOBUF_C),y)
  35. QUAGGA_CONF_OPTS += --enable-protobuf
  36. QUAGGA_DEPENDENCIES += protobuf-c
  37. else
  38. QUAGGA_CONF_OPTS += --disable-protobuf
  39. endif
  40. QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_ZEBRA),--enable-zebra,--disable-zebra)
  41. QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_BGPD),--enable-bgpd,--disable-bgpd)
  42. QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_RIPD),--enable-ripd,--disable-ripd)
  43. QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_RIPNGD),--enable-ripngd,--disable-ripngd)
  44. QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_OSPFD),--enable-ospfd,--disable-ospfd --disable-ospfapi)
  45. QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_OSPF6D),--enable-ospf6d,--disable-ospf6d)
  46. QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_PIMD),--enable-pimd,--disable-pimd)
  47. QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_WATCHQUAGGA),--enable-watchquagga,--disable-watchquagga)
  48. QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_ISISD),--enable-isisd,--disable-isisd)
  49. QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_BGP_ANNOUNCE),--enable-bgp-announce,--disable-bgp-announce)
  50. QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_TCP_ZEBRA),--enable-tcp-zebra,--disable-tcp-zebra)
  51. define QUAGGA_USERS
  52. quagga -1 quagga -1 * - - - Quagga priv drop user
  53. endef
  54. # Set the permissions of /etc/quagga such that quagga (through vtysh)
  55. # can save the configuration - set the folder recursively as the files
  56. # need to be 600, and then set the folder (non-recursively) to 755 so
  57. # it can used. Quagga also needs to write to the folder as it moves
  58. # and creates, rather than overwriting.
  59. define QUAGGA_PERMISSIONS
  60. /etc/quagga r 600 quagga quagga - - - - -
  61. /etc/quagga d 755 quagga quagga - - - - -
  62. endef
  63. # In order for the QUAGGA_PERMISSIONS variable above to work,
  64. # /etc/quagga has to exist. However, this package without any
  65. # sub-option enabled will not create /etc/quagga, so let's create it
  66. # unconditionally in a post-install hook, in case it hasn't been
  67. # already created by the quagga installation.
  68. define QUAGGA_CREATE_ETC_QUAGGA
  69. mkdir -p $(TARGET_DIR)/etc/quagga
  70. endef
  71. QUAGGA_POST_INSTALL_TARGET_HOOKS += QUAGGA_CREATE_ETC_QUAGGA
  72. ifeq ($(BR2_PACKAGE_QUAGGA_NHRPD),y)
  73. QUAGGA_CONF_OPTS += --enable-nhrpd
  74. QUAGGA_DEPENDENCIES += c-ares
  75. else
  76. QUAGGA_CONF_OPTS += --disable-nhrpd
  77. endif
  78. ifeq ($(BR2_PACKAGE_QUAGGA_SNMP),y)
  79. QUAGGA_CONF_ENV += ac_cv_path_NETSNMP_CONFIG=$(STAGING_DIR)/usr/bin/net-snmp-config
  80. QUAGGA_CONF_OPTS += --enable-snmp=agentx
  81. QUAGGA_DEPENDENCIES += netsnmp
  82. endif
  83. ifeq ($(BR2_PACKAGE_QUAGGA_VTYSH),y)
  84. QUAGGA_CONF_OPTS += --enable-vtysh
  85. QUAGGA_DEPENDENCIES += readline
  86. else
  87. QUAGGA_CONF_OPTS += --disable-vtysh
  88. endif
  89. ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),)
  90. QUAGGA_CONF_OPTS += --disable-pie
  91. endif
  92. define QUAGGA_INSTALL_INIT_SYSTEMD
  93. $(INSTALL) -D -m 644 package/quagga/quagga_tmpfiles.conf \
  94. $(TARGET_DIR)/usr/lib/tmpfiles.d/quagga.conf
  95. $(INSTALL) -D -m 644 package/quagga/quagga@.service \
  96. $(TARGET_DIR)/usr/lib/systemd/system/quagga@.service
  97. endef
  98. $(eval $(autotools-package))