[PATCH] fix mkmakefile

From: Jan Beulich
Date: Mon Jan 30 2006 - 04:03:30 EST


From: Jan Beulich <jbeulich@xxxxxxxxxx>

With the current way of generating the Makefile in the output directory
for builds outside of the source tree, specifying real targets (rather
than phony ones) doesn't work in an already (partially) built tree, as
the stub Makefile doesn't have any dependency information available.
Thus, all targets where files may actually exist must be listed
explicitly and, due to what I'd call a make misbehavior, directory
targets must then also be special cased.

Signed-Off-By: Jan Beulich <jbeulich@xxxxxxxxxx>


From: Jan Beulich <jbeulich@xxxxxxxxxx>

With the current way of generating the Makefile in the output directory
for builds outside of the source tree, specifying real targets (rather
than phony ones) doesn't work in an already (partially) built tree, as
the stub Makefile doesn't have any dependency information available.
Thus, all targets where files may actually exist must be listed
explicitly and, due to what I'd call a make misbehavior, directory
targets must then also be special cased.

Signed-Off-By: Jan Beulich <jbeulich@xxxxxxxxxx>

diff -Npru /home/jbeulich/tmp/linux-2.6.16-rc1/scripts/mkmakefile 2.6.16-rc1-mkmakefile/scripts/mkmakefile
--- /home/jbeulich/tmp/linux-2.6.16-rc1/scripts/mkmakefile 2006-01-03 04:21:10.000000000 +0100
+++ 2.6.16-rc1-mkmakefile/scripts/mkmakefile 2006-01-25 09:55:53.000000000 +0100
@@ -20,12 +20,15 @@ KERNELSRC := $1
KERNELOUTPUT := $2

MAKEFLAGS += --no-print-directory
+MAKEARGS := -C \$(KERNELSRC) O=\$(KERNELOUTPUT)
+
+.PHONY: all \$(MAKECMDGOALS)

all:
- \$(MAKE) -C \$(KERNELSRC) O=\$(KERNELOUTPUT)
+ \$(MAKE) \$(MAKEARGS)

-%::
- \$(MAKE) -C \$(KERNELSRC) O=\$(KERNELOUTPUT) \$@
+Makefile:;

+\$(filter-out all Makefile,\$(MAKECMDGOALS)) %/:
+ \$(MAKE) \$(MAKEARGS) \$@
EOF
-