|
@@ -12,10 +12,9 @@ NAME =
|
|
|
# Comments in this file are targeted only to the developer, do not
|
|
|
# expect to learn how to build the kernel reading this file.
|
|
|
|
|
|
-# o Do not use make's built-in rules and variables
|
|
|
-# (this increases performance and avoids hard-to-debug behaviour);
|
|
|
-# o Look for make include files relative to root of kernel src
|
|
|
-MAKEFLAGS += -rR --include-dir=$(CURDIR)
|
|
|
+# Do not use make's built-in rules and variables
|
|
|
+# (this increases performance and avoids hard-to-debug behaviour)
|
|
|
+MAKEFLAGS += -rR
|
|
|
|
|
|
# Determine target architecture for the sandbox
|
|
|
include include/host_arch.h
|
|
@@ -162,6 +161,13 @@ KBUILD_OUTPUT := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) \
|
|
|
$(if $(KBUILD_OUTPUT),, \
|
|
|
$(error failed to create output directory "$(saved-output)"))
|
|
|
|
|
|
+# Look for make include files relative to root of kernel src
|
|
|
+#
|
|
|
+# This does not become effective immediately because MAKEFLAGS is re-parsed
|
|
|
+# once after the Makefile is read. It is OK since we are going to invoke
|
|
|
+# 'sub-make' below.
|
|
|
+MAKEFLAGS += --include-dir=$(CURDIR)
|
|
|
+
|
|
|
PHONY += $(MAKECMDGOALS) sub-make
|
|
|
|
|
|
$(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make
|
|
@@ -492,8 +498,7 @@ PHONY += outputmakefile
|
|
|
outputmakefile:
|
|
|
ifneq ($(KBUILD_SRC),)
|
|
|
$(Q)ln -fsn $(srctree) source
|
|
|
- $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile \
|
|
|
- $(srctree) $(objtree) $(VERSION) $(PATCHLEVEL)
|
|
|
+ $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile $(srctree)
|
|
|
endif
|
|
|
|
|
|
# To make sure we do not include .config for any of the *config targets
|
|
@@ -572,7 +577,7 @@ else
|
|
|
# Carefully list dependencies so we do not try to build scripts twice
|
|
|
# in parallel
|
|
|
PHONY += scripts
|
|
|
-scripts: scripts_basic include/config/auto.conf
|
|
|
+scripts: scripts_basic scripts_dtc include/config/auto.conf
|
|
|
$(Q)$(MAKE) $(build)=$(@)
|
|
|
|
|
|
ifeq ($(dot-config),1)
|
|
@@ -709,6 +714,9 @@ KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector)
|
|
|
endif
|
|
|
KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks)
|
|
|
|
|
|
+# disable pointer signed / unsigned warnings in gcc 4.0
|
|
|
+KBUILD_CFLAGS += -Wno-pointer-sign
|
|
|
+
|
|
|
# disable stringop warnings in gcc 8+
|
|
|
KBUILD_CFLAGS += $(call cc-disable-warning, stringop-truncation)
|
|
|
|
|
@@ -739,7 +747,7 @@ endif
|
|
|
KBUILD_CFLAGS += $(call cc-option,-Wno-format-nonliteral)
|
|
|
KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
|
|
|
|
|
|
-ifeq ($(cc-name),clang)
|
|
|
+ifdef CONFIG_CC_IS_CLANG
|
|
|
KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,)
|
|
|
KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier)
|
|
|
KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
|
|
@@ -751,12 +759,11 @@ KBUILD_CFLAGS += $(call cc-disable-warning, tautological-compare)
|
|
|
# See modpost pattern 2
|
|
|
KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,)
|
|
|
KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior)
|
|
|
-else
|
|
|
+endif
|
|
|
|
|
|
# These warnings generated too much noise in a regular build.
|
|
|
# Use make W=1 to enable them (see scripts/Makefile.extrawarn)
|
|
|
KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
|
|
|
-endif
|
|
|
|
|
|
# Prohibit date/time macros, which would make the build non-deterministic
|
|
|
KBUILD_CFLAGS += $(call cc-option,-Werror=date-time)
|
|
@@ -1946,6 +1953,35 @@ $(dt_h): $(srctree)/Makefile FORCE
|
|
|
$(defaultenv_h): $(CONFIG_DEFAULT_ENV_FILE:"%"=%) FORCE
|
|
|
$(call filechk,defaultenv.h)
|
|
|
|
|
|
+# ---------------------------------------------------------------------------
|
|
|
+# Devicetree files
|
|
|
+
|
|
|
+ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/boot/dts/),)
|
|
|
+dtstree := arch/$(SRCARCH)/boot/dts
|
|
|
+endif
|
|
|
+
|
|
|
+ifneq ($(dtstree),)
|
|
|
+
|
|
|
+%.dtb: prepare3 scripts_dtc
|
|
|
+ $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
|
|
|
+
|
|
|
+PHONY += dtbs dtbs_install
|
|
|
+dtbs: prepare3 scripts_dtc
|
|
|
+ $(Q)$(MAKE) $(build)=$(dtstree)
|
|
|
+
|
|
|
+dtbs_install:
|
|
|
+ $(Q)$(MAKE) $(dtbinst)=$(dtstree)
|
|
|
+
|
|
|
+ifdef CONFIG_OF_EARLY_FLATTREE
|
|
|
+all: dtbs
|
|
|
+endif
|
|
|
+
|
|
|
+endif
|
|
|
+
|
|
|
+PHONY += scripts_dtc
|
|
|
+scripts_dtc: scripts_basic
|
|
|
+ $(Q)$(MAKE) $(build)=scripts/dtc
|
|
|
+
|
|
|
# ---------------------------------------------------------------------------
|
|
|
quiet_cmd_cpp_lds = LDS $@
|
|
|
cmd_cpp_lds = $(CPP) -Wp,-MD,$(depfile) $(cpp_flags) $(LDPPFLAGS) \
|
|
@@ -2208,9 +2244,6 @@ PHONY += $(DOC_TARGETS)
|
|
|
$(DOC_TARGETS): scripts_basic FORCE
|
|
|
$(Q)$(MAKE) $(build)=doc $@
|
|
|
|
|
|
-endif #ifeq ($(config-targets),1)
|
|
|
-endif #ifeq ($(mixed-targets),1)
|
|
|
-
|
|
|
PHONY += checkstack ubootrelease ubootversion
|
|
|
|
|
|
checkstack:
|
|
@@ -2298,13 +2331,15 @@ quiet_cmd_rmfiles = $(if $(wildcard $(rm-files)),CLEAN $(wildcard $(rm-files))
|
|
|
|
|
|
# read all saved command lines
|
|
|
|
|
|
-cmd_files := $(wildcard .*.cmd $(foreach f,$(sort $(targets)),$(dir $(f)).$(notdir $(f)).cmd))
|
|
|
+cmd_files := $(wildcard .*.cmd)
|
|
|
|
|
|
ifneq ($(cmd_files),)
|
|
|
$(cmd_files): ; # Do not try to update included dependency files
|
|
|
include $(cmd_files)
|
|
|
endif
|
|
|
|
|
|
+endif #ifeq ($(config-targets),1)
|
|
|
+endif #ifeq ($(mixed-targets),1)
|
|
|
endif # skip-makefile
|
|
|
|
|
|
PHONY += FORCE
|