diff options
Diffstat (limited to 'scripts/Makefile.lib')
| -rw-r--r-- | scripts/Makefile.lib | 63 | 
1 files changed, 28 insertions, 35 deletions
| diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 41c50f9461e5..4a0cdd6f5909 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -41,9 +41,9 @@ obj-m		:= $(filter-out %/, $(obj-m))  # Subdirectories we need to descend into  subdir-ym	:= $(sort $(subdir-y) $(subdir-m)) -# if $(foo-objs), $(foo-y), or $(foo-m) exists, foo.o is a composite object -multi-used-y := $(sort $(foreach m,$(obj-y), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))), $(m)))) -multi-used-m := $(sort $(foreach m,$(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m))), $(m)))) +# If $(foo-objs), $(foo-y), $(foo-m), or $(foo-) exists, foo.o is a composite object +multi-used-y := $(sort $(foreach m,$(obj-y), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-))), $(m)))) +multi-used-m := $(sort $(foreach m,$(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m)) $($(m:.o=-))), $(m))))  multi-used   := $(multi-used-y) $(multi-used-m)  # $(subdir-obj-y) is the list of objects in $(obj-y) which uses dir/ to @@ -52,8 +52,8 @@ subdir-obj-y := $(filter %/built-in.a, $(obj-y))  # Replace multi-part objects by their individual parts,  # including built-in.a from subdirectories -real-obj-y := $(foreach m, $(obj-y), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))),$($(m:.o=-objs)) $($(m:.o=-y)),$(m))) -real-obj-m := $(foreach m, $(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m))),$($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m)),$(m))) +real-obj-y := $(foreach m, $(obj-y), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-))),$($(m:.o=-objs)) $($(m:.o=-y)),$(m))) +real-obj-m := $(foreach m, $(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m)) $($(m:.o=-))),$($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m)),$(m)))  # DTB  # If CONFIG_OF_ALL_DTBS is enabled, all DT blobs are built @@ -101,6 +101,9 @@ modname-multi = $(subst $(space),:,$(sort $(foreach m,$(multi-used),\  modname = $(if $(modname-multi),$(modname-multi),$(basetarget)) +# target with $(obj)/ and its suffix stripped +target-stem = $(basename $(patsubst $(obj)/%,%,$@)) +  # These flags are needed for modversions and compiling, so we define them here  # $(modname_flags) defines KBUILD_MODNAME as the name of the module it will  # end up in (or would, if it gets compiled in) @@ -109,12 +112,12 @@ basename_flags = -DKBUILD_BASENAME=$(call name-fix,$(basetarget))  modname_flags  = -DKBUILD_MODNAME=$(call name-fix,$(modname))  orig_c_flags   = $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) \ -                 $(ccflags-y) $(CFLAGS_$(basetarget).o) -_c_flags       = $(filter-out $(CFLAGS_REMOVE_$(basetarget).o), $(orig_c_flags)) +                 $(ccflags-y) $(CFLAGS_$(target-stem).o) +_c_flags       = $(filter-out $(CFLAGS_REMOVE_$(target-stem).o), $(orig_c_flags))  orig_a_flags   = $(KBUILD_CPPFLAGS) $(KBUILD_AFLAGS) \ -                 $(asflags-y) $(AFLAGS_$(basetarget).o) -_a_flags       = $(filter-out $(AFLAGS_REMOVE_$(basetarget).o), $(orig_a_flags)) -_cpp_flags     = $(KBUILD_CPPFLAGS) $(cppflags-y) $(CPPFLAGS_$(@F)) +                 $(asflags-y) $(AFLAGS_$(target-stem).o) +_a_flags       = $(filter-out $(AFLAGS_REMOVE_$(target-stem).o), $(orig_a_flags)) +_cpp_flags     = $(KBUILD_CPPFLAGS) $(cppflags-y) $(CPPFLAGS_$(target-stem).lds)  #  # Enable gcov profiling flags for a file, directory or for all files depending @@ -159,6 +162,18 @@ _cpp_flags += -I $(srctree)/$(src) -I $(objtree)/$(obj)  endif  endif +part-of-module = $(if $(filter $(basename $@).o, $(real-obj-m)),y) +quiet_modtag = $(if $(part-of-module),[M],   ) + +modkern_cflags =                                          \ +	$(if $(part-of-module),                           \ +		$(KBUILD_CFLAGS_MODULE) $(CFLAGS_MODULE), \ +		$(KBUILD_CFLAGS_KERNEL) $(CFLAGS_KERNEL)) + +modkern_aflags = $(if $(part-of-module),				\ +			$(KBUILD_AFLAGS_MODULE) $(AFLAGS_MODULE),	\ +			$(KBUILD_AFLAGS_KERNEL) $(AFLAGS_KERNEL)) +  c_flags        = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE)     \  		 -include $(srctree)/include/linux/compiler_types.h       \  		 $(_c_flags) $(modkern_cflags)                           \ @@ -187,28 +202,6 @@ $(foreach m, $(notdir $1), \  	$(addprefix $(obj)/, $(foreach s, $3, $($(m:%$(strip $2)=%$(s)))))))  endef -# LEX -# --------------------------------------------------------------------------- -quiet_cmd_flex = LEX     $@ -      cmd_flex = $(LEX) -o$@ -L $< - -$(obj)/%.lex.c: $(src)/%.l FORCE -	$(call if_changed,flex) - -# YACC -# --------------------------------------------------------------------------- -quiet_cmd_bison = YACC    $@ -      cmd_bison = $(YACC) -o$@ -t -l $< - -$(obj)/%.tab.c: $(src)/%.y FORCE -	$(call if_changed,bison) - -quiet_cmd_bison_h = YACC    $@ -      cmd_bison_h = $(YACC) -o/dev/null --defines=$@ -t -l $< - -$(obj)/%.tab.h: $(src)/%.y FORCE -	$(call if_changed,bison_h) -  # Shipped files  # =========================================================================== @@ -258,7 +251,7 @@ quiet_cmd_gzip = GZIP    $@  DTC ?= $(objtree)/scripts/dtc/dtc  # Disable noisy checks by default -ifeq ($(findstring 1,$(KBUILD_ENABLE_EXTRA_GCC_CHECKS)),) +ifeq ($(findstring 1,$(KBUILD_EXTRA_WARN)),)  DTC_FLAGS += -Wno-unit_address_vs_reg \  	-Wno-unit_address_format \  	-Wno-avoid_unnecessary_addr_size \ @@ -269,7 +262,7 @@ DTC_FLAGS += -Wno-unit_address_vs_reg \  	-Wno-pci_device_reg  endif -ifneq ($(findstring 2,$(KBUILD_ENABLE_EXTRA_GCC_CHECKS)),) +ifneq ($(findstring 2,$(KBUILD_EXTRA_WARN)),)  DTC_FLAGS += -Wnode_name_chars_strict \  	-Wproperty_name_chars_strict  endif @@ -374,7 +367,7 @@ UIMAGE_ENTRYADDR ?= $(UIMAGE_LOADADDR)  UIMAGE_NAME ?= 'Linux-$(KERNELRELEASE)'  quiet_cmd_uimage = UIMAGE  $@ -      cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A $(UIMAGE_ARCH) -O linux \ +      cmd_uimage = $(BASH) $(MKIMAGE) -A $(UIMAGE_ARCH) -O linux \  			-C $(UIMAGE_COMPRESSION) $(UIMAGE_OPTS-y) \  			-T $(UIMAGE_TYPE) \  			-a $(UIMAGE_LOADADDR) -e $(UIMAGE_ENTRYADDR) \ | 
