Commit 524123a70761110c5cf3ccc5f52f6d4da071b959

Authored by Tom Rini
1 parent 2cc0ea72ef

Prepare v2014.07

Signed-off-by: Tom Rini <trini@ti.com>

Showing 1 changed file with 1 additions and 1 deletions Inline Diff

1 # 1 #
2 # (C) Copyright 2000-2013 2 # (C) Copyright 2000-2013
3 # Wolfgang Denk, DENX Software Engineering, wd@denx.de. 3 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 # 4 #
5 # SPDX-License-Identifier: GPL-2.0+ 5 # SPDX-License-Identifier: GPL-2.0+
6 # 6 #
7 7
8 VERSION = 2014 8 VERSION = 2014
9 PATCHLEVEL = 07 9 PATCHLEVEL = 07
10 SUBLEVEL = 10 SUBLEVEL =
11 EXTRAVERSION = -rc4 11 EXTRAVERSION =
12 NAME = 12 NAME =
13 13
14 # *DOCUMENTATION* 14 # *DOCUMENTATION*
15 # To see a list of typical targets execute "make help" 15 # To see a list of typical targets execute "make help"
16 # More info can be located in ./README 16 # More info can be located in ./README
17 # Comments in this file are targeted only to the developer, do not 17 # Comments in this file are targeted only to the developer, do not
18 # expect to learn how to build the kernel reading this file. 18 # expect to learn how to build the kernel reading this file.
19 19
20 # Do not: 20 # Do not:
21 # o use make's built-in rules and variables 21 # o use make's built-in rules and variables
22 # (this increases performance and avoids hard-to-debug behaviour); 22 # (this increases performance and avoids hard-to-debug behaviour);
23 # o print "Entering directory ..."; 23 # o print "Entering directory ...";
24 MAKEFLAGS += -rR --no-print-directory 24 MAKEFLAGS += -rR --no-print-directory
25 25
26 # Avoid funny character set dependencies 26 # Avoid funny character set dependencies
27 unexport LC_ALL 27 unexport LC_ALL
28 LC_COLLATE=C 28 LC_COLLATE=C
29 LC_NUMERIC=C 29 LC_NUMERIC=C
30 export LC_COLLATE LC_NUMERIC 30 export LC_COLLATE LC_NUMERIC
31 31
32 # We are using a recursive build, so we need to do a little thinking 32 # We are using a recursive build, so we need to do a little thinking
33 # to get the ordering right. 33 # to get the ordering right.
34 # 34 #
35 # Most importantly: sub-Makefiles should only ever modify files in 35 # Most importantly: sub-Makefiles should only ever modify files in
36 # their own directory. If in some directory we have a dependency on 36 # their own directory. If in some directory we have a dependency on
37 # a file in another dir (which doesn't happen often, but it's often 37 # a file in another dir (which doesn't happen often, but it's often
38 # unavoidable when linking the built-in.o targets which finally 38 # unavoidable when linking the built-in.o targets which finally
39 # turn into vmlinux), we will call a sub make in that other dir, and 39 # turn into vmlinux), we will call a sub make in that other dir, and
40 # after that we are sure that everything which is in that other dir 40 # after that we are sure that everything which is in that other dir
41 # is now up to date. 41 # is now up to date.
42 # 42 #
43 # The only cases where we need to modify files which have global 43 # The only cases where we need to modify files which have global
44 # effects are thus separated out and done before the recursive 44 # effects are thus separated out and done before the recursive
45 # descending is started. They are now explicitly listed as the 45 # descending is started. They are now explicitly listed as the
46 # prepare rule. 46 # prepare rule.
47 47
48 # To put more focus on warnings, be less verbose as default 48 # To put more focus on warnings, be less verbose as default
49 # Use 'make V=1' to see the full commands 49 # Use 'make V=1' to see the full commands
50 50
51 ifeq ("$(origin V)", "command line") 51 ifeq ("$(origin V)", "command line")
52 KBUILD_VERBOSE = $(V) 52 KBUILD_VERBOSE = $(V)
53 endif 53 endif
54 ifndef KBUILD_VERBOSE 54 ifndef KBUILD_VERBOSE
55 KBUILD_VERBOSE = 0 55 KBUILD_VERBOSE = 0
56 endif 56 endif
57 57
58 # Call a source code checker (by default, "sparse") as part of the 58 # Call a source code checker (by default, "sparse") as part of the
59 # C compilation. 59 # C compilation.
60 # 60 #
61 # Use 'make C=1' to enable checking of only re-compiled files. 61 # Use 'make C=1' to enable checking of only re-compiled files.
62 # Use 'make C=2' to enable checking of *all* source files, regardless 62 # Use 'make C=2' to enable checking of *all* source files, regardless
63 # of whether they are re-compiled or not. 63 # of whether they are re-compiled or not.
64 # 64 #
65 # See the file "Documentation/sparse.txt" for more details, including 65 # See the file "Documentation/sparse.txt" for more details, including
66 # where to get the "sparse" utility. 66 # where to get the "sparse" utility.
67 67
68 ifeq ("$(origin C)", "command line") 68 ifeq ("$(origin C)", "command line")
69 KBUILD_CHECKSRC = $(C) 69 KBUILD_CHECKSRC = $(C)
70 endif 70 endif
71 ifndef KBUILD_CHECKSRC 71 ifndef KBUILD_CHECKSRC
72 KBUILD_CHECKSRC = 0 72 KBUILD_CHECKSRC = 0
73 endif 73 endif
74 74
75 # Use make M=dir to specify directory of external module to build 75 # Use make M=dir to specify directory of external module to build
76 # Old syntax make ... SUBDIRS=$PWD is still supported 76 # Old syntax make ... SUBDIRS=$PWD is still supported
77 # Setting the environment variable KBUILD_EXTMOD take precedence 77 # Setting the environment variable KBUILD_EXTMOD take precedence
78 ifdef SUBDIRS 78 ifdef SUBDIRS
79 KBUILD_EXTMOD ?= $(SUBDIRS) 79 KBUILD_EXTMOD ?= $(SUBDIRS)
80 endif 80 endif
81 81
82 ifeq ("$(origin M)", "command line") 82 ifeq ("$(origin M)", "command line")
83 KBUILD_EXTMOD := $(M) 83 KBUILD_EXTMOD := $(M)
84 endif 84 endif
85 85
86 # kbuild supports saving output files in a separate directory. 86 # kbuild supports saving output files in a separate directory.
87 # To locate output files in a separate directory two syntaxes are supported. 87 # To locate output files in a separate directory two syntaxes are supported.
88 # In both cases the working directory must be the root of the kernel src. 88 # In both cases the working directory must be the root of the kernel src.
89 # 1) O= 89 # 1) O=
90 # Use "make O=dir/to/store/output/files/" 90 # Use "make O=dir/to/store/output/files/"
91 # 91 #
92 # 2) Set KBUILD_OUTPUT 92 # 2) Set KBUILD_OUTPUT
93 # Set the environment variable KBUILD_OUTPUT to point to the directory 93 # Set the environment variable KBUILD_OUTPUT to point to the directory
94 # where the output files shall be placed. 94 # where the output files shall be placed.
95 # export KBUILD_OUTPUT=dir/to/store/output/files/ 95 # export KBUILD_OUTPUT=dir/to/store/output/files/
96 # make 96 # make
97 # 97 #
98 # The O= assignment takes precedence over the KBUILD_OUTPUT environment 98 # The O= assignment takes precedence over the KBUILD_OUTPUT environment
99 # variable. 99 # variable.
100 100
101 101
102 # KBUILD_SRC is set on invocation of make in OBJ directory 102 # KBUILD_SRC is set on invocation of make in OBJ directory
103 # KBUILD_SRC is not intended to be used by the regular user (for now) 103 # KBUILD_SRC is not intended to be used by the regular user (for now)
104 ifeq ($(KBUILD_SRC),) 104 ifeq ($(KBUILD_SRC),)
105 105
106 # OK, Make called in directory where kernel src resides 106 # OK, Make called in directory where kernel src resides
107 # Do we want to locate output files in a separate directory? 107 # Do we want to locate output files in a separate directory?
108 ifeq ("$(origin O)", "command line") 108 ifeq ("$(origin O)", "command line")
109 KBUILD_OUTPUT := $(O) 109 KBUILD_OUTPUT := $(O)
110 endif 110 endif
111 111
112 ifeq ("$(origin W)", "command line") 112 ifeq ("$(origin W)", "command line")
113 export KBUILD_ENABLE_EXTRA_GCC_CHECKS := $(W) 113 export KBUILD_ENABLE_EXTRA_GCC_CHECKS := $(W)
114 endif 114 endif
115 115
116 # That's our default target when none is given on the command line 116 # That's our default target when none is given on the command line
117 PHONY := _all 117 PHONY := _all
118 _all: 118 _all:
119 119
120 # Cancel implicit rules on top Makefile 120 # Cancel implicit rules on top Makefile
121 $(CURDIR)/Makefile Makefile: ; 121 $(CURDIR)/Makefile Makefile: ;
122 122
123 ifneq ($(KBUILD_OUTPUT),) 123 ifneq ($(KBUILD_OUTPUT),)
124 # Invoke a second make in the output directory, passing relevant variables 124 # Invoke a second make in the output directory, passing relevant variables
125 # check that the output directory actually exists 125 # check that the output directory actually exists
126 saved-output := $(KBUILD_OUTPUT) 126 saved-output := $(KBUILD_OUTPUT)
127 KBUILD_OUTPUT := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) \ 127 KBUILD_OUTPUT := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) \
128 && /bin/pwd) 128 && /bin/pwd)
129 $(if $(KBUILD_OUTPUT),, \ 129 $(if $(KBUILD_OUTPUT),, \
130 $(error failed to create output directory "$(saved-output)")) 130 $(error failed to create output directory "$(saved-output)"))
131 131
132 PHONY += $(MAKECMDGOALS) sub-make 132 PHONY += $(MAKECMDGOALS) sub-make
133 133
134 $(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make 134 $(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make
135 @: 135 @:
136 136
137 sub-make: FORCE 137 sub-make: FORCE
138 $(if $(KBUILD_VERBOSE:1=),@)$(MAKE) -C $(KBUILD_OUTPUT) \ 138 $(if $(KBUILD_VERBOSE:1=),@)$(MAKE) -C $(KBUILD_OUTPUT) \
139 KBUILD_SRC=$(CURDIR) \ 139 KBUILD_SRC=$(CURDIR) \
140 KBUILD_EXTMOD="$(KBUILD_EXTMOD)" -f $(CURDIR)/Makefile \ 140 KBUILD_EXTMOD="$(KBUILD_EXTMOD)" -f $(CURDIR)/Makefile \
141 $(filter-out _all sub-make,$(MAKECMDGOALS)) 141 $(filter-out _all sub-make,$(MAKECMDGOALS))
142 142
143 # Leave processing to above invocation of make 143 # Leave processing to above invocation of make
144 skip-makefile := 1 144 skip-makefile := 1
145 endif # ifneq ($(KBUILD_OUTPUT),) 145 endif # ifneq ($(KBUILD_OUTPUT),)
146 endif # ifeq ($(KBUILD_SRC),) 146 endif # ifeq ($(KBUILD_SRC),)
147 147
148 # We process the rest of the Makefile if this is the final invocation of make 148 # We process the rest of the Makefile if this is the final invocation of make
149 ifeq ($(skip-makefile),) 149 ifeq ($(skip-makefile),)
150 150
151 # If building an external module we do not care about the all: rule 151 # If building an external module we do not care about the all: rule
152 # but instead _all depend on modules 152 # but instead _all depend on modules
153 PHONY += all 153 PHONY += all
154 ifeq ($(KBUILD_EXTMOD),) 154 ifeq ($(KBUILD_EXTMOD),)
155 _all: all 155 _all: all
156 else 156 else
157 _all: modules 157 _all: modules
158 endif 158 endif
159 159
160 srctree := $(if $(KBUILD_SRC),$(KBUILD_SRC),$(CURDIR)) 160 srctree := $(if $(KBUILD_SRC),$(KBUILD_SRC),$(CURDIR))
161 objtree := $(CURDIR) 161 objtree := $(CURDIR)
162 src := $(srctree) 162 src := $(srctree)
163 obj := $(objtree) 163 obj := $(objtree)
164 164
165 VPATH := $(srctree)$(if $(KBUILD_EXTMOD),:$(KBUILD_EXTMOD)) 165 VPATH := $(srctree)$(if $(KBUILD_EXTMOD),:$(KBUILD_EXTMOD))
166 166
167 export srctree objtree VPATH 167 export srctree objtree VPATH
168 168
169 MKCONFIG := $(srctree)/mkconfig 169 MKCONFIG := $(srctree)/mkconfig
170 export MKCONFIG 170 export MKCONFIG
171 171
172 # Make sure CDPATH settings don't interfere 172 # Make sure CDPATH settings don't interfere
173 unexport CDPATH 173 unexport CDPATH
174 174
175 ######################################################################### 175 #########################################################################
176 176
177 HOSTARCH := $(shell uname -m | \ 177 HOSTARCH := $(shell uname -m | \
178 sed -e s/i.86/x86/ \ 178 sed -e s/i.86/x86/ \
179 -e s/sun4u/sparc64/ \ 179 -e s/sun4u/sparc64/ \
180 -e s/arm.*/arm/ \ 180 -e s/arm.*/arm/ \
181 -e s/sa110/arm/ \ 181 -e s/sa110/arm/ \
182 -e s/ppc64/powerpc/ \ 182 -e s/ppc64/powerpc/ \
183 -e s/ppc/powerpc/ \ 183 -e s/ppc/powerpc/ \
184 -e s/macppc/powerpc/\ 184 -e s/macppc/powerpc/\
185 -e s/sh.*/sh/) 185 -e s/sh.*/sh/)
186 186
187 HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]' | \ 187 HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]' | \
188 sed -e 's/\(cygwin\).*/cygwin/') 188 sed -e 's/\(cygwin\).*/cygwin/')
189 189
190 export HOSTARCH HOSTOS 190 export HOSTARCH HOSTOS
191 191
192 # Deal with colliding definitions from tcsh etc. 192 # Deal with colliding definitions from tcsh etc.
193 VENDOR= 193 VENDOR=
194 194
195 ######################################################################### 195 #########################################################################
196 196
197 # set default to nothing for native builds 197 # set default to nothing for native builds
198 ifeq ($(HOSTARCH),$(ARCH)) 198 ifeq ($(HOSTARCH),$(ARCH))
199 CROSS_COMPILE ?= 199 CROSS_COMPILE ?=
200 endif 200 endif
201 201
202 # SHELL used by kbuild 202 # SHELL used by kbuild
203 CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ 203 CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
204 else if [ -x /bin/bash ]; then echo /bin/bash; \ 204 else if [ -x /bin/bash ]; then echo /bin/bash; \
205 else echo sh; fi ; fi) 205 else echo sh; fi ; fi)
206 206
207 HOSTCC = gcc 207 HOSTCC = gcc
208 HOSTCXX = g++ 208 HOSTCXX = g++
209 HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer 209 HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
210 HOSTCXXFLAGS = -O2 210 HOSTCXXFLAGS = -O2
211 211
212 ifeq ($(HOSTOS),cygwin) 212 ifeq ($(HOSTOS),cygwin)
213 HOSTCFLAGS += -ansi 213 HOSTCFLAGS += -ansi
214 endif 214 endif
215 215
216 # Mac OS X / Darwin's C preprocessor is Apple specific. It 216 # Mac OS X / Darwin's C preprocessor is Apple specific. It
217 # generates numerous errors and warnings. We want to bypass it 217 # generates numerous errors and warnings. We want to bypass it
218 # and use GNU C's cpp. To do this we pass the -traditional-cpp 218 # and use GNU C's cpp. To do this we pass the -traditional-cpp
219 # option to the compiler. Note that the -traditional-cpp flag 219 # option to the compiler. Note that the -traditional-cpp flag
220 # DOES NOT have the same semantics as GNU C's flag, all it does 220 # DOES NOT have the same semantics as GNU C's flag, all it does
221 # is invoke the GNU preprocessor in stock ANSI/ISO C fashion. 221 # is invoke the GNU preprocessor in stock ANSI/ISO C fashion.
222 # 222 #
223 # Apple's linker is similar, thanks to the new 2 stage linking 223 # Apple's linker is similar, thanks to the new 2 stage linking
224 # multiple symbol definitions are treated as errors, hence the 224 # multiple symbol definitions are treated as errors, hence the
225 # -multiply_defined suppress option to turn off this error. 225 # -multiply_defined suppress option to turn off this error.
226 # 226 #
227 ifeq ($(HOSTOS),darwin) 227 ifeq ($(HOSTOS),darwin)
228 # get major and minor product version (e.g. '10' and '6' for Snow Leopard) 228 # get major and minor product version (e.g. '10' and '6' for Snow Leopard)
229 DARWIN_MAJOR_VERSION = $(shell sw_vers -productVersion | cut -f 1 -d '.') 229 DARWIN_MAJOR_VERSION = $(shell sw_vers -productVersion | cut -f 1 -d '.')
230 DARWIN_MINOR_VERSION = $(shell sw_vers -productVersion | cut -f 2 -d '.') 230 DARWIN_MINOR_VERSION = $(shell sw_vers -productVersion | cut -f 2 -d '.')
231 231
232 os_x_before = $(shell if [ $(DARWIN_MAJOR_VERSION) -le $(1) -a \ 232 os_x_before = $(shell if [ $(DARWIN_MAJOR_VERSION) -le $(1) -a \
233 $(DARWIN_MINOR_VERSION) -le $(2) ] ; then echo "$(3)"; else echo "$(4)"; fi ;) 233 $(DARWIN_MINOR_VERSION) -le $(2) ] ; then echo "$(3)"; else echo "$(4)"; fi ;)
234 234
235 # Snow Leopards build environment has no longer restrictions as described above 235 # Snow Leopards build environment has no longer restrictions as described above
236 HOSTCC = $(call os_x_before, 10, 5, "cc", "gcc") 236 HOSTCC = $(call os_x_before, 10, 5, "cc", "gcc")
237 HOSTCFLAGS += $(call os_x_before, 10, 4, "-traditional-cpp") 237 HOSTCFLAGS += $(call os_x_before, 10, 4, "-traditional-cpp")
238 HOSTLDFLAGS += $(call os_x_before, 10, 5, "-multiply_defined suppress") 238 HOSTLDFLAGS += $(call os_x_before, 10, 5, "-multiply_defined suppress")
239 endif 239 endif
240 240
241 # Decide whether to build built-in, modular, or both. 241 # Decide whether to build built-in, modular, or both.
242 # Normally, just do built-in. 242 # Normally, just do built-in.
243 243
244 KBUILD_MODULES := 244 KBUILD_MODULES :=
245 KBUILD_BUILTIN := 1 245 KBUILD_BUILTIN := 1
246 246
247 # If we have only "make modules", don't compile built-in objects. 247 # If we have only "make modules", don't compile built-in objects.
248 # When we're building modules with modversions, we need to consider 248 # When we're building modules with modversions, we need to consider
249 # the built-in objects during the descend as well, in order to 249 # the built-in objects during the descend as well, in order to
250 # make sure the checksums are up to date before we record them. 250 # make sure the checksums are up to date before we record them.
251 251
252 ifeq ($(MAKECMDGOALS),modules) 252 ifeq ($(MAKECMDGOALS),modules)
253 KBUILD_BUILTIN := $(if $(CONFIG_MODVERSIONS),1) 253 KBUILD_BUILTIN := $(if $(CONFIG_MODVERSIONS),1)
254 endif 254 endif
255 255
256 # If we have "make <whatever> modules", compile modules 256 # If we have "make <whatever> modules", compile modules
257 # in addition to whatever we do anyway. 257 # in addition to whatever we do anyway.
258 # Just "make" or "make all" shall build modules as well 258 # Just "make" or "make all" shall build modules as well
259 259
260 # U-Boot does not need modules 260 # U-Boot does not need modules
261 #ifneq ($(filter all _all modules,$(MAKECMDGOALS)),) 261 #ifneq ($(filter all _all modules,$(MAKECMDGOALS)),)
262 # KBUILD_MODULES := 1 262 # KBUILD_MODULES := 1
263 #endif 263 #endif
264 264
265 #ifeq ($(MAKECMDGOALS),) 265 #ifeq ($(MAKECMDGOALS),)
266 # KBUILD_MODULES := 1 266 # KBUILD_MODULES := 1
267 #endif 267 #endif
268 268
269 export KBUILD_MODULES KBUILD_BUILTIN 269 export KBUILD_MODULES KBUILD_BUILTIN
270 export KBUILD_CHECKSRC KBUILD_SRC KBUILD_EXTMOD 270 export KBUILD_CHECKSRC KBUILD_SRC KBUILD_EXTMOD
271 271
272 # Beautify output 272 # Beautify output
273 # --------------------------------------------------------------------------- 273 # ---------------------------------------------------------------------------
274 # 274 #
275 # Normally, we echo the whole command before executing it. By making 275 # Normally, we echo the whole command before executing it. By making
276 # that echo $($(quiet)$(cmd)), we now have the possibility to set 276 # that echo $($(quiet)$(cmd)), we now have the possibility to set
277 # $(quiet) to choose other forms of output instead, e.g. 277 # $(quiet) to choose other forms of output instead, e.g.
278 # 278 #
279 # quiet_cmd_cc_o_c = Compiling $(RELDIR)/$@ 279 # quiet_cmd_cc_o_c = Compiling $(RELDIR)/$@
280 # cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $< 280 # cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $<
281 # 281 #
282 # If $(quiet) is empty, the whole command will be printed. 282 # If $(quiet) is empty, the whole command will be printed.
283 # If it is set to "quiet_", only the short version will be printed. 283 # If it is set to "quiet_", only the short version will be printed.
284 # If it is set to "silent_", nothing will be printed at all, since 284 # If it is set to "silent_", nothing will be printed at all, since
285 # the variable $(silent_cmd_cc_o_c) doesn't exist. 285 # the variable $(silent_cmd_cc_o_c) doesn't exist.
286 # 286 #
287 # A simple variant is to prefix commands with $(Q) - that's useful 287 # A simple variant is to prefix commands with $(Q) - that's useful
288 # for commands that shall be hidden in non-verbose mode. 288 # for commands that shall be hidden in non-verbose mode.
289 # 289 #
290 # $(Q)ln $@ :< 290 # $(Q)ln $@ :<
291 # 291 #
292 # If KBUILD_VERBOSE equals 0 then the above command will be hidden. 292 # If KBUILD_VERBOSE equals 0 then the above command will be hidden.
293 # If KBUILD_VERBOSE equals 1 then the above command is displayed. 293 # If KBUILD_VERBOSE equals 1 then the above command is displayed.
294 294
295 ifeq ($(KBUILD_VERBOSE),1) 295 ifeq ($(KBUILD_VERBOSE),1)
296 quiet = 296 quiet =
297 Q = 297 Q =
298 else 298 else
299 quiet=quiet_ 299 quiet=quiet_
300 Q = @ 300 Q = @
301 endif 301 endif
302 302
303 # If the user is running make -s (silent mode), suppress echoing of 303 # If the user is running make -s (silent mode), suppress echoing of
304 # commands 304 # commands
305 305
306 ifneq ($(filter 4.%,$(MAKE_VERSION)),) # make-4 306 ifneq ($(filter 4.%,$(MAKE_VERSION)),) # make-4
307 ifneq ($(filter %s ,$(firstword x$(MAKEFLAGS))),) 307 ifneq ($(filter %s ,$(firstword x$(MAKEFLAGS))),)
308 quiet=silent_ 308 quiet=silent_
309 endif 309 endif
310 else # make-3.8x 310 else # make-3.8x
311 ifneq ($(filter s% -s%,$(MAKEFLAGS)),) 311 ifneq ($(filter s% -s%,$(MAKEFLAGS)),)
312 quiet=silent_ 312 quiet=silent_
313 endif 313 endif
314 endif 314 endif
315 315
316 export quiet Q KBUILD_VERBOSE 316 export quiet Q KBUILD_VERBOSE
317 317
318 # Look for make include files relative to root of kernel src 318 # Look for make include files relative to root of kernel src
319 MAKEFLAGS += --include-dir=$(srctree) 319 MAKEFLAGS += --include-dir=$(srctree)
320 320
321 # We need some generic definitions (do not try to remake the file). 321 # We need some generic definitions (do not try to remake the file).
322 $(srctree)/scripts/Kbuild.include: ; 322 $(srctree)/scripts/Kbuild.include: ;
323 include $(srctree)/scripts/Kbuild.include 323 include $(srctree)/scripts/Kbuild.include
324 324
325 # Make variables (CC, etc...) 325 # Make variables (CC, etc...)
326 326
327 AS = $(CROSS_COMPILE)as 327 AS = $(CROSS_COMPILE)as
328 # Always use GNU ld 328 # Always use GNU ld
329 ifneq ($(shell $(CROSS_COMPILE)ld.bfd -v 2> /dev/null),) 329 ifneq ($(shell $(CROSS_COMPILE)ld.bfd -v 2> /dev/null),)
330 LD = $(CROSS_COMPILE)ld.bfd 330 LD = $(CROSS_COMPILE)ld.bfd
331 else 331 else
332 LD = $(CROSS_COMPILE)ld 332 LD = $(CROSS_COMPILE)ld
333 endif 333 endif
334 CC = $(CROSS_COMPILE)gcc 334 CC = $(CROSS_COMPILE)gcc
335 CPP = $(CC) -E 335 CPP = $(CC) -E
336 AR = $(CROSS_COMPILE)ar 336 AR = $(CROSS_COMPILE)ar
337 NM = $(CROSS_COMPILE)nm 337 NM = $(CROSS_COMPILE)nm
338 LDR = $(CROSS_COMPILE)ldr 338 LDR = $(CROSS_COMPILE)ldr
339 STRIP = $(CROSS_COMPILE)strip 339 STRIP = $(CROSS_COMPILE)strip
340 OBJCOPY = $(CROSS_COMPILE)objcopy 340 OBJCOPY = $(CROSS_COMPILE)objcopy
341 OBJDUMP = $(CROSS_COMPILE)objdump 341 OBJDUMP = $(CROSS_COMPILE)objdump
342 AWK = awk 342 AWK = awk
343 PERL = perl 343 PERL = perl
344 DTC = dtc 344 DTC = dtc
345 CHECK = sparse 345 CHECK = sparse
346 346
347 CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \ 347 CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \
348 -Wbitwise -Wno-return-void -D__CHECK_ENDIAN__ $(CF) 348 -Wbitwise -Wno-return-void -D__CHECK_ENDIAN__ $(CF)
349 349
350 KBUILD_CPPFLAGS := -D__KERNEL__ 350 KBUILD_CPPFLAGS := -D__KERNEL__
351 351
352 KBUILD_CFLAGS := -Wall -Wstrict-prototypes \ 352 KBUILD_CFLAGS := -Wall -Wstrict-prototypes \
353 -Wno-format-security \ 353 -Wno-format-security \
354 -fno-builtin -ffreestanding 354 -fno-builtin -ffreestanding
355 KBUILD_AFLAGS := -D__ASSEMBLY__ 355 KBUILD_AFLAGS := -D__ASSEMBLY__
356 356
357 # Read UBOOTRELEASE from include/config/uboot.release (if it exists) 357 # Read UBOOTRELEASE from include/config/uboot.release (if it exists)
358 UBOOTRELEASE = $(shell cat include/config/uboot.release 2> /dev/null) 358 UBOOTRELEASE = $(shell cat include/config/uboot.release 2> /dev/null)
359 UBOOTVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION) 359 UBOOTVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
360 360
361 export VERSION PATCHLEVEL SUBLEVEL UBOOTRELEASE UBOOTVERSION 361 export VERSION PATCHLEVEL SUBLEVEL UBOOTRELEASE UBOOTVERSION
362 export ARCH CPU BOARD VENDOR SOC CPUDIR BOARDDIR 362 export ARCH CPU BOARD VENDOR SOC CPUDIR BOARDDIR
363 export CONFIG_SHELL HOSTCC HOSTCFLAGS HOSTLDFLAGS CROSS_COMPILE AS LD CC 363 export CONFIG_SHELL HOSTCC HOSTCFLAGS HOSTLDFLAGS CROSS_COMPILE AS LD CC
364 export CPP AR NM LDR STRIP OBJCOPY OBJDUMP 364 export CPP AR NM LDR STRIP OBJCOPY OBJDUMP
365 export MAKE AWK PERL 365 export MAKE AWK PERL
366 export HOSTCXX HOSTCXXFLAGS DTC CHECK CHECKFLAGS 366 export HOSTCXX HOSTCXXFLAGS DTC CHECK CHECKFLAGS
367 367
368 export KBUILD_CPPFLAGS NOSTDINC_FLAGS UBOOTINCLUDE OBJCOPYFLAGS LDFLAGS 368 export KBUILD_CPPFLAGS NOSTDINC_FLAGS UBOOTINCLUDE OBJCOPYFLAGS LDFLAGS
369 export KBUILD_CFLAGS KBUILD_AFLAGS 369 export KBUILD_CFLAGS KBUILD_AFLAGS
370 370
371 # When compiling out-of-tree modules, put MODVERDIR in the module 371 # When compiling out-of-tree modules, put MODVERDIR in the module
372 # tree rather than in the kernel tree. The kernel tree might 372 # tree rather than in the kernel tree. The kernel tree might
373 # even be read-only. 373 # even be read-only.
374 export MODVERDIR := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/).tmp_versions 374 export MODVERDIR := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/).tmp_versions
375 375
376 # Files to ignore in find ... statements 376 # Files to ignore in find ... statements
377 377
378 export RCS_FIND_IGNORE := \( -name SCCS -o -name BitKeeper -o -name .svn -o \ 378 export RCS_FIND_IGNORE := \( -name SCCS -o -name BitKeeper -o -name .svn -o \
379 -name CVS -o -name .pc -o -name .hg -o -name .git \) \ 379 -name CVS -o -name .pc -o -name .hg -o -name .git \) \
380 -prune -o 380 -prune -o
381 export RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn \ 381 export RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn \
382 --exclude CVS --exclude .pc --exclude .hg --exclude .git 382 --exclude CVS --exclude .pc --exclude .hg --exclude .git
383 383
384 # =========================================================================== 384 # ===========================================================================
385 # Rules shared between *config targets and build targets 385 # Rules shared between *config targets and build targets
386 386
387 # Basic helpers built in scripts/ 387 # Basic helpers built in scripts/
388 PHONY += scripts_basic 388 PHONY += scripts_basic
389 scripts_basic: 389 scripts_basic:
390 $(Q)$(MAKE) $(build)=scripts/basic 390 $(Q)$(MAKE) $(build)=scripts/basic
391 $(Q)rm -f .tmp_quiet_recordmcount 391 $(Q)rm -f .tmp_quiet_recordmcount
392 392
393 # To avoid any implicit rule to kick in, define an empty command. 393 # To avoid any implicit rule to kick in, define an empty command.
394 scripts/basic/%: scripts_basic ; 394 scripts/basic/%: scripts_basic ;
395 395
396 PHONY += outputmakefile 396 PHONY += outputmakefile
397 # outputmakefile generates a Makefile in the output directory, if using a 397 # outputmakefile generates a Makefile in the output directory, if using a
398 # separate output directory. This allows convenient use of make in the 398 # separate output directory. This allows convenient use of make in the
399 # output directory. 399 # output directory.
400 outputmakefile: 400 outputmakefile:
401 ifneq ($(KBUILD_SRC),) 401 ifneq ($(KBUILD_SRC),)
402 $(Q)ln -fsn $(srctree) source 402 $(Q)ln -fsn $(srctree) source
403 $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile \ 403 $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile \
404 $(srctree) $(objtree) $(VERSION) $(PATCHLEVEL) 404 $(srctree) $(objtree) $(VERSION) $(PATCHLEVEL)
405 endif 405 endif
406 406
407 # To make sure we do not include .config for any of the *config targets 407 # To make sure we do not include .config for any of the *config targets
408 # catch them early, and hand them over to scripts/kconfig/Makefile 408 # catch them early, and hand them over to scripts/kconfig/Makefile
409 # It is allowed to specify more targets when calling make, including 409 # It is allowed to specify more targets when calling make, including
410 # mixing *config targets and build targets. 410 # mixing *config targets and build targets.
411 # For example 'make oldconfig all'. 411 # For example 'make oldconfig all'.
412 # Detect when mixed targets is specified, and make a second invocation 412 # Detect when mixed targets is specified, and make a second invocation
413 # of make so .config is not included in this case either (for *config). 413 # of make so .config is not included in this case either (for *config).
414 414
415 version_h := include/generated/version_autogenerated.h 415 version_h := include/generated/version_autogenerated.h
416 timestamp_h := include/generated/timestamp_autogenerated.h 416 timestamp_h := include/generated/timestamp_autogenerated.h
417 417
418 no-dot-config-targets := clean clobber mrproper distclean \ 418 no-dot-config-targets := clean clobber mrproper distclean \
419 help %docs check% coccicheck \ 419 help %docs check% coccicheck \
420 ubootversion backup tools-only 420 ubootversion backup tools-only
421 421
422 config-targets := 0 422 config-targets := 0
423 mixed-targets := 0 423 mixed-targets := 0
424 dot-config := 1 424 dot-config := 1
425 425
426 ifneq ($(filter $(no-dot-config-targets), $(MAKECMDGOALS)),) 426 ifneq ($(filter $(no-dot-config-targets), $(MAKECMDGOALS)),)
427 ifeq ($(filter-out $(no-dot-config-targets), $(MAKECMDGOALS)),) 427 ifeq ($(filter-out $(no-dot-config-targets), $(MAKECMDGOALS)),)
428 dot-config := 0 428 dot-config := 0
429 endif 429 endif
430 endif 430 endif
431 431
432 ifeq ($(KBUILD_EXTMOD),) 432 ifeq ($(KBUILD_EXTMOD),)
433 ifneq ($(filter config %config,$(MAKECMDGOALS)),) 433 ifneq ($(filter config %config,$(MAKECMDGOALS)),)
434 config-targets := 1 434 config-targets := 1
435 ifneq ($(filter-out config %config,$(MAKECMDGOALS)),) 435 ifneq ($(filter-out config %config,$(MAKECMDGOALS)),)
436 mixed-targets := 1 436 mixed-targets := 1
437 endif 437 endif
438 endif 438 endif
439 endif 439 endif
440 440
441 ifeq ($(mixed-targets),1) 441 ifeq ($(mixed-targets),1)
442 # =========================================================================== 442 # ===========================================================================
443 # We're called with mixed targets (*config and build targets). 443 # We're called with mixed targets (*config and build targets).
444 # Handle them one by one. 444 # Handle them one by one.
445 445
446 PHONY += $(MAKECMDGOALS) build-one-by-one 446 PHONY += $(MAKECMDGOALS) build-one-by-one
447 447
448 $(MAKECMDGOALS): build-one-by-one 448 $(MAKECMDGOALS): build-one-by-one
449 @: 449 @:
450 450
451 build-one-by-one: 451 build-one-by-one:
452 $(Q)set -e; \ 452 $(Q)set -e; \
453 for i in $(MAKECMDGOALS); do \ 453 for i in $(MAKECMDGOALS); do \
454 $(MAKE) -f $(srctree)/Makefile $$i; \ 454 $(MAKE) -f $(srctree)/Makefile $$i; \
455 done 455 done
456 456
457 else 457 else
458 ifeq ($(config-targets),1) 458 ifeq ($(config-targets),1)
459 # =========================================================================== 459 # ===========================================================================
460 # *config targets only - make sure prerequisites are updated, and descend 460 # *config targets only - make sure prerequisites are updated, and descend
461 # in scripts/kconfig to make the *config target 461 # in scripts/kconfig to make the *config target
462 462
463 # Read arch specific Makefile to set KBUILD_DEFCONFIG as needed. 463 # Read arch specific Makefile to set KBUILD_DEFCONFIG as needed.
464 # KBUILD_DEFCONFIG may point out an alternative default configuration 464 # KBUILD_DEFCONFIG may point out an alternative default configuration
465 # used for 'make defconfig' 465 # used for 'make defconfig'
466 466
467 %_config:: outputmakefile 467 %_config:: outputmakefile
468 @$(MKCONFIG) -A $(@:_config=) 468 @$(MKCONFIG) -A $(@:_config=)
469 469
470 else 470 else
471 # =========================================================================== 471 # ===========================================================================
472 # Build targets only - this includes vmlinux, arch specific targets, clean 472 # Build targets only - this includes vmlinux, arch specific targets, clean
473 # targets and others. In general all targets except *config targets. 473 # targets and others. In general all targets except *config targets.
474 474
475 # load ARCH, BOARD, and CPU configuration 475 # load ARCH, BOARD, and CPU configuration
476 -include include/config.mk 476 -include include/config.mk
477 477
478 ifeq ($(dot-config),1) 478 ifeq ($(dot-config),1)
479 # Read in config 479 # Read in config
480 -include include/autoconf.mk 480 -include include/autoconf.mk
481 -include include/autoconf.mk.dep 481 -include include/autoconf.mk.dep
482 482
483 # load other configuration 483 # load other configuration
484 include $(srctree)/config.mk 484 include $(srctree)/config.mk
485 485
486 ifeq ($(wildcard include/config.mk),) 486 ifeq ($(wildcard include/config.mk),)
487 $(error "System not configured - see README") 487 $(error "System not configured - see README")
488 endif 488 endif
489 489
490 # If board code explicitly specified LDSCRIPT or CONFIG_SYS_LDSCRIPT, use 490 # If board code explicitly specified LDSCRIPT or CONFIG_SYS_LDSCRIPT, use
491 # that (or fail if absent). Otherwise, search for a linker script in a 491 # that (or fail if absent). Otherwise, search for a linker script in a
492 # standard location. 492 # standard location.
493 493
494 ifndef LDSCRIPT 494 ifndef LDSCRIPT
495 #LDSCRIPT := $(srctree)/board/$(BOARDDIR)/u-boot.lds.debug 495 #LDSCRIPT := $(srctree)/board/$(BOARDDIR)/u-boot.lds.debug
496 ifdef CONFIG_SYS_LDSCRIPT 496 ifdef CONFIG_SYS_LDSCRIPT
497 # need to strip off double quotes 497 # need to strip off double quotes
498 LDSCRIPT := $(srctree)/$(CONFIG_SYS_LDSCRIPT:"%"=%) 498 LDSCRIPT := $(srctree)/$(CONFIG_SYS_LDSCRIPT:"%"=%)
499 endif 499 endif
500 endif 500 endif
501 501
502 # If there is no specified link script, we look in a number of places for it 502 # If there is no specified link script, we look in a number of places for it
503 ifndef LDSCRIPT 503 ifndef LDSCRIPT
504 ifeq ($(wildcard $(LDSCRIPT)),) 504 ifeq ($(wildcard $(LDSCRIPT)),)
505 LDSCRIPT := $(srctree)/board/$(BOARDDIR)/u-boot.lds 505 LDSCRIPT := $(srctree)/board/$(BOARDDIR)/u-boot.lds
506 endif 506 endif
507 ifeq ($(wildcard $(LDSCRIPT)),) 507 ifeq ($(wildcard $(LDSCRIPT)),)
508 LDSCRIPT := $(srctree)/$(CPUDIR)/u-boot.lds 508 LDSCRIPT := $(srctree)/$(CPUDIR)/u-boot.lds
509 endif 509 endif
510 ifeq ($(wildcard $(LDSCRIPT)),) 510 ifeq ($(wildcard $(LDSCRIPT)),)
511 LDSCRIPT := $(srctree)/arch/$(ARCH)/cpu/u-boot.lds 511 LDSCRIPT := $(srctree)/arch/$(ARCH)/cpu/u-boot.lds
512 endif 512 endif
513 endif 513 endif
514 514
515 else 515 else
516 516
517 517
518 endif # $(dot-config) 518 endif # $(dot-config)
519 519
520 KBUILD_CFLAGS += -Os #-fomit-frame-pointer 520 KBUILD_CFLAGS += -Os #-fomit-frame-pointer
521 521
522 ifdef BUILD_TAG 522 ifdef BUILD_TAG
523 KBUILD_CFLAGS += -DBUILD_TAG='"$(BUILD_TAG)"' 523 KBUILD_CFLAGS += -DBUILD_TAG='"$(BUILD_TAG)"'
524 endif 524 endif
525 525
526 KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector) 526 KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector)
527 527
528 KBUILD_CFLAGS += -g 528 KBUILD_CFLAGS += -g
529 # $(KBUILD_AFLAGS) sets -g, which causes gcc to pass a suitable -g<format> 529 # $(KBUILD_AFLAGS) sets -g, which causes gcc to pass a suitable -g<format>
530 # option to the assembler. 530 # option to the assembler.
531 KBUILD_AFLAGS += -g 531 KBUILD_AFLAGS += -g
532 532
533 # Report stack usage if supported 533 # Report stack usage if supported
534 ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-stack-usage.sh $(CC)),y) 534 ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-stack-usage.sh $(CC)),y)
535 KBUILD_CFLAGS += -fstack-usage 535 KBUILD_CFLAGS += -fstack-usage
536 endif 536 endif
537 537
538 KBUILD_CFLAGS += $(call cc-option,-Wno-format-nonliteral) 538 KBUILD_CFLAGS += $(call cc-option,-Wno-format-nonliteral)
539 539
540 # turn jbsr into jsr for m68k 540 # turn jbsr into jsr for m68k
541 ifeq ($(ARCH),m68k) 541 ifeq ($(ARCH),m68k)
542 ifeq ($(findstring 3.4,$(shell $(CC) --version)),3.4) 542 ifeq ($(findstring 3.4,$(shell $(CC) --version)),3.4)
543 KBUILD_AFLAGS += -Wa,-gstabs,-S 543 KBUILD_AFLAGS += -Wa,-gstabs,-S
544 endif 544 endif
545 endif 545 endif
546 546
547 # Prohibit date/time macros, which would make the build non-deterministic 547 # Prohibit date/time macros, which would make the build non-deterministic
548 KBUILD_CFLAGS += $(call cc-option,-Werror=date-time) 548 KBUILD_CFLAGS += $(call cc-option,-Werror=date-time)
549 549
550 ifneq ($(CONFIG_SYS_TEXT_BASE),) 550 ifneq ($(CONFIG_SYS_TEXT_BASE),)
551 KBUILD_CPPFLAGS += -DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE) 551 KBUILD_CPPFLAGS += -DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE)
552 endif 552 endif
553 553
554 export CONFIG_SYS_TEXT_BASE 554 export CONFIG_SYS_TEXT_BASE
555 555
556 # Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments 556 # Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments
557 KBUILD_CPPFLAGS += $(KCPPFLAGS) 557 KBUILD_CPPFLAGS += $(KCPPFLAGS)
558 KBUILD_AFLAGS += $(KAFLAGS) 558 KBUILD_AFLAGS += $(KAFLAGS)
559 KBUILD_CFLAGS += $(KCFLAGS) 559 KBUILD_CFLAGS += $(KCFLAGS)
560 560
561 # Use UBOOTINCLUDE when you must reference the include/ directory. 561 # Use UBOOTINCLUDE when you must reference the include/ directory.
562 # Needed to be compatible with the O= option 562 # Needed to be compatible with the O= option
563 UBOOTINCLUDE := \ 563 UBOOTINCLUDE := \
564 -Iinclude \ 564 -Iinclude \
565 $(if $(KBUILD_SRC), -I$(srctree)/include) \ 565 $(if $(KBUILD_SRC), -I$(srctree)/include) \
566 -I$(srctree)/arch/$(ARCH)/include 566 -I$(srctree)/arch/$(ARCH)/include
567 567
568 NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) 568 NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
569 CHECKFLAGS += $(NOSTDINC_FLAGS) 569 CHECKFLAGS += $(NOSTDINC_FLAGS)
570 570
571 # FIX ME 571 # FIX ME
572 cpp_flags := $(KBUILD_CPPFLAGS) $(PLATFORM_CPPFLAGS) $(UBOOTINCLUDE) \ 572 cpp_flags := $(KBUILD_CPPFLAGS) $(PLATFORM_CPPFLAGS) $(UBOOTINCLUDE) \
573 $(NOSTDINC_FLAGS) 573 $(NOSTDINC_FLAGS)
574 c_flags := $(KBUILD_CFLAGS) $(cpp_flags) 574 c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
575 575
576 ######################################################################### 576 #########################################################################
577 # U-Boot objects....order is important (i.e. start must be first) 577 # U-Boot objects....order is important (i.e. start must be first)
578 578
579 head-y := $(CPUDIR)/start.o 579 head-y := $(CPUDIR)/start.o
580 head-$(CONFIG_4xx) += arch/powerpc/cpu/ppc4xx/resetvec.o 580 head-$(CONFIG_4xx) += arch/powerpc/cpu/ppc4xx/resetvec.o
581 head-$(CONFIG_MPC85xx) += arch/powerpc/cpu/mpc85xx/resetvec.o 581 head-$(CONFIG_MPC85xx) += arch/powerpc/cpu/mpc85xx/resetvec.o
582 582
583 HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n) 583 HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
584 584
585 libs-y += lib/ 585 libs-y += lib/
586 libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/ 586 libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
587 libs-y += $(CPUDIR)/ 587 libs-y += $(CPUDIR)/
588 ifdef SOC 588 ifdef SOC
589 libs-y += $(CPUDIR)/$(SOC)/ 589 libs-y += $(CPUDIR)/$(SOC)/
590 endif 590 endif
591 libs-$(CONFIG_OF_EMBED) += dts/ 591 libs-$(CONFIG_OF_EMBED) += dts/
592 libs-y += arch/$(ARCH)/lib/ 592 libs-y += arch/$(ARCH)/lib/
593 libs-y += fs/ 593 libs-y += fs/
594 libs-y += net/ 594 libs-y += net/
595 libs-y += disk/ 595 libs-y += disk/
596 libs-y += drivers/ 596 libs-y += drivers/
597 libs-$(CONFIG_DM) += drivers/core/ 597 libs-$(CONFIG_DM) += drivers/core/
598 libs-y += drivers/dma/ 598 libs-y += drivers/dma/
599 libs-y += drivers/gpio/ 599 libs-y += drivers/gpio/
600 libs-y += drivers/i2c/ 600 libs-y += drivers/i2c/
601 libs-y += drivers/input/ 601 libs-y += drivers/input/
602 libs-y += drivers/mmc/ 602 libs-y += drivers/mmc/
603 libs-y += drivers/mtd/ 603 libs-y += drivers/mtd/
604 libs-$(CONFIG_CMD_NAND) += drivers/mtd/nand/ 604 libs-$(CONFIG_CMD_NAND) += drivers/mtd/nand/
605 libs-y += drivers/mtd/onenand/ 605 libs-y += drivers/mtd/onenand/
606 libs-$(CONFIG_CMD_UBI) += drivers/mtd/ubi/ 606 libs-$(CONFIG_CMD_UBI) += drivers/mtd/ubi/
607 libs-y += drivers/mtd/spi/ 607 libs-y += drivers/mtd/spi/
608 libs-y += drivers/net/ 608 libs-y += drivers/net/
609 libs-y += drivers/net/phy/ 609 libs-y += drivers/net/phy/
610 libs-y += drivers/pci/ 610 libs-y += drivers/pci/
611 libs-y += drivers/power/ \ 611 libs-y += drivers/power/ \
612 drivers/power/fuel_gauge/ \ 612 drivers/power/fuel_gauge/ \
613 drivers/power/mfd/ \ 613 drivers/power/mfd/ \
614 drivers/power/pmic/ \ 614 drivers/power/pmic/ \
615 drivers/power/battery/ 615 drivers/power/battery/
616 libs-y += drivers/spi/ 616 libs-y += drivers/spi/
617 libs-$(CONFIG_FMAN_ENET) += drivers/net/fm/ 617 libs-$(CONFIG_FMAN_ENET) += drivers/net/fm/
618 libs-$(CONFIG_SYS_FSL_DDR) += drivers/ddr/fsl/ 618 libs-$(CONFIG_SYS_FSL_DDR) += drivers/ddr/fsl/
619 libs-y += drivers/serial/ 619 libs-y += drivers/serial/
620 libs-y += drivers/usb/eth/ 620 libs-y += drivers/usb/eth/
621 libs-y += drivers/usb/gadget/ 621 libs-y += drivers/usb/gadget/
622 libs-y += drivers/usb/host/ 622 libs-y += drivers/usb/host/
623 libs-y += drivers/usb/musb/ 623 libs-y += drivers/usb/musb/
624 libs-y += drivers/usb/musb-new/ 624 libs-y += drivers/usb/musb-new/
625 libs-y += drivers/usb/phy/ 625 libs-y += drivers/usb/phy/
626 libs-y += drivers/usb/ulpi/ 626 libs-y += drivers/usb/ulpi/
627 libs-y += common/ 627 libs-y += common/
628 libs-y += lib/libfdt/ 628 libs-y += lib/libfdt/
629 libs-$(CONFIG_API) += api/ 629 libs-$(CONFIG_API) += api/
630 libs-$(CONFIG_HAS_POST) += post/ 630 libs-$(CONFIG_HAS_POST) += post/
631 libs-y += test/ 631 libs-y += test/
632 libs-y += test/dm/ 632 libs-y += test/dm/
633 libs-$(CONFIG_DM_DEMO) += drivers/demo/ 633 libs-$(CONFIG_DM_DEMO) += drivers/demo/
634 634
635 ifneq (,$(filter $(SOC), mx25 mx27 mx5 mx6 mx31 mx35 mxs vf610)) 635 ifneq (,$(filter $(SOC), mx25 mx27 mx5 mx6 mx31 mx35 mxs vf610))
636 libs-y += arch/$(ARCH)/imx-common/ 636 libs-y += arch/$(ARCH)/imx-common/
637 endif 637 endif
638 638
639 libs-$(CONFIG_ARM) += arch/arm/cpu/ 639 libs-$(CONFIG_ARM) += arch/arm/cpu/
640 libs-$(CONFIG_PPC) += arch/powerpc/cpu/ 640 libs-$(CONFIG_PPC) += arch/powerpc/cpu/
641 641
642 libs-y += $(if $(BOARDDIR),board/$(BOARDDIR)/) 642 libs-y += $(if $(BOARDDIR),board/$(BOARDDIR)/)
643 643
644 libs-y := $(sort $(libs-y)) 644 libs-y := $(sort $(libs-y))
645 645
646 u-boot-dirs := $(patsubst %/,%,$(filter %/, $(libs-y))) tools examples 646 u-boot-dirs := $(patsubst %/,%,$(filter %/, $(libs-y))) tools examples
647 647
648 u-boot-alldirs := $(sort $(u-boot-dirs) $(patsubst %/,%,$(filter %/, $(libs-)))) 648 u-boot-alldirs := $(sort $(u-boot-dirs) $(patsubst %/,%,$(filter %/, $(libs-))))
649 649
650 libs-y := $(patsubst %/, %/built-in.o, $(libs-y)) 650 libs-y := $(patsubst %/, %/built-in.o, $(libs-y))
651 651
652 u-boot-init := $(head-y) 652 u-boot-init := $(head-y)
653 u-boot-main := $(libs-y) 653 u-boot-main := $(libs-y)
654 654
655 655
656 # Add GCC lib 656 # Add GCC lib
657 ifdef CONFIG_USE_PRIVATE_LIBGCC 657 ifdef CONFIG_USE_PRIVATE_LIBGCC
658 ifeq ($(CONFIG_USE_PRIVATE_LIBGCC),y) 658 ifeq ($(CONFIG_USE_PRIVATE_LIBGCC),y)
659 PLATFORM_LIBGCC = arch/$(ARCH)/lib/lib.a 659 PLATFORM_LIBGCC = arch/$(ARCH)/lib/lib.a
660 else 660 else
661 PLATFORM_LIBGCC = -L $(CONFIG_USE_PRIVATE_LIBGCC) -lgcc 661 PLATFORM_LIBGCC = -L $(CONFIG_USE_PRIVATE_LIBGCC) -lgcc
662 endif 662 endif
663 else 663 else
664 PLATFORM_LIBGCC := -L $(shell dirname `$(CC) $(c_flags) -print-libgcc-file-name`) -lgcc 664 PLATFORM_LIBGCC := -L $(shell dirname `$(CC) $(c_flags) -print-libgcc-file-name`) -lgcc
665 endif 665 endif
666 PLATFORM_LIBS += $(PLATFORM_LIBGCC) 666 PLATFORM_LIBS += $(PLATFORM_LIBGCC)
667 export PLATFORM_LIBS 667 export PLATFORM_LIBS
668 export PLATFORM_LIBGCC 668 export PLATFORM_LIBGCC
669 669
670 # Special flags for CPP when processing the linker script. 670 # Special flags for CPP when processing the linker script.
671 # Pass the version down so we can handle backwards compatibility 671 # Pass the version down so we can handle backwards compatibility
672 # on the fly. 672 # on the fly.
673 LDPPFLAGS += \ 673 LDPPFLAGS += \
674 -include $(srctree)/include/u-boot/u-boot.lds.h \ 674 -include $(srctree)/include/u-boot/u-boot.lds.h \
675 -DCPUDIR=$(CPUDIR) \ 675 -DCPUDIR=$(CPUDIR) \
676 $(shell $(LD) --version | \ 676 $(shell $(LD) --version | \
677 sed -ne 's/GNU ld version \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/-DLD_MAJOR=\1 -DLD_MINOR=\2/p') 677 sed -ne 's/GNU ld version \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/-DLD_MAJOR=\1 -DLD_MINOR=\2/p')
678 678
679 ######################################################################### 679 #########################################################################
680 ######################################################################### 680 #########################################################################
681 681
682 ifneq ($(CONFIG_BOARD_SIZE_LIMIT),) 682 ifneq ($(CONFIG_BOARD_SIZE_LIMIT),)
683 BOARD_SIZE_CHECK = \ 683 BOARD_SIZE_CHECK = \
684 @actual=`wc -c $@ | awk '{print $$1}'`; \ 684 @actual=`wc -c $@ | awk '{print $$1}'`; \
685 limit=`printf "%d" $(CONFIG_BOARD_SIZE_LIMIT)`; \ 685 limit=`printf "%d" $(CONFIG_BOARD_SIZE_LIMIT)`; \
686 if test $$actual -gt $$limit; then \ 686 if test $$actual -gt $$limit; then \
687 echo "$@ exceeds file size limit:" >&2 ; \ 687 echo "$@ exceeds file size limit:" >&2 ; \
688 echo " limit: $$limit bytes" >&2 ; \ 688 echo " limit: $$limit bytes" >&2 ; \
689 echo " actual: $$actual bytes" >&2 ; \ 689 echo " actual: $$actual bytes" >&2 ; \
690 echo " excess: $$((actual - limit)) bytes" >&2; \ 690 echo " excess: $$((actual - limit)) bytes" >&2; \
691 exit 1; \ 691 exit 1; \
692 fi 692 fi
693 else 693 else
694 BOARD_SIZE_CHECK = 694 BOARD_SIZE_CHECK =
695 endif 695 endif
696 696
697 # Statically apply RELA-style relocations (currently arm64 only) 697 # Statically apply RELA-style relocations (currently arm64 only)
698 ifneq ($(CONFIG_STATIC_RELA),) 698 ifneq ($(CONFIG_STATIC_RELA),)
699 # $(1) is u-boot ELF, $(2) is u-boot bin, $(3) is text base 699 # $(1) is u-boot ELF, $(2) is u-boot bin, $(3) is text base
700 DO_STATIC_RELA = \ 700 DO_STATIC_RELA = \
701 start=$$($(NM) $(1) | grep __rel_dyn_start | cut -f 1 -d ' '); \ 701 start=$$($(NM) $(1) | grep __rel_dyn_start | cut -f 1 -d ' '); \
702 end=$$($(NM) $(1) | grep __rel_dyn_end | cut -f 1 -d ' '); \ 702 end=$$($(NM) $(1) | grep __rel_dyn_end | cut -f 1 -d ' '); \
703 tools/relocate-rela $(2) $(3) $$start $$end 703 tools/relocate-rela $(2) $(3) $$start $$end
704 else 704 else
705 DO_STATIC_RELA = 705 DO_STATIC_RELA =
706 endif 706 endif
707 707
708 # Always append ALL so that arch config.mk's can add custom ones 708 # Always append ALL so that arch config.mk's can add custom ones
709 ALL-y += u-boot.srec u-boot.bin System.map binary_size_check 709 ALL-y += u-boot.srec u-boot.bin System.map binary_size_check
710 710
711 ALL-$(CONFIG_ONENAND_U_BOOT) += u-boot-onenand.bin 711 ALL-$(CONFIG_ONENAND_U_BOOT) += u-boot-onenand.bin
712 ifeq ($(CONFIG_SPL_FSL_PBL),y) 712 ifeq ($(CONFIG_SPL_FSL_PBL),y)
713 ALL-$(CONFIG_RAMBOOT_PBL) += u-boot-with-spl-pbl.bin 713 ALL-$(CONFIG_RAMBOOT_PBL) += u-boot-with-spl-pbl.bin
714 else 714 else
715 ALL-$(CONFIG_RAMBOOT_PBL) += u-boot.pbl 715 ALL-$(CONFIG_RAMBOOT_PBL) += u-boot.pbl
716 endif 716 endif
717 ALL-$(CONFIG_SPL) += spl/u-boot-spl.bin 717 ALL-$(CONFIG_SPL) += spl/u-boot-spl.bin
718 ALL-$(CONFIG_SPL_FRAMEWORK) += u-boot.img 718 ALL-$(CONFIG_SPL_FRAMEWORK) += u-boot.img
719 ALL-$(CONFIG_TPL) += tpl/u-boot-tpl.bin 719 ALL-$(CONFIG_TPL) += tpl/u-boot-tpl.bin
720 ALL-$(CONFIG_OF_SEPARATE) += u-boot.dtb u-boot-dtb.bin 720 ALL-$(CONFIG_OF_SEPARATE) += u-boot.dtb u-boot-dtb.bin
721 ifeq ($(CONFIG_SPL_FRAMEWORK),y) 721 ifeq ($(CONFIG_SPL_FRAMEWORK),y)
722 ALL-$(CONFIG_OF_SEPARATE) += u-boot-dtb.img 722 ALL-$(CONFIG_OF_SEPARATE) += u-boot-dtb.img
723 endif 723 endif
724 ALL-$(CONFIG_OF_HOSTFILE) += u-boot.dtb 724 ALL-$(CONFIG_OF_HOSTFILE) += u-boot.dtb
725 ifneq ($(CONFIG_SPL_TARGET),) 725 ifneq ($(CONFIG_SPL_TARGET),)
726 ALL-$(CONFIG_SPL) += $(CONFIG_SPL_TARGET:"%"=%) 726 ALL-$(CONFIG_SPL) += $(CONFIG_SPL_TARGET:"%"=%)
727 endif 727 endif
728 ALL-$(CONFIG_REMAKE_ELF) += u-boot.elf 728 ALL-$(CONFIG_REMAKE_ELF) += u-boot.elf
729 729
730 # enable combined SPL/u-boot/dtb rules for tegra 730 # enable combined SPL/u-boot/dtb rules for tegra
731 ifneq ($(CONFIG_TEGRA),) 731 ifneq ($(CONFIG_TEGRA),)
732 ifeq ($(CONFIG_SPL),y) 732 ifeq ($(CONFIG_SPL),y)
733 ifeq ($(CONFIG_OF_SEPARATE),y) 733 ifeq ($(CONFIG_OF_SEPARATE),y)
734 ALL-y += u-boot-dtb-tegra.bin 734 ALL-y += u-boot-dtb-tegra.bin
735 else 735 else
736 ALL-y += u-boot-nodtb-tegra.bin 736 ALL-y += u-boot-nodtb-tegra.bin
737 endif 737 endif
738 endif 738 endif
739 endif 739 endif
740 740
741 LDFLAGS_u-boot += $(LDFLAGS_FINAL) 741 LDFLAGS_u-boot += $(LDFLAGS_FINAL)
742 ifneq ($(CONFIG_SYS_TEXT_BASE),) 742 ifneq ($(CONFIG_SYS_TEXT_BASE),)
743 LDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE) 743 LDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE)
744 endif 744 endif
745 745
746 quiet_cmd_objcopy = OBJCOPY $@ 746 quiet_cmd_objcopy = OBJCOPY $@
747 cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@ 747 cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@
748 748
749 quiet_cmd_mkimage = MKIMAGE $@ 749 quiet_cmd_mkimage = MKIMAGE $@
750 cmd_mkimage = $(objtree)/tools/mkimage $(MKIMAGEFLAGS_$(@F)) -d $< $@ \ 750 cmd_mkimage = $(objtree)/tools/mkimage $(MKIMAGEFLAGS_$(@F)) -d $< $@ \
751 $(if $(KBUILD_VERBOSE:1=), >/dev/null) 751 $(if $(KBUILD_VERBOSE:1=), >/dev/null)
752 752
753 quiet_cmd_cat = CAT $@ 753 quiet_cmd_cat = CAT $@
754 cmd_cat = cat $(filter-out $(PHONY), $^) > $@ 754 cmd_cat = cat $(filter-out $(PHONY), $^) > $@
755 755
756 append = cat $(filter-out $< $(PHONY), $^) >> $@ 756 append = cat $(filter-out $< $(PHONY), $^) >> $@
757 757
758 quiet_cmd_pad_cat = CAT $@ 758 quiet_cmd_pad_cat = CAT $@
759 cmd_pad_cat = $(cmd_objcopy) && $(append) || rm -f $@ 759 cmd_pad_cat = $(cmd_objcopy) && $(append) || rm -f $@
760 760
761 all: $(ALL-y) 761 all: $(ALL-y)
762 762
763 PHONY += dtbs 763 PHONY += dtbs
764 dtbs dts/dt.dtb: checkdtc u-boot 764 dtbs dts/dt.dtb: checkdtc u-boot
765 $(Q)$(MAKE) $(build)=dts dtbs 765 $(Q)$(MAKE) $(build)=dts dtbs
766 766
767 u-boot-dtb.bin: u-boot.bin dts/dt.dtb FORCE 767 u-boot-dtb.bin: u-boot.bin dts/dt.dtb FORCE
768 $(call if_changed,cat) 768 $(call if_changed,cat)
769 769
770 %.imx: %.bin 770 %.imx: %.bin
771 $(Q)$(MAKE) $(build)=arch/arm/imx-common $@ 771 $(Q)$(MAKE) $(build)=arch/arm/imx-common $@
772 772
773 quiet_cmd_copy = COPY $@ 773 quiet_cmd_copy = COPY $@
774 cmd_copy = cp $< $@ 774 cmd_copy = cp $< $@
775 775
776 u-boot.dtb: dts/dt.dtb 776 u-boot.dtb: dts/dt.dtb
777 $(call cmd,copy) 777 $(call cmd,copy)
778 778
779 OBJCOPYFLAGS_u-boot.hex := -O ihex 779 OBJCOPYFLAGS_u-boot.hex := -O ihex
780 780
781 OBJCOPYFLAGS_u-boot.srec := -O srec 781 OBJCOPYFLAGS_u-boot.srec := -O srec
782 782
783 u-boot.hex u-boot.srec: u-boot FORCE 783 u-boot.hex u-boot.srec: u-boot FORCE
784 $(call if_changed,objcopy) 784 $(call if_changed,objcopy)
785 785
786 OBJCOPYFLAGS_u-boot.bin := -O binary 786 OBJCOPYFLAGS_u-boot.bin := -O binary
787 787
788 binary_size_check: u-boot.bin System.map FORCE 788 binary_size_check: u-boot.bin System.map FORCE
789 @file_size=`stat -c %s u-boot.bin` ; \ 789 @file_size=`stat -c %s u-boot.bin` ; \
790 map_size=$(shell cat System.map | \ 790 map_size=$(shell cat System.map | \
791 awk '/_image_copy_start/ {start = $$1} /_image_binary_end/ {end = $$1} END {if (start != "" && end != "") print "ibase=16; " toupper(end) " - " toupper(start)}' \ 791 awk '/_image_copy_start/ {start = $$1} /_image_binary_end/ {end = $$1} END {if (start != "" && end != "") print "ibase=16; " toupper(end) " - " toupper(start)}' \
792 | bc); \ 792 | bc); \
793 if [ "" != "$$map_size" ]; then \ 793 if [ "" != "$$map_size" ]; then \
794 if test $$map_size -ne $$file_size; then \ 794 if test $$map_size -ne $$file_size; then \
795 echo "System.map shows a binary size of $$map_size" >&2 ; \ 795 echo "System.map shows a binary size of $$map_size" >&2 ; \
796 echo " but u-boot.bin shows $$file_size" >&2 ; \ 796 echo " but u-boot.bin shows $$file_size" >&2 ; \
797 exit 1; \ 797 exit 1; \
798 fi \ 798 fi \
799 fi 799 fi
800 800
801 u-boot.bin: u-boot FORCE 801 u-boot.bin: u-boot FORCE
802 $(call if_changed,objcopy) 802 $(call if_changed,objcopy)
803 $(call DO_STATIC_RELA,$<,$@,$(CONFIG_SYS_TEXT_BASE)) 803 $(call DO_STATIC_RELA,$<,$@,$(CONFIG_SYS_TEXT_BASE))
804 $(BOARD_SIZE_CHECK) 804 $(BOARD_SIZE_CHECK)
805 805
806 u-boot.ldr: u-boot 806 u-boot.ldr: u-boot
807 $(CREATE_LDR_ENV) 807 $(CREATE_LDR_ENV)
808 $(LDR) -T $(CONFIG_BFIN_CPU) -c $@ $< $(LDR_FLAGS) 808 $(LDR) -T $(CONFIG_BFIN_CPU) -c $@ $< $(LDR_FLAGS)
809 $(BOARD_SIZE_CHECK) 809 $(BOARD_SIZE_CHECK)
810 810
811 OBJCOPYFLAGS_u-boot.ldr.hex := -I binary -O ihex 811 OBJCOPYFLAGS_u-boot.ldr.hex := -I binary -O ihex
812 812
813 OBJCOPYFLAGS_u-boot.ldr.srec := -I binary -O srec 813 OBJCOPYFLAGS_u-boot.ldr.srec := -I binary -O srec
814 814
815 u-boot.ldr.hex u-boot.ldr.srec: u-boot.ldr FORCE 815 u-boot.ldr.hex u-boot.ldr.srec: u-boot.ldr FORCE
816 $(call if_changed,objcopy) 816 $(call if_changed,objcopy)
817 817
818 # 818 #
819 # U-Boot entry point, needed for booting of full-blown U-Boot 819 # U-Boot entry point, needed for booting of full-blown U-Boot
820 # from the SPL U-Boot version. 820 # from the SPL U-Boot version.
821 # 821 #
822 ifndef CONFIG_SYS_UBOOT_START 822 ifndef CONFIG_SYS_UBOOT_START
823 CONFIG_SYS_UBOOT_START := 0 823 CONFIG_SYS_UBOOT_START := 0
824 endif 824 endif
825 825
826 MKIMAGEFLAGS_u-boot.img = -A $(ARCH) -T firmware -C none -O u-boot \ 826 MKIMAGEFLAGS_u-boot.img = -A $(ARCH) -T firmware -C none -O u-boot \
827 -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \ 827 -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
828 -n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" 828 -n "U-Boot $(UBOOTRELEASE) for $(BOARD) board"
829 829
830 MKIMAGEFLAGS_u-boot.kwb = -n $(srctree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%) \ 830 MKIMAGEFLAGS_u-boot.kwb = -n $(srctree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%) \
831 -T kwbimage -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) 831 -T kwbimage -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE)
832 832
833 MKIMAGEFLAGS_u-boot.pbl = -n $(srctree)/$(CONFIG_SYS_FSL_PBL_RCW:"%"=%) \ 833 MKIMAGEFLAGS_u-boot.pbl = -n $(srctree)/$(CONFIG_SYS_FSL_PBL_RCW:"%"=%) \
834 -R $(srctree)/$(CONFIG_SYS_FSL_PBL_PBI:"%"=%) -T pblimage 834 -R $(srctree)/$(CONFIG_SYS_FSL_PBL_PBI:"%"=%) -T pblimage
835 835
836 u-boot.img u-boot.kwb u-boot.pbl: u-boot.bin FORCE 836 u-boot.img u-boot.kwb u-boot.pbl: u-boot.bin FORCE
837 $(call if_changed,mkimage) 837 $(call if_changed,mkimage)
838 838
839 MKIMAGEFLAGS_u-boot-dtb.img = $(MKIMAGEFLAGS_u-boot.img) 839 MKIMAGEFLAGS_u-boot-dtb.img = $(MKIMAGEFLAGS_u-boot.img)
840 840
841 u-boot-dtb.img: u-boot-dtb.bin FORCE 841 u-boot-dtb.img: u-boot-dtb.bin FORCE
842 $(call if_changed,mkimage) 842 $(call if_changed,mkimage)
843 843
844 u-boot.sha1: u-boot.bin 844 u-boot.sha1: u-boot.bin
845 tools/ubsha1 u-boot.bin 845 tools/ubsha1 u-boot.bin
846 846
847 u-boot.dis: u-boot 847 u-boot.dis: u-boot
848 $(OBJDUMP) -d $< > $@ 848 $(OBJDUMP) -d $< > $@
849 849
850 ifdef CONFIG_TPL 850 ifdef CONFIG_TPL
851 SPL_PAYLOAD := tpl/u-boot-with-tpl.bin 851 SPL_PAYLOAD := tpl/u-boot-with-tpl.bin
852 else 852 else
853 SPL_PAYLOAD := u-boot.bin 853 SPL_PAYLOAD := u-boot.bin
854 endif 854 endif
855 855
856 OBJCOPYFLAGS_u-boot-with-spl.bin = -I binary -O binary \ 856 OBJCOPYFLAGS_u-boot-with-spl.bin = -I binary -O binary \
857 --pad-to=$(CONFIG_SPL_PAD_TO) 857 --pad-to=$(CONFIG_SPL_PAD_TO)
858 u-boot-with-spl.bin: spl/u-boot-spl.bin $(SPL_PAYLOAD) FORCE 858 u-boot-with-spl.bin: spl/u-boot-spl.bin $(SPL_PAYLOAD) FORCE
859 $(call if_changed,pad_cat) 859 $(call if_changed,pad_cat)
860 860
861 OBJCOPYFLAGS_u-boot-with-tpl.bin = -I binary -O binary \ 861 OBJCOPYFLAGS_u-boot-with-tpl.bin = -I binary -O binary \
862 --pad-to=$(CONFIG_TPL_PAD_TO) 862 --pad-to=$(CONFIG_TPL_PAD_TO)
863 tpl/u-boot-with-tpl.bin: tpl/u-boot-tpl.bin u-boot.bin FORCE 863 tpl/u-boot-with-tpl.bin: tpl/u-boot-tpl.bin u-boot.bin FORCE
864 $(call if_changed,pad_cat) 864 $(call if_changed,pad_cat)
865 865
866 SPL: spl/u-boot-spl.bin FORCE 866 SPL: spl/u-boot-spl.bin FORCE
867 $(Q)$(MAKE) $(build)=arch/arm/imx-common $@ 867 $(Q)$(MAKE) $(build)=arch/arm/imx-common $@
868 868
869 u-boot-with-spl.imx u-boot-with-nand-spl.imx: SPL u-boot.bin FORCE 869 u-boot-with-spl.imx u-boot-with-nand-spl.imx: SPL u-boot.bin FORCE
870 $(Q)$(MAKE) $(build)=arch/arm/imx-common $@ 870 $(Q)$(MAKE) $(build)=arch/arm/imx-common $@
871 871
872 MKIMAGEFLAGS_u-boot.ubl = -n $(UBL_CONFIG) -T ublimage -e $(CONFIG_SYS_TEXT_BASE) 872 MKIMAGEFLAGS_u-boot.ubl = -n $(UBL_CONFIG) -T ublimage -e $(CONFIG_SYS_TEXT_BASE)
873 873
874 u-boot.ubl: u-boot-with-spl.bin FORCE 874 u-boot.ubl: u-boot-with-spl.bin FORCE
875 $(call if_changed,mkimage) 875 $(call if_changed,mkimage)
876 876
877 MKIMAGEFLAGS_u-boot-spl.ais = -s -n $(if $(CONFIG_AIS_CONFIG_FILE), \ 877 MKIMAGEFLAGS_u-boot-spl.ais = -s -n $(if $(CONFIG_AIS_CONFIG_FILE), \
878 $(srctree)/$(CONFIG_AIS_CONFIG_FILE:"%"=%),"/dev/null") \ 878 $(srctree)/$(CONFIG_AIS_CONFIG_FILE:"%"=%),"/dev/null") \
879 -T aisimage -e $(CONFIG_SPL_TEXT_BASE) 879 -T aisimage -e $(CONFIG_SPL_TEXT_BASE)
880 spl/u-boot-spl.ais: spl/u-boot-spl.bin FORCE 880 spl/u-boot-spl.ais: spl/u-boot-spl.bin FORCE
881 $(call if_changed,mkimage) 881 $(call if_changed,mkimage)
882 882
883 OBJCOPYFLAGS_u-boot.ais = -I binary -O binary --pad-to=$(CONFIG_SPL_PAD_TO) 883 OBJCOPYFLAGS_u-boot.ais = -I binary -O binary --pad-to=$(CONFIG_SPL_PAD_TO)
884 u-boot.ais: spl/u-boot-spl.ais u-boot.img FORCE 884 u-boot.ais: spl/u-boot-spl.ais u-boot.img FORCE
885 $(call if_changed,pad_cat) 885 $(call if_changed,pad_cat)
886 886
887 u-boot-signed.sb: u-boot.bin spl/u-boot-spl.bin 887 u-boot-signed.sb: u-boot.bin spl/u-boot-spl.bin
888 $(Q)$(MAKE) $(build)=arch/arm/cpu/arm926ejs/mxs u-boot-signed.sb 888 $(Q)$(MAKE) $(build)=arch/arm/cpu/arm926ejs/mxs u-boot-signed.sb
889 u-boot.sb: u-boot.bin spl/u-boot-spl.bin 889 u-boot.sb: u-boot.bin spl/u-boot-spl.bin
890 $(Q)$(MAKE) $(build)=arch/arm/cpu/arm926ejs/mxs u-boot.sb 890 $(Q)$(MAKE) $(build)=arch/arm/cpu/arm926ejs/mxs u-boot.sb
891 891
892 # On x600 (SPEAr600) U-Boot is appended to U-Boot SPL. 892 # On x600 (SPEAr600) U-Boot is appended to U-Boot SPL.
893 # Both images are created using mkimage (crc etc), so that the ROM 893 # Both images are created using mkimage (crc etc), so that the ROM
894 # bootloader can check its integrity. Padding needs to be done to the 894 # bootloader can check its integrity. Padding needs to be done to the
895 # SPL image (with mkimage header) and not the binary. Otherwise the resulting image 895 # SPL image (with mkimage header) and not the binary. Otherwise the resulting image
896 # which is loaded/copied by the ROM bootloader to SRAM doesn't fit. 896 # which is loaded/copied by the ROM bootloader to SRAM doesn't fit.
897 # The resulting image containing both U-Boot images is called u-boot.spr 897 # The resulting image containing both U-Boot images is called u-boot.spr
898 MKIMAGEFLAGS_u-boot-spl.img = -A $(ARCH) -T firmware -C none \ 898 MKIMAGEFLAGS_u-boot-spl.img = -A $(ARCH) -T firmware -C none \
899 -a $(CONFIG_SPL_TEXT_BASE) -e $(CONFIG_SPL_TEXT_BASE) -n XLOADER 899 -a $(CONFIG_SPL_TEXT_BASE) -e $(CONFIG_SPL_TEXT_BASE) -n XLOADER
900 spl/u-boot-spl.img: spl/u-boot-spl.bin FORCE 900 spl/u-boot-spl.img: spl/u-boot-spl.bin FORCE
901 $(call if_changed,mkimage) 901 $(call if_changed,mkimage)
902 902
903 OBJCOPYFLAGS_u-boot.spr = -I binary -O binary --pad-to=$(CONFIG_SPL_PAD_TO) \ 903 OBJCOPYFLAGS_u-boot.spr = -I binary -O binary --pad-to=$(CONFIG_SPL_PAD_TO) \
904 --gap-fill=0xff 904 --gap-fill=0xff
905 u-boot.spr: spl/u-boot-spl.img u-boot.img FORCE 905 u-boot.spr: spl/u-boot-spl.img u-boot.img FORCE
906 $(call if_changed,pad_cat) 906 $(call if_changed,pad_cat)
907 907
908 MKIMAGEFLAGS_u-boot-spl.gph = -A $(ARCH) -T gpimage -C none \ 908 MKIMAGEFLAGS_u-boot-spl.gph = -A $(ARCH) -T gpimage -C none \
909 -a $(CONFIG_SPL_TEXT_BASE) -e $(CONFIG_SPL_TEXT_BASE) -n SPL 909 -a $(CONFIG_SPL_TEXT_BASE) -e $(CONFIG_SPL_TEXT_BASE) -n SPL
910 spl/u-boot-spl.gph: spl/u-boot-spl.bin FORCE 910 spl/u-boot-spl.gph: spl/u-boot-spl.bin FORCE
911 $(call if_changed,mkimage) 911 $(call if_changed,mkimage)
912 912
913 OBJCOPYFLAGS_u-boot-spi.gph = -I binary -O binary --pad-to=$(CONFIG_SPL_PAD_TO) \ 913 OBJCOPYFLAGS_u-boot-spi.gph = -I binary -O binary --pad-to=$(CONFIG_SPL_PAD_TO) \
914 --gap-fill=0 914 --gap-fill=0
915 u-boot-spi.gph: spl/u-boot-spl.gph u-boot.img FORCE 915 u-boot-spi.gph: spl/u-boot-spl.gph u-boot.img FORCE
916 $(call if_changed,pad_cat) 916 $(call if_changed,pad_cat)
917 917
918 ifneq ($(CONFIG_SUNXI),) 918 ifneq ($(CONFIG_SUNXI),)
919 OBJCOPYFLAGS_u-boot-sunxi-with-spl.bin = -I binary -O binary \ 919 OBJCOPYFLAGS_u-boot-sunxi-with-spl.bin = -I binary -O binary \
920 --pad-to=$(CONFIG_SPL_PAD_TO) --gap-fill=0xff 920 --pad-to=$(CONFIG_SPL_PAD_TO) --gap-fill=0xff
921 u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin u-boot.img FORCE 921 u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin u-boot.img FORCE
922 $(call if_changed,pad_cat) 922 $(call if_changed,pad_cat)
923 endif 923 endif
924 924
925 ifneq ($(CONFIG_TEGRA),) 925 ifneq ($(CONFIG_TEGRA),)
926 OBJCOPYFLAGS_u-boot-nodtb-tegra.bin = -O binary --pad-to=$(CONFIG_SYS_TEXT_BASE) 926 OBJCOPYFLAGS_u-boot-nodtb-tegra.bin = -O binary --pad-to=$(CONFIG_SYS_TEXT_BASE)
927 u-boot-nodtb-tegra.bin: spl/u-boot-spl u-boot.bin FORCE 927 u-boot-nodtb-tegra.bin: spl/u-boot-spl u-boot.bin FORCE
928 $(call if_changed,pad_cat) 928 $(call if_changed,pad_cat)
929 929
930 ifeq ($(CONFIG_OF_SEPARATE),y) 930 ifeq ($(CONFIG_OF_SEPARATE),y)
931 u-boot-dtb-tegra.bin: u-boot-nodtb-tegra.bin dts/dt.dtb FORCE 931 u-boot-dtb-tegra.bin: u-boot-nodtb-tegra.bin dts/dt.dtb FORCE
932 $(call if_changed,cat) 932 $(call if_changed,cat)
933 endif 933 endif
934 endif 934 endif
935 935
936 u-boot-img.bin: spl/u-boot-spl.bin u-boot.img FORCE 936 u-boot-img.bin: spl/u-boot-spl.bin u-boot.img FORCE
937 $(call if_changed,cat) 937 $(call if_changed,cat)
938 938
939 #Add a target to create boot binary having SPL binary in PBI format 939 #Add a target to create boot binary having SPL binary in PBI format
940 #concatenated with u-boot binary. It is need by PowerPC SoC having 940 #concatenated with u-boot binary. It is need by PowerPC SoC having
941 #internal SRAM <= 512KB. 941 #internal SRAM <= 512KB.
942 MKIMAGEFLAGS_u-boot-spl.pbl = -n $(srctree)/$(CONFIG_SYS_FSL_PBL_RCW:"%"=%) \ 942 MKIMAGEFLAGS_u-boot-spl.pbl = -n $(srctree)/$(CONFIG_SYS_FSL_PBL_RCW:"%"=%) \
943 -R $(srctree)/$(CONFIG_SYS_FSL_PBL_PBI:"%"=%) -T pblimage 943 -R $(srctree)/$(CONFIG_SYS_FSL_PBL_PBI:"%"=%) -T pblimage
944 944
945 spl/u-boot-spl.pbl: spl/u-boot-spl.bin FORCE 945 spl/u-boot-spl.pbl: spl/u-boot-spl.bin FORCE
946 $(call if_changed,mkimage) 946 $(call if_changed,mkimage)
947 947
948 OBJCOPYFLAGS_u-boot-with-spl-pbl.bin = -I binary -O binary --pad-to=$(CONFIG_SPL_PAD_TO) \ 948 OBJCOPYFLAGS_u-boot-with-spl-pbl.bin = -I binary -O binary --pad-to=$(CONFIG_SPL_PAD_TO) \
949 --gap-fill=0xff 949 --gap-fill=0xff
950 950
951 u-boot-with-spl-pbl.bin: spl/u-boot-spl.pbl u-boot.bin FORCE 951 u-boot-with-spl-pbl.bin: spl/u-boot-spl.pbl u-boot.bin FORCE
952 $(call if_changed,pad_cat) 952 $(call if_changed,pad_cat)
953 953
954 # PPC4xx needs the SPL at the end of the image, since the reset vector 954 # PPC4xx needs the SPL at the end of the image, since the reset vector
955 # is located at 0xfffffffc. So we can't use the "u-boot-img.bin" target 955 # is located at 0xfffffffc. So we can't use the "u-boot-img.bin" target
956 # and need to introduce a new build target with the full blown U-Boot 956 # and need to introduce a new build target with the full blown U-Boot
957 # at the start padded up to the start of the SPL image. And then concat 957 # at the start padded up to the start of the SPL image. And then concat
958 # the SPL image to the end. 958 # the SPL image to the end.
959 959
960 OBJCOPYFLAGS_u-boot-img-spl-at-end.bin := -I binary -O binary \ 960 OBJCOPYFLAGS_u-boot-img-spl-at-end.bin := -I binary -O binary \
961 --pad-to=$(CONFIG_UBOOT_PAD_TO) --gap-fill=0xff 961 --pad-to=$(CONFIG_UBOOT_PAD_TO) --gap-fill=0xff
962 u-boot-img-spl-at-end.bin: u-boot.img spl/u-boot-spl.bin FORCE 962 u-boot-img-spl-at-end.bin: u-boot.img spl/u-boot-spl.bin FORCE
963 $(call if_changed,pad_cat) 963 $(call if_changed,pad_cat)
964 964
965 # Create a new ELF from a raw binary file. This is useful for arm64 965 # Create a new ELF from a raw binary file. This is useful for arm64
966 # where static relocation needs to be performed on the raw binary, 966 # where static relocation needs to be performed on the raw binary,
967 # but certain simulators only accept an ELF file (but don't do the 967 # but certain simulators only accept an ELF file (but don't do the
968 # relocation). 968 # relocation).
969 # FIXME refactor dts/Makefile to share target/arch detection 969 # FIXME refactor dts/Makefile to share target/arch detection
970 u-boot.elf: u-boot.bin 970 u-boot.elf: u-boot.bin
971 @$(OBJCOPY) -B aarch64 -I binary -O elf64-littleaarch64 \ 971 @$(OBJCOPY) -B aarch64 -I binary -O elf64-littleaarch64 \
972 $< u-boot-elf.o 972 $< u-boot-elf.o
973 @$(LD) u-boot-elf.o -o $@ \ 973 @$(LD) u-boot-elf.o -o $@ \
974 --defsym=_start=$(CONFIG_SYS_TEXT_BASE) \ 974 --defsym=_start=$(CONFIG_SYS_TEXT_BASE) \
975 -Ttext=$(CONFIG_SYS_TEXT_BASE) 975 -Ttext=$(CONFIG_SYS_TEXT_BASE)
976 976
977 # Rule to link u-boot 977 # Rule to link u-boot
978 # May be overridden by arch/$(ARCH)/config.mk 978 # May be overridden by arch/$(ARCH)/config.mk
979 quiet_cmd_u-boot__ ?= LD $@ 979 quiet_cmd_u-boot__ ?= LD $@
980 cmd_u-boot__ ?= $(LD) $(LDFLAGS) $(LDFLAGS_u-boot) -o $@ \ 980 cmd_u-boot__ ?= $(LD) $(LDFLAGS) $(LDFLAGS_u-boot) -o $@ \
981 -T u-boot.lds $(u-boot-init) \ 981 -T u-boot.lds $(u-boot-init) \
982 --start-group $(u-boot-main) --end-group \ 982 --start-group $(u-boot-main) --end-group \
983 $(PLATFORM_LIBS) -Map u-boot.map 983 $(PLATFORM_LIBS) -Map u-boot.map
984 984
985 u-boot: $(u-boot-init) $(u-boot-main) u-boot.lds 985 u-boot: $(u-boot-init) $(u-boot-main) u-boot.lds
986 $(call if_changed,u-boot__) 986 $(call if_changed,u-boot__)
987 ifeq ($(CONFIG_KALLSYMS),y) 987 ifeq ($(CONFIG_KALLSYMS),y)
988 smap=`$(call SYSTEM_MAP,u-boot) | \ 988 smap=`$(call SYSTEM_MAP,u-boot) | \
989 awk '$$2 ~ /[tTwW]/ {printf $$1 $$3 "\\\\000"}'` ; \ 989 awk '$$2 ~ /[tTwW]/ {printf $$1 $$3 "\\\\000"}'` ; \
990 $(CC) $(c_flags) -DSYSTEM_MAP="\"$${smap}\"" \ 990 $(CC) $(c_flags) -DSYSTEM_MAP="\"$${smap}\"" \
991 -c $(srctree)/common/system_map.c -o common/system_map.o 991 -c $(srctree)/common/system_map.c -o common/system_map.o
992 $(call cmd,u-boot__) common/system_map.o 992 $(call cmd,u-boot__) common/system_map.o
993 endif 993 endif
994 994
995 # The actual objects are generated when descending, 995 # The actual objects are generated when descending,
996 # make sure no implicit rule kicks in 996 # make sure no implicit rule kicks in
997 $(sort $(u-boot-init) $(u-boot-main)): $(u-boot-dirs) ; 997 $(sort $(u-boot-init) $(u-boot-main)): $(u-boot-dirs) ;
998 998
999 # Handle descending into subdirectories listed in $(vmlinux-dirs) 999 # Handle descending into subdirectories listed in $(vmlinux-dirs)
1000 # Preset locale variables to speed up the build process. Limit locale 1000 # Preset locale variables to speed up the build process. Limit locale
1001 # tweaks to this spot to avoid wrong language settings when running 1001 # tweaks to this spot to avoid wrong language settings when running
1002 # make menuconfig etc. 1002 # make menuconfig etc.
1003 # Error messages still appears in the original language 1003 # Error messages still appears in the original language
1004 1004
1005 PHONY += $(u-boot-dirs) 1005 PHONY += $(u-boot-dirs)
1006 $(u-boot-dirs): prepare scripts 1006 $(u-boot-dirs): prepare scripts
1007 $(Q)$(MAKE) $(build)=$@ 1007 $(Q)$(MAKE) $(build)=$@
1008 1008
1009 tools: prepare 1009 tools: prepare
1010 # The "tools" are needed early 1010 # The "tools" are needed early
1011 $(filter-out tools, $(u-boot-dirs)): tools 1011 $(filter-out tools, $(u-boot-dirs)): tools
1012 # The "examples" conditionally depend on U-Boot (say, when USE_PRIVATE_LIBGCC 1012 # The "examples" conditionally depend on U-Boot (say, when USE_PRIVATE_LIBGCC
1013 # is "yes"), so compile examples after U-Boot is compiled. 1013 # is "yes"), so compile examples after U-Boot is compiled.
1014 examples: $(filter-out examples, $(u-boot-dirs)) 1014 examples: $(filter-out examples, $(u-boot-dirs))
1015 1015
1016 define filechk_uboot.release 1016 define filechk_uboot.release
1017 echo "$(UBOOTVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))" 1017 echo "$(UBOOTVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))"
1018 endef 1018 endef
1019 1019
1020 # Store (new) UBOOTRELEASE string in include/config/uboot.release 1020 # Store (new) UBOOTRELEASE string in include/config/uboot.release
1021 include/config/uboot.release: Makefile FORCE 1021 include/config/uboot.release: Makefile FORCE
1022 $(call filechk,uboot.release) 1022 $(call filechk,uboot.release)
1023 1023
1024 1024
1025 # Things we need to do before we recursively start building the kernel 1025 # Things we need to do before we recursively start building the kernel
1026 # or the modules are listed in "prepare". 1026 # or the modules are listed in "prepare".
1027 # A multi level approach is used. prepareN is processed before prepareN-1. 1027 # A multi level approach is used. prepareN is processed before prepareN-1.
1028 # archprepare is used in arch Makefiles and when processed asm symlink, 1028 # archprepare is used in arch Makefiles and when processed asm symlink,
1029 # version.h and scripts_basic is processed / created. 1029 # version.h and scripts_basic is processed / created.
1030 1030
1031 # Listed in dependency order 1031 # Listed in dependency order
1032 PHONY += prepare archprepare prepare0 prepare1 prepare2 prepare3 1032 PHONY += prepare archprepare prepare0 prepare1 prepare2 prepare3
1033 1033
1034 # prepare3 is used to check if we are building in a separate output directory, 1034 # prepare3 is used to check if we are building in a separate output directory,
1035 # and if so do: 1035 # and if so do:
1036 # 1) Check that make has not been executed in the kernel src $(srctree) 1036 # 1) Check that make has not been executed in the kernel src $(srctree)
1037 prepare3: include/config/uboot.release 1037 prepare3: include/config/uboot.release
1038 ifneq ($(KBUILD_SRC),) 1038 ifneq ($(KBUILD_SRC),)
1039 @$(kecho) ' Using $(srctree) as source for u-boot' 1039 @$(kecho) ' Using $(srctree) as source for u-boot'
1040 $(Q)if [ -f $(srctree)/include/config.mk ]; then \ 1040 $(Q)if [ -f $(srctree)/include/config.mk ]; then \
1041 echo >&2 " $(srctree) is not clean, please run 'make mrproper'"; \ 1041 echo >&2 " $(srctree) is not clean, please run 'make mrproper'"; \
1042 echo >&2 " in the '$(srctree)' directory.";\ 1042 echo >&2 " in the '$(srctree)' directory.";\
1043 /bin/false; \ 1043 /bin/false; \
1044 fi; 1044 fi;
1045 endif 1045 endif
1046 1046
1047 # prepare2 creates a makefile if using a separate output directory 1047 # prepare2 creates a makefile if using a separate output directory
1048 prepare2: prepare3 outputmakefile 1048 prepare2: prepare3 outputmakefile
1049 1049
1050 prepare1: prepare2 $(version_h) $(timestamp_h) 1050 prepare1: prepare2 $(version_h) $(timestamp_h)
1051 ifeq ($(__HAVE_ARCH_GENERIC_BOARD),) 1051 ifeq ($(__HAVE_ARCH_GENERIC_BOARD),)
1052 ifeq ($(CONFIG_SYS_GENERIC_BOARD),y) 1052 ifeq ($(CONFIG_SYS_GENERIC_BOARD),y)
1053 @echo >&2 " Your architecture does not support generic board." 1053 @echo >&2 " Your architecture does not support generic board."
1054 @echo >&2 " Please undefine CONFIG_SYS_GENERIC_BOARD in your board config file." 1054 @echo >&2 " Please undefine CONFIG_SYS_GENERIC_BOARD in your board config file."
1055 @/bin/false 1055 @/bin/false
1056 endif 1056 endif
1057 endif 1057 endif
1058 ifeq ($(wildcard $(LDSCRIPT)),) 1058 ifeq ($(wildcard $(LDSCRIPT)),)
1059 @echo >&2 " Could not find linker script." 1059 @echo >&2 " Could not find linker script."
1060 @/bin/false 1060 @/bin/false
1061 endif 1061 endif
1062 1062
1063 archprepare: prepare1 scripts_basic 1063 archprepare: prepare1 scripts_basic
1064 1064
1065 prepare0: archprepare FORCE 1065 prepare0: archprepare FORCE
1066 $(Q)$(MAKE) $(build)=. 1066 $(Q)$(MAKE) $(build)=.
1067 1067
1068 # All the preparing.. 1068 # All the preparing..
1069 prepare: prepare0 1069 prepare: prepare0
1070 1070
1071 # Generate some files 1071 # Generate some files
1072 # --------------------------------------------------------------------------- 1072 # ---------------------------------------------------------------------------
1073 1073
1074 define filechk_version.h 1074 define filechk_version.h
1075 (echo \#define PLAIN_VERSION \"$(UBOOTRELEASE)\"; \ 1075 (echo \#define PLAIN_VERSION \"$(UBOOTRELEASE)\"; \
1076 echo \#define U_BOOT_VERSION \"U-Boot \" PLAIN_VERSION; \ 1076 echo \#define U_BOOT_VERSION \"U-Boot \" PLAIN_VERSION; \
1077 echo \#define CC_VERSION_STRING \"$$($(CC) --version | head -n 1)\"; \ 1077 echo \#define CC_VERSION_STRING \"$$($(CC) --version | head -n 1)\"; \
1078 echo \#define LD_VERSION_STRING \"$$($(LD) --version | head -n 1)\"; ) 1078 echo \#define LD_VERSION_STRING \"$$($(LD) --version | head -n 1)\"; )
1079 endef 1079 endef
1080 1080
1081 define filechk_timestamp.h 1081 define filechk_timestamp.h
1082 (LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"'; \ 1082 (LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"'; \
1083 LC_ALL=C date +'#define U_BOOT_TIME "%T"') 1083 LC_ALL=C date +'#define U_BOOT_TIME "%T"')
1084 endef 1084 endef
1085 1085
1086 $(version_h): include/config/uboot.release FORCE 1086 $(version_h): include/config/uboot.release FORCE
1087 $(call filechk,version.h) 1087 $(call filechk,version.h)
1088 1088
1089 $(timestamp_h): $(srctree)/Makefile FORCE 1089 $(timestamp_h): $(srctree)/Makefile FORCE
1090 $(call filechk,timestamp.h) 1090 $(call filechk,timestamp.h)
1091 1091
1092 # 1092 #
1093 # Auto-generate the autoconf.mk file (which is included by all makefiles) 1093 # Auto-generate the autoconf.mk file (which is included by all makefiles)
1094 # 1094 #
1095 # This target actually generates 2 files; autoconf.mk and autoconf.mk.dep. 1095 # This target actually generates 2 files; autoconf.mk and autoconf.mk.dep.
1096 # the dep file is only include in this top level makefile to determine when 1096 # the dep file is only include in this top level makefile to determine when
1097 # to regenerate the autoconf.mk file. 1097 # to regenerate the autoconf.mk file.
1098 1098
1099 quiet_cmd_autoconf_dep = GEN $@ 1099 quiet_cmd_autoconf_dep = GEN $@
1100 cmd_autoconf_dep = $(CC) -x c -DDO_DEPS_ONLY -M $(c_flags) \ 1100 cmd_autoconf_dep = $(CC) -x c -DDO_DEPS_ONLY -M $(c_flags) \
1101 -MQ include/autoconf.mk $(srctree)/include/common.h > $@ || rm $@ 1101 -MQ include/autoconf.mk $(srctree)/include/common.h > $@ || rm $@
1102 1102
1103 include/autoconf.mk.dep: include/config.h include/common.h 1103 include/autoconf.mk.dep: include/config.h include/common.h
1104 $(call cmd,autoconf_dep) 1104 $(call cmd,autoconf_dep)
1105 1105
1106 quiet_cmd_autoconf = GEN $@ 1106 quiet_cmd_autoconf = GEN $@
1107 cmd_autoconf = \ 1107 cmd_autoconf = \
1108 $(CPP) $(c_flags) -DDO_DEPS_ONLY -dM $(srctree)/include/common.h > $@.tmp && \ 1108 $(CPP) $(c_flags) -DDO_DEPS_ONLY -dM $(srctree)/include/common.h > $@.tmp && \
1109 sed -n -f $(srctree)/tools/scripts/define2mk.sed $@.tmp > $@; \ 1109 sed -n -f $(srctree)/tools/scripts/define2mk.sed $@.tmp > $@; \
1110 rm $@.tmp 1110 rm $@.tmp
1111 1111
1112 include/autoconf.mk: include/config.h 1112 include/autoconf.mk: include/config.h
1113 $(call cmd,autoconf) 1113 $(call cmd,autoconf)
1114 1114
1115 # --------------------------------------------------------------------------- 1115 # ---------------------------------------------------------------------------
1116 1116
1117 PHONY += depend dep 1117 PHONY += depend dep
1118 depend dep: 1118 depend dep:
1119 @echo '*** Warning: make $@ is unnecessary now.' 1119 @echo '*** Warning: make $@ is unnecessary now.'
1120 1120
1121 # --------------------------------------------------------------------------- 1121 # ---------------------------------------------------------------------------
1122 quiet_cmd_cpp_lds = LDS $@ 1122 quiet_cmd_cpp_lds = LDS $@
1123 cmd_cpp_lds = $(CPP) -Wp,-MD,$(depfile) $(cpp_flags) $(LDPPFLAGS) -ansi \ 1123 cmd_cpp_lds = $(CPP) -Wp,-MD,$(depfile) $(cpp_flags) $(LDPPFLAGS) -ansi \
1124 -D__ASSEMBLY__ -x assembler-with-cpp -P -o $@ $< 1124 -D__ASSEMBLY__ -x assembler-with-cpp -P -o $@ $<
1125 1125
1126 u-boot.lds: $(LDSCRIPT) prepare FORCE 1126 u-boot.lds: $(LDSCRIPT) prepare FORCE
1127 $(call if_changed_dep,cpp_lds) 1127 $(call if_changed_dep,cpp_lds)
1128 1128
1129 spl/u-boot-spl.bin: spl/u-boot-spl 1129 spl/u-boot-spl.bin: spl/u-boot-spl
1130 @: 1130 @:
1131 spl/u-boot-spl: tools prepare 1131 spl/u-boot-spl: tools prepare
1132 $(Q)$(MAKE) obj=spl -f $(srctree)/scripts/Makefile.spl all 1132 $(Q)$(MAKE) obj=spl -f $(srctree)/scripts/Makefile.spl all
1133 1133
1134 spl/sunxi-spl.bin: spl/u-boot-spl 1134 spl/sunxi-spl.bin: spl/u-boot-spl
1135 @: 1135 @:
1136 1136
1137 tpl/u-boot-tpl.bin: tools prepare 1137 tpl/u-boot-tpl.bin: tools prepare
1138 $(Q)$(MAKE) obj=tpl -f $(srctree)/scripts/Makefile.spl all CONFIG_TPL_BUILD=y 1138 $(Q)$(MAKE) obj=tpl -f $(srctree)/scripts/Makefile.spl all CONFIG_TPL_BUILD=y
1139 1139
1140 TAG_SUBDIRS := $(u-boot-dirs) include 1140 TAG_SUBDIRS := $(u-boot-dirs) include
1141 1141
1142 FIND := find 1142 FIND := find
1143 FINDFLAGS := -L 1143 FINDFLAGS := -L
1144 1144
1145 tags ctags: 1145 tags ctags:
1146 ctags -w -o ctags `$(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) \ 1146 ctags -w -o ctags `$(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) \
1147 -name '*.[chS]' -print` 1147 -name '*.[chS]' -print`
1148 1148
1149 etags: 1149 etags:
1150 etags -a -o $(obj)etags `$(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) \ 1150 etags -a -o $(obj)etags `$(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) \
1151 -name '*.[chS]' -print` 1151 -name '*.[chS]' -print`
1152 cscope: 1152 cscope:
1153 $(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) -name '*.[chS]' -print > \ 1153 $(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) -name '*.[chS]' -print > \
1154 cscope.files 1154 cscope.files
1155 cscope -b -q -k 1155 cscope -b -q -k
1156 1156
1157 SYSTEM_MAP = \ 1157 SYSTEM_MAP = \
1158 $(NM) $1 | \ 1158 $(NM) $1 | \
1159 grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ 1159 grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
1160 LC_ALL=C sort 1160 LC_ALL=C sort
1161 System.map: u-boot 1161 System.map: u-boot
1162 @$(call SYSTEM_MAP,$<) > $@ 1162 @$(call SYSTEM_MAP,$<) > $@
1163 1163
1164 checkdtc: 1164 checkdtc:
1165 @if test $(call dtc-version) -lt 0104; then \ 1165 @if test $(call dtc-version) -lt 0104; then \
1166 echo '*** Your dtc is too old, please upgrade to dtc 1.4 or newer'; \ 1166 echo '*** Your dtc is too old, please upgrade to dtc 1.4 or newer'; \
1167 false; \ 1167 false; \
1168 fi 1168 fi
1169 1169
1170 ######################################################################### 1170 #########################################################################
1171 1171
1172 # ARM relocations should all be R_ARM_RELATIVE (32-bit) or 1172 # ARM relocations should all be R_ARM_RELATIVE (32-bit) or
1173 # R_AARCH64_RELATIVE (64-bit). 1173 # R_AARCH64_RELATIVE (64-bit).
1174 checkarmreloc: u-boot 1174 checkarmreloc: u-boot
1175 @RELOC="`$(CROSS_COMPILE)readelf -r -W $< | cut -d ' ' -f 4 | \ 1175 @RELOC="`$(CROSS_COMPILE)readelf -r -W $< | cut -d ' ' -f 4 | \
1176 grep R_A | sort -u`"; \ 1176 grep R_A | sort -u`"; \
1177 if test "$$RELOC" != "R_ARM_RELATIVE" -a \ 1177 if test "$$RELOC" != "R_ARM_RELATIVE" -a \
1178 "$$RELOC" != "R_AARCH64_RELATIVE"; then \ 1178 "$$RELOC" != "R_AARCH64_RELATIVE"; then \
1179 echo "$< contains unexpected relocations: $$RELOC"; \ 1179 echo "$< contains unexpected relocations: $$RELOC"; \
1180 false; \ 1180 false; \
1181 fi 1181 fi
1182 1182
1183 env: scripts_basic 1183 env: scripts_basic
1184 $(Q)$(MAKE) $(build)=tools/$@ 1184 $(Q)$(MAKE) $(build)=tools/$@
1185 1185
1186 tools-only: scripts_basic $(version_h) $(timestamp_h) 1186 tools-only: scripts_basic $(version_h) $(timestamp_h)
1187 $(Q)$(MAKE) $(build)=tools 1187 $(Q)$(MAKE) $(build)=tools
1188 1188
1189 tools-all: export HOST_TOOLS_ALL=y 1189 tools-all: export HOST_TOOLS_ALL=y
1190 tools-all: env tools ; 1190 tools-all: env tools ;
1191 1191
1192 cross_tools: export CROSS_BUILD_TOOLS=y 1192 cross_tools: export CROSS_BUILD_TOOLS=y
1193 cross_tools: tools ; 1193 cross_tools: tools ;
1194 1194
1195 .PHONY : CHANGELOG 1195 .PHONY : CHANGELOG
1196 CHANGELOG: 1196 CHANGELOG:
1197 git log --no-merges U-Boot-1_1_5.. | \ 1197 git log --no-merges U-Boot-1_1_5.. | \
1198 unexpand -a | sed -e 's/\s\s*$$//' > $@ 1198 unexpand -a | sed -e 's/\s\s*$$//' > $@
1199 1199
1200 include/license.h: tools/bin2header COPYING 1200 include/license.h: tools/bin2header COPYING
1201 cat COPYING | gzip -9 -c | ./tools/bin2header license_gzip > include/license.h 1201 cat COPYING | gzip -9 -c | ./tools/bin2header license_gzip > include/license.h
1202 ######################################################################### 1202 #########################################################################
1203 1203
1204 ### 1204 ###
1205 # Cleaning is done on three levels. 1205 # Cleaning is done on three levels.
1206 # make clean Delete most generated files 1206 # make clean Delete most generated files
1207 # Leave enough to build external modules 1207 # Leave enough to build external modules
1208 # make mrproper Delete the current configuration, and all generated files 1208 # make mrproper Delete the current configuration, and all generated files
1209 # make distclean Remove editor backup files, patch leftover files and the like 1209 # make distclean Remove editor backup files, patch leftover files and the like
1210 1210
1211 # Directories & files removed with 'make clean' 1211 # Directories & files removed with 'make clean'
1212 CLEAN_DIRS += $(MODVERDIR) 1212 CLEAN_DIRS += $(MODVERDIR)
1213 CLEAN_FILES += u-boot.lds include/bmp_logo.h include/bmp_logo_data.h \ 1213 CLEAN_FILES += u-boot.lds include/bmp_logo.h include/bmp_logo_data.h \
1214 include/autoconf.mk* include/spl-autoconf.mk \ 1214 include/autoconf.mk* include/spl-autoconf.mk \
1215 include/tpl-autoconf.mk 1215 include/tpl-autoconf.mk
1216 1216
1217 # Directories & files removed with 'make clobber' 1217 # Directories & files removed with 'make clobber'
1218 CLOBBER_DIRS += spl tpl 1218 CLOBBER_DIRS += spl tpl
1219 CLOBBER_FILES += u-boot* MLO* SPL System.map 1219 CLOBBER_FILES += u-boot* MLO* SPL System.map
1220 1220
1221 # Directories & files removed with 'make mrproper' 1221 # Directories & files removed with 'make mrproper'
1222 MRPROPER_DIRS += include/config include/generated \ 1222 MRPROPER_DIRS += include/config include/generated \
1223 .tmp_objdiff 1223 .tmp_objdiff
1224 MRPROPER_FILES += .config .config.old \ 1224 MRPROPER_FILES += .config .config.old \
1225 tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \ 1225 tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \
1226 include/config.h include/config.mk 1226 include/config.h include/config.mk
1227 1227
1228 # clean - Delete most, but leave enough to build external modules 1228 # clean - Delete most, but leave enough to build external modules
1229 # 1229 #
1230 clean: rm-dirs := $(CLEAN_DIRS) 1230 clean: rm-dirs := $(CLEAN_DIRS)
1231 clean: rm-files := $(CLEAN_FILES) 1231 clean: rm-files := $(CLEAN_FILES)
1232 1232
1233 clean-dirs := $(foreach f,$(u-boot-alldirs),$(if $(wildcard $(srctree)/$f/Makefile),$f)) 1233 clean-dirs := $(foreach f,$(u-boot-alldirs),$(if $(wildcard $(srctree)/$f/Makefile),$f))
1234 1234
1235 clean-dirs := $(addprefix _clean_, $(clean-dirs) doc/DocBook) 1235 clean-dirs := $(addprefix _clean_, $(clean-dirs) doc/DocBook)
1236 1236
1237 PHONY += $(clean-dirs) clean archclean 1237 PHONY += $(clean-dirs) clean archclean
1238 $(clean-dirs): 1238 $(clean-dirs):
1239 $(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@) 1239 $(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@)
1240 1240
1241 # TODO: Do not use *.cfgtmp 1241 # TODO: Do not use *.cfgtmp
1242 clean: $(clean-dirs) 1242 clean: $(clean-dirs)
1243 $(call cmd,rmdirs) 1243 $(call cmd,rmdirs)
1244 $(call cmd,rmfiles) 1244 $(call cmd,rmfiles)
1245 @find $(if $(KBUILD_EXTMOD), $(KBUILD_EXTMOD), .) $(RCS_FIND_IGNORE) \ 1245 @find $(if $(KBUILD_EXTMOD), $(KBUILD_EXTMOD), .) $(RCS_FIND_IGNORE) \
1246 \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \ 1246 \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
1247 -o -name '*.ko.*' -o -name '*.su' -o -name '*.cfgtmp' \ 1247 -o -name '*.ko.*' -o -name '*.su' -o -name '*.cfgtmp' \
1248 -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \ 1248 -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
1249 -o -name '*.symtypes' -o -name 'modules.order' \ 1249 -o -name '*.symtypes' -o -name 'modules.order' \
1250 -o -name modules.builtin -o -name '.tmp_*.o.*' \ 1250 -o -name modules.builtin -o -name '.tmp_*.o.*' \
1251 -o -name '*.gcno' \) -type f -print | xargs rm -f 1251 -o -name '*.gcno' \) -type f -print | xargs rm -f
1252 1252
1253 # clobber 1253 # clobber
1254 # 1254 #
1255 clobber: rm-dirs := $(CLOBBER_DIRS) 1255 clobber: rm-dirs := $(CLOBBER_DIRS)
1256 clobber: rm-files := $(CLOBBER_FILES) 1256 clobber: rm-files := $(CLOBBER_FILES)
1257 1257
1258 PHONY += clobber 1258 PHONY += clobber
1259 1259
1260 clobber: clean 1260 clobber: clean
1261 $(call cmd,rmdirs) 1261 $(call cmd,rmdirs)
1262 $(call cmd,rmfiles) 1262 $(call cmd,rmfiles)
1263 1263
1264 # mrproper - Delete all generated files, including .config 1264 # mrproper - Delete all generated files, including .config
1265 # 1265 #
1266 mrproper: rm-dirs := $(wildcard $(MRPROPER_DIRS)) 1266 mrproper: rm-dirs := $(wildcard $(MRPROPER_DIRS))
1267 mrproper: rm-files := $(wildcard $(MRPROPER_FILES)) 1267 mrproper: rm-files := $(wildcard $(MRPROPER_FILES))
1268 mrproper-dirs := $(addprefix _mrproper_,scripts) 1268 mrproper-dirs := $(addprefix _mrproper_,scripts)
1269 1269
1270 PHONY += $(mrproper-dirs) mrproper archmrproper 1270 PHONY += $(mrproper-dirs) mrproper archmrproper
1271 $(mrproper-dirs): 1271 $(mrproper-dirs):
1272 $(Q)$(MAKE) $(clean)=$(patsubst _mrproper_%,%,$@) 1272 $(Q)$(MAKE) $(clean)=$(patsubst _mrproper_%,%,$@)
1273 1273
1274 mrproper: clobber $(mrproper-dirs) 1274 mrproper: clobber $(mrproper-dirs)
1275 $(call cmd,rmdirs) 1275 $(call cmd,rmdirs)
1276 $(call cmd,rmfiles) 1276 $(call cmd,rmfiles)
1277 @rm -f arch/*/include/asm/arch 1277 @rm -f arch/*/include/asm/arch
1278 1278
1279 # distclean 1279 # distclean
1280 # 1280 #
1281 PHONY += distclean 1281 PHONY += distclean
1282 1282
1283 distclean: mrproper 1283 distclean: mrproper
1284 @find $(srctree) $(RCS_FIND_IGNORE) \ 1284 @find $(srctree) $(RCS_FIND_IGNORE) \
1285 \( -name '*.orig' -o -name '*.rej' -o -name '*~' \ 1285 \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
1286 -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \ 1286 -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
1287 -o -name '.*.rej' -o -name '*%' -o -name 'core' \ 1287 -o -name '.*.rej' -o -name '*%' -o -name 'core' \
1288 -o -name '*.pyc' \) \ 1288 -o -name '*.pyc' \) \
1289 -type f -print | xargs rm -f 1289 -type f -print | xargs rm -f
1290 1290
1291 backup: 1291 backup:
1292 F=`basename $(srctree)` ; cd .. ; \ 1292 F=`basename $(srctree)` ; cd .. ; \
1293 gtar --force-local -zcvf `LC_ALL=C date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F 1293 gtar --force-local -zcvf `LC_ALL=C date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F
1294 1294
1295 help: 1295 help:
1296 @echo 'Cleaning targets:' 1296 @echo 'Cleaning targets:'
1297 @echo ' clean - Remove most generated files but keep the config and' 1297 @echo ' clean - Remove most generated files but keep the config and'
1298 @echo ' necessities for testing u-boot' 1298 @echo ' necessities for testing u-boot'
1299 @echo ' clobber - Remove most generated files but keep the config' 1299 @echo ' clobber - Remove most generated files but keep the config'
1300 @echo ' mrproper - Remove all generated files + config + various backup files' 1300 @echo ' mrproper - Remove all generated files + config + various backup files'
1301 @echo ' distclean - mrproper + remove editor backup and patch files' 1301 @echo ' distclean - mrproper + remove editor backup and patch files'
1302 @echo '' 1302 @echo ''
1303 # uncomment after adding Kconfig feature 1303 # uncomment after adding Kconfig feature
1304 # @echo 'Configuration targets:' 1304 # @echo 'Configuration targets:'
1305 # @$(MAKE) -f $(srctree)/scripts/kconfig/Makefile help 1305 # @$(MAKE) -f $(srctree)/scripts/kconfig/Makefile help
1306 # @echo '' 1306 # @echo ''
1307 @echo 'Other generic targets:' 1307 @echo 'Other generic targets:'
1308 @echo ' all - Build all necessary images depending on configuration' 1308 @echo ' all - Build all necessary images depending on configuration'
1309 @echo ' u-boot - Build the bare u-boot' 1309 @echo ' u-boot - Build the bare u-boot'
1310 @echo ' dir/ - Build all files in dir and below' 1310 @echo ' dir/ - Build all files in dir and below'
1311 @echo ' dir/file.[oisS] - Build specified target only' 1311 @echo ' dir/file.[oisS] - Build specified target only'
1312 @echo ' dir/file.lst - Build specified mixed source/assembly target only' 1312 @echo ' dir/file.lst - Build specified mixed source/assembly target only'
1313 @echo ' (requires a recent binutils and recent build (System.map))' 1313 @echo ' (requires a recent binutils and recent build (System.map))'
1314 @echo ' tags/TAGS - Generate tags file for editors' 1314 @echo ' tags/TAGS - Generate tags file for editors'
1315 @echo ' cscope - Generate cscope index' 1315 @echo ' cscope - Generate cscope index'
1316 @echo ' ubootrelease - Output the release version string' 1316 @echo ' ubootrelease - Output the release version string'
1317 @echo ' ubootversion - Output the version stored in Makefile' 1317 @echo ' ubootversion - Output the version stored in Makefile'
1318 @echo '' 1318 @echo ''
1319 @echo 'Static analysers' 1319 @echo 'Static analysers'
1320 @echo ' checkstack - Generate a list of stack hogs' 1320 @echo ' checkstack - Generate a list of stack hogs'
1321 @echo '' 1321 @echo ''
1322 @echo 'Documentation targets:' 1322 @echo 'Documentation targets:'
1323 @$(MAKE) -f $(srctree)/doc/DocBook/Makefile dochelp 1323 @$(MAKE) -f $(srctree)/doc/DocBook/Makefile dochelp
1324 @echo '' 1324 @echo ''
1325 @echo ' make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build' 1325 @echo ' make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build'
1326 @echo ' make V=2 [targets] 2 => give reason for rebuild of target' 1326 @echo ' make V=2 [targets] 2 => give reason for rebuild of target'
1327 @echo ' make O=dir [targets] Locate all output files in "dir", including .config' 1327 @echo ' make O=dir [targets] Locate all output files in "dir", including .config'
1328 @echo ' make C=1 [targets] Check all c source with $$CHECK (sparse by default)' 1328 @echo ' make C=1 [targets] Check all c source with $$CHECK (sparse by default)'
1329 @echo ' make C=2 [targets] Force check of all c source with $$CHECK' 1329 @echo ' make C=2 [targets] Force check of all c source with $$CHECK'
1330 @echo ' make RECORDMCOUNT_WARN=1 [targets] Warn about ignored mcount sections' 1330 @echo ' make RECORDMCOUNT_WARN=1 [targets] Warn about ignored mcount sections'
1331 @echo ' make W=n [targets] Enable extra gcc checks, n=1,2,3 where' 1331 @echo ' make W=n [targets] Enable extra gcc checks, n=1,2,3 where'
1332 @echo ' 1: warnings which may be relevant and do not occur too often' 1332 @echo ' 1: warnings which may be relevant and do not occur too often'
1333 @echo ' 2: warnings which occur quite often but may still be relevant' 1333 @echo ' 2: warnings which occur quite often but may still be relevant'
1334 @echo ' 3: more obscure warnings, can most likely be ignored' 1334 @echo ' 3: more obscure warnings, can most likely be ignored'
1335 @echo ' Multiple levels can be combined with W=12 or W=123' 1335 @echo ' Multiple levels can be combined with W=12 or W=123'
1336 @echo '' 1336 @echo ''
1337 @echo 'Execute "make" or "make all" to build all targets marked with [*] ' 1337 @echo 'Execute "make" or "make all" to build all targets marked with [*] '
1338 @echo 'For further info see the ./README file' 1338 @echo 'For further info see the ./README file'
1339 1339
1340 1340
1341 # Documentation targets 1341 # Documentation targets
1342 # --------------------------------------------------------------------------- 1342 # ---------------------------------------------------------------------------
1343 %docs: scripts_basic FORCE 1343 %docs: scripts_basic FORCE
1344 $(Q)$(MAKE) $(build)=scripts build_docproc 1344 $(Q)$(MAKE) $(build)=scripts build_docproc
1345 $(Q)$(MAKE) $(build)=doc/DocBook $@ 1345 $(Q)$(MAKE) $(build)=doc/DocBook $@
1346 1346
1347 # Dummies... 1347 # Dummies...
1348 PHONY += prepare scripts 1348 PHONY += prepare scripts
1349 prepare: ; 1349 prepare: ;
1350 scripts: ; 1350 scripts: ;
1351 1351
1352 endif #ifeq ($(config-targets),1) 1352 endif #ifeq ($(config-targets),1)
1353 endif #ifeq ($(mixed-targets),1) 1353 endif #ifeq ($(mixed-targets),1)
1354 1354
1355 PHONY += checkstack ubootrelease ubootversion 1355 PHONY += checkstack ubootrelease ubootversion
1356 1356
1357 checkstack: 1357 checkstack:
1358 $(OBJDUMP) -d u-boot $$(find . -name u-boot-spl) | \ 1358 $(OBJDUMP) -d u-boot $$(find . -name u-boot-spl) | \
1359 $(PERL) $(src)/scripts/checkstack.pl $(ARCH) 1359 $(PERL) $(src)/scripts/checkstack.pl $(ARCH)
1360 1360
1361 ubootrelease: 1361 ubootrelease:
1362 @echo "$(UBOOTVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))" 1362 @echo "$(UBOOTVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))"
1363 1363
1364 ubootversion: 1364 ubootversion:
1365 @echo $(UBOOTVERSION) 1365 @echo $(UBOOTVERSION)
1366 1366
1367 # Single targets 1367 # Single targets
1368 # --------------------------------------------------------------------------- 1368 # ---------------------------------------------------------------------------
1369 # Single targets are compatible with: 1369 # Single targets are compatible with:
1370 # - build with mixed source and output 1370 # - build with mixed source and output
1371 # - build with separate output dir 'make O=...' 1371 # - build with separate output dir 'make O=...'
1372 # - external modules 1372 # - external modules
1373 # 1373 #
1374 # target-dir => where to store outputfile 1374 # target-dir => where to store outputfile
1375 # build-dir => directory in kernel source tree to use 1375 # build-dir => directory in kernel source tree to use
1376 1376
1377 ifeq ($(KBUILD_EXTMOD),) 1377 ifeq ($(KBUILD_EXTMOD),)
1378 build-dir = $(patsubst %/,%,$(dir $@)) 1378 build-dir = $(patsubst %/,%,$(dir $@))
1379 target-dir = $(dir $@) 1379 target-dir = $(dir $@)
1380 else 1380 else
1381 zap-slash=$(filter-out .,$(patsubst %/,%,$(dir $@))) 1381 zap-slash=$(filter-out .,$(patsubst %/,%,$(dir $@)))
1382 build-dir = $(KBUILD_EXTMOD)$(if $(zap-slash),/$(zap-slash)) 1382 build-dir = $(KBUILD_EXTMOD)$(if $(zap-slash),/$(zap-slash))
1383 target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@)) 1383 target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@))
1384 endif 1384 endif
1385 1385
1386 %.s: %.c prepare scripts FORCE 1386 %.s: %.c prepare scripts FORCE
1387 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) 1387 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
1388 %.i: %.c prepare scripts FORCE 1388 %.i: %.c prepare scripts FORCE
1389 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) 1389 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
1390 %.o: %.c prepare scripts FORCE 1390 %.o: %.c prepare scripts FORCE
1391 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) 1391 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
1392 %.lst: %.c prepare scripts FORCE 1392 %.lst: %.c prepare scripts FORCE
1393 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) 1393 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
1394 %.s: %.S prepare scripts FORCE 1394 %.s: %.S prepare scripts FORCE
1395 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) 1395 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
1396 %.o: %.S prepare scripts FORCE 1396 %.o: %.S prepare scripts FORCE
1397 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) 1397 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
1398 %.symtypes: %.c prepare scripts FORCE 1398 %.symtypes: %.c prepare scripts FORCE
1399 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) 1399 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
1400 1400
1401 # Modules 1401 # Modules
1402 /: prepare scripts FORCE 1402 /: prepare scripts FORCE
1403 $(cmd_crmodverdir) 1403 $(cmd_crmodverdir)
1404 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \ 1404 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
1405 $(build)=$(build-dir) 1405 $(build)=$(build-dir)
1406 %/: prepare scripts FORCE 1406 %/: prepare scripts FORCE
1407 $(cmd_crmodverdir) 1407 $(cmd_crmodverdir)
1408 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \ 1408 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
1409 $(build)=$(build-dir) 1409 $(build)=$(build-dir)
1410 %.ko: prepare scripts FORCE 1410 %.ko: prepare scripts FORCE
1411 $(cmd_crmodverdir) 1411 $(cmd_crmodverdir)
1412 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \ 1412 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
1413 $(build)=$(build-dir) $(@:.ko=.o) 1413 $(build)=$(build-dir) $(@:.ko=.o)
1414 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost 1414 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
1415 1415
1416 # FIXME Should go into a make.lib or something 1416 # FIXME Should go into a make.lib or something
1417 # =========================================================================== 1417 # ===========================================================================
1418 1418
1419 quiet_cmd_rmdirs = $(if $(wildcard $(rm-dirs)),CLEAN $(wildcard $(rm-dirs))) 1419 quiet_cmd_rmdirs = $(if $(wildcard $(rm-dirs)),CLEAN $(wildcard $(rm-dirs)))
1420 cmd_rmdirs = rm -rf $(rm-dirs) 1420 cmd_rmdirs = rm -rf $(rm-dirs)
1421 1421
1422 quiet_cmd_rmfiles = $(if $(wildcard $(rm-files)),CLEAN $(wildcard $(rm-files))) 1422 quiet_cmd_rmfiles = $(if $(wildcard $(rm-files)),CLEAN $(wildcard $(rm-files)))
1423 cmd_rmfiles = rm -f $(rm-files) 1423 cmd_rmfiles = rm -f $(rm-files)
1424 1424
1425 # read all saved command lines 1425 # read all saved command lines
1426 1426
1427 targets := $(wildcard $(sort $(targets))) 1427 targets := $(wildcard $(sort $(targets)))
1428 cmd_files := $(wildcard .*.cmd $(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd)) 1428 cmd_files := $(wildcard .*.cmd $(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd))
1429 1429
1430 ifneq ($(cmd_files),) 1430 ifneq ($(cmd_files),)
1431 $(cmd_files): ; # Do not try to update included dependency files 1431 $(cmd_files): ; # Do not try to update included dependency files
1432 include $(cmd_files) 1432 include $(cmd_files)
1433 endif 1433 endif
1434 1434
1435 # Shorthand for $(Q)$(MAKE) -f scripts/Makefile.clean obj=dir 1435 # Shorthand for $(Q)$(MAKE) -f scripts/Makefile.clean obj=dir
1436 # Usage: 1436 # Usage:
1437 # $(Q)$(MAKE) $(clean)=dir 1437 # $(Q)$(MAKE) $(clean)=dir
1438 clean := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.clean obj 1438 clean := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.clean obj
1439 1439
1440 endif # skip-makefile 1440 endif # skip-makefile
1441 1441
1442 PHONY += FORCE 1442 PHONY += FORCE
1443 FORCE: 1443 FORCE:
1444 1444
1445 # Declare the contents of the .PHONY variable as phony. We keep that 1445 # Declare the contents of the .PHONY variable as phony. We keep that
1446 # information in a variable so we can use it in if_changed and friends. 1446 # information in a variable so we can use it in if_changed and friends.
1447 .PHONY: $(PHONY) 1447 .PHONY: $(PHONY)
1448 1448