diff options
author | Paul Smith <psmith@gnu.org> | 2006-03-05 17:14:10 -0500 |
---|---|---|
committer | Sam Ravnborg <sam@mars.ravnborg.org> | 2006-03-05 18:09:51 -0500 |
commit | 4f1933620f57145212cdbb1ac6ce099eeeb21c5a (patch) | |
tree | c083cce1f0acedd92be2ac6eb5e6c49ebd84ac46 /arch | |
parent | 7b75b13cda8bd21e8636ea985f76e1ce5bd1a470 (diff) |
kbuild: change kbuild to not rely on incorrect GNU make behavior
The kbuild system takes advantage of an incorrect behavior in GNU make.
Once this behavior is fixed, all files in the kernel rebuild every time,
even if nothing has changed. This patch ensures kbuild works with both
the incorrect and correct behaviors of GNU make.
For more details on the incorrect behavior, see:
http://lists.gnu.org/archive/html/bug-make/2006-03/msg00003.html
Changes in this patch:
- Keep all targets that are to be marked .PHONY in a variable, PHONY.
- Add .PHONY: $(PHONY) to mark them properly.
- Remove any $(PHONY) files from the $? list when determining whether
targets are up-to-date or not.
Signed-off-by: Paul Smith <psmith@gnu.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/Makefile | 5 | ||||
-rw-r--r-- | arch/arm/boot/Makefile | 5 | ||||
-rw-r--r-- | arch/arm/boot/bootp/Makefile | 5 | ||||
-rw-r--r-- | arch/arm26/Makefile | 7 | ||||
-rw-r--r-- | arch/arm26/boot/Makefile | 5 | ||||
-rw-r--r-- | arch/i386/Makefile | 4 | ||||
-rw-r--r-- | arch/ia64/Makefile | 5 | ||||
-rw-r--r-- | arch/m32r/Makefile | 5 | ||||
-rw-r--r-- | arch/powerpc/Makefile | 2 | ||||
-rw-r--r-- | arch/ppc/Makefile | 2 | ||||
-rw-r--r-- | arch/ppc/boot/Makefile | 5 | ||||
-rw-r--r-- | arch/ppc/boot/openfirmware/Makefile | 7 | ||||
-rw-r--r-- | arch/sh/Makefile | 2 | ||||
-rw-r--r-- | arch/um/Makefile | 7 | ||||
-rw-r--r-- | arch/x86_64/Makefile | 4 |
15 files changed, 50 insertions, 20 deletions
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index fbfc14a56b96..585d334234f4 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
@@ -1,6 +1,9 @@ | |||
1 | # | 1 | # |
2 | # arch/arm/Makefile | 2 | # arch/arm/Makefile |
3 | # | 3 | # |
4 | # This file is included by the global makefile so that you can add your own | ||
5 | # architecture-specific flags and dependencies. | ||
6 | # | ||
4 | # This file is subject to the terms and conditions of the GNU General Public | 7 | # This file is subject to the terms and conditions of the GNU General Public |
5 | # License. See the file "COPYING" in the main directory of this archive | 8 | # License. See the file "COPYING" in the main directory of this archive |
6 | # for more details. | 9 | # for more details. |
@@ -176,7 +179,7 @@ endif | |||
176 | 179 | ||
177 | archprepare: maketools | 180 | archprepare: maketools |
178 | 181 | ||
179 | .PHONY: maketools FORCE | 182 | PHONY += maketools FORCE |
180 | maketools: include/linux/version.h include/asm-arm/.arch FORCE | 183 | maketools: include/linux/version.h include/asm-arm/.arch FORCE |
181 | $(Q)$(MAKE) $(build)=arch/arm/tools include/asm-arm/mach-types.h | 184 | $(Q)$(MAKE) $(build)=arch/arm/tools include/asm-arm/mach-types.h |
182 | 185 | ||
diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile index a174d63395ea..ec9c400c7f82 100644 --- a/arch/arm/boot/Makefile +++ b/arch/arm/boot/Makefile | |||
@@ -1,6 +1,9 @@ | |||
1 | # | 1 | # |
2 | # arch/arm/boot/Makefile | 2 | # arch/arm/boot/Makefile |
3 | # | 3 | # |
4 | # This file is included by the global makefile so that you can add your own | ||
5 | # architecture-specific flags and dependencies. | ||
6 | # | ||
4 | # This file is subject to the terms and conditions of the GNU General Public | 7 | # This file is subject to the terms and conditions of the GNU General Public |
5 | # License. See the file "COPYING" in the main directory of this archive | 8 | # License. See the file "COPYING" in the main directory of this archive |
6 | # for more details. | 9 | # for more details. |
@@ -73,7 +76,7 @@ $(obj)/bootpImage: $(obj)/bootp/bootp FORCE | |||
73 | $(call if_changed,objcopy) | 76 | $(call if_changed,objcopy) |
74 | @echo ' Kernel: $@ is ready' | 77 | @echo ' Kernel: $@ is ready' |
75 | 78 | ||
76 | .PHONY: initrd FORCE | 79 | PHONY += initrd FORCE |
77 | initrd: | 80 | initrd: |
78 | @test "$(INITRD_PHYS)" != "" || \ | 81 | @test "$(INITRD_PHYS)" != "" || \ |
79 | (echo This machine does not support INITRD; exit -1) | 82 | (echo This machine does not support INITRD; exit -1) |
diff --git a/arch/arm/boot/bootp/Makefile b/arch/arm/boot/bootp/Makefile index 8e8879b6b3d7..c394e305447c 100644 --- a/arch/arm/boot/bootp/Makefile +++ b/arch/arm/boot/bootp/Makefile | |||
@@ -1,6 +1,9 @@ | |||
1 | # | 1 | # |
2 | # linux/arch/arm/boot/bootp/Makefile | 2 | # linux/arch/arm/boot/bootp/Makefile |
3 | # | 3 | # |
4 | # This file is included by the global makefile so that you can add your own | ||
5 | # architecture-specific flags and dependencies. | ||
6 | # | ||
4 | 7 | ||
5 | LDFLAGS_bootp :=-p --no-undefined -X \ | 8 | LDFLAGS_bootp :=-p --no-undefined -X \ |
6 | --defsym initrd_phys=$(INITRD_PHYS) \ | 9 | --defsym initrd_phys=$(INITRD_PHYS) \ |
@@ -21,4 +24,4 @@ $(obj)/kernel.o: arch/arm/boot/zImage FORCE | |||
21 | 24 | ||
22 | $(obj)/initrd.o: $(INITRD) FORCE | 25 | $(obj)/initrd.o: $(INITRD) FORCE |
23 | 26 | ||
24 | .PHONY: $(INITRD) FORCE | 27 | PHONY += $(INITRD) FORCE |
diff --git a/arch/arm26/Makefile b/arch/arm26/Makefile index 844a9e46886e..fe91eda98a94 100644 --- a/arch/arm26/Makefile +++ b/arch/arm26/Makefile | |||
@@ -1,6 +1,9 @@ | |||
1 | # | 1 | # |
2 | # arch/arm26/Makefile | 2 | # arch/arm26/Makefile |
3 | # | 3 | # |
4 | # This file is included by the global makefile so that you can add your own | ||
5 | # architecture-specific flags and dependencies. | ||
6 | # | ||
4 | # This file is subject to the terms and conditions of the GNU General Public | 7 | # This file is subject to the terms and conditions of the GNU General Public |
5 | # License. See the file "COPYING" in the main directory of this archive | 8 | # License. See the file "COPYING" in the main directory of this archive |
6 | # for more details. | 9 | # for more details. |
@@ -49,9 +52,9 @@ all: zImage | |||
49 | 52 | ||
50 | boot := arch/arm26/boot | 53 | boot := arch/arm26/boot |
51 | 54 | ||
52 | .PHONY: maketools FORCE | 55 | PHONY += maketools FORCE |
53 | maketools: FORCE | 56 | maketools: FORCE |
54 | 57 | ||
55 | 58 | ||
56 | # Convert bzImage to zImage | 59 | # Convert bzImage to zImage |
57 | bzImage: vmlinux | 60 | bzImage: vmlinux |
diff --git a/arch/arm26/boot/Makefile b/arch/arm26/boot/Makefile index b5c2277654d4..68acb7b0d47f 100644 --- a/arch/arm26/boot/Makefile +++ b/arch/arm26/boot/Makefile | |||
@@ -1,6 +1,9 @@ | |||
1 | # | 1 | # |
2 | # arch/arm26/boot/Makefile | 2 | # arch/arm26/boot/Makefile |
3 | # | 3 | # |
4 | # This file is included by the global makefile so that you can add your own | ||
5 | # architecture-specific flags and dependencies. | ||
6 | # | ||
4 | # This file is subject to the terms and conditions of the GNU General Public | 7 | # This file is subject to the terms and conditions of the GNU General Public |
5 | # License. See the file "COPYING" in the main directory of this archive | 8 | # License. See the file "COPYING" in the main directory of this archive |
6 | # for more details. | 9 | # for more details. |
@@ -60,7 +63,7 @@ $(obj)/xipImage: vmlinux FORCE | |||
60 | @echo ' Kernel: $@ is ready' | 63 | @echo ' Kernel: $@ is ready' |
61 | endif | 64 | endif |
62 | 65 | ||
63 | .PHONY: initrd | 66 | PHONY += initrd |
64 | initrd: | 67 | initrd: |
65 | @test "$(INITRD_PHYS)" != "" || \ | 68 | @test "$(INITRD_PHYS)" != "" || \ |
66 | (echo This machine does not support INITRD; exit -1) | 69 | (echo This machine does not support INITRD; exit -1) |
diff --git a/arch/i386/Makefile b/arch/i386/Makefile index 36bef6543ac1..ff6973a85c8f 100644 --- a/arch/i386/Makefile +++ b/arch/i386/Makefile | |||
@@ -99,8 +99,8 @@ AFLAGS += $(mflags-y) | |||
99 | 99 | ||
100 | boot := arch/i386/boot | 100 | boot := arch/i386/boot |
101 | 101 | ||
102 | .PHONY: zImage bzImage compressed zlilo bzlilo \ | 102 | PHONY += zImage bzImage compressed zlilo bzlilo \ |
103 | zdisk bzdisk fdimage fdimage144 fdimage288 install | 103 | zdisk bzdisk fdimage fdimage144 fdimage288 install |
104 | 104 | ||
105 | all: bzImage | 105 | all: bzImage |
106 | 106 | ||
diff --git a/arch/ia64/Makefile b/arch/ia64/Makefile index f722e1a25948..80ea7506fa1a 100644 --- a/arch/ia64/Makefile +++ b/arch/ia64/Makefile | |||
@@ -1,6 +1,9 @@ | |||
1 | # | 1 | # |
2 | # ia64/Makefile | 2 | # ia64/Makefile |
3 | # | 3 | # |
4 | # This file is included by the global makefile so that you can add your own | ||
5 | # architecture-specific flags and dependencies. | ||
6 | # | ||
4 | # This file is subject to the terms and conditions of the GNU General Public | 7 | # This file is subject to the terms and conditions of the GNU General Public |
5 | # License. See the file "COPYING" in the main directory of this archive | 8 | # License. See the file "COPYING" in the main directory of this archive |
6 | # for more details. | 9 | # for more details. |
@@ -62,7 +65,7 @@ drivers-$(CONFIG_OPROFILE) += arch/ia64/oprofile/ | |||
62 | 65 | ||
63 | boot := arch/ia64/hp/sim/boot | 66 | boot := arch/ia64/hp/sim/boot |
64 | 67 | ||
65 | .PHONY: boot compressed check | 68 | PHONY += boot compressed check |
66 | 69 | ||
67 | all: compressed unwcheck | 70 | all: compressed unwcheck |
68 | 71 | ||
diff --git a/arch/m32r/Makefile b/arch/m32r/Makefile index 983d438b14b6..229f66fc8e5e 100644 --- a/arch/m32r/Makefile +++ b/arch/m32r/Makefile | |||
@@ -1,6 +1,9 @@ | |||
1 | # | 1 | # |
2 | # m32r/Makefile | 2 | # m32r/Makefile |
3 | # | 3 | # |
4 | # This file is included by the global makefile so that you can add your own | ||
5 | # architecture-specific flags and dependencies. | ||
6 | # | ||
4 | 7 | ||
5 | LDFLAGS := | 8 | LDFLAGS := |
6 | OBJCOPYFLAGS := -O binary -R .note -R .comment -S | 9 | OBJCOPYFLAGS := -O binary -R .note -R .comment -S |
@@ -39,7 +42,7 @@ drivers-$(CONFIG_OPROFILE) += arch/m32r/oprofile/ | |||
39 | 42 | ||
40 | boot := arch/m32r/boot | 43 | boot := arch/m32r/boot |
41 | 44 | ||
42 | .PHONY: zImage | 45 | PHONY += zImage |
43 | 46 | ||
44 | all: zImage | 47 | all: zImage |
45 | 48 | ||
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index 5500ab55d042..5787d55a20b6 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile | |||
@@ -150,7 +150,7 @@ CPPFLAGS_vmlinux.lds := -Upowerpc | |||
150 | 150 | ||
151 | BOOT_TARGETS = zImage zImage.initrd znetboot znetboot.initrd vmlinux.sm uImage | 151 | BOOT_TARGETS = zImage zImage.initrd znetboot znetboot.initrd vmlinux.sm uImage |
152 | 152 | ||
153 | .PHONY: $(BOOT_TARGETS) | 153 | PHONY += $(BOOT_TARGETS) |
154 | 154 | ||
155 | boot := arch/$(ARCH)/boot | 155 | boot := arch/$(ARCH)/boot |
156 | 156 | ||
diff --git a/arch/ppc/Makefile b/arch/ppc/Makefile index 98e940beeb3b..9fbdf54ba2be 100644 --- a/arch/ppc/Makefile +++ b/arch/ppc/Makefile | |||
@@ -82,7 +82,7 @@ drivers-$(CONFIG_OPROFILE) += arch/powerpc/oprofile/ | |||
82 | 82 | ||
83 | BOOT_TARGETS = zImage zImage.initrd znetboot znetboot.initrd vmlinux.sm | 83 | BOOT_TARGETS = zImage zImage.initrd znetboot znetboot.initrd vmlinux.sm |
84 | 84 | ||
85 | .PHONY: $(BOOT_TARGETS) | 85 | PHONY += $(BOOT_TARGETS) |
86 | 86 | ||
87 | all: uImage zImage | 87 | all: uImage zImage |
88 | 88 | ||
diff --git a/arch/ppc/boot/Makefile b/arch/ppc/boot/Makefile index efd8ce515d5f..84eec0bef93c 100644 --- a/arch/ppc/boot/Makefile +++ b/arch/ppc/boot/Makefile | |||
@@ -1,6 +1,9 @@ | |||
1 | # | 1 | # |
2 | # arch/ppc/boot/Makefile | 2 | # arch/ppc/boot/Makefile |
3 | # | 3 | # |
4 | # This file is included by the global makefile so that you can add your own | ||
5 | # architecture-specific flags and dependencies. | ||
6 | # | ||
4 | # This file is subject to the terms and conditions of the GNU General Public | 7 | # This file is subject to the terms and conditions of the GNU General Public |
5 | # License. See the file "COPYING" in the main directory of this archive | 8 | # License. See the file "COPYING" in the main directory of this archive |
6 | # for more details. | 9 | # for more details. |
@@ -25,7 +28,7 @@ subdir- += simple openfirmware | |||
25 | 28 | ||
26 | hostprogs-y := $(addprefix utils/, addnote mknote hack-coff mkprep mkbugboot mktree) | 29 | hostprogs-y := $(addprefix utils/, addnote mknote hack-coff mkprep mkbugboot mktree) |
27 | 30 | ||
28 | .PHONY: $(BOOT_TARGETS) $(bootdir-y) | 31 | PHONY += $(BOOT_TARGETS) $(bootdir-y) |
29 | 32 | ||
30 | $(BOOT_TARGETS): $(bootdir-y) | 33 | $(BOOT_TARGETS): $(bootdir-y) |
31 | 34 | ||
diff --git a/arch/ppc/boot/openfirmware/Makefile b/arch/ppc/boot/openfirmware/Makefile index 2a411ec2e650..66b739743759 100644 --- a/arch/ppc/boot/openfirmware/Makefile +++ b/arch/ppc/boot/openfirmware/Makefile | |||
@@ -1,5 +1,8 @@ | |||
1 | # Makefile for making bootable images on various OpenFirmware machines. | 1 | # Makefile for making bootable images on various OpenFirmware machines. |
2 | # | 2 | # |
3 | # This file is included by the global makefile so that you can add your own | ||
4 | # architecture-specific flags and dependencies. | ||
5 | # | ||
3 | # Paul Mackerras January 1997 | 6 | # Paul Mackerras January 1997 |
4 | # XCOFF bootable images for PowerMacs | 7 | # XCOFF bootable images for PowerMacs |
5 | # Geert Uytterhoeven September 1997 | 8 | # Geert Uytterhoeven September 1997 |
@@ -86,7 +89,7 @@ $(images)/zImage.chrp-rs6k $(images)/zImage.initrd.chrp-rs6k: \ | |||
86 | 89 | ||
87 | # The targets used on the make command-line | 90 | # The targets used on the make command-line |
88 | 91 | ||
89 | .PHONY: zImage zImage.initrd | 92 | PHONY += zImage zImage.initrd |
90 | zImage: $(images)/zImage.chrp \ | 93 | zImage: $(images)/zImage.chrp \ |
91 | $(images)/zImage.chrp-rs6k | 94 | $(images)/zImage.chrp-rs6k |
92 | @echo ' kernel: $@ is ready ($<)' | 95 | @echo ' kernel: $@ is ready ($<)' |
@@ -96,7 +99,7 @@ zImage.initrd: $(images)/zImage.initrd.chrp \ | |||
96 | 99 | ||
97 | TFTPIMAGE := /tftpboot/zImage | 100 | TFTPIMAGE := /tftpboot/zImage |
98 | 101 | ||
99 | .PHONY: znetboot znetboot.initrd | 102 | PHONY += znetboot znetboot.initrd |
100 | znetboot: $(images)/zImage.chrp | 103 | znetboot: $(images)/zImage.chrp |
101 | cp $(images)/zImage.chrp $(TFTPIMAGE).chrp$(END) | 104 | cp $(images)/zImage.chrp $(TFTPIMAGE).chrp$(END) |
102 | @echo ' kernel: $@ is ready ($<)' | 105 | @echo ' kernel: $@ is ready ($<)' |
diff --git a/arch/sh/Makefile b/arch/sh/Makefile index 08c9515c4806..c72e17a96eed 100644 --- a/arch/sh/Makefile +++ b/arch/sh/Makefile | |||
@@ -172,7 +172,7 @@ include/asm-sh/.mach: $(wildcard include/config/sh/*.h) include/config/MARKER | |||
172 | 172 | ||
173 | archprepare: maketools include/asm-sh/.cpu include/asm-sh/.mach | 173 | archprepare: maketools include/asm-sh/.cpu include/asm-sh/.mach |
174 | 174 | ||
175 | .PHONY: maketools FORCE | 175 | PHONY += maketools FORCE |
176 | maketools: include/linux/version.h FORCE | 176 | maketools: include/linux/version.h FORCE |
177 | $(Q)$(MAKE) $(build)=arch/sh/tools include/asm-sh/machtypes.h | 177 | $(Q)$(MAKE) $(build)=arch/sh/tools include/asm-sh/machtypes.h |
178 | 178 | ||
diff --git a/arch/um/Makefile b/arch/um/Makefile index c58b657f0097..8d14c7a831be 100644 --- a/arch/um/Makefile +++ b/arch/um/Makefile | |||
@@ -1,4 +1,7 @@ | |||
1 | # | 1 | # |
2 | # This file is included by the global makefile so that you can add your own | ||
3 | # architecture-specific flags and dependencies. | ||
4 | # | ||
2 | # Copyright (C) 2002 Jeff Dike (jdike@karaya.com) | 5 | # Copyright (C) 2002 Jeff Dike (jdike@karaya.com) |
3 | # Licensed under the GPL | 6 | # Licensed under the GPL |
4 | # | 7 | # |
@@ -88,7 +91,7 @@ CONFIG_KERNEL_HALF_GIGS ?= 0 | |||
88 | 91 | ||
89 | SIZE = (($(CONFIG_NEST_LEVEL) + $(CONFIG_KERNEL_HALF_GIGS)) * 0x20000000) | 92 | SIZE = (($(CONFIG_NEST_LEVEL) + $(CONFIG_KERNEL_HALF_GIGS)) * 0x20000000) |
90 | 93 | ||
91 | .PHONY: linux | 94 | PHONY += linux |
92 | 95 | ||
93 | all: linux | 96 | all: linux |
94 | 97 | ||
diff --git a/arch/x86_64/Makefile b/arch/x86_64/Makefile index d7fd46479c55..7405dfd6522b 100644 --- a/arch/x86_64/Makefile +++ b/arch/x86_64/Makefile | |||
@@ -67,8 +67,8 @@ drivers-$(CONFIG_OPROFILE) += arch/x86_64/oprofile/ | |||
67 | 67 | ||
68 | boot := arch/x86_64/boot | 68 | boot := arch/x86_64/boot |
69 | 69 | ||
70 | .PHONY: bzImage bzlilo install archmrproper \ | 70 | PHONY += bzImage bzlilo install archmrproper \ |
71 | fdimage fdimage144 fdimage288 archclean | 71 | fdimage fdimage144 fdimage288 archclean |
72 | 72 | ||
73 | #Default target when executing "make" | 73 | #Default target when executing "make" |
74 | all: bzImage | 74 | all: bzImage |