|
@@ -1,10 +1,3 @@
|
|
-#
|
|
|
|
-# (C) Copyright 2000-2013
|
|
|
|
-# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
|
|
|
-#
|
|
|
|
-# SPDX-License-Identifier: GPL-2.0+
|
|
|
|
-#
|
|
|
|
-
|
|
|
|
VERSION = 2014
|
|
VERSION = 2014
|
|
PATCHLEVEL = 10
|
|
PATCHLEVEL = 10
|
|
SUBLEVEL =
|
|
SUBLEVEL =
|
|
@@ -17,11 +10,9 @@ NAME =
|
|
# Comments in this file are targeted only to the developer, do not
|
|
# Comments in this file are targeted only to the developer, do not
|
|
# expect to learn how to build the kernel reading this file.
|
|
# expect to learn how to build the kernel reading this file.
|
|
|
|
|
|
-# Do not:
|
|
|
|
-# o use make's built-in rules and variables
|
|
|
|
-# (this increases performance and avoids hard-to-debug behaviour);
|
|
|
|
-# o print "Entering directory ...";
|
|
|
|
-MAKEFLAGS += -rR --no-print-directory
|
|
|
|
|
|
+# Do not use make's built-in rules and variables
|
|
|
|
+# (this increases performance and avoids hard-to-debug behaviour);
|
|
|
|
+MAKEFLAGS += -rR
|
|
|
|
|
|
# Avoid funny character set dependencies
|
|
# Avoid funny character set dependencies
|
|
unexport LC_ALL
|
|
unexport LC_ALL
|
|
@@ -29,6 +20,9 @@ LC_COLLATE=C
|
|
LC_NUMERIC=C
|
|
LC_NUMERIC=C
|
|
export LC_COLLATE LC_NUMERIC
|
|
export LC_COLLATE LC_NUMERIC
|
|
|
|
|
|
|
|
+# Avoid interference with shell env settings
|
|
|
|
+unexport GREP_OPTIONS
|
|
|
|
+
|
|
# We are using a recursive build, so we need to do a little thinking
|
|
# We are using a recursive build, so we need to do a little thinking
|
|
# to get the ordering right.
|
|
# to get the ordering right.
|
|
#
|
|
#
|
|
@@ -45,6 +39,29 @@ export LC_COLLATE LC_NUMERIC
|
|
# descending is started. They are now explicitly listed as the
|
|
# descending is started. They are now explicitly listed as the
|
|
# prepare rule.
|
|
# prepare rule.
|
|
|
|
|
|
|
|
+# Beautify output
|
|
|
|
+# ---------------------------------------------------------------------------
|
|
|
|
+#
|
|
|
|
+# Normally, we echo the whole command before executing it. By making
|
|
|
|
+# that echo $($(quiet)$(cmd)), we now have the possibility to set
|
|
|
|
+# $(quiet) to choose other forms of output instead, e.g.
|
|
|
|
+#
|
|
|
|
+# quiet_cmd_cc_o_c = Compiling $(RELDIR)/$@
|
|
|
|
+# cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $<
|
|
|
|
+#
|
|
|
|
+# If $(quiet) is empty, the whole command will be printed.
|
|
|
|
+# If it is set to "quiet_", only the short version will be printed.
|
|
|
|
+# If it is set to "silent_", nothing will be printed at all, since
|
|
|
|
+# the variable $(silent_cmd_cc_o_c) doesn't exist.
|
|
|
|
+#
|
|
|
|
+# A simple variant is to prefix commands with $(Q) - that's useful
|
|
|
|
+# for commands that shall be hidden in non-verbose mode.
|
|
|
|
+#
|
|
|
|
+# $(Q)ln $@ :<
|
|
|
|
+#
|
|
|
|
+# If KBUILD_VERBOSE equals 0 then the above command will be hidden.
|
|
|
|
+# If KBUILD_VERBOSE equals 1 then the above command is displayed.
|
|
|
|
+#
|
|
# To put more focus on warnings, be less verbose as default
|
|
# To put more focus on warnings, be less verbose as default
|
|
# Use 'make V=1' to see the full commands
|
|
# Use 'make V=1' to see the full commands
|
|
|
|
|
|
@@ -55,33 +72,28 @@ ifndef KBUILD_VERBOSE
|
|
KBUILD_VERBOSE = 0
|
|
KBUILD_VERBOSE = 0
|
|
endif
|
|
endif
|
|
|
|
|
|
-# Call a source code checker (by default, "sparse") as part of the
|
|
|
|
-# C compilation.
|
|
|
|
-#
|
|
|
|
-# Use 'make C=1' to enable checking of only re-compiled files.
|
|
|
|
-# Use 'make C=2' to enable checking of *all* source files, regardless
|
|
|
|
-# of whether they are re-compiled or not.
|
|
|
|
-#
|
|
|
|
-# See the file "Documentation/sparse.txt" for more details, including
|
|
|
|
-# where to get the "sparse" utility.
|
|
|
|
|
|
+ifeq ($(KBUILD_VERBOSE),1)
|
|
|
|
+ quiet =
|
|
|
|
+ Q =
|
|
|
|
+else
|
|
|
|
+ quiet=quiet_
|
|
|
|
+ Q = @
|
|
|
|
+endif
|
|
|
|
|
|
-ifeq ("$(origin C)", "command line")
|
|
|
|
- KBUILD_CHECKSRC = $(C)
|
|
|
|
|
|
+# If the user is running make -s (silent mode), suppress echoing of
|
|
|
|
+# commands
|
|
|
|
+
|
|
|
|
+ifneq ($(filter 4.%,$(MAKE_VERSION)),) # make-4
|
|
|
|
+ifneq ($(filter %s ,$(firstword x$(MAKEFLAGS))),)
|
|
|
|
+ quiet=silent_
|
|
endif
|
|
endif
|
|
-ifndef KBUILD_CHECKSRC
|
|
|
|
- KBUILD_CHECKSRC = 0
|
|
|
|
|
|
+else # make-3.8x
|
|
|
|
+ifneq ($(filter s% -s%,$(MAKEFLAGS)),)
|
|
|
|
+ quiet=silent_
|
|
endif
|
|
endif
|
|
-
|
|
|
|
-# Use make M=dir to specify directory of external module to build
|
|
|
|
-# Old syntax make ... SUBDIRS=$PWD is still supported
|
|
|
|
-# Setting the environment variable KBUILD_EXTMOD take precedence
|
|
|
|
-ifdef SUBDIRS
|
|
|
|
- KBUILD_EXTMOD ?= $(SUBDIRS)
|
|
|
|
endif
|
|
endif
|
|
|
|
|
|
-ifeq ("$(origin M)", "command line")
|
|
|
|
- KBUILD_EXTMOD := $(M)
|
|
|
|
-endif
|
|
|
|
|
|
+export quiet Q KBUILD_VERBOSE
|
|
|
|
|
|
# kbuild supports saving output files in a separate directory.
|
|
# kbuild supports saving output files in a separate directory.
|
|
# To locate output files in a separate directory two syntaxes are supported.
|
|
# To locate output files in a separate directory two syntaxes are supported.
|
|
@@ -98,7 +110,6 @@ endif
|
|
# The O= assignment takes precedence over the KBUILD_OUTPUT environment
|
|
# The O= assignment takes precedence over the KBUILD_OUTPUT environment
|
|
# variable.
|
|
# variable.
|
|
|
|
|
|
-
|
|
|
|
# KBUILD_SRC is set on invocation of make in OBJ directory
|
|
# KBUILD_SRC is set on invocation of make in OBJ directory
|
|
# KBUILD_SRC is not intended to be used by the regular user (for now)
|
|
# KBUILD_SRC is not intended to be used by the regular user (for now)
|
|
ifeq ($(KBUILD_SRC),)
|
|
ifeq ($(KBUILD_SRC),)
|
|
@@ -131,10 +142,8 @@ $(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make
|
|
@:
|
|
@:
|
|
|
|
|
|
sub-make: FORCE
|
|
sub-make: FORCE
|
|
- $(if $(KBUILD_VERBOSE:1=),@)$(MAKE) -C $(KBUILD_OUTPUT) \
|
|
|
|
- KBUILD_SRC=$(CURDIR) \
|
|
|
|
- KBUILD_EXTMOD="$(KBUILD_EXTMOD)" -f $(CURDIR)/Makefile \
|
|
|
|
- $(filter-out _all sub-make,$(MAKECMDGOALS))
|
|
|
|
|
|
+ $(Q)$(MAKE) -C $(KBUILD_OUTPUT) KBUILD_SRC=$(CURDIR) \
|
|
|
|
+ -f $(CURDIR)/Makefile $(filter-out _all sub-make,$(MAKECMDGOALS))
|
|
|
|
|
|
# Leave processing to above invocation of make
|
|
# Leave processing to above invocation of make
|
|
skip-makefile := 1
|
|
skip-makefile := 1
|
|
@@ -144,6 +153,39 @@ endif # ifeq ($(KBUILD_SRC),)
|
|
# We process the rest of the Makefile if this is the final invocation of make
|
|
# We process the rest of the Makefile if this is the final invocation of make
|
|
ifeq ($(skip-makefile),)
|
|
ifeq ($(skip-makefile),)
|
|
|
|
|
|
|
|
+# Do not print "Entering directory ...",
|
|
|
|
+# but we want to display it when entering to the output directory
|
|
|
|
+# so that IDEs/editors are able to understand relative filenames.
|
|
|
|
+MAKEFLAGS += --no-print-directory
|
|
|
|
+
|
|
|
|
+# Call a source code checker (by default, "sparse") as part of the
|
|
|
|
+# C compilation.
|
|
|
|
+#
|
|
|
|
+# Use 'make C=1' to enable checking of only re-compiled files.
|
|
|
|
+# Use 'make C=2' to enable checking of *all* source files, regardless
|
|
|
|
+# of whether they are re-compiled or not.
|
|
|
|
+#
|
|
|
|
+# See the file "Documentation/sparse.txt" for more details, including
|
|
|
|
+# where to get the "sparse" utility.
|
|
|
|
+
|
|
|
|
+ifeq ("$(origin C)", "command line")
|
|
|
|
+ KBUILD_CHECKSRC = $(C)
|
|
|
|
+endif
|
|
|
|
+ifndef KBUILD_CHECKSRC
|
|
|
|
+ KBUILD_CHECKSRC = 0
|
|
|
|
+endif
|
|
|
|
+
|
|
|
|
+# Use make M=dir to specify directory of external module to build
|
|
|
|
+# Old syntax make ... SUBDIRS=$PWD is still supported
|
|
|
|
+# Setting the environment variable KBUILD_EXTMOD take precedence
|
|
|
|
+ifdef SUBDIRS
|
|
|
|
+ KBUILD_EXTMOD ?= $(SUBDIRS)
|
|
|
|
+endif
|
|
|
|
+
|
|
|
|
+ifeq ("$(origin M)", "command line")
|
|
|
|
+ KBUILD_EXTMOD := $(M)
|
|
|
|
+endif
|
|
|
|
+
|
|
# If building an external module we do not care about the all: rule
|
|
# If building an external module we do not care about the all: rule
|
|
# but instead _all depend on modules
|
|
# but instead _all depend on modules
|
|
PHONY += all
|
|
PHONY += all
|
|
@@ -153,8 +195,18 @@ else
|
|
_all: modules
|
|
_all: modules
|
|
endif
|
|
endif
|
|
|
|
|
|
-srctree := $(if $(KBUILD_SRC),$(KBUILD_SRC),$(CURDIR))
|
|
|
|
-objtree := $(CURDIR)
|
|
|
|
|
|
+ifeq ($(KBUILD_SRC),)
|
|
|
|
+ # building in the source tree
|
|
|
|
+ srctree := .
|
|
|
|
+else
|
|
|
|
+ ifeq ($(KBUILD_SRC)/,$(dir $(CURDIR)))
|
|
|
|
+ # building in a subdirectory of the source tree
|
|
|
|
+ srctree := ..
|
|
|
|
+ else
|
|
|
|
+ srctree := $(KBUILD_SRC)
|
|
|
|
+ endif
|
|
|
|
+endif
|
|
|
|
+objtree := .
|
|
src := $(srctree)
|
|
src := $(srctree)
|
|
obj := $(objtree)
|
|
obj := $(objtree)
|
|
|
|
|
|
@@ -262,52 +314,6 @@ endif
|
|
export KBUILD_MODULES KBUILD_BUILTIN
|
|
export KBUILD_MODULES KBUILD_BUILTIN
|
|
export KBUILD_CHECKSRC KBUILD_SRC KBUILD_EXTMOD
|
|
export KBUILD_CHECKSRC KBUILD_SRC KBUILD_EXTMOD
|
|
|
|
|
|
-# Beautify output
|
|
|
|
-# ---------------------------------------------------------------------------
|
|
|
|
-#
|
|
|
|
-# Normally, we echo the whole command before executing it. By making
|
|
|
|
-# that echo $($(quiet)$(cmd)), we now have the possibility to set
|
|
|
|
-# $(quiet) to choose other forms of output instead, e.g.
|
|
|
|
-#
|
|
|
|
-# quiet_cmd_cc_o_c = Compiling $(RELDIR)/$@
|
|
|
|
-# cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $<
|
|
|
|
-#
|
|
|
|
-# If $(quiet) is empty, the whole command will be printed.
|
|
|
|
-# If it is set to "quiet_", only the short version will be printed.
|
|
|
|
-# If it is set to "silent_", nothing will be printed at all, since
|
|
|
|
-# the variable $(silent_cmd_cc_o_c) doesn't exist.
|
|
|
|
-#
|
|
|
|
-# A simple variant is to prefix commands with $(Q) - that's useful
|
|
|
|
-# for commands that shall be hidden in non-verbose mode.
|
|
|
|
-#
|
|
|
|
-# $(Q)ln $@ :<
|
|
|
|
-#
|
|
|
|
-# If KBUILD_VERBOSE equals 0 then the above command will be hidden.
|
|
|
|
-# If KBUILD_VERBOSE equals 1 then the above command is displayed.
|
|
|
|
-
|
|
|
|
-ifeq ($(KBUILD_VERBOSE),1)
|
|
|
|
- quiet =
|
|
|
|
- Q =
|
|
|
|
-else
|
|
|
|
- quiet=quiet_
|
|
|
|
- Q = @
|
|
|
|
-endif
|
|
|
|
-
|
|
|
|
-# If the user is running make -s (silent mode), suppress echoing of
|
|
|
|
-# commands
|
|
|
|
-
|
|
|
|
-ifneq ($(filter 4.%,$(MAKE_VERSION)),) # make-4
|
|
|
|
-ifneq ($(filter %s ,$(firstword x$(MAKEFLAGS))),)
|
|
|
|
- quiet=silent_
|
|
|
|
-endif
|
|
|
|
-else # make-3.8x
|
|
|
|
-ifneq ($(filter s% -s%,$(MAKEFLAGS)),)
|
|
|
|
- quiet=silent_
|
|
|
|
-endif
|
|
|
|
-endif
|
|
|
|
-
|
|
|
|
-export quiet Q KBUILD_VERBOSE
|
|
|
|
-
|
|
|
|
# Look for make include files relative to root of kernel src
|
|
# Look for make include files relative to root of kernel src
|
|
MAKEFLAGS += --include-dir=$(srctree)
|
|
MAKEFLAGS += --include-dir=$(srctree)
|
|
|
|
|
|
@@ -1308,7 +1314,7 @@ help:
|
|
@echo ''
|
|
@echo ''
|
|
@echo 'Other generic targets:'
|
|
@echo 'Other generic targets:'
|
|
@echo ' all - Build all necessary images depending on configuration'
|
|
@echo ' all - Build all necessary images depending on configuration'
|
|
- @echo ' u-boot - Build the bare u-boot'
|
|
|
|
|
|
+ @echo '* u-boot - Build the bare u-boot'
|
|
@echo ' dir/ - Build all files in dir and below'
|
|
@echo ' dir/ - Build all files in dir and below'
|
|
@echo ' dir/file.[oisS] - Build specified target only'
|
|
@echo ' dir/file.[oisS] - Build specified target only'
|
|
@echo ' dir/file.lst - Build specified mixed source/assembly target only'
|
|
@echo ' dir/file.lst - Build specified mixed source/assembly target only'
|
|
@@ -1316,8 +1322,8 @@ help:
|
|
@echo ' tags/ctags - Generate ctags file for editors'
|
|
@echo ' tags/ctags - Generate ctags file for editors'
|
|
@echo ' etags - Generate etags file for editors'
|
|
@echo ' etags - Generate etags file for editors'
|
|
@echo ' cscope - Generate cscope index'
|
|
@echo ' cscope - Generate cscope index'
|
|
- @echo ' ubootrelease - Output the release version string'
|
|
|
|
- @echo ' ubootversion - Output the version stored in Makefile'
|
|
|
|
|
|
+ @echo ' ubootrelease - Output the release version string (use with make -s)'
|
|
|
|
+ @echo ' ubootversion - Output the version stored in Makefile (use with make -s)'
|
|
@echo ''
|
|
@echo ''
|
|
@echo 'Static analysers'
|
|
@echo 'Static analysers'
|
|
@echo ' checkstack - Generate a list of stack hogs'
|
|
@echo ' checkstack - Generate a list of stack hogs'
|