barebox.mk 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. ################################################################################
  2. #
  3. # barebox
  4. #
  5. ################################################################################
  6. BAREBOX_VERSION = $(call qstrip,$(BR2_TARGET_BAREBOX_VERSION))
  7. ifeq ($(BAREBOX_VERSION),custom)
  8. # Handle custom Barebox tarballs as specified by the configuration
  9. BAREBOX_TARBALL = $(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_TARBALL_LOCATION))
  10. BAREBOX_SITE = $(patsubst %/,%,$(dir $(BAREBOX_TARBALL)))
  11. BAREBOX_SOURCE = $(notdir $(BAREBOX_TARBALL))
  12. BR_NO_CHECK_HASH_FOR += $(BAREBOX_SOURCE)
  13. else ifeq ($(BR2_TARGET_BAREBOX_CUSTOM_GIT),y)
  14. BAREBOX_SITE = $(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL))
  15. BAREBOX_SITE_METHOD = git
  16. else
  17. # Handle stable official Barebox versions
  18. BAREBOX_SOURCE = barebox-$(BAREBOX_VERSION).tar.bz2
  19. BAREBOX_SITE = http://www.barebox.org/download
  20. ifeq ($(BR2_TARGET_BAREBOX_CUSTOM_VERSION),y)
  21. BR_NO_CHECK_HASH_FOR += $(BAREBOX_SOURCE)
  22. endif
  23. endif
  24. BAREBOX_DEPENDENCIES = host-lzop
  25. BAREBOX_LICENSE = GPLv2 with exceptions
  26. BAREBOX_LICENSE_FILES = COPYING
  27. ifneq ($(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR)),)
  28. define BAREBOX_APPLY_CUSTOM_PATCHES
  29. $(APPLY_PATCHES) $(@D) \
  30. $(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR) \*.patch
  31. endef
  32. BAREBOX_POST_PATCH_HOOKS += BAREBOX_APPLY_CUSTOM_PATCHES
  33. endif
  34. BAREBOX_INSTALL_IMAGES = YES
  35. ifneq ($(BR2_TARGET_BAREBOX_BAREBOXENV),y)
  36. BAREBOX_INSTALL_TARGET = NO
  37. endif
  38. ifeq ($(KERNEL_ARCH),i386)
  39. BAREBOX_ARCH = x86
  40. else ifeq ($(KERNEL_ARCH),x86_64)
  41. BAREBOX_ARCH = x86
  42. else ifeq ($(KERNEL_ARCH),powerpc)
  43. BAREBOX_ARCH = ppc
  44. else
  45. BAREBOX_ARCH = $(KERNEL_ARCH)
  46. endif
  47. BAREBOX_MAKE_FLAGS = ARCH=$(BAREBOX_ARCH) CROSS_COMPILE="$(TARGET_CROSS)"
  48. BAREBOX_MAKE_ENV = $(TARGET_MAKE_ENV)
  49. ifeq ($(BR2_TARGET_BAREBOX_USE_DEFCONFIG),y)
  50. BAREBOX_KCONFIG_DEFCONFIG = $(call qstrip,$(BR2_TARGET_BAREBOX_BOARD_DEFCONFIG))_defconfig
  51. else ifeq ($(BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG),y)
  52. BAREBOX_KCONFIG_FILE = $(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE))
  53. endif
  54. BAREBOX_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_TARGET_BAREBOX_CONFIG_FRAGMENT_FILES))
  55. BAREBOX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
  56. BAREBOX_KCONFIG_OPTS = $(BAREBOX_MAKE_FLAGS)
  57. ifeq ($(BR2_TARGET_BAREBOX_BAREBOXENV),y)
  58. define BAREBOX_BUILD_BAREBOXENV_CMDS
  59. $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -o $(@D)/bareboxenv \
  60. $(@D)/scripts/bareboxenv.c
  61. endef
  62. endif
  63. ifeq ($(BR2_TARGET_BAREBOX_CUSTOM_ENV),y)
  64. BAREBOX_ENV_NAME = $(notdir $(call qstrip,\
  65. $(BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH)))
  66. define BAREBOX_BUILD_CUSTOM_ENV
  67. $(@D)/scripts/bareboxenv -s \
  68. $(call qstrip, $(BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH)) \
  69. $(@D)/$(BAREBOX_ENV_NAME)
  70. endef
  71. define BAREBOX_INSTALL_CUSTOM_ENV
  72. cp $(@D)/$(BAREBOX_ENV_NAME) $(BINARIES_DIR)
  73. endef
  74. endif
  75. define BAREBOX_BUILD_CMDS
  76. $(BAREBOX_BUILD_BAREBOXENV_CMDS)
  77. $(TARGET_MAKE_ENV) $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(@D)
  78. $(BAREBOX_BUILD_CUSTOM_ENV)
  79. endef
  80. define BAREBOX_INSTALL_IMAGES_CMDS
  81. if test -h $(@D)/barebox-flash-image ; then \
  82. cp -L $(@D)/barebox-flash-image $(BINARIES_DIR)/barebox.bin ; \
  83. else \
  84. cp $(@D)/barebox.bin $(BINARIES_DIR);\
  85. fi
  86. $(BAREBOX_INSTALL_CUSTOM_ENV)
  87. endef
  88. ifeq ($(BR2_TARGET_BAREBOX_BAREBOXENV),y)
  89. define BAREBOX_INSTALL_TARGET_CMDS
  90. cp $(@D)/bareboxenv $(TARGET_DIR)/usr/bin
  91. endef
  92. endif
  93. # Checks to give errors that the user can understand
  94. # Must be before we call to kconfig-package
  95. ifeq ($(BR2_TARGET_BAREBOX)$(BR_BUILDING),yy)
  96. # We must use the user-supplied kconfig value, because
  97. # BAREBOX_KCONFIG_DEFCONFIG will at least contain the
  98. # trailing _defconfig
  99. ifeq ($(or $(BAREBOX_KCONFIG_FILE),$(call qstrip,$(BR2_TARGET_BAREBOX_BOARD_DEFCONFIG))),)
  100. $(error No Barebox config. Check your BR2_TARGET_BAREBOX_BOARD_DEFCONFIG or BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE settings)
  101. endif
  102. endif
  103. $(eval $(kconfig-package))