Re: [PATCH] adjust outputmakefile rule

Jan Beulich
2006-05-02T10:32:33Z

>>> Sam Ravnborg <sam@ravnborg.org> 30.04.06 23:49 >>>
>On Wed, Apr 26, 2006 at 03:56:04PM +0200, Jan Beulich wrote:
>> Change the conditional of the outputmakefile rule to be evaluated entirely
>> in make, and to not touch the generated makefile when e.g. running
>> 'make install' as root while the build was done as non-root. Also adjust
>> the comment describing this.
>
>Can I request you to redo this patch.
>Move all logic (including print-out) to mkmakefile
>And only let it print out "GEN ...." when it actttttttually generate
>the Makefile.

Here we go:

Change the conditional of the outputmakefile rule to be evaluated entirely
in make, and add a conditional to not touch the generated makefile when e.g.
running 'make install' as root while the build was done as non-root. Also
adjust the comment describing this, and move the message printing and
redirection to mkmakefile.

Signed-off-by: Jan Beulich <jbeulich@novell.com>

--- /home/jbeulich/tmp/linux-2.6.17-rc3/Makefile 2006-04-27 17:49:26.000000000 +0200
+++ 2.6.17-rc3-mkmakefile/Makefile 2006-04-24 12:28:36.000000000 +0200
@@ -344,16 +344,14 @@ scripts_basic:
scripts/basic/%: scripts_basic ;

PHONY += outputmakefile
-# outputmakefile generate a Makefile to be placed in output directory, if
-# using a seperate output directory. This allows convinient use
-# of make in output directory
+# outputmakefile generates a Makefile in the output directory, if using a
+# separate output directory. This allows convenient use of make in the
+# output directory.
outputmakefile:
- $(Q)if test ! $(srctree) -ef $(objtree); then \
- $(CONFIG_SHELL) $(srctree)/scripts/mkmakefile \
- $(srctree) $(objtree) $(VERSION) $(PATCHLEVEL) \
- > $(objtree)/Makefile; \
- echo ' GEN $(objtree)/Makefile'; \
- fi
+ifneq ($(KBUILD_SRC),)
+ $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile \
+ $(srctree) $(objtree) $(VERSION) $(PATCHLEVEL)
+endif

# To make sure we do not include .config for any of the *config targets
# catch them early, and hand them over to scripts/kconfig/Makefile
--- /home/jbeulich/tmp/linux-2.6.17-rc3/scripts/mkmakefile 2006-04-27 17:49:57.000000000 +0200
+++ 2.6.17-rc3-mkmakefile/scripts/mkmakefile 2006-05-02 11:27:13.000000000 +0200
@@ -10,7 +10,10 @@
# $4 - patchlevel

-cat << EOF
+test ! -r $2/Makefile -o -O $2/Makefile || exit 0
+echo " GEN $2/Makefile"
+
+cat << EOF > $2/Makefile
# Automatically generated by $0: don't edit

VERSION = $3