diff options
| -rw-r--r-- | Makefile | 82 |
1 files changed, 41 insertions, 41 deletions
| @@ -71,7 +71,7 @@ endif | |||
| 71 | # In both cases the working directory must be the root of the kernel src. | 71 | # In both cases the working directory must be the root of the kernel src. |
| 72 | # 1) O= | 72 | # 1) O= |
| 73 | # Use "make O=dir/to/store/output/files/" | 73 | # Use "make O=dir/to/store/output/files/" |
| 74 | # | 74 | # |
| 75 | # 2) Set KBUILD_OUTPUT | 75 | # 2) Set KBUILD_OUTPUT |
| 76 | # Set the environment variable KBUILD_OUTPUT to point to the directory | 76 | # Set the environment variable KBUILD_OUTPUT to point to the directory |
| 77 | # where the output files shall be placed. | 77 | # where the output files shall be placed. |
| @@ -185,13 +185,13 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ | |||
| 185 | else if [ -x /bin/bash ]; then echo /bin/bash; \ | 185 | else if [ -x /bin/bash ]; then echo /bin/bash; \ |
| 186 | else echo sh; fi ; fi) | 186 | else echo sh; fi ; fi) |
| 187 | 187 | ||
| 188 | HOSTCC = gcc | 188 | HOSTCC = gcc |
| 189 | HOSTCXX = g++ | 189 | HOSTCXX = g++ |
| 190 | HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer | 190 | HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer |
| 191 | HOSTCXXFLAGS = -O2 | 191 | HOSTCXXFLAGS = -O2 |
| 192 | 192 | ||
| 193 | # Decide whether to build built-in, modular, or both. | 193 | # Decide whether to build built-in, modular, or both. |
| 194 | # Normally, just do built-in. | 194 | # Normally, just do built-in. |
| 195 | 195 | ||
| 196 | KBUILD_MODULES := | 196 | KBUILD_MODULES := |
| 197 | KBUILD_BUILTIN := 1 | 197 | KBUILD_BUILTIN := 1 |
| @@ -199,7 +199,7 @@ KBUILD_BUILTIN := 1 | |||
| 199 | # If we have only "make modules", don't compile built-in objects. | 199 | # If we have only "make modules", don't compile built-in objects. |
| 200 | # When we're building modules with modversions, we need to consider | 200 | # When we're building modules with modversions, we need to consider |
| 201 | # the built-in objects during the descend as well, in order to | 201 | # the built-in objects during the descend as well, in order to |
| 202 | # make sure the checksums are uptodate before we record them. | 202 | # make sure the checksums are up to date before we record them. |
| 203 | 203 | ||
| 204 | ifeq ($(MAKECMDGOALS),modules) | 204 | ifeq ($(MAKECMDGOALS),modules) |
| 205 | KBUILD_BUILTIN := $(if $(CONFIG_MODVERSIONS),1) | 205 | KBUILD_BUILTIN := $(if $(CONFIG_MODVERSIONS),1) |
| @@ -232,7 +232,7 @@ export KBUILD_CHECKSRC KBUILD_SRC KBUILD_EXTMOD | |||
| 232 | # | 232 | # |
| 233 | # If $(quiet) is empty, the whole command will be printed. | 233 | # If $(quiet) is empty, the whole command will be printed. |
| 234 | # If it is set to "quiet_", only the short version will be printed. | 234 | # If it is set to "quiet_", only the short version will be printed. |
| 235 | # If it is set to "silent_", nothing wil be printed at all, since | 235 | # If it is set to "silent_", nothing will be printed at all, since |
| 236 | # the variable $(silent_cmd_cc_o_c) doesn't exist. | 236 | # the variable $(silent_cmd_cc_o_c) doesn't exist. |
| 237 | # | 237 | # |
| 238 | # A simple variant is to prefix commands with $(Q) - that's useful | 238 | # A simple variant is to prefix commands with $(Q) - that's useful |
| @@ -268,7 +268,7 @@ MAKEFLAGS += --include-dir=$(srctree) | |||
| 268 | include $(srctree)/scripts/Kbuild.include | 268 | include $(srctree)/scripts/Kbuild.include |
| 269 | 269 | ||
| 270 | # Do not use make's built-in rules and variables | 270 | # Do not use make's built-in rules and variables |
| 271 | # This increases performance and avoid hard-to-debug behaviour | 271 | # This increases performance and avoid hard-to-debug behavour |
| 272 | MAKEFLAGS += -rR | 272 | MAKEFLAGS += -rR |
| 273 | 273 | ||
| 274 | # Make variables (CC, etc...) | 274 | # Make variables (CC, etc...) |
| @@ -306,21 +306,21 @@ LINUXINCLUDE := -Iinclude \ | |||
| 306 | 306 | ||
| 307 | CPPFLAGS := -D__KERNEL__ $(LINUXINCLUDE) | 307 | CPPFLAGS := -D__KERNEL__ $(LINUXINCLUDE) |
| 308 | 308 | ||
| 309 | CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ | 309 | CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ |
| 310 | -fno-strict-aliasing -fno-common | 310 | -fno-strict-aliasing -fno-common |
| 311 | AFLAGS := -D__ASSEMBLY__ | 311 | AFLAGS := -D__ASSEMBLY__ |
| 312 | 312 | ||
| 313 | # Read KERNELRELEASE from include/config/kernel.release (if it exists) | 313 | # Read KERNELRELEASE from include/config/kernel.release (if it exists) |
| 314 | KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null) | 314 | KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null) |
| 315 | KERNELVERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) | 315 | KERNELVERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) |
| 316 | 316 | ||
| 317 | export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION \ | 317 | export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION |
| 318 | ARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \ | 318 | export ARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC |
| 319 | CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE \ | 319 | export CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE |
| 320 | HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS | 320 | export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS |
| 321 | 321 | ||
| 322 | export CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS | 322 | export CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS |
| 323 | export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE | 323 | export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE |
| 324 | export AFLAGS AFLAGS_KERNEL AFLAGS_MODULE | 324 | export AFLAGS AFLAGS_KERNEL AFLAGS_MODULE |
| 325 | 325 | ||
| 326 | # When compiling out-of-tree modules, put MODVERDIR in the module | 326 | # When compiling out-of-tree modules, put MODVERDIR in the module |
| @@ -358,7 +358,7 @@ endif | |||
| 358 | # catch them early, and hand them over to scripts/kconfig/Makefile | 358 | # catch them early, and hand them over to scripts/kconfig/Makefile |
| 359 | # It is allowed to specify more targets when calling make, including | 359 | # It is allowed to specify more targets when calling make, including |
| 360 | # mixing *config targets and build targets. | 360 | # mixing *config targets and build targets. |
| 361 | # For example 'make oldconfig all'. | 361 | # For example 'make oldconfig all'. |
| 362 | # Detect when mixed targets is specified, and make a second invocation | 362 | # Detect when mixed targets is specified, and make a second invocation |
| 363 | # of make so .config is not included in this case either (for *config). | 363 | # of make so .config is not included in this case either (for *config). |
| 364 | 364 | ||
| @@ -417,7 +417,7 @@ else | |||
| 417 | ifeq ($(KBUILD_EXTMOD),) | 417 | ifeq ($(KBUILD_EXTMOD),) |
| 418 | # Additional helpers built in scripts/ | 418 | # Additional helpers built in scripts/ |
| 419 | # Carefully list dependencies so we do not try to build scripts twice | 419 | # Carefully list dependencies so we do not try to build scripts twice |
| 420 | # in parrallel | 420 | # in parallel |
| 421 | PHONY += scripts | 421 | PHONY += scripts |
| 422 | scripts: scripts_basic include/config/auto.conf | 422 | scripts: scripts_basic include/config/auto.conf |
| 423 | $(Q)$(MAKE) $(build)=$(@) | 423 | $(Q)$(MAKE) $(build)=$(@) |
| @@ -443,7 +443,7 @@ $(KCONFIG_CONFIG) include/config/auto.conf.cmd: ; | |||
| 443 | 443 | ||
| 444 | # If .config is newer than include/config/auto.conf, someone tinkered | 444 | # If .config is newer than include/config/auto.conf, someone tinkered |
| 445 | # with it and forgot to run make oldconfig. | 445 | # with it and forgot to run make oldconfig. |
| 446 | # if auto.conf.cmd is missing then we are probarly in a cleaned tree so | 446 | # if auto.conf.cmd is missing then we are probably in a cleaned tree so |
| 447 | # we execute the config step to be sure to catch updated Kconfig files | 447 | # we execute the config step to be sure to catch updated Kconfig files |
| 448 | include/config/auto.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd | 448 | include/config/auto.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd |
| 449 | ifeq ($(KBUILD_EXTMOD),) | 449 | ifeq ($(KBUILD_EXTMOD),) |
| @@ -460,7 +460,7 @@ endif | |||
| 460 | # The all: target is the default when no target is given on the | 460 | # The all: target is the default when no target is given on the |
| 461 | # command line. | 461 | # command line. |
| 462 | # This allow a user to issue only 'make' to build a kernel including modules | 462 | # This allow a user to issue only 'make' to build a kernel including modules |
| 463 | # Defaults vmlinux but it is usually overriden in the arch makefile | 463 | # Defaults vmlinux but it is usually overridden in the arch makefile |
| 464 | all: vmlinux | 464 | all: vmlinux |
| 465 | 465 | ||
| 466 | ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE | 466 | ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE |
| @@ -492,11 +492,11 @@ CHECKFLAGS += $(NOSTDINC_FLAGS) | |||
| 492 | # warn about C99 declaration after statement | 492 | # warn about C99 declaration after statement |
| 493 | CFLAGS += $(call cc-option,-Wdeclaration-after-statement,) | 493 | CFLAGS += $(call cc-option,-Wdeclaration-after-statement,) |
| 494 | 494 | ||
| 495 | # disable pointer signedness warnings in gcc 4.0 | 495 | # disable pointer signed / unsigned warnings in gcc 4.0 |
| 496 | CFLAGS += $(call cc-option,-Wno-pointer-sign,) | 496 | CFLAGS += $(call cc-option,-Wno-pointer-sign,) |
| 497 | 497 | ||
| 498 | # Default kernel image to build when no specific target is given. | 498 | # Default kernel image to build when no specific target is given. |
| 499 | # KBUILD_IMAGE may be overruled on the commandline or | 499 | # KBUILD_IMAGE may be overruled on the command line or |
| 500 | # set in the environment | 500 | # set in the environment |
| 501 | # Also any assignments in arch/$(ARCH)/Makefile take precedence over | 501 | # Also any assignments in arch/$(ARCH)/Makefile take precedence over |
| 502 | # this default value | 502 | # this default value |
| @@ -510,7 +510,7 @@ export INSTALL_PATH ?= /boot | |||
| 510 | # | 510 | # |
| 511 | # INSTALL_MOD_PATH specifies a prefix to MODLIB for module directory | 511 | # INSTALL_MOD_PATH specifies a prefix to MODLIB for module directory |
| 512 | # relocations required by build roots. This is not defined in the | 512 | # relocations required by build roots. This is not defined in the |
| 513 | # makefile but the arguement can be passed to make if needed. | 513 | # makefile but the argument can be passed to make if needed. |
| 514 | # | 514 | # |
| 515 | 515 | ||
| 516 | MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE) | 516 | MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE) |
| @@ -556,7 +556,7 @@ libs-y := $(libs-y1) $(libs-y2) | |||
| 556 | 556 | ||
| 557 | # Build vmlinux | 557 | # Build vmlinux |
| 558 | # --------------------------------------------------------------------------- | 558 | # --------------------------------------------------------------------------- |
| 559 | # vmlinux is build from the objects selected by $(vmlinux-init) and | 559 | # vmlinux is built from the objects selected by $(vmlinux-init) and |
| 560 | # $(vmlinux-main). Most are built-in.o files from top-level directories | 560 | # $(vmlinux-main). Most are built-in.o files from top-level directories |
| 561 | # in the kernel tree, others are specified in arch/$(ARCH)Makefile. | 561 | # in the kernel tree, others are specified in arch/$(ARCH)Makefile. |
| 562 | # Ordering when linking is important, and $(vmlinux-init) must be first. | 562 | # Ordering when linking is important, and $(vmlinux-init) must be first. |
| @@ -607,7 +607,7 @@ quiet_cmd_vmlinux_version = GEN .version | |||
| 607 | $(MAKE) $(build)=init | 607 | $(MAKE) $(build)=init |
| 608 | 608 | ||
| 609 | # Generate System.map | 609 | # Generate System.map |
| 610 | quiet_cmd_sysmap = SYSMAP | 610 | quiet_cmd_sysmap = SYSMAP |
| 611 | cmd_sysmap = $(CONFIG_SHELL) $(srctree)/scripts/mksysmap | 611 | cmd_sysmap = $(CONFIG_SHELL) $(srctree)/scripts/mksysmap |
| 612 | 612 | ||
| 613 | # Link of vmlinux | 613 | # Link of vmlinux |
| @@ -754,10 +754,10 @@ _localver = $(foreach f, $(__localver), $(if $(findstring ~, $(f)),,$(f))) | |||
| 754 | localver = $(subst $(space),, \ | 754 | localver = $(subst $(space),, \ |
| 755 | $(shell cat /dev/null $(_localver)) \ | 755 | $(shell cat /dev/null $(_localver)) \ |
| 756 | $(patsubst "%",%,$(CONFIG_LOCALVERSION))) | 756 | $(patsubst "%",%,$(CONFIG_LOCALVERSION))) |
| 757 | 757 | ||
| 758 | # If CONFIG_LOCALVERSION_AUTO is set scripts/setlocalversion is called | 758 | # If CONFIG_LOCALVERSION_AUTO is set scripts/setlocalversion is called |
| 759 | # and if the SCM is know a tag from the SCM is appended. | 759 | # and if the SCM is know a tag from the SCM is appended. |
| 760 | # The appended tag is determinded by the SCM used. | 760 | # The appended tag is determined by the SCM used. |
| 761 | # | 761 | # |
| 762 | # Currently, only git is supported. | 762 | # Currently, only git is supported. |
| 763 | # Other SCMs can edit scripts/setlocalversion and add the appropriate | 763 | # Other SCMs can edit scripts/setlocalversion and add the appropriate |
| @@ -823,14 +823,14 @@ prepare0: archprepare FORCE | |||
| 823 | # All the preparing.. | 823 | # All the preparing.. |
| 824 | prepare prepare-all: prepare0 | 824 | prepare prepare-all: prepare0 |
| 825 | 825 | ||
| 826 | # Leave this as default for preprocessing vmlinux.lds.S, which is now | 826 | # Leave this as default for preprocessing vmlinux.lds.S, which is now |
| 827 | # done in arch/$(ARCH)/kernel/Makefile | 827 | # done in arch/$(ARCH)/kernel/Makefile |
| 828 | 828 | ||
| 829 | export CPPFLAGS_vmlinux.lds += -P -C -U$(ARCH) | 829 | export CPPFLAGS_vmlinux.lds += -P -C -U$(ARCH) |
| 830 | 830 | ||
| 831 | # FIXME: The asm symlink changes when $(ARCH) changes. That's | 831 | # FIXME: The asm symlink changes when $(ARCH) changes. That's |
| 832 | # hard to detect, but I suppose "make mrproper" is a good idea | 832 | # hard to detect, but I suppose "make mrproper" is a good idea |
| 833 | # before switching between archs anyway. | 833 | # before switching between archs anyway. |
| 834 | 834 | ||
| 835 | include/asm: | 835 | include/asm: |
| 836 | @echo ' SYMLINK $@ -> include/asm-$(ARCH)' | 836 | @echo ' SYMLINK $@ -> include/asm-$(ARCH)' |
| @@ -870,7 +870,7 @@ depend dep: | |||
| 870 | 870 | ||
| 871 | ifdef CONFIG_MODULES | 871 | ifdef CONFIG_MODULES |
| 872 | 872 | ||
| 873 | # By default, build modules as well | 873 | # By default, build modules as well |
| 874 | 874 | ||
| 875 | all: modules | 875 | all: modules |
| 876 | 876 | ||
| @@ -968,7 +968,7 @@ clean: archclean $(clean-dirs) | |||
| 968 | $(call cmd,rmdirs) | 968 | $(call cmd,rmdirs) |
| 969 | $(call cmd,rmfiles) | 969 | $(call cmd,rmfiles) |
| 970 | @find . $(RCS_FIND_IGNORE) \ | 970 | @find . $(RCS_FIND_IGNORE) \ |
| 971 | \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \ | 971 | \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \ |
| 972 | -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \ | 972 | -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \ |
| 973 | -o -name '*.symtypes' \) \ | 973 | -o -name '*.symtypes' \) \ |
| 974 | -type f -print | xargs rm -f | 974 | -type f -print | xargs rm -f |
| @@ -993,9 +993,9 @@ PHONY += distclean | |||
| 993 | 993 | ||
| 994 | distclean: mrproper | 994 | distclean: mrproper |
| 995 | @find $(srctree) $(RCS_FIND_IGNORE) \ | 995 | @find $(srctree) $(RCS_FIND_IGNORE) \ |
| 996 | \( -name '*.orig' -o -name '*.rej' -o -name '*~' \ | 996 | \( -name '*.orig' -o -name '*.rej' -o -name '*~' \ |
| 997 | -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \ | 997 | -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \ |
| 998 | -o -name '.*.rej' -o -size 0 \ | 998 | -o -name '.*.rej' -o -size 0 \ |
| 999 | -o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \ | 999 | -o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \ |
| 1000 | -type f -print | xargs rm -f | 1000 | -type f -print | xargs rm -f |
| 1001 | 1001 | ||
| @@ -1088,7 +1088,7 @@ else # KBUILD_EXTMOD | |||
| 1088 | # make M=dir modules Make all modules in specified dir | 1088 | # make M=dir modules Make all modules in specified dir |
| 1089 | # make M=dir Same as 'make M=dir modules' | 1089 | # make M=dir Same as 'make M=dir modules' |
| 1090 | # make M=dir modules_install | 1090 | # make M=dir modules_install |
| 1091 | # Install the modules build in the module directory | 1091 | # Install the modules built in the module directory |
| 1092 | # Assumes install directory is already created | 1092 | # Assumes install directory is already created |
| 1093 | 1093 | ||
| 1094 | # We are always building modules | 1094 | # We are always building modules |
| @@ -1147,7 +1147,7 @@ clean: rm-dirs := $(MODVERDIR) | |||
| 1147 | clean: $(clean-dirs) | 1147 | clean: $(clean-dirs) |
| 1148 | $(call cmd,rmdirs) | 1148 | $(call cmd,rmdirs) |
| 1149 | @find $(KBUILD_EXTMOD) $(RCS_FIND_IGNORE) \ | 1149 | @find $(KBUILD_EXTMOD) $(RCS_FIND_IGNORE) \ |
| 1150 | \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \ | 1150 | \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \ |
| 1151 | -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \) \ | 1151 | -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \) \ |
| 1152 | -type f -print | xargs rm -f | 1152 | -type f -print | xargs rm -f |
| 1153 | 1153 | ||
| @@ -1186,7 +1186,7 @@ else | |||
| 1186 | ALLINCLUDE_ARCHS := $(ARCH) | 1186 | ALLINCLUDE_ARCHS := $(ARCH) |
| 1187 | endif | 1187 | endif |
| 1188 | else | 1188 | else |
| 1189 | #Allow user to specify only ALLSOURCE_PATHS on the command line, keeping existing behaviour. | 1189 | #Allow user to specify only ALLSOURCE_PATHS on the command line, keeping existing behavour. |
| 1190 | ALLINCLUDE_ARCHS := $(ALLSOURCE_ARCHS) | 1190 | ALLINCLUDE_ARCHS := $(ALLSOURCE_ARCHS) |
| 1191 | endif | 1191 | endif |
| 1192 | 1192 | ||
