[patch] kbuild: remember ARCH in the object directory

From: Oleg Verych
Date: Tue Jun 12 2007 - 06:20:19 EST


[patch] kbuild: remember ARCH in the object directory

- rephrase some related (misspelled) comments,
- remove all trailing whitespace in the top Makefile,

* remember ARCH in the output directory, thus making build of i386
on amd64 *actually* convenient,

- harmless refactoring of the Makefile generating.

Signed-off-by: Oleg Verych <olecom@xxxxxxxxxxxxxx>
---
-o--=O`C /. .\
#oo'L O o
<___=E M ^--

Just lazy typing `make ARCH=i386` every time i want to check lguest.

Makefile | 17 ++++++++---------
scripts/mkmakefile | 42 ++++++++++++++++++++++++------------------
2 files changed, 32 insertions(+), 27 deletions(-)

Index: linux-2.6.22-rc4-mm2/scripts/mkmakefile
===================================================================
--- linux-2.6.22-rc4-mm2.orig/scripts/mkmakefile 2007-06-12 11:21:27.755466250 +0200
+++ linux-2.6.22-rc4-mm2/scripts/mkmakefile 2007-06-12 12:04:13.675826250 +0200
@@ -1,6 +1,6 @@
-#!/bin/sh
+#!/bin/sh -e
# Generates a small Makefile used in the root of the output
-# directory, to allow make to be started from there.
-# The Makefile also allow for more convinient build of external modules
+# directory, to allow kernel build to be started from there.
+# External modules can't built with it as well.

# Usage
@@ -9,28 +9,34 @@
# $3 - version
# $4 - patchlevel
+# $5 - ARCH

+set -e

-test ! -r $2/Makefile -o -O $2/Makefile || exit 0
echo " GEN $2/Makefile"
+echo "#
+# Automatically generated by
+# $0
+#
+VERSION = $3
+PATCHLEVEL = $4
+
+KERNELSRC = $1
+KERNELOUTPUT = $2
+ARCH = $5
+" >$2/Makefile

-cat << EOF > $2/Makefile
-# Automatically generated by $0: don't edit
+cat << "EOF" >> $2/Makefile
+MAKEFLAGS += -rR --no-print-directory

-VERSION = $3
-PATCHLEVEL = $4
+export ARCH

-KERNELSRC := $1
-KERNELOUTPUT := $2
-
-MAKEFLAGS += --no-print-directory
+all:
+ $(MAKE) -C $(KERNELSRC) O=$(KERNELOUTPUT)

-.PHONY: all \$(MAKECMDGOALS)
+$(filter-out all Makefile,$(MAKECMDGOALS)) %/:
+ $(MAKE) -C $(KERNELSRC) O=$(KERNELOUTPUT) $@

-all:
- \$(MAKE) -C \$(KERNELSRC) O=\$(KERNELOUTPUT)
+.PHONY: all $(MAKECMDGOALS)

Makefile:;
-
-\$(filter-out all Makefile,\$(MAKECMDGOALS)) %/:
- \$(MAKE) -C \$(KERNELSRC) O=\$(KERNELOUTPUT) \$@
EOF
Index: linux-2.6.22-rc4-mm2/Makefile
===================================================================
--- linux-2.6.22-rc4-mm2.orig/Makefile 2007-06-12 11:35:20.559513250 +0200
+++ linux-2.6.22-rc4-mm2/Makefile 2007-06-12 11:51:10.438877000 +0200
@@ -156,5 +156,5 @@ export srctree objtree VPATH TOPDIR
# first, and if a usermode build is happening, the "ARCH=um" on the command
# line overrides the setting of ARCH below. If a native build is happening,
-# then ARCH is assigned, getting whatever value it gets normally, and
+# then ARCH is assigned, getting whatever value it gets normally, and
# SUBARCH is subsequently ignored.

@@ -242,5 +242,5 @@ export KBUILD_CHECKSRC KBUILD_SRC KBUILD
#
# If $(quiet) is empty, the whole command will be printed.
-# If it is set to "quiet_", only the short version will be printed.
+# If it is set to "quiet_", only the short version will be printed.
# If it is set to "silent_", nothing will be printed at all, since
# the variable $(silent_cmd_cc_o_c) doesn't exist.
@@ -352,11 +352,10 @@ scripts/basic/%: scripts_basic ;

PHONY += outputmakefile
-# 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:
+# generate a Makefile in the output directory, if using a
+# separate output directory; allows convenient use of make there
ifneq ($(KBUILD_SRC),)
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile \
- $(srctree) $(objtree) $(VERSION) $(PATCHLEVEL)
+ $(srctree) $(objtree) $(VERSION) $(PATCHLEVEL) $(ARCH)
endif

@@ -699,5 +698,5 @@ endef
cmd_ksym_ld = $(cmd_vmlinux__)
define rule_ksym_ld
- :
+ :
+$(call cmd,vmlinux_version)
$(call cmd,vmlinux__)
@@ -750,5 +749,5 @@ endif
$(Q)rm -f .old_version

-# The actual objects are generated when descending,
+# The actual objects are generated when descending,
# make sure no implicit rule kicks in
$(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ;
@@ -1454,5 +1453,5 @@ endif
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost

-# FIXME Should go into a make.lib or something
+# FIXME Should go into a make.lib or something
# ===========================================================================

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/