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