dhcp.mk 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. ################################################################################
  2. #
  3. # dhcp
  4. #
  5. ################################################################################
  6. DHCP_VERSION = 4.4.3-P1
  7. DHCP_SITE = https://ftp.isc.org/isc/dhcp/$(DHCP_VERSION)
  8. DHCP_INSTALL_STAGING = YES
  9. DHCP_SELINUX_MODULES = dhcp
  10. DHCP_LICENSE = MPL-2.0
  11. DHCP_LICENSE_FILES = LICENSE
  12. DHCP_DEPENDENCIES = host-gawk
  13. DHCP_CPE_ID_VENDOR = isc
  14. # internal bind does not support parallel builds.
  15. DHCP_MAKE = $(MAKE1)
  16. # untar internal bind so libtool patches will be applied on bind's libtool
  17. define DHCP_UNTAR_INTERNAL_BIND
  18. $(TAR) xf $(@D)/bind/bind.tar.gz -C $(@D)/bind/
  19. endef
  20. DHCP_POST_EXTRACT_HOOKS = DHCP_UNTAR_INTERNAL_BIND
  21. # use libtool-enabled configure.ac
  22. define DHCP_LIBTOOL_AUTORECONF
  23. cp $(@D)/configure.ac+lt $(@D)/configure.ac
  24. endef
  25. DHCP_CONF_ENV = \
  26. CPPFLAGS='-D_PATH_DHCPD_CONF=\"/etc/dhcp/dhcpd.conf\" \
  27. -D_PATH_DHCLIENT_CONF=\"/etc/dhcp/dhclient.conf\"' \
  28. CFLAGS='$(TARGET_CFLAGS) -DISC_CHECK_NONE=1'
  29. DHCP_BIND_EXTRA_CONFIG = \
  30. --build=$(GNU_HOST_NAME) \
  31. --host=$(GNU_TARGET_NAME) \
  32. --target=$(GNU_TARGET_NAME) \
  33. BUILD_CC='$(HOSTCC)' \
  34. BUILD_CFLAGS='$(HOST_CFLAGS)' \
  35. BUILD_CPPFLAGS='$(HOST_CPPFLAGS)' \
  36. BUILD_LDFLAGS='$(HOST_LDFLAGS)' \
  37. RANLIB='$(TARGET_RANLIB)' \
  38. --disable-backtrace
  39. DHCP_CONF_ENV += ac_cv_prog_AWK=$(HOST_DIR)/bin/gawk
  40. DHCP_CONF_OPTS = \
  41. --with-bind-extra-config="$(DHCP_BIND_EXTRA_CONFIG)" \
  42. --with-randomdev=/dev/random \
  43. --with-srv-lease-file=/var/lib/dhcp/dhcpd.leases \
  44. --with-srv6-lease-file=/var/lib/dhcp/dhcpd6.leases \
  45. --with-cli-lease-file=/var/lib/dhcp/dhclient.leases \
  46. --with-cli6-lease-file=/var/lib/dhcp/dhclient6.leases \
  47. --with-srv-pid-file=/var/run/dhcpd.pid \
  48. --with-srv6-pid-file=/var/run/dhcpd6.pid \
  49. --with-cli-pid-file=/var/run/dhclient.pid \
  50. --with-cli6-pid-file=/var/run/dhclient6.pid \
  51. --with-relay-pid-file=/var/run/dhcrelay.pid \
  52. --with-relay6-pid-file=/var/run/dhcrelay6.pid
  53. ifeq ($(BR2_PACKAGE_ZLIB),y)
  54. DHCP_BIND_EXTRA_CONFIG += --with-zlib=$(STAGING_DIR)/usr
  55. DHCP_DEPENDENCIES += zlib
  56. else
  57. DHCP_BIND_EXTRA_CONFIG += --without-zlib
  58. endif
  59. ifeq ($(BR2_TOOLCHAIN_HAS_ATOMIC),y)
  60. DHCP_BIND_EXTRA_CONFIG += --enable-atomic
  61. ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
  62. DHCP_CONF_ENV += LIBS=-latomic
  63. endif
  64. else
  65. DHCP_BIND_EXTRA_CONFIG += --disable-atomic
  66. endif
  67. ifeq ($(BR2_STATIC_LIBS),y)
  68. DHCP_CONF_OPTS += --disable-libtool
  69. else
  70. DHCP_POST_EXTRACT_HOOKS += DHCP_LIBTOOL_AUTORECONF
  71. DHCP_AUTORECONF = YES
  72. DHCP_CONF_OPTS += --enable-libtool
  73. endif
  74. ifeq ($(BR2_PACKAGE_DHCP_SERVER_DELAYED_ACK),y)
  75. DHCP_CONF_OPTS += --enable-delayed-ack
  76. else
  77. DHCP_CONF_OPTS += --disable-delayed-ack
  78. endif
  79. ifeq ($(BR2_PACKAGE_DHCP_SERVER_ENABLE_PARANOIA),y)
  80. DHCP_CONF_OPTS += --enable-paranoia
  81. else
  82. DHCP_CONF_OPTS += --disable-paranoia
  83. endif
  84. define DHCP_INSTALL_LIBS
  85. $(MAKE) -C $(@D)/bind install-bind DESTDIR=$(TARGET_DIR)
  86. $(MAKE) -C $(@D)/common install-exec DESTDIR=$(TARGET_DIR)
  87. $(MAKE) -C $(@D)/omapip install-exec DESTDIR=$(TARGET_DIR)
  88. endef
  89. ifeq ($(BR2_PACKAGE_DHCP_SERVER),y)
  90. define DHCP_INSTALL_CTL_LIBS
  91. $(MAKE) -C $(@D)/dhcpctl install-exec DESTDIR=$(TARGET_DIR)
  92. endef
  93. define DHCP_INSTALL_SERVER
  94. mkdir -p $(TARGET_DIR)/var/lib
  95. (cd $(TARGET_DIR)/var/lib; ln -snf /tmp dhcp)
  96. $(MAKE) -C $(@D)/server DESTDIR=$(TARGET_DIR) install-sbinPROGRAMS
  97. $(INSTALL) -m 0644 -D package/dhcp/dhcpd.conf \
  98. $(TARGET_DIR)/etc/dhcp/dhcpd.conf
  99. endef
  100. endif
  101. ifeq ($(BR2_PACKAGE_DHCP_RELAY),y)
  102. define DHCP_INSTALL_RELAY
  103. mkdir -p $(TARGET_DIR)/var/lib
  104. (cd $(TARGET_DIR)/var/lib; ln -snf /tmp dhcp)
  105. $(MAKE) -C $(@D)/relay DESTDIR=$(TARGET_DIR) install-sbinPROGRAMS
  106. endef
  107. endif
  108. ifeq ($(BR2_PACKAGE_DHCP_CLIENT),y)
  109. define DHCP_INSTALL_CLIENT
  110. mkdir -p $(TARGET_DIR)/var/lib
  111. (cd $(TARGET_DIR)/var/lib; ln -snf /tmp dhcp)
  112. $(MAKE) -C $(@D)/client DESTDIR=$(TARGET_DIR) sbindir=/sbin \
  113. install-sbinPROGRAMS
  114. $(INSTALL) -m 0644 -D package/dhcp/dhclient.conf \
  115. $(TARGET_DIR)/etc/dhcp/dhclient.conf
  116. $(INSTALL) -m 0755 -D package/dhcp/dhclient-script \
  117. $(TARGET_DIR)/sbin/dhclient-script
  118. endef
  119. endif
  120. # Options don't matter, scripts won't start if binaries aren't there
  121. define DHCP_INSTALL_INIT_SYSV
  122. $(INSTALL) -m 0755 -D package/dhcp/S80dhcp-server \
  123. $(TARGET_DIR)/etc/init.d/S80dhcp-server
  124. $(INSTALL) -m 0755 -D package/dhcp/S80dhcp-relay \
  125. $(TARGET_DIR)/etc/init.d/S80dhcp-relay
  126. endef
  127. ifeq ($(BR2_PACKAGE_DHCP_SERVER),y)
  128. define DHCP_INSTALL_INIT_SYSTEMD
  129. $(INSTALL) -D -m 644 package/dhcp/dhcpd.service \
  130. $(TARGET_DIR)/usr/lib/systemd/system/dhcpd.service
  131. mkdir -p $(TARGET_DIR)/usr/lib/tmpfiles.d
  132. echo "d /var/lib/dhcp 0755 - - - -" > \
  133. $(TARGET_DIR)/usr/lib/tmpfiles.d/dhcpd.conf
  134. echo "f /var/lib/dhcp/dhcpd.leases - - - - -" >> \
  135. $(TARGET_DIR)/usr/lib/tmpfiles.d/dhcpd.conf
  136. endef
  137. endif
  138. define DHCP_INSTALL_TARGET_CMDS
  139. $(DHCP_INSTALL_LIBS)
  140. $(DHCP_INSTALL_CTL_LIBS)
  141. $(DHCP_INSTALL_RELAY)
  142. $(DHCP_INSTALL_SERVER)
  143. $(DHCP_INSTALL_CLIENT)
  144. endef
  145. $(eval $(autotools-package))