barebox.mk 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #############################################################
  2. #
  3. # Barebox
  4. #
  5. #############################################################
  6. BAREBOX_VERSION:=2011.05.0
  7. BAREBOX_SOURCE:=barebox-$(BAREBOX_VERSION).tar.bz2
  8. BAREBOX_SITE:=http://www.barebox.org/download/
  9. BAREBOX_DIR:=$(BUILD_DIR)/barebox-$(BAREBOX_VERSION)
  10. BAREBOX_CAT:=$(BZCAT)
  11. BAREBOX_BOARD_DEFCONFIG:=$(call qstrip,$(BR2_TARGET_BAREBOX_BOARD_DEFCONFIG))
  12. ifeq ($(KERNEL_ARCH),i386)
  13. BAREBOX_ARCH=x86
  14. else ifeq ($(KERNEL_ARCH),powerpc)
  15. BAREBOX_ARCH=ppc
  16. else
  17. BAREBOX_ARCH=$(KERNEL_ARCH)
  18. endif
  19. BAREBOX_MAKE_FLAGS = ARCH=$(BAREBOX_ARCH) CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)"
  20. $(DL_DIR)/$(BAREBOX_SOURCE):
  21. $(call DOWNLOAD,$(BAREBOX_SITE),$(BAREBOX_SOURCE))
  22. $(BAREBOX_DIR)/.unpacked: $(DL_DIR)/$(BAREBOX_SOURCE)
  23. mkdir -p $(@D)
  24. $(INFLATE$(suffix $(BAREBOX_SOURCE))) $(DL_DIR)/$(BAREBOX_SOURCE) \
  25. | tar $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) -
  26. touch $@
  27. $(BAREBOX_DIR)/.patched: $(BAREBOX_DIR)/.unpacked
  28. toolchain/patch-kernel.sh $(BAREBOX_DIR) boot/barebox \
  29. barebox-$(BAREBOX_VERSION)-\*.patch \
  30. barebox-$(BAREBOX_VERSION)-\*.patch.$(ARCH)
  31. touch $@
  32. $(BAREBOX_DIR)/.configured: $(BAREBOX_DIR)/.patched
  33. $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(BAREBOX_DIR) $(BAREBOX_BOARD_DEFCONFIG)_defconfig
  34. touch $@
  35. $(BAREBOX_DIR)/.built: $(BAREBOX_DIR)/.configured
  36. $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(BAREBOX_DIR)
  37. touch $@
  38. $(BAREBOX_DIR)/.installed: $(BAREBOX_DIR)/.built
  39. cp $(BAREBOX_DIR)/barebox.bin $(BINARIES_DIR)
  40. touch $@
  41. # bareboxenv for the target
  42. $(TARGET_DIR)/usr/bin/bareboxenv: $(BAREBOX_DIR)/.configured
  43. mkdir -p $(@D)
  44. $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -o $@ \
  45. $(BAREBOX_DIR)/scripts/bareboxenv.c
  46. barebox: $(BAREBOX_DIR)/.installed \
  47. $(if $(BR2_TARGET_BAREBOX_BAREBOXENV),$(TARGET_DIR)/usr/bin/bareboxenv)
  48. ifeq ($(BR2_TARGET_BAREBOX),y)
  49. TARGETS+=barebox
  50. # we NEED a board defconfig file unless we're at make source
  51. ifeq ($(filter source,$(MAKECMDGOALS)),)
  52. ifeq ($(BAREBOX_BOARD_DEFCONFIG),)
  53. $(error No Barebox defconfig file. Check your BR2_TARGET_BAREBOX_BOARD_DEFCONFIG setting)
  54. endif
  55. endif
  56. endif