Blame view

bootloader/u-boot_2015_04/tools/Makefile 6.48 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
  #
  # (C) Copyright 2000-2006
  # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  #
  # SPDX-License-Identifier:	GPL-2.0+
  #
  
  # Enable all the config-independent tools
  ifneq ($(HOST_TOOLS_ALL),)
  CONFIG_LCD_LOGO = y
  CONFIG_CMD_LOADS = y
  CONFIG_CMD_NET = y
  CONFIG_XWAY_SWAP_BYTES = y
  CONFIG_NETCONSOLE = y
  CONFIG_SHA1_CHECK_UB_IMG = y
  endif
  
  subdir-$(HOST_TOOLS_ALL) += easylogo
  subdir-$(HOST_TOOLS_ALL) += gdb
  
  # Merge all the different vars for envcrc into one
  ENVCRC-$(CONFIG_ENV_IS_EMBEDDED) = y
  ENVCRC-$(CONFIG_ENV_IS_IN_DATAFLASH) = y
  ENVCRC-$(CONFIG_ENV_IS_IN_EEPROM) = y
  ENVCRC-$(CONFIG_ENV_IS_IN_FLASH) = y
  ENVCRC-$(CONFIG_ENV_IS_IN_ONENAND) = y
  ENVCRC-$(CONFIG_ENV_IS_IN_NAND) = y
  ENVCRC-$(CONFIG_ENV_IS_IN_NVRAM) = y
  ENVCRC-$(CONFIG_ENV_IS_IN_SPI_FLASH) = y
  CONFIG_BUILD_ENVCRC ?= $(ENVCRC-y)
  
  hostprogs-$(CONFIG_SPL_GENERATE_ATMEL_PMECC_HEADER) += atmel_pmecc_params
  
  # TODO: CONFIG_CMD_LICENSE does not work
  hostprogs-$(CONFIG_CMD_LICENSE) += bin2header
  hostprogs-$(CONFIG_LCD_LOGO) += bmp_logo
  hostprogs-$(CONFIG_VIDEO_LOGO) += bmp_logo
  HOSTCFLAGS_bmp_logo.o := -pedantic
  
  hostprogs-$(CONFIG_BUILD_ENVCRC) += envcrc
  envcrc-objs := envcrc.o lib/crc32.o common/env_embedded.o lib/sha1.o
  
  hostprogs-$(CONFIG_CMD_NET) += gen_eth_addr
  HOSTCFLAGS_gen_eth_addr.o := -pedantic
  
  hostprogs-$(CONFIG_CMD_LOADS) += img2srec
  HOSTCFLAGS_img2srec.o := -pedantic
  
  hostprogs-$(CONFIG_XWAY_SWAP_BYTES) += xway-swap-bytes
  HOSTCFLAGS_xway-swap-bytes.o := -pedantic
  
  hostprogs-y += mkenvimage
  mkenvimage-objs := mkenvimage.o os_support.o lib/crc32.o
  
  hostprogs-y += dumpimage mkimage
  hostprogs-$(CONFIG_FIT_SIGNATURE) += fit_info fit_check_sign
  
  FIT_SIG_OBJS-$(CONFIG_FIT_SIGNATURE) := common/image-sig.o
  # Flattened device tree objects
  LIBFDT_OBJS := $(addprefix lib/libfdt/, \
  			fdt.o fdt_ro.o fdt_rw.o fdt_strerror.o fdt_wip.o)
  RSA_OBJS-$(CONFIG_FIT_SIGNATURE) := $(addprefix lib/rsa/, \
  					rsa-sign.o rsa-verify.o rsa-checksum.o \
  					rsa-mod-exp.o)
  
  # common objs for dumpimage and mkimage
  dumpimage-mkimage-objs := aisimage.o \
  			atmelimage.o \
  			$(FIT_SIG_OBJS-y) \
  			common/bootm.o \
  			lib/crc32.o \
  			default_image.o \
  			lib/fdtdec_common.o \
  			lib/fdtdec.o \
  			fit_common.o \
  			fit_image.o \
  			gpimage.o \
  			gpimage-common.o \
  			common/image-fit.o \
  			image-host.o \
  			common/image.o \
  			imagetool.o \
  			imximage.o \
  			kwbimage.o \
  			lib/md5.o \
  			lpc32xximage.o \
  			mxsimage.o \
  			omapimage.o \
  			os_support.o \
  			pblimage.o \
  			pbl_crc32.o \
  			socfpgaimage.o \
  			lib/sha1.o \
  			lib/sha256.o \
  			common/hash.o \
  			ublimage.o \
  			$(LIBFDT_OBJS) \
  			$(RSA_OBJS-y)
  
  dumpimage-objs := $(dumpimage-mkimage-objs) dumpimage.o
  mkimage-objs   := $(dumpimage-mkimage-objs) mkimage.o
  fit_info-objs   := $(dumpimage-mkimage-objs) fit_info.o
  fit_check_sign-objs   := $(dumpimage-mkimage-objs) fit_check_sign.o
  
  # TODO(sjg@chromium.org): Is this correct on Mac OS?
  
  ifneq ($(CONFIG_MX23)$(CONFIG_MX28),)
  # Add CONFIG_MXS into host CFLAGS, so we can check whether or not register
  # the mxsimage support within tools/mxsimage.c .
  HOSTCFLAGS_mxsimage.o += -DCONFIG_MXS
  endif
  
  ifdef CONFIG_FIT_SIGNATURE
  # This affects include/image.h, but including the board config file
  # is tricky, so manually define this options here.
  HOST_EXTRACFLAGS	+= -DCONFIG_FIT_SIGNATURE
  endif
  
  ifdef CONFIG_SYS_SPI_U_BOOT_OFFS
  HOSTCFLAGS_kwbimage.o += -DCONFIG_SYS_SPI_U_BOOT_OFFS=$(CONFIG_SYS_SPI_U_BOOT_OFFS)
  endif
  
  # MXSImage needs LibSSL
  ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_FIT_SIGNATURE),)
  HOSTLOADLIBES_mkimage += -lssl -lcrypto
  endif
  
  HOSTLOADLIBES_dumpimage := $(HOSTLOADLIBES_mkimage)
  HOSTLOADLIBES_fit_info := $(HOSTLOADLIBES_mkimage)
  HOSTLOADLIBES_fit_check_sign := $(HOSTLOADLIBES_mkimage)
  
  hostprogs-$(CONFIG_EXYNOS5250) += mkexynosspl
  hostprogs-$(CONFIG_EXYNOS5420) += mkexynosspl
  HOSTCFLAGS_mkexynosspl.o := -pedantic
  
  ifdtool-objs := $(LIBFDT_OBJS) ifdtool.o
  hostprogs-$(CONFIG_X86) += ifdtool
  
  hostprogs-$(CONFIG_MX23) += mxsboot
  hostprogs-$(CONFIG_MX28) += mxsboot
  HOSTCFLAGS_mxsboot.o := -pedantic
  
  hostprogs-$(CONFIG_SUNXI) += mksunxiboot
  
  hostprogs-$(CONFIG_NETCONSOLE) += ncb
  hostprogs-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1
  
  ubsha1-objs := os_support.o ubsha1.o lib/sha1.o
  
  HOSTCFLAGS_ubsha1.o := -pedantic
  
  hostprogs-$(CONFIG_KIRKWOOD) += kwboot
  hostprogs-$(CONFIG_ARMADA_XP) += kwboot
  hostprogs-y += proftool
  hostprogs-$(CONFIG_STATIC_RELA) += relocate-rela
  
  # We build some files with extra pedantic flags to try to minimize things
  # that won't build on some weird host compiler -- though there are lots of
  # exceptions for files that aren't complaint.
  HOSTCFLAGS_crc32.o := -pedantic
  HOSTCFLAGS_md5.o := -pedantic
  HOSTCFLAGS_sha1.o := -pedantic
  HOSTCFLAGS_sha256.o := -pedantic
  
  # Don't build by default
  #hostprogs-$(CONFIG_PPC) += mpc86x_clk
  #HOSTCFLAGS_mpc86x_clk.o := -pedantic
  
  quiet_cmd_wrap = WRAP    $@
  cmd_wrap = echo "\#include <../$(patsubst $(obj)/%,%,$@)>" >$@
  
  $(obj)/lib/%.c $(obj)/common/%.c:
  	$(call cmd,wrap)
  
  clean-dirs := lib common
  
  always := $(hostprogs-y)
  
  # Generated LCD/video logo
  LOGO_H = $(objtree)/include/bmp_logo.h
  LOGO_DATA_H = $(objtree)/include/bmp_logo_data.h
  LOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H)
  LOGO-$(CONFIG_LCD_LOGO) += $(LOGO_DATA_H)
  LOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H)
  LOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_DATA_H)
  
  # Generic logo
  ifeq ($(LOGO_BMP),)
  LOGO_BMP= $(srctree)/$(src)/logos/denx.bmp
  
  # Use board logo and fallback to vendor
  ifneq ($(wildcard $(srctree)/$(src)/logos/$(BOARD).bmp),)
  LOGO_BMP= $(srctree)/$(src)/logos/$(BOARD).bmp
  else
  ifneq ($(wildcard $(srctree)/$(src)/logos/$(VENDOR).bmp),)
  LOGO_BMP= $(srctree)/$(src)/logos/$(VENDOR).bmp
  endif
  endif
  
  endif # !LOGO_BMP
  
  #
  # Use native tools and options
  # Define __KERNEL_STRICT_NAMES to prevent typedef overlaps
  # Define _GNU_SOURCE to obtain the getline prototype from stdio.h
  #
  HOST_EXTRACFLAGS += -include $(srctree)/include/libfdt_env.h \
  		$(patsubst -I%,-idirafter%, $(filter -I%, $(UBOOTINCLUDE))) \
  		-I$(srctree)/lib/libfdt \
  		-I$(srctree)/tools \
  		-DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE) \
  		-DUSE_HOSTCC \
  		-D__KERNEL_STRICT_NAMES \
  		-D_GNU_SOURCE
  
  __build:	$(LOGO-y)
  
  $(LOGO_H):	$(obj)/bmp_logo $(LOGO_BMP)
  	$(obj)/bmp_logo --gen-info $(LOGO_BMP) > $@
  
  $(LOGO_DATA_H):	$(obj)/bmp_logo $(LOGO_BMP)
  	$(obj)/bmp_logo --gen-data $(LOGO_BMP) > $@
  
  # Let clean descend into subdirs
  subdir- += env
  
  ifneq ($(CROSS_BUILD_TOOLS),)
  HOSTCC = $(CC)
  
  quiet_cmd_crosstools_strip = STRIP   $^
        cmd_crosstools_strip = $(STRIP) $^; touch $@
  $(obj)/.strip: $(call objectify,$(filter $(always),$(hostprogs-y)))
  	$(call cmd,crosstools_strip)
  
  always += .strip
  endif
  clean-files += .strip