dtc.mk 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. ################################################################################
  2. #
  3. # dtc
  4. #
  5. ################################################################################
  6. DTC_VERSION = 1.6.0
  7. DTC_SOURCE = dtc-$(DTC_VERSION).tar.xz
  8. DTC_SITE = https://www.kernel.org/pub/software/utils/dtc
  9. DTC_LICENSE = GPL-2.0+ or BSD-2-Clause (library)
  10. DTC_LICENSE_FILES = README.license GPL BSD-2-Clause
  11. DTC_INSTALL_STAGING = YES
  12. DTC_DEPENDENCIES = host-bison host-flex host-pkgconf
  13. HOST_DTC_DEPENDENCIES = host-bison host-flex host-pkgconf
  14. DTC_MAKE_OPTS = \
  15. PREFIX=/usr \
  16. NO_PYTHON=1 \
  17. NO_VALGRIND=1
  18. # For the host, we install headers in a special subdirectory to avoid
  19. # conflicts with the in-kernel libfdt copy.
  20. HOST_DTC_MAKE_OPTS = \
  21. PREFIX=$(HOST_DIR) \
  22. INCLUDEDIR=$(HOST_DIR)/include/libfdt \
  23. NO_PYTHON=1 \
  24. NO_VALGRIND=1 \
  25. NO_YAML=1
  26. ifeq ($(BR2_PACKAGE_LIBYAML),y)
  27. DTC_DEPENDENCIES += libyaml
  28. else
  29. DTC_MAKE_OPTS += NO_YAML=1
  30. endif
  31. define DTC_POST_INSTALL_TARGET_RM_DTDIFF
  32. rm -f $(TARGET_DIR)/usr/bin/dtdiff
  33. endef
  34. ifeq ($(BR2_PACKAGE_DTC_PROGRAMS),y)
  35. DTC_LICENSE += , GPL-2.0+ (programs)
  36. DTC_INSTALL_GOAL = install
  37. ifeq ($(BR2_PACKAGE_BASH),)
  38. DTC_POST_INSTALL_TARGET_HOOKS += DTC_POST_INSTALL_TARGET_RM_DTDIFF
  39. endif
  40. else # $(BR2_PACKAGE_DTC_PROGRAMS) != y
  41. DTC_INSTALL_GOAL = install-lib
  42. endif # $(BR2_PACKAGE_DTC_PROGRAMS) != y
  43. define DTC_BUILD_CMDS
  44. $(TARGET_CONFIGURE_OPTS) $(MAKE) EXTRA_CFLAGS="$(TARGET_CFLAGS) -fPIC" -C $(@D) $(DTC_MAKE_OPTS)
  45. endef
  46. # For staging, only the library is needed
  47. define DTC_INSTALL_STAGING_CMDS
  48. $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) $(DTC_MAKE_OPTS) install-lib \
  49. install-includes
  50. endef
  51. define DTC_INSTALL_TARGET_CMDS
  52. $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) $(DTC_MAKE_OPTS) $(DTC_INSTALL_GOAL)
  53. endef
  54. # host build
  55. define HOST_DTC_BUILD_CMDS
  56. $(HOST_CONFIGURE_OPTS) $(MAKE) EXTRA_CFLAGS="$(HOST_CFLAGS) -fPIC" -C $(@D) $(HOST_DTC_MAKE_OPTS)
  57. endef
  58. define HOST_DTC_INSTALL_CMDS
  59. $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(HOST_DTC_MAKE_OPTS) install
  60. endef
  61. $(eval $(generic-package))
  62. $(eval $(host-generic-package))