Commit 8ee950dd273aef6a074d41bf2ee4ef11d6f848fb

Authored by Tom Rini
1 parent 5495dae7aa

Prepare v2014.04-rc2

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

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

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