xref: /OK3568_Linux_fs/buildroot/package/dtc/dtc.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun################################################################################
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# dtc
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun################################################################################
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunDTC_VERSION = 1.6.1
8*4882a593SmuzhiyunDTC_SOURCE = dtc-$(DTC_VERSION).tar.xz
9*4882a593SmuzhiyunDTC_SITE = https://www.kernel.org/pub/software/utils/dtc
10*4882a593SmuzhiyunDTC_LICENSE = GPL-2.0+ or BSD-2-Clause (library)
11*4882a593SmuzhiyunDTC_LICENSE_FILES = README.license GPL BSD-2-Clause
12*4882a593SmuzhiyunDTC_CPE_ID_VENDOR = dtc_project
13*4882a593SmuzhiyunDTC_INSTALL_STAGING = YES
14*4882a593SmuzhiyunDTC_DEPENDENCIES = host-bison host-flex host-pkgconf
15*4882a593SmuzhiyunHOST_DTC_DEPENDENCIES = host-bison host-flex host-pkgconf
16*4882a593Smuzhiyun
17*4882a593SmuzhiyunDTC_MAKE_OPTS = \
18*4882a593Smuzhiyun	PREFIX=/usr \
19*4882a593Smuzhiyun	NO_PYTHON=1 \
20*4882a593Smuzhiyun	NO_VALGRIND=1
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun# For the host, we install headers in a special subdirectory to avoid
23*4882a593Smuzhiyun# conflicts with the in-kernel libfdt copy.
24*4882a593SmuzhiyunHOST_DTC_MAKE_OPTS = \
25*4882a593Smuzhiyun	PREFIX=$(HOST_DIR) \
26*4882a593Smuzhiyun	INCLUDEDIR=$(HOST_DIR)/include/libfdt \
27*4882a593Smuzhiyun	NO_PYTHON=1 \
28*4882a593Smuzhiyun	NO_VALGRIND=1 \
29*4882a593Smuzhiyun	NO_YAML=1
30*4882a593Smuzhiyun
31*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBYAML),y)
32*4882a593SmuzhiyunDTC_DEPENDENCIES += libyaml
33*4882a593Smuzhiyunelse
34*4882a593SmuzhiyunDTC_MAKE_OPTS += NO_YAML=1
35*4882a593Smuzhiyunendif
36*4882a593Smuzhiyun
37*4882a593Smuzhiyundefine DTC_POST_INSTALL_TARGET_RM_DTDIFF
38*4882a593Smuzhiyun	rm -f $(TARGET_DIR)/usr/bin/dtdiff
39*4882a593Smuzhiyunendef
40*4882a593Smuzhiyun
41*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_DTC_PROGRAMS),y)
42*4882a593Smuzhiyun
43*4882a593SmuzhiyunDTC_LICENSE += , GPL-2.0+ (programs)
44*4882a593SmuzhiyunDTC_INSTALL_GOAL = install
45*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_BASH),)
46*4882a593SmuzhiyunDTC_POST_INSTALL_TARGET_HOOKS += DTC_POST_INSTALL_TARGET_RM_DTDIFF
47*4882a593Smuzhiyunendif
48*4882a593Smuzhiyun
49*4882a593Smuzhiyunelse # $(BR2_PACKAGE_DTC_PROGRAMS) != y
50*4882a593Smuzhiyun
51*4882a593SmuzhiyunDTC_INSTALL_GOAL = install-lib
52*4882a593Smuzhiyun
53*4882a593Smuzhiyunendif # $(BR2_PACKAGE_DTC_PROGRAMS) != y
54*4882a593Smuzhiyun
55*4882a593Smuzhiyundefine DTC_BUILD_CMDS
56*4882a593Smuzhiyun	$(TARGET_CONFIGURE_OPTS) $(MAKE) EXTRA_CFLAGS="$(TARGET_CFLAGS) -fPIC" -C $(@D) $(DTC_MAKE_OPTS)
57*4882a593Smuzhiyunendef
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun# For staging, only the library is needed
60*4882a593Smuzhiyundefine DTC_INSTALL_STAGING_CMDS
61*4882a593Smuzhiyun	$(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) $(DTC_MAKE_OPTS) install-lib \
62*4882a593Smuzhiyun		install-includes
63*4882a593Smuzhiyunendef
64*4882a593Smuzhiyun
65*4882a593Smuzhiyundefine DTC_INSTALL_TARGET_CMDS
66*4882a593Smuzhiyun	$(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) $(DTC_MAKE_OPTS) $(DTC_INSTALL_GOAL)
67*4882a593Smuzhiyunendef
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun# host build
70*4882a593Smuzhiyundefine HOST_DTC_BUILD_CMDS
71*4882a593Smuzhiyun	$(HOST_CONFIGURE_OPTS) $(MAKE) EXTRA_CFLAGS="$(HOST_CFLAGS) -fPIC" -C $(@D) $(HOST_DTC_MAKE_OPTS)
72*4882a593Smuzhiyunendef
73*4882a593Smuzhiyun
74*4882a593Smuzhiyundefine HOST_DTC_INSTALL_CMDS
75*4882a593Smuzhiyun	$(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(HOST_DTC_MAKE_OPTS) install
76*4882a593Smuzhiyunendef
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun$(eval $(generic-package))
79*4882a593Smuzhiyun$(eval $(host-generic-package))
80