aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Ravnborg <sam@ravnborg.org>2007-12-06 16:20:11 -0500
committerSam Ravnborg <sam@saturn.ravnborg.org>2007-12-09 02:43:42 -0500
commit1cacc9ab8bf10e60b3ed93d7a10b070c4cbc6c9f (patch)
tree2cd03edf980a9f9cbb71d2e33d516260705668ce
parent94545baded0bfbabdc30a3a4cb48b3db479dd6ef (diff)
kbuild: fix building with redirected output.
Jan Altenberg <jan.altenberg@linutronix.de> reported that building with redirected input like this failed: make O=dir oldconfig bzImage < /dev/null The problem were caused by a make silentoldconfig being run before oldconfig and with a non-recent .config the build failed because silentoldconfig requires non-redirected stdin. Silentoldconfig was run as a side-effect of having the top-level Makefile re-made by make. Introducing an empty rule for the top-level Makefile (and Kbuild.include) fixed the issue. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
-rw-r--r--Makefile11
1 files changed, 6 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index 92dc3cb5f43d..a5252f451bfd 100644
--- a/Makefile
+++ b/Makefile
@@ -108,6 +108,9 @@ endif
108PHONY := _all 108PHONY := _all
109_all: 109_all:
110 110
111# Cancel implicit rules on top Makefile
112$(CURDIR)/Makefile Makefile: ;
113
111ifneq ($(KBUILD_OUTPUT),) 114ifneq ($(KBUILD_OUTPUT),)
112# Invoke a second make in the output directory, passing relevant variables 115# Invoke a second make in the output directory, passing relevant variables
113# check that the output directory actually exists 116# check that the output directory actually exists
@@ -121,7 +124,7 @@ $(if $(filter-out $(KBUILD_OUTPUT),$(shell /bin/pwd)),, \
121 124
122PHONY += $(MAKECMDGOALS) sub-make 125PHONY += $(MAKECMDGOALS) sub-make
123 126
124$(filter-out _all sub-make,$(MAKECMDGOALS)) _all: sub-make 127$(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make
125 $(Q)@: 128 $(Q)@:
126 129
127sub-make: FORCE 130sub-make: FORCE
@@ -291,7 +294,8 @@ export quiet Q KBUILD_VERBOSE
291# Look for make include files relative to root of kernel src 294# Look for make include files relative to root of kernel src
292MAKEFLAGS += --include-dir=$(srctree) 295MAKEFLAGS += --include-dir=$(srctree)
293 296
294# We need some generic definitions. 297# We need some generic definitions (do not try to remake the file).
298$(srctree)/scripts/Kbuild.include: ;
295include $(srctree)/scripts/Kbuild.include 299include $(srctree)/scripts/Kbuild.include
296 300
297# Make variables (CC, etc...) 301# Make variables (CC, etc...)
@@ -1560,9 +1564,6 @@ endif # skip-makefile
1560PHONY += FORCE 1564PHONY += FORCE
1561FORCE: 1565FORCE:
1562 1566
1563# Cancel implicit rules on top Makefile, `-rR' will apply to sub-makes.
1564Makefile: ;
1565
1566# Declare the contents of the .PHONY variable as phony. We keep that 1567# Declare the contents of the .PHONY variable as phony. We keep that
1567# information in a variable se we can use it in if_changed and friends. 1568# information in a variable se we can use it in if_changed and friends.
1568.PHONY: $(PHONY) 1569.PHONY: $(PHONY)