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