xref: /OK3568_Linux_fs/buildroot/package/dhcpcd/dhcpcd.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1################################################################################
2#
3# dhcpcd
4#
5################################################################################
6
7DHCPCD_VERSION = 9.4.1
8DHCPCD_SOURCE = dhcpcd-$(DHCPCD_VERSION).tar.xz
9DHCPCD_SITE = http://roy.marples.name/downloads/dhcpcd
10DHCPCD_DEPENDENCIES = host-pkgconf
11DHCPCD_LICENSE = BSD-2-Clause
12DHCPCD_LICENSE_FILES = LICENSE
13DHCPCD_CPE_ID_VENDOR = dhcpcd_project
14
15DHCPCD_CONFIG_OPTS = \
16	--libexecdir=/lib/dhcpcd \
17	--os=linux \
18	--privsepuser=dhcpcd
19
20# AUDIT_ARCH_{OPENRISC,SH,SHEL,SH64,SHEL64} are only available with kernel >= 3.7
21ifeq ($(BR2_or1k)$(BR2_sh):$(BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7),y:)
22DHCPCD_CONFIG_OPTS += --disable-privsep
23endif
24
25# AUDIT_ARCH_MICROBLAZE is only available with kernel >= 3.18
26ifeq ($(BR2_microblazeel)$(BR2_microblazebe):$(BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18),y:)
27DHCPCD_CONFIG_OPTS += --disable-privsep
28endif
29
30# AUDIT_ARCH_XTENSA is only available with kernel >= 5.0
31ifeq ($(BR2_xtensa):$(BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0),y:)
32DHCPCD_CONFIG_OPTS += --disable-privsep
33endif
34
35# AUDIT_ARCH_{ARCOMPACT,ARCV2,NDS32,NIOS2} are only available with kernel >= 5.2
36ifeq ($(BR2_arceb)$(BR2_arcle)$(BR2_nds32)$(BR2_nios2):$(BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2),y:)
37DHCPCD_CONFIG_OPTS += --disable-privsep
38endif
39
40ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
41DHCPCD_CONFIG_OPTS += --with-udev
42DHCPCD_DEPENDENCIES += udev
43else
44DHCPCD_CONFIG_OPTS += --without-udev
45endif
46
47ifeq ($(BR2_STATIC_LIBS),y)
48DHCPCD_CONFIG_OPTS += --enable-static
49endif
50
51ifeq ($(BR2_USE_MMU),)
52DHCPCD_CONFIG_OPTS += --disable-fork --disable-privsep
53endif
54
55define DHCPCD_CONFIGURE_CMDS
56	(cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(DHCPCD_CONFIG_OPTS))
57endef
58
59define DHCPCD_BUILD_CMDS
60	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) all
61endef
62
63define DHCPCD_INSTALL_TARGET_CMDS
64	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install DESTDIR=$(TARGET_DIR)
65endef
66
67# When network-manager is enabled together with dhcpcd, it will use
68# dhcpcd as a DHCP client, and will be in charge of running, so we
69# don't want the init script or service file to be installed.
70ifeq ($(BR2_PACKAGE_NETWORK_MANAGER),)
71define DHCPCD_INSTALL_INIT_SYSV
72	$(INSTALL) -m 755 -D package/dhcpcd/S41dhcpcd \
73		$(TARGET_DIR)/etc/init.d/S41dhcpcd
74endef
75
76define DHCPCD_INSTALL_INIT_SYSTEMD
77	$(INSTALL) -D -m 0644 package/dhcpcd/dhcpcd.service \
78		$(TARGET_DIR)/usr/lib/systemd/system/dhcpcd.service
79endef
80endif
81
82define DHCPCD_USERS
83	dhcpcd -1 dhcpcd -1 * - - - dhcpcd user
84endef
85
86# NOTE: Even though this package has a configure script, it is not generated
87# using the autotools, so we have to use the generic package infrastructure.
88
89$(eval $(generic-package))
90