aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile75
1 files changed, 42 insertions, 33 deletions
diff --git a/Makefile b/Makefile
index 529b9048d97e..264f37b8b263 100644
--- a/Makefile
+++ b/Makefile
@@ -774,6 +774,9 @@ vmlinux: $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) $(kallsyms.o) vmlinux.o
774ifdef CONFIG_HEADERS_CHECK 774ifdef CONFIG_HEADERS_CHECK
775 $(Q)$(MAKE) -f $(srctree)/Makefile headers_check 775 $(Q)$(MAKE) -f $(srctree)/Makefile headers_check
776endif 776endif
777ifdef CONFIG_SAMPLES
778 $(Q)$(MAKE) $(build)=samples
779endif
777 $(call vmlinux-modpost) 780 $(call vmlinux-modpost)
778 $(call if_changed_rule,vmlinux__) 781 $(call if_changed_rule,vmlinux__)
779 $(Q)rm -f .old_version 782 $(Q)rm -f .old_version
@@ -884,10 +887,7 @@ prepare2: prepare3 outputmakefile
884 887
885prepare1: prepare2 include/linux/version.h include/linux/utsrelease.h \ 888prepare1: prepare2 include/linux/version.h include/linux/utsrelease.h \
886 include/asm include/config/auto.conf 889 include/asm include/config/auto.conf
887ifneq ($(KBUILD_MODULES),) 890 $(cmd_crmodverdir)
888 $(Q)mkdir -p $(MODVERDIR)
889 $(Q)rm -f $(MODVERDIR)/*
890endif
891 891
892archprepare: prepare1 scripts_basic 892archprepare: prepare1 scripts_basic
893 893
@@ -903,14 +903,24 @@ prepare: prepare0
903 903
904export CPPFLAGS_vmlinux.lds += -P -C -U$(ARCH) 904export CPPFLAGS_vmlinux.lds += -P -C -U$(ARCH)
905 905
906# FIXME: The asm symlink changes when $(ARCH) changes. That's 906# The asm symlink changes when $(ARCH) changes.
907# hard to detect, but I suppose "make mrproper" is a good idea 907# Detect this and ask user to run make mrproper
908# before switching between archs anyway. 908
909 909include/asm: FORCE
910include/asm: 910 $(Q)set -e; asmlink=`readlink include/asm | cut -d '-' -f 2`; \
911 @echo ' SYMLINK $@ -> include/asm-$(SRCARCH)' 911 if [ -L include/asm ]; then \
912 $(Q)if [ ! -d include ]; then mkdir -p include; fi; 912 if [ "$$asmlink" != "$(SRCARCH)" ]; then \
913 @ln -fsn asm-$(SRCARCH) $@ 913 echo "ERROR: the symlink $@ points to asm-$$asmlink but asm-$(SRCARCH) was expected"; \
914 echo " set ARCH or save .config and run 'make mrproper' to fix it"; \
915 exit 1; \
916 fi; \
917 else \
918 echo ' SYMLINK $@ -> include/asm-$(SRCARCH)'; \
919 if [ ! -d include ]; then \
920 mkdir -p include; \
921 fi; \
922 ln -fsn asm-$(SRCARCH) $@; \
923 fi
914 924
915# Generate some files 925# Generate some files
916# --------------------------------------------------------------------------- 926# ---------------------------------------------------------------------------
@@ -1020,19 +1030,12 @@ _modinst_:
1020 fi 1030 fi
1021 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modinst 1031 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modinst
1022 1032
1023# If System.map exists, run depmod. This deliberately does not have a 1033# This depmod is only for convenience to give the initial
1024# dependency on System.map since that would run the dependency tree on
1025# vmlinux. This depmod is only for convenience to give the initial
1026# boot a modules.dep even before / is mounted read-write. However the 1034# boot a modules.dep even before / is mounted read-write. However the
1027# boot script depmod is the master version. 1035# boot script depmod is the master version.
1028ifeq "$(strip $(INSTALL_MOD_PATH))" ""
1029depmod_opts :=
1030else
1031depmod_opts := -b $(INSTALL_MOD_PATH) -r
1032endif
1033PHONY += _modinst_post 1036PHONY += _modinst_post
1034_modinst_post: _modinst_ 1037_modinst_post: _modinst_
1035 if [ -r System.map -a -x $(DEPMOD) ]; then $(DEPMOD) -ae -F System.map $(depmod_opts) $(KERNELRELEASE); fi 1038 $(call cmd,depmod)
1036 1039
1037else # CONFIG_MODULES 1040else # CONFIG_MODULES
1038 1041
@@ -1220,8 +1223,7 @@ else # KBUILD_EXTMOD
1220KBUILD_MODULES := 1 1223KBUILD_MODULES := 1
1221PHONY += crmodverdir 1224PHONY += crmodverdir
1222crmodverdir: 1225crmodverdir:
1223 $(Q)mkdir -p $(MODVERDIR) 1226 $(cmd_crmodverdir)
1224 $(Q)rm -f $(MODVERDIR)/*
1225 1227
1226PHONY += $(objtree)/Module.symvers 1228PHONY += $(objtree)/Module.symvers
1227$(objtree)/Module.symvers: 1229$(objtree)/Module.symvers:
@@ -1249,15 +1251,6 @@ _emodinst_:
1249 $(Q)mkdir -p $(MODLIB)/$(install-dir) 1251 $(Q)mkdir -p $(MODLIB)/$(install-dir)
1250 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modinst 1252 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modinst
1251 1253
1252# Run depmod only is we have System.map and depmod is executable
1253quiet_cmd_depmod = DEPMOD $(KERNELRELEASE)
1254 cmd_depmod = if [ -r System.map -a -x $(DEPMOD) ]; then \
1255 $(DEPMOD) -ae -F System.map \
1256 $(if $(strip $(INSTALL_MOD_PATH)), \
1257 -b $(INSTALL_MOD_PATH) -r) \
1258 $(KERNELRELEASE); \
1259 fi
1260
1261PHONY += _emodinst_post 1254PHONY += _emodinst_post
1262_emodinst_post: _emodinst_ 1255_emodinst_post: _emodinst_
1263 $(call cmd,depmod) 1256 $(call cmd,depmod)
@@ -1341,7 +1334,7 @@ define find-sources
1341 find $(__srctree)include/asm-generic $(RCS_FIND_IGNORE) \ 1334 find $(__srctree)include/asm-generic $(RCS_FIND_IGNORE) \
1342 -name $1 -print; \ 1335 -name $1 -print; \
1343 find $(__srctree) $(RCS_FIND_IGNORE) \ 1336 find $(__srctree) $(RCS_FIND_IGNORE) \
1344 \( -name include -o -name arch \) -prune -o \ 1337 \( -name include -o -name arch -o -name '.tmp_*' \) -prune -o \
1345 -name $1 -print; \ 1338 -name $1 -print; \
1346 ) 1339 )
1347endef 1340endef
@@ -1490,9 +1483,11 @@ endif
1490 1483
1491# Modules 1484# Modules
1492/ %/: prepare scripts FORCE 1485/ %/: prepare scripts FORCE
1486 $(cmd_crmodverdir)
1493 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \ 1487 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
1494 $(build)=$(build-dir) 1488 $(build)=$(build-dir)
1495%.ko: prepare scripts FORCE 1489%.ko: prepare scripts FORCE
1490 $(cmd_crmodverdir)
1496 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \ 1491 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
1497 $(build)=$(build-dir) $(@:.ko=.o) 1492 $(build)=$(build-dir) $(@:.ko=.o)
1498 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost 1493 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
@@ -1506,6 +1501,20 @@ quiet_cmd_rmdirs = $(if $(wildcard $(rm-dirs)),CLEAN $(wildcard $(rm-dirs)))
1506quiet_cmd_rmfiles = $(if $(wildcard $(rm-files)),CLEAN $(wildcard $(rm-files))) 1501quiet_cmd_rmfiles = $(if $(wildcard $(rm-files)),CLEAN $(wildcard $(rm-files)))
1507 cmd_rmfiles = rm -f $(rm-files) 1502 cmd_rmfiles = rm -f $(rm-files)
1508 1503
1504# Run depmod only is we have System.map and depmod is executable
1505# and we build for the host arch
1506quiet_cmd_depmod = DEPMOD $(KERNELRELEASE)
1507 cmd_depmod = \
1508 if [ -r System.map -a -x $(DEPMOD) ]; then \
1509 $(DEPMOD) -ae -F System.map \
1510 $(if $(strip $(INSTALL_MOD_PATH)), -b $(INSTALL_MOD_PATH) -r) \
1511 $(KERNELRELEASE); \
1512 fi
1513
1514# Create temporary dir for module support files
1515# clean it up only when building all modules
1516cmd_crmodverdir = $(Q)mkdir -p $(MODVERDIR) \
1517 $(if $(KBUILD_MODULES),; rm -f $(MODVERDIR)/*)
1509 1518
1510a_flags = -Wp,-MD,$(depfile) $(KBUILD_AFLAGS) $(AFLAGS_KERNEL) \ 1519a_flags = -Wp,-MD,$(depfile) $(KBUILD_AFLAGS) $(AFLAGS_KERNEL) \
1511 $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) \ 1520 $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) \