forked from mirrors/linux
		
	One of the most remarkable improvements in this cycle is, Kbuild is
 now able to cache the result of shell commands.  Some variables are
 expensive to compute, for example, $(call cc-option,...) invokes the
 compiler.  It is not efficient to redo this computation every time,
 even when we are not actually building anything.  Kbuild creates a
 hidden file ".cache.mk" that contains invoked shell commands and
 their results.  The speed-up should be noticeable.
 
 Summary:
 
 - Fix arch build issues (hexagon, sh)
 
 - Clean up various Makefiles and scripts
 
 - Fix wrong usage of {CFLAGS,LDFLAGS}_MODULE in arch Makefiles
 
 - Cache variables that are expensive to compute
 
 - Improve cc-ldopton and ld-option for Clang
 
 - Optimize output directory creation
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJaDxaLAAoJED2LAQed4NsGIHQP/isMxxaIxIAWU56+ZcII74k7
 639VgrKi9n5y25d1dBRTQg+vReHE6E2JbkCqpVOu11t7m0LT7yUK8v3WwyLf1qTN
 GxnqZ/WMQU5/AYVqIWo8jN4FGHpivHJ6qbeiNJM9qN4RAkzG0sZUq746VaFZYmIR
 Lu0Gf4m4qjifkkhXsQdWT5i7yNTidPqaL6GNb+FcFkEHlVre8jma0kJlgfHxru84
 WmETpjQXvHAZ/R61vY6ekAWpqFhw3ecJY96A9npnx+SQVQdSNAdpaU0SK29jB0ON
 /SAfpHg9oa/gD0LFOKV6zkjnAkd4TEjrJEiHHhz5gjT/SbS3T1llBIGZ1oV4X7Y0
 Vlh9KWlm1FJJI4SIzc9qUaQMp6JtLfEfHKJCc45xVaN3fNrDnR8jl80x5+95ELga
 dCkZgnq5u82MtTysCbHBESwDYQaVPyIrh7In+mduglaCqhqj9KoDjoLoiGfCg7SA
 3tPflYVd629w5l5GrazJ40jWn1+ggMtgMOVooJNJ+dINCP+GxsUpH84Ww2Pdic+/
 qLdud6TeqxrZDGzWXqKNLu8alM8NGgSr101l9gIf1oqSyy63duBpMrxGDoIJS3FU
 rFDoFFUhlfkAXNbQHtVGNzKtcpCjURh992j9Fa1+NfMwSce5IHkMwTvPmNSRowi8
 0llLjXhD/bxK6FpdvlV8
 =zIdO
 -----END PGP SIGNATURE-----
Merge tag 'kbuild-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull Kbuild updates from Masahiro Yamada:
 "One of the most remarkable improvements in this cycle is, Kbuild is
  now able to cache the result of shell commands. Some variables are
  expensive to compute, for example, $(call cc-option,...) invokes the
  compiler. It is not efficient to redo this computation every time,
  even when we are not actually building anything. Kbuild creates a
  hidden file ".cache.mk" that contains invoked shell commands and their
  results. The speed-up should be noticeable.
  Summary:
   - Fix arch build issues (hexagon, sh)
   - Clean up various Makefiles and scripts
   - Fix wrong usage of {CFLAGS,LDFLAGS}_MODULE in arch Makefiles
   - Cache variables that are expensive to compute
   - Improve cc-ldopton and ld-option for Clang
   - Optimize output directory creation"
* tag 'kbuild-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (30 commits)
  kbuild: move coccicheck help from scripts/Makefile.help to top Makefile
  sh: decompressor: add shipped files to .gitignore
  frv: .gitignore: ignore vmlinux.lds
  selinux: remove unnecessary assignment to subdir-
  kbuild: specify FORCE in Makefile.headersinst as .PHONY target
  kbuild: remove redundant mkdir from ./Kbuild
  kbuild: optimize object directory creation for incremental build
  kbuild: create object directories simpler and faster
  kbuild: filter-out PHONY targets from "targets"
  kbuild: remove redundant $(wildcard ...) for cmd_files calculation
  kbuild: create directory for make cache only when necessary
  sh: select KBUILD_DEFCONFIG depending on ARCH
  kbuild: fix linker feature test macros when cross compiling with Clang
  kbuild: shrink .cache.mk when it exceeds 1000 lines
  kbuild: do not call cc-option before KBUILD_CFLAGS initialization
  kbuild: Cache a few more calls to the compiler
  kbuild: Add a cache for generated variables
  kbuild: add forward declaration of default target to Makefile.asm-generic
  kbuild: remove KBUILD_SUBDIR_ASFLAGS and KBUILD_SUBDIR_CCFLAGS
  hexagon/kbuild: replace CFLAGS_MODULE with KBUILD_CFLAGS_MODULE
  ...
		
	
			
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
# SPDX-License-Identifier: GPL-2.0
 | 
						|
# include/asm-generic contains a lot of files that are used
 | 
						|
# verbatim by several architectures.
 | 
						|
#
 | 
						|
# This Makefile reads the file arch/$(SRCARCH)/include/$(src)/Kbuild
 | 
						|
# and for each file listed in this file with generic-y creates
 | 
						|
# a small wrapper file in $(obj) (arch/$(SRCARCH)/include/generated/$(src))
 | 
						|
 | 
						|
PHONY := all
 | 
						|
all:
 | 
						|
 | 
						|
kbuild-file := $(srctree)/arch/$(SRCARCH)/include/$(src)/Kbuild
 | 
						|
-include $(kbuild-file)
 | 
						|
 | 
						|
include scripts/Kbuild.include
 | 
						|
 | 
						|
# Create output directory if not already present
 | 
						|
_dummy := $(shell [ -d $(obj) ] || mkdir -p $(obj))
 | 
						|
 | 
						|
# Stale wrappers when the corresponding files are removed from generic-y
 | 
						|
# need removing.
 | 
						|
generated-y   := $(generic-y) $(generated-y)
 | 
						|
all-files     := $(patsubst %, $(obj)/%, $(generated-y))
 | 
						|
old-headers   := $(wildcard $(obj)/*.h)
 | 
						|
unwanted      := $(filter-out $(all-files),$(old-headers))
 | 
						|
 | 
						|
quiet_cmd_wrap = WRAP    $@
 | 
						|
cmd_wrap = echo "\#include <asm-generic/$*.h>" >$@
 | 
						|
 | 
						|
quiet_cmd_remove = REMOVE  $(unwanted)
 | 
						|
cmd_remove = rm -f $(unwanted)
 | 
						|
 | 
						|
all: $(patsubst %, $(obj)/%, $(generic-y)) FORCE
 | 
						|
	$(if $(unwanted),$(call cmd,remove),)
 | 
						|
	@:
 | 
						|
 | 
						|
$(obj)/%.h:
 | 
						|
	$(call cmd,wrap)
 | 
						|
 | 
						|
PHONY += FORCE
 | 
						|
.PHONY: $(PHONY)
 | 
						|
FORCE: ;
 |