From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754489AbXFLKUS (ORCPT ); Tue, 12 Jun 2007 06:20:18 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752106AbXFLKUH (ORCPT ); Tue, 12 Jun 2007 06:20:07 -0400 Received: from raven.upol.cz ([158.194.120.4]:61084 "EHLO raven.upol.cz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751877AbXFLKUF (ORCPT ); Tue, 12 Jun 2007 06:20:05 -0400 To: Sam Ravnborg Cc: Rusty Russell , LKML , kbuild-devel@lists.sourceforge.net Subject: [patch] kbuild: remember ARCH in the object directory Organization: Palacky University in Olomouc, experimental physics department. User-Agent: emacs + quilt + jed (x86_64-pc-linux-glibc-debian) X-Mailer: slrn In-Reply-To: <20070611125903.GA3933@uranus.ravnborg.org> References: <200705090951.l499pa6G020397@shell0.pdx.osdl.net> <20070509204613.GA10336@uranus.ravnborg.org> <1178755780.7286.175.camel@localhost.localdomain> <20070611125903.GA3933@uranus.ravnborg.org> Date: Tue, 12 Jun 2007 12:31:56 +0200 Message-Id: From: Oleg Verych Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org [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 --- -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 # ===========================================================================