xref: /OK3568_Linux_fs/buildroot/package/dhcp/dhcp.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1################################################################################
2#
3# dhcp
4#
5################################################################################
6
7DHCP_VERSION = 4.4.2-P1
8DHCP_SITE = http://ftp.isc.org/isc/dhcp/$(DHCP_VERSION)
9DHCP_INSTALL_STAGING = YES
10DHCP_LICENSE = MPL-2.0
11DHCP_LICENSE_FILES = LICENSE
12DHCP_DEPENDENCIES = bind host-gawk
13DHCP_CPE_ID_VENDOR = isc
14
15# use libtool-enabled configure.ac
16define DHCP_LIBTOOL_AUTORECONF
17	cp $(@D)/configure.ac+lt $(@D)/configure.ac
18endef
19
20DHCP_CONF_ENV = \
21	CPPFLAGS='-D_PATH_DHCPD_CONF=\"/etc/dhcp/dhcpd.conf\" \
22		-D_PATH_DHCLIENT_CONF=\"/etc/dhcp/dhclient.conf\"' \
23	CFLAGS='$(TARGET_CFLAGS) -DISC_CHECK_NONE=1'
24
25DHCP_CONF_ENV += ac_cv_prog_AWK=$(HOST_DIR)/bin/gawk
26
27DHCP_CONF_OPTS = \
28	--with-libbind=$(STAGING_DIR)/usr \
29	--with-randomdev=/dev/random \
30	--with-srv-lease-file=/var/lib/dhcp/dhcpd.leases \
31	--with-srv6-lease-file=/var/lib/dhcp/dhcpd6.leases \
32	--with-cli-lease-file=/var/lib/dhcp/dhclient.leases \
33	--with-cli6-lease-file=/var/lib/dhcp/dhclient6.leases \
34	--with-srv-pid-file=/var/run/dhcpd.pid \
35	--with-srv6-pid-file=/var/run/dhcpd6.pid \
36	--with-cli-pid-file=/var/run/dhclient.pid \
37	--with-cli6-pid-file=/var/run/dhclient6.pid \
38	--with-relay-pid-file=/var/run/dhcrelay.pid \
39	--with-relay6-pid-file=/var/run/dhcrelay6.pid
40
41ifeq ($(BR2_STATIC_LIBS),y)
42DHCP_CONF_ENV += LIBS="`$(STAGING_DIR)/usr/bin/bind9-config --libs bind9`"
43DHCP_CONF_OPTS += --disable-libtool
44else
45DHCP_POST_EXTRACT_HOOKS += DHCP_LIBTOOL_AUTORECONF
46DHCP_AUTORECONF = YES
47DHCP_CONF_OPTS += --enable-libtool
48endif
49
50ifeq ($(BR2_PACKAGE_DHCP_SERVER_DELAYED_ACK),y)
51DHCP_CONF_OPTS += --enable-delayed-ack
52endif
53
54define DHCP_INSTALL_LIBS
55	$(MAKE) -C $(@D)/common install-exec DESTDIR=$(TARGET_DIR)
56	$(MAKE) -C $(@D)/omapip install-exec DESTDIR=$(TARGET_DIR)
57endef
58
59ifeq ($(BR2_PACKAGE_DHCP_SERVER),y)
60define DHCP_INSTALL_CTL_LIBS
61	$(MAKE) -C $(@D)/dhcpctl install-exec DESTDIR=$(TARGET_DIR)
62endef
63define DHCP_INSTALL_SERVER
64	mkdir -p $(TARGET_DIR)/var/lib
65	(cd $(TARGET_DIR)/var/lib; ln -snf /tmp dhcp)
66	$(MAKE) -C $(@D)/server DESTDIR=$(TARGET_DIR) install-sbinPROGRAMS
67	$(INSTALL) -m 0644 -D package/dhcp/dhcpd.conf \
68		$(TARGET_DIR)/etc/dhcp/dhcpd.conf
69endef
70endif
71
72ifeq ($(BR2_PACKAGE_DHCP_RELAY),y)
73define DHCP_INSTALL_RELAY
74	mkdir -p $(TARGET_DIR)/var/lib
75	(cd $(TARGET_DIR)/var/lib; ln -snf /tmp dhcp)
76	$(MAKE) -C $(@D)/relay DESTDIR=$(TARGET_DIR) install-sbinPROGRAMS
77endef
78endif
79
80ifeq ($(BR2_PACKAGE_DHCP_CLIENT),y)
81define DHCP_INSTALL_CLIENT
82	mkdir -p $(TARGET_DIR)/var/lib
83	(cd $(TARGET_DIR)/var/lib; ln -snf /tmp dhcp)
84	$(MAKE) -C $(@D)/client DESTDIR=$(TARGET_DIR) sbindir=/sbin \
85		install-sbinPROGRAMS
86	$(INSTALL) -m 0644 -D package/dhcp/dhclient.conf \
87		$(TARGET_DIR)/etc/dhcp/dhclient.conf
88	$(INSTALL) -m 0755 -D package/dhcp/dhclient-script \
89		$(TARGET_DIR)/sbin/dhclient-script
90endef
91endif
92
93# Options don't matter, scripts won't start if binaries aren't there
94define DHCP_INSTALL_INIT_SYSV
95	$(INSTALL) -m 0755 -D package/dhcp/S80dhcp-server \
96		$(TARGET_DIR)/etc/init.d/S80dhcp-server
97	$(INSTALL) -m 0755 -D package/dhcp/S80dhcp-relay \
98		$(TARGET_DIR)/etc/init.d/S80dhcp-relay
99endef
100
101ifeq ($(BR2_PACKAGE_DHCP_SERVER),y)
102define DHCP_INSTALL_INIT_SYSTEMD
103	$(INSTALL) -D -m 644 package/dhcp/dhcpd.service \
104		$(TARGET_DIR)/usr/lib/systemd/system/dhcpd.service
105
106	mkdir -p $(TARGET_DIR)/usr/lib/tmpfiles.d
107	echo "d /var/lib/dhcp 0755 - - - -" > \
108		$(TARGET_DIR)/usr/lib/tmpfiles.d/dhcpd.conf
109	echo "f /var/lib/dhcp/dhcpd.leases - - - - -" >> \
110		$(TARGET_DIR)/usr/lib/tmpfiles.d/dhcpd.conf
111endef
112endif
113
114define DHCP_INSTALL_TARGET_CMDS
115	$(DHCP_INSTALL_LIBS)
116	$(DHCP_INSTALL_CTL_LIBS)
117	$(DHCP_INSTALL_RELAY)
118	$(DHCP_INSTALL_SERVER)
119	$(DHCP_INSTALL_CLIENT)
120endef
121
122$(eval $(autotools-package))
123