Commit 9c6b05cb724e18d1db3f9e1a75b2272572f06fbd

Authored by Tom Rini
1 parent 8ee81b7f9b

Prepare v2015.07-rc3

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

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

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