diff options
| author | David S. Miller <davem@davemloft.net> | 2008-12-28 20:19:47 -0800 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2008-12-28 20:19:47 -0800 | 
| commit | e3c6d4ee545e427b55882d97d3b663c6411645fe (patch) | |
| tree | 294326663fb757739a98083c2ddd570d1eaf7337 /Makefile | |
| parent | 5bc053089376217943187ed5153d0d1e5c5085b6 (diff) | |
| parent | 3c92ec8ae91ecf59d88c798301833d7cf83f2179 (diff) | |
| download | linux-e3c6d4ee545e427b55882d97d3b663c6411645fe.tar.bz2 | |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
	arch/sparc64/kernel/idprom.c
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 209 | 
1 files changed, 67 insertions, 142 deletions
| @@ -1,7 +1,7 @@  VERSION = 2  PATCHLEVEL = 6  SUBLEVEL = 28 -EXTRAVERSION = -rc7 +EXTRAVERSION =  NAME = Erotic Pickled Herring  # *DOCUMENTATION* @@ -337,7 +337,7 @@ LINUXINCLUDE    := -Iinclude \                     -I$(srctree)/arch/$(hdr-arch)/include               \                     -include include/linux/autoconf.h -KBUILD_CPPFLAGS := -D__KERNEL__ $(LINUXINCLUDE) +KBUILD_CPPFLAGS := -D__KERNEL__  KBUILD_CFLAGS   := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \  		   -fno-strict-aliasing -fno-common \ @@ -440,7 +440,11 @@ ifeq ($(config-targets),1)  include $(srctree)/arch/$(SRCARCH)/Makefile  export KBUILD_DEFCONFIG KBUILD_KCONFIG -config %config: scripts_basic outputmakefile FORCE +config: scripts_basic outputmakefile FORCE +	$(Q)mkdir -p include/linux include/config +	$(Q)$(MAKE) $(build)=scripts/kconfig $@ + +%config: scripts_basic outputmakefile FORCE  	$(Q)mkdir -p include/linux include/config  	$(Q)$(MAKE) $(build)=scripts/kconfig $@ @@ -601,20 +605,25 @@ export	INSTALL_PATH ?= /boot  MODLIB	= $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)  export MODLIB -# -#  INSTALL_MOD_STRIP, if defined, will cause modules to be -#  stripped after they are installed.  If INSTALL_MOD_STRIP is '1', then -#  the default option --strip-debug will be used.  Otherwise, -#  INSTALL_MOD_STRIP will used as the options to the strip command. +strip-symbols := $(srctree)/scripts/strip-symbols \ +		 $(wildcard $(srctree)/arch/$(ARCH)/scripts/strip-symbols) +# +# INSTALL_MOD_STRIP, if defined, will cause modules to be stripped while +# they get installed.  If INSTALL_MOD_STRIP is '1', then the default +# options (see below) will be used.  Otherwise, INSTALL_MOD_STRIP will +# be used as the option(s) to the objcopy command.  ifdef INSTALL_MOD_STRIP  ifeq ($(INSTALL_MOD_STRIP),1) -mod_strip_cmd = $(STRIP) --strip-debug +mod_strip_cmd = $(OBJCOPY) --strip-debug +ifeq ($(CONFIG_KALLSYMS_ALL),$(CONFIG_KALLSYMS_STRIP_GENERATED)) +mod_strip_cmd += --wildcard $(addprefix --strip-symbols ,$(strip-symbols)) +endif  else -mod_strip_cmd = $(STRIP) $(INSTALL_MOD_STRIP) +mod_strip_cmd = $(OBJCOPY) $(INSTALL_MOD_STRIP)  endif # INSTALL_MOD_STRIP=1  else -mod_strip_cmd = true +mod_strip_cmd = false  endif # INSTALL_MOD_STRIP  export mod_strip_cmd @@ -744,6 +753,7 @@ last_kallsyms := 2  endif  kallsyms.o := .tmp_kallsyms$(last_kallsyms).o +kallsyms.h := $(wildcard include/config/kallsyms/*.h) $(wildcard include/config/kallsyms/*/*.h)  define verify_kallsyms  	$(Q)$(if $($(quiet)cmd_sysmap),                                      \ @@ -768,24 +778,41 @@ endef  # Generate .S file with all kernel symbols  quiet_cmd_kallsyms = KSYM    $@ -      cmd_kallsyms = $(NM) -n $< | $(KALLSYMS) \ -                     $(if $(CONFIG_KALLSYMS_ALL),--all-symbols) > $@ +      cmd_kallsyms = { test $* -eq 0 || $(NM) -n $<; } \ +		     | $(KALLSYMS) $(if $(CONFIG_KALLSYMS_ALL),--all-symbols) >$@ -.tmp_kallsyms1.o .tmp_kallsyms2.o .tmp_kallsyms3.o: %.o: %.S scripts FORCE +quiet_cmd_kstrip = STRIP   $@ +      cmd_kstrip = $(OBJCOPY) --wildcard $(addprefix --strip$(if $(CONFIG_RELOCATABLE),-unneeded)-symbols ,$(filter %/scripts/strip-symbols,$^)) $< $@ + +$(foreach n,0 1 2 3,.tmp_kallsyms$(n).o): KBUILD_AFLAGS += -Wa,--strip-local-absolute +$(foreach n,0 1 2 3,.tmp_kallsyms$(n).o): %.o: %.S scripts FORCE  	$(call if_changed_dep,as_o_S) -.tmp_kallsyms%.S: .tmp_vmlinux% $(KALLSYMS) +ifeq ($(CONFIG_KALLSYMS_STRIP_GENERATED),y) +strip-ext := .stripped +endif + +.tmp_kallsyms%.S: .tmp_vmlinux%$(strip-ext) $(KALLSYMS) $(kallsyms.h)  	$(call cmd,kallsyms) +# make -jN seems to have problems with intermediate files, see bug #3330. +.SECONDARY: $(foreach n,1 2 3,.tmp_vmlinux$(n).stripped) +.tmp_vmlinux%.stripped: .tmp_vmlinux% $(strip-symbols) $(kallsyms.h) +	$(call cmd,kstrip) + +ifneq ($(CONFIG_DEBUG_INFO),y) +.tmp_vmlinux%: LDFLAGS_vmlinux += -S +endif  # .tmp_vmlinux1 must be complete except kallsyms, so update vmlinux version -.tmp_vmlinux1: $(vmlinux-lds) $(vmlinux-all) FORCE -	$(call if_changed_rule,ksym_ld) +.tmp_vmlinux%: $(vmlinux-lds) $(vmlinux-all) FORCE +	$(if $(filter 1,$*),$(call if_changed_rule,ksym_ld),$(call if_changed,vmlinux__)) -.tmp_vmlinux2: $(vmlinux-lds) $(vmlinux-all) .tmp_kallsyms1.o FORCE -	$(call if_changed,vmlinux__) +.tmp_vmlinux0$(strip-ext): +	$(Q)echo "placeholder" >$@ -.tmp_vmlinux3: $(vmlinux-lds) $(vmlinux-all) .tmp_kallsyms2.o FORCE -	$(call if_changed,vmlinux__) +.tmp_vmlinux1: .tmp_kallsyms0.o +.tmp_vmlinux2: .tmp_kallsyms1.o +.tmp_vmlinux3: .tmp_kallsyms2.o  # Needs to visit scripts/ before $(KALLSYMS) can be used.  $(KALLSYMS): scripts ; @@ -927,7 +954,7 @@ PHONY += prepare archprepare prepare0 prepare1 prepare2 prepare3  # 2) Create the include2 directory, used for the second asm symlink  prepare3: include/config/kernel.release  ifneq ($(KBUILD_SRC),) -	@echo '  Using $(srctree) as source for kernel' +	@$(kecho) '  Using $(srctree) as source for kernel'  	$(Q)if [ -f $(srctree)/.config -o -d $(srctree)/include/config ]; then \  		echo "  $(srctree) is not clean, please run 'make mrproper'";\  		echo "  in the '$(srctree)' directory.";\ @@ -984,7 +1011,7 @@ endef  # directory for generated filesas used by some architectures.  define create-symlink  	if [ ! -L include/asm ]; then                                      \ -			echo '  SYMLINK $@ -> include/asm-$(SRCARCH)';     \ +			$(kecho) '  SYMLINK $@ -> include/asm-$(SRCARCH)'; \  			if [ ! -d include/asm-$(SRCARCH) ]; then           \  				mkdir -p include/asm-$(SRCARCH);           \  			fi;                                                \ @@ -1023,6 +1050,10 @@ include/linux/version.h: $(srctree)/Makefile FORCE  include/linux/utsrelease.h: include/config/kernel.release FORCE  	$(call filechk,utsrelease.h) +PHONY += headerdep +headerdep: +	$(Q)find include/ -name '*.h' | xargs --max-args 1 scripts/headerdep.pl +  # ---------------------------------------------------------------------------  PHONY += depend dep @@ -1097,7 +1128,7 @@ all: modules  PHONY += modules  modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux)  	$(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order -	@echo '  Building modules, stage 2.'; +	@$(kecho) '  Building modules, stage 2.';  	$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost  	$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modbuild @@ -1271,7 +1302,8 @@ help:  	@echo  '  versioncheck    - Sanity check on version.h usage'  	@echo  '  includecheck    - Check for duplicate included header files'  	@echo  '  export_report   - List the usages of all exported symbols' -	@echo  '  headers_check   - Sanity check on exported headers'; \ +	@echo  '  headers_check   - Sanity check on exported headers' +	@echo  '  headerdep       - Detect inclusion cycles in headers'; \  	 echo  ''  	@echo  'Kernel packaging:'  	@$(MAKE) $(build)=$(package-dir) help @@ -1361,7 +1393,7 @@ $(module-dirs): crmodverdir $(objtree)/Module.symvers  	$(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)  modules: $(module-dirs) -	@echo '  Building modules, stage 2.'; +	@$(kecho) '  Building modules, stage 2.';  	$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost  PHONY += modules_install @@ -1410,123 +1442,12 @@ endif # KBUILD_EXTMOD  # Generate tags for editors  # --------------------------------------------------------------------------- +quiet_cmd_tags = GEN     $@ +      cmd_tags = $(CONFIG_SHELL) $(srctree)/scripts/tags.sh $@ -#We want __srctree to totally vanish out when KBUILD_OUTPUT is not set -#(which is the most common case IMHO) to avoid unneeded clutter in the big tags file. -#Adding $(srctree) adds about 20M on i386 to the size of the output file! - -ifeq ($(src),$(obj)) -__srctree = -else -__srctree = $(srctree)/ -endif - -ifeq ($(ALLSOURCE_ARCHS),) -ifeq ($(ARCH),um) -ALLINCLUDE_ARCHS := $(ARCH) $(SUBARCH) -else -ALLINCLUDE_ARCHS := $(SRCARCH) -endif -else -#Allow user to specify only ALLSOURCE_PATHS on the command line, keeping existing behaviour. -ALLINCLUDE_ARCHS := $(ALLSOURCE_ARCHS) -endif - -ALLSOURCE_ARCHS := $(SRCARCH) - -define find-sources -        ( for arch in $(ALLSOURCE_ARCHS) ; do \ -	       find $(__srctree)arch/$${arch} $(RCS_FIND_IGNORE) \ -		    -wholename $(__srctree)arch/$${arch}/include/asm -type d -prune \ -	            -o -name $1 -print; \ -	  done ; \ -	  find $(__srctree)security/selinux/include $(RCS_FIND_IGNORE) \ -	       -name $1 -print; \ -	  find $(__srctree)include $(RCS_FIND_IGNORE) \ -	       \( -name config -o -name 'asm-*' \) -prune \ -	       -o -name $1 -print; \ -	  for arch in $(ALLINCLUDE_ARCHS) ; do \ -	       test -e $(__srctree)include/asm-$${arch} && \ -                 find $(__srctree)include/asm-$${arch} $(RCS_FIND_IGNORE) \ -	            -name $1 -print; \ -	       test -e $(__srctree)arch/$${arch}/include/asm && \ -	         find $(__srctree)arch/$${arch}/include/asm $(RCS_FIND_IGNORE) \ -	            -name $1 -print; \ -	  done ; \ -	  find $(__srctree)include/asm-generic $(RCS_FIND_IGNORE) \ -	       -name $1 -print; \ -	  find $(__srctree) $(RCS_FIND_IGNORE) \ -	       \( -name include -o -name arch -o -name '.tmp_*' \) -prune -o \ -	       -name $1 -print; \ -	  ) -endef - -define all-sources -	$(call find-sources,'*.[chS]') -endef -define all-kconfigs -	$(call find-sources,'Kconfig*') -endef -define all-defconfigs -	$(call find-sources,'defconfig') -endef - -define xtags -	if $1 --version 2>&1 | grep -iq exuberant; then \ -	    $(all-sources) | xargs $1 -a \ -		-I __initdata,__exitdata,__acquires,__releases \ -		-I __read_mostly,____cacheline_aligned,____cacheline_aligned_in_smp,____cacheline_internodealigned_in_smp \ -		-I EXPORT_SYMBOL,EXPORT_SYMBOL_GPL \ -		--extra=+f --c-kinds=+px \ -		--regex-asm='/^ENTRY\(([^)]*)\).*/\1/'; \ -	    $(all-kconfigs) | xargs $1 -a \ -		--langdef=kconfig \ -		--language-force=kconfig \ -		--regex-kconfig='/^[[:blank:]]*(menu|)config[[:blank:]]+([[:alnum:]_]+)/\2/'; \ -	    $(all-defconfigs) | xargs -r $1 -a \ -		--langdef=dotconfig \ -		--language-force=dotconfig \ -		--regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/'; \ -	elif $1 --version 2>&1 | grep -iq emacs; then \ -	    $(all-sources) | xargs $1 -a; \ -	    $(all-kconfigs) | xargs $1 -a \ -		--regex='/^[ \t]*\(\(menu\)*config\)[ \t]+\([a-zA-Z0-9_]+\)/\3/'; \ -	    $(all-defconfigs) | xargs -r $1 -a \ -		--regex='/^#?[ \t]?\(CONFIG_[a-zA-Z0-9_]+\)/\1/'; \ -	else \ -	    $(all-sources) | xargs $1 -a; \ -	fi -endef - -quiet_cmd_cscope-file = FILELST cscope.files -      cmd_cscope-file = (echo \-k; echo \-q; $(all-sources)) > cscope.files - -quiet_cmd_cscope = MAKE    cscope.out -      cmd_cscope = cscope -b -f cscope.out - -cscope: FORCE -	$(call cmd,cscope-file) -	$(call cmd,cscope) - -quiet_cmd_TAGS = MAKE   $@ -define cmd_TAGS -	rm -f $@; \ -	$(call xtags,etags) -endef - -TAGS: FORCE -	$(call cmd,TAGS) - -quiet_cmd_tags = MAKE   $@ -define cmd_tags -	rm -f $@; \ -	$(call xtags,ctags) -endef - -tags: FORCE +tags TAGS cscope: FORCE  	$(call cmd,tags) -  # Scripts to check various things for consistency  # --------------------------------------------------------------------------- @@ -1605,7 +1526,11 @@ endif  	$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)  # Modules -/ %/: prepare scripts FORCE +/: prepare scripts FORCE +	$(cmd_crmodverdir) +	$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \ +	$(build)=$(build-dir) +%/: prepare scripts FORCE  	$(cmd_crmodverdir)  	$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \  	$(build)=$(build-dir) @@ -1639,7 +1564,7 @@ cmd_crmodverdir = $(Q)mkdir -p $(MODVERDIR) \                    $(if $(KBUILD_MODULES),; rm -f $(MODVERDIR)/*)  a_flags = -Wp,-MD,$(depfile) $(KBUILD_AFLAGS) $(AFLAGS_KERNEL) \ -	  $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) \ +	  $(NOSTDINC_FLAGS) $(LINUXINCLUDE) $(KBUILD_CPPFLAGS) \  	  $(modkern_aflags) $(EXTRA_AFLAGS) $(AFLAGS_$(basetarget).o)  quiet_cmd_as_o_S = AS      $@ |