barebox.mk 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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 = $(dir $(BAREBOX_TARBALL))
  11. BAREBOX_SOURCE = $(notdir $(BAREBOX_TARBALL))
  12. else ifeq ($(BR2_TARGET_BAREBOX_CUSTOM_GIT),y)
  13. BAREBOX_SITE = $(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL))
  14. BAREBOX_SITE_METHOD = git
  15. else
  16. # Handle stable official Barebox versions
  17. BAREBOX_SOURCE = barebox-$(BAREBOX_VERSION).tar.bz2
  18. BAREBOX_SITE = http://www.barebox.org/download/
  19. endif
  20. ifneq ($(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR)),)
  21. define BAREBOX_APPLY_CUSTOM_PATCHES
  22. support/scripts/apply-patches.sh $(@D) $(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR) \
  23. barebox-$(BAREBOX_VERSION)-\*.patch
  24. endef
  25. BAREBOX_POST_PATCH_HOOKS += BAREBOX_APPLY_CUSTOM_PATCHES
  26. endif
  27. BAREBOX_INSTALL_IMAGES = YES
  28. ifneq ($(BR2_TARGET_BAREBOX_BAREBOXENV),y)
  29. BAREBOX_INSTALL_TARGET = NO
  30. endif
  31. BAREBOX_BOARD_DEFCONFIG = $(call qstrip,$(BR2_TARGET_BAREBOX_BOARD_DEFCONFIG))
  32. ifeq ($(KERNEL_ARCH),i386)
  33. BAREBOX_ARCH=x86
  34. else ifeq ($(KERNEL_ARCH),powerpc)
  35. BAREBOX_ARCH=ppc
  36. else
  37. BAREBOX_ARCH=$(KERNEL_ARCH)
  38. endif
  39. BAREBOX_MAKE_FLAGS = ARCH=$(BAREBOX_ARCH) CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)"
  40. define BAREBOX_CONFIGURE_CMDS
  41. $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(@D) $(BAREBOX_BOARD_DEFCONFIG)_defconfig
  42. endef
  43. ifeq ($(BR2_TARGET_BAREBOX_BAREBOXENV),y)
  44. define BAREBOX_BUILD_BAREBOXENV_CMDS
  45. $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -o $(@D)/bareboxenv \
  46. $(@D)/scripts/bareboxenv.c
  47. endef
  48. endif
  49. define BAREBOX_BUILD_CMDS
  50. $(BAREBOX_BUILD_BAREBOXENV_CMDS)
  51. $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(@D)
  52. endef
  53. define BAREBOX_INSTALL_IMAGES_CMDS
  54. cp $(@D)/barebox.bin $(BINARIES_DIR)
  55. endef
  56. ifeq ($(BR2_TARGET_BAREBOX_BAREBOXENV),y)
  57. define BAREBOX_INSTALL_TARGET_CMDS
  58. cp $(@D)/bareboxenv $(TARGET_DIR)/usr/bin
  59. endef
  60. endif
  61. $(eval $(call GENTARGETS))
  62. ifeq ($(BR2_TARGET_BAREBOX),y)
  63. # we NEED a board defconfig file unless we're at make source
  64. ifeq ($(filter source,$(MAKECMDGOALS)),)
  65. ifeq ($(BAREBOX_BOARD_DEFCONFIG),)
  66. $(error No Barebox defconfig file. Check your BR2_TARGET_BAREBOX_BOARD_DEFCONFIG setting)
  67. endif
  68. endif
  69. barebox-menuconfig barebox-xconfig barebox-gconfig barebox-nconfig: barebox-configure
  70. $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(BAREBOX_DIR) \
  71. $(subst barebox-,,$@)
  72. rm -f $(BAREBOX_DIR)/.stamp_{built,target_installed,images_installed}
  73. barebox-savedefconfig: barebox-configure
  74. $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(BAREBOX_DIR) \
  75. $(subst barebox-,,$@)
  76. endif