diff options
author | Sam Ravnborg <sam@mars.ravnborg.org> | 2005-09-11 16:30:22 -0400 |
---|---|---|
committer | Sam Ravnborg <sam@mars.ravnborg.org> | 2005-09-11 16:30:22 -0400 |
commit | 5bb78269000cf326bfdfa19f79449c02a9158020 (patch) | |
tree | f01e30e8d8f015cb0418331da55a459ddcfc9569 | |
parent | 9fe66dfd8846706ff11ed7990d06c92644973bd8 (diff) |
kbuild: rename prepare to archprepare to fix dependency chain
When introducing the generic asm-offsets.h support the dependency
chain for the prepare targets was changed. All build scripts expecting
include/asm/asm-offsets.h to be made when using the prepare target would broke.
With the limited number of prepare targets left in arch Makefiles
the trivial solution was to introduce a new arch specific target: archprepare
The dependency chain looks like this now:
prepare
|
+--> prepare0
|
+--> archprepare
|
+--> scripts_basic
+--> prepare1
|
+---> prepare2
|
+--> prepare3
So prepare 3 is processed before prepare2 etc.
This guaantees that the asm symlink, version.h, scripts_basic
are all updated before archprepare is processed.
prepare0 which build the asm-offsets.h file will need the
actions performed by archprepare.
The head target is now named prepare, because users scripts will most
likely use that target, but prepare-all has been kept for compatibility.
Updated Documentation/kbuild/makefiles.txt.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
-rw-r--r-- | Documentation/kbuild/makefiles.txt | 14 | ||||
-rw-r--r-- | Makefile | 23 | ||||
-rw-r--r-- | arch/arm/Makefile | 2 | ||||
-rw-r--r-- | arch/cris/Makefile | 2 | ||||
-rw-r--r-- | arch/ia64/Makefile | 2 | ||||
-rw-r--r-- | arch/ppc/Makefile | 2 | ||||
-rw-r--r-- | arch/sh/Makefile | 2 | ||||
-rw-r--r-- | arch/sh64/Makefile | 2 | ||||
-rw-r--r-- | arch/um/Makefile | 2 | ||||
-rw-r--r-- | arch/xtensa/Makefile | 2 |
10 files changed, 30 insertions, 23 deletions
diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt index 9a1586590d82..d802ce88bedc 100644 --- a/Documentation/kbuild/makefiles.txt +++ b/Documentation/kbuild/makefiles.txt | |||
@@ -31,7 +31,7 @@ This document describes the Linux kernel Makefiles. | |||
31 | 31 | ||
32 | === 6 Architecture Makefiles | 32 | === 6 Architecture Makefiles |
33 | --- 6.1 Set variables to tweak the build to the architecture | 33 | --- 6.1 Set variables to tweak the build to the architecture |
34 | --- 6.2 Add prerequisites to prepare: | 34 | --- 6.2 Add prerequisites to archprepare: |
35 | --- 6.3 List directories to visit when descending | 35 | --- 6.3 List directories to visit when descending |
36 | --- 6.4 Architecture specific boot images | 36 | --- 6.4 Architecture specific boot images |
37 | --- 6.5 Building non-kbuild targets | 37 | --- 6.5 Building non-kbuild targets |
@@ -734,18 +734,18 @@ When kbuild executes the following steps are followed (roughly): | |||
734 | for loadable kernel modules. | 734 | for loadable kernel modules. |
735 | 735 | ||
736 | 736 | ||
737 | --- 6.2 Add prerequisites to prepare: | 737 | --- 6.2 Add prerequisites to archprepare: |
738 | 738 | ||
739 | The prepare: rule is used to list prerequisites that needs to be | 739 | The archprepare: rule is used to list prerequisites that needs to be |
740 | built before starting to descend down in the subdirectories. | 740 | built before starting to descend down in the subdirectories. |
741 | This is usual header files containing assembler constants. | 741 | This is usual header files containing assembler constants. |
742 | 742 | ||
743 | Example: | 743 | Example: |
744 | #arch/s390/Makefile | 744 | #arch/arm/Makefile |
745 | prepare: include/asm-$(ARCH)/offsets.h | 745 | archprepare: maketools |
746 | 746 | ||
747 | In this example the file include/asm-$(ARCH)/offsets.h will | 747 | In this example the file target maketools will be processed |
748 | be built before descending down in the subdirectories. | 748 | before descending down in the subdirectories. |
749 | See also chapter XXX-TODO that describe how kbuild supports | 749 | See also chapter XXX-TODO that describe how kbuild supports |
750 | generating offset header files. | 750 | generating offset header files. |
751 | 751 | ||
@@ -776,15 +776,20 @@ $(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ; | |||
776 | # Error messages still appears in the original language | 776 | # Error messages still appears in the original language |
777 | 777 | ||
778 | .PHONY: $(vmlinux-dirs) | 778 | .PHONY: $(vmlinux-dirs) |
779 | $(vmlinux-dirs): prepare-all scripts | 779 | $(vmlinux-dirs): prepare scripts |
780 | $(Q)$(MAKE) $(build)=$@ | 780 | $(Q)$(MAKE) $(build)=$@ |
781 | 781 | ||
782 | # Things we need to do before we recursively start building the kernel | 782 | # Things we need to do before we recursively start building the kernel |
783 | # or the modules are listed in "prepare-all". | 783 | # or the modules are listed in "prepare". |
784 | # A multi level approach is used. prepare1 is updated first, then prepare0. | 784 | # A multi level approach is used. prepareN is processed before prepareN-1. |
785 | # prepare-all is the collection point for the prepare targets. | 785 | # archprepare is used in arch Makefiles and when processed asm symlink, |
786 | # version.h and scripts_basic is processed / created. | ||
786 | 787 | ||
787 | .PHONY: prepare-all prepare prepare0 prepare1 prepare2 prepare3 | 788 | # Listed in dependency order |
789 | .PHONY: prepare archprepare prepare0 prepare1 prepare2 prepare3 | ||
790 | |||
791 | # prepare-all is deprecated, use prepare as valid replacement | ||
792 | .PHONY: prepare-all | ||
788 | 793 | ||
789 | # prepare3 is used to check if we are building in a separate output directory, | 794 | # prepare3 is used to check if we are building in a separate output directory, |
790 | # and if so do: | 795 | # and if so do: |
@@ -813,11 +818,13 @@ ifneq ($(KBUILD_MODULES),) | |||
813 | $(Q)mkdir -p $(MODVERDIR) | 818 | $(Q)mkdir -p $(MODVERDIR) |
814 | endif | 819 | endif |
815 | 820 | ||
816 | prepare0: prepare prepare1 FORCE | 821 | archprepare: prepare1 scripts_basic |
822 | |||
823 | prepare0: archprepare FORCE | ||
817 | $(Q)$(MAKE) $(build)=. | 824 | $(Q)$(MAKE) $(build)=. |
818 | 825 | ||
819 | # All the preparing.. | 826 | # All the preparing.. |
820 | prepare-all: prepare0 | 827 | prepare prepare-all: prepare0 |
821 | 828 | ||
822 | # Leave this as default for preprocessing vmlinux.lds.S, which is now | 829 | # Leave this as default for preprocessing vmlinux.lds.S, which is now |
823 | # done in arch/$(ARCH)/kernel/Makefile | 830 | # done in arch/$(ARCH)/kernel/Makefile |
@@ -908,7 +915,7 @@ modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) | |||
908 | 915 | ||
909 | # Target to prepare building external modules | 916 | # Target to prepare building external modules |
910 | .PHONY: modules_prepare | 917 | .PHONY: modules_prepare |
911 | modules_prepare: prepare-all scripts | 918 | modules_prepare: prepare scripts |
912 | 919 | ||
913 | # Target to install modules | 920 | # Target to install modules |
914 | .PHONY: modules_install | 921 | .PHONY: modules_install |
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index e625ac66f49b..130e6228b587 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
@@ -175,7 +175,7 @@ else | |||
175 | endif | 175 | endif |
176 | @touch $@ | 176 | @touch $@ |
177 | 177 | ||
178 | prepare: maketools include/asm-arm/.arch | 178 | archprepare: maketools include/asm-arm/.arch |
179 | 179 | ||
180 | .PHONY: maketools FORCE | 180 | .PHONY: maketools FORCE |
181 | maketools: include/linux/version.h FORCE | 181 | maketools: include/linux/version.h FORCE |
diff --git a/arch/cris/Makefile b/arch/cris/Makefile index a00043a91f16..ea65d585cf5e 100644 --- a/arch/cris/Makefile +++ b/arch/cris/Makefile | |||
@@ -107,7 +107,7 @@ archclean: | |||
107 | rm -f timage vmlinux.bin decompress.bin rescue.bin cramfs.img | 107 | rm -f timage vmlinux.bin decompress.bin rescue.bin cramfs.img |
108 | rm -rf $(LD_SCRIPT).tmp | 108 | rm -rf $(LD_SCRIPT).tmp |
109 | 109 | ||
110 | prepare: $(SRC_ARCH)/.links $(srctree)/include/asm-$(ARCH)/.arch | 110 | archprepare: $(SRC_ARCH)/.links $(srctree)/include/asm-$(ARCH)/.arch |
111 | 111 | ||
112 | # Create some links to make all tools happy | 112 | # Create some links to make all tools happy |
113 | $(SRC_ARCH)/.links: | 113 | $(SRC_ARCH)/.links: |
diff --git a/arch/ia64/Makefile b/arch/ia64/Makefile index 7ed678cf5e41..70f8ed2748d1 100644 --- a/arch/ia64/Makefile +++ b/arch/ia64/Makefile | |||
@@ -82,7 +82,7 @@ unwcheck: vmlinux | |||
82 | archclean: | 82 | archclean: |
83 | $(Q)$(MAKE) $(clean)=$(boot) | 83 | $(Q)$(MAKE) $(clean)=$(boot) |
84 | 84 | ||
85 | prepare: include/asm-ia64/.offsets.h.stamp | 85 | archprepare: include/asm-ia64/.offsets.h.stamp |
86 | 86 | ||
87 | include/asm-ia64/.offsets.h.stamp: | 87 | include/asm-ia64/.offsets.h.stamp: |
88 | mkdir -p include/asm-ia64 | 88 | mkdir -p include/asm-ia64 |
diff --git a/arch/ppc/Makefile b/arch/ppc/Makefile index 6dd7b50e0669..16e2675f3270 100644 --- a/arch/ppc/Makefile +++ b/arch/ppc/Makefile | |||
@@ -107,7 +107,7 @@ archclean: | |||
107 | # Temporary hack until we have migrated to asm-powerpc | 107 | # Temporary hack until we have migrated to asm-powerpc |
108 | $(Q)rm -rf arch/$(ARCH)/include | 108 | $(Q)rm -rf arch/$(ARCH)/include |
109 | 109 | ||
110 | prepare: checkbin | 110 | archprepare: checkbin |
111 | 111 | ||
112 | # Temporary hack until we have migrated to asm-powerpc | 112 | # Temporary hack until we have migrated to asm-powerpc |
113 | include/asm: arch/$(ARCH)/include/asm | 113 | include/asm: arch/$(ARCH)/include/asm |
diff --git a/arch/sh/Makefile b/arch/sh/Makefile index 19f00d57acf0..4a3049080b41 100644 --- a/arch/sh/Makefile +++ b/arch/sh/Makefile | |||
@@ -152,7 +152,7 @@ endif | |||
152 | @touch $@ | 152 | @touch $@ |
153 | 153 | ||
154 | 154 | ||
155 | prepare: maketools include/asm-sh/.cpu include/asm-sh/.mach | 155 | archprepare: maketools include/asm-sh/.cpu include/asm-sh/.mach |
156 | 156 | ||
157 | .PHONY: maketools FORCE | 157 | .PHONY: maketools FORCE |
158 | maketools: include/linux/version.h FORCE | 158 | maketools: include/linux/version.h FORCE |
diff --git a/arch/sh64/Makefile b/arch/sh64/Makefile index 39073734a476..8ca57ffa2b70 100644 --- a/arch/sh64/Makefile +++ b/arch/sh64/Makefile | |||
@@ -73,7 +73,7 @@ compressed: zImage | |||
73 | archclean: | 73 | archclean: |
74 | $(Q)$(MAKE) $(clean)=$(boot) | 74 | $(Q)$(MAKE) $(clean)=$(boot) |
75 | 75 | ||
76 | prepare: arch/$(ARCH)/lib/syscalltab.h | 76 | archprepare: arch/$(ARCH)/lib/syscalltab.h |
77 | 77 | ||
78 | define filechk_gen-syscalltab | 78 | define filechk_gen-syscalltab |
79 | (set -e; \ | 79 | (set -e; \ |
diff --git a/arch/um/Makefile b/arch/um/Makefile index 154803a22698..ce987266dac6 100644 --- a/arch/um/Makefile +++ b/arch/um/Makefile | |||
@@ -107,7 +107,7 @@ else | |||
107 | $(shell cd $(ARCH_DIR) && ln -sf Kconfig.$(SUBARCH) Kconfig.arch) | 107 | $(shell cd $(ARCH_DIR) && ln -sf Kconfig.$(SUBARCH) Kconfig.arch) |
108 | endif | 108 | endif |
109 | 109 | ||
110 | prepare: $(ARCH_SYMLINKS) $(SYS_HEADERS) $(GEN_HEADERS) | 110 | archprepare: $(ARCH_SYMLINKS) $(SYS_HEADERS) $(GEN_HEADERS) |
111 | 111 | ||
112 | LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static | 112 | LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static |
113 | LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib | 113 | LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib |
diff --git a/arch/xtensa/Makefile b/arch/xtensa/Makefile index 67ef4cd173b9..98fac8489aed 100644 --- a/arch/xtensa/Makefile +++ b/arch/xtensa/Makefile | |||
@@ -66,7 +66,7 @@ boot := arch/xtensa/boot | |||
66 | 66 | ||
67 | archinc := include/asm-xtensa | 67 | archinc := include/asm-xtensa |
68 | 68 | ||
69 | prepare: $(archinc)/.platform | 69 | archprepare: $(archinc)/.platform |
70 | 70 | ||
71 | # Update machine cpu and platform symlinks if something which affects | 71 | # Update machine cpu and platform symlinks if something which affects |
72 | # them changed. | 72 | # them changed. |