[PATCH] allow make ARCH="the machine hardware name"

From: Adam Lee
Date: Mon Sep 19 2011 - 10:22:11 EST


This patch add support for make ARCH="the machine hardware name"(`uname
-m).

UTS_MACHINE is not always the same as SRCARCH, for example, s390x, we
should set UTS_MACHINE=s390x, and SRCARCH=s390. This patch makes that
right when "make ARCH=s390x".

And it avoid some error during invocation of make when ARCH set as
s390x, ppc64 or some machine hardware name else.

Signed-off-by: Adam Lee <adam8157@xxxxxxxxx>
---
Makefile | 41 ++++++++---------------------------------
1 files changed, 8 insertions(+), 33 deletions(-)

diff --git a/Makefile b/Makefile
index 522fa47..bcbfaba 100644
--- a/Makefile
+++ b/Makefile
@@ -197,44 +197,19 @@ CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)

# Architecture as present in compile.h
UTS_MACHINE := $(ARCH)
-SRCARCH := $(ARCH)

-# Additional ARCH settings for x86
-ifeq ($(ARCH),i386)
- SRCARCH := x86
-endif
-ifeq ($(ARCH),x86_64)
- SRCARCH := x86
-endif
-
-# Additional ARCH settings for sparc
-ifeq ($(ARCH),sparc32)
- SRCARCH := sparc
-endif
-ifeq ($(ARCH),sparc64)
- SRCARCH := sparc
-endif
-
-# Additional ARCH settings for sh
-ifeq ($(ARCH),sh64)
- SRCARCH := sh
-endif
-
-# Additional ARCH settings for tile
-ifeq ($(ARCH),tilepro)
- SRCARCH := tile
-endif
-ifeq ($(ARCH),tilegx)
- SRCARCH := tile
-endif
+# Where arch specific source located
+SRCARCH := $(shell echo $(ARCH) | \
+ sed -e s/i.86/x86/ -e s/x86_64/x86/ \
+ -e s/arm.*/arm/ -e s/sa110/arm/ \
+ -e s/m68k.*/m68k/ -e s/mips.*/mips/ \
+ -e s/parisc64/parisc/ -e s/ppc.*/powerpc/ \
+ -e s/s390x/s390/ -e s/sh.*/sh/ -e s/sun4u/sparc/ \
+ -e s/sparc.*/sparc/ -e s/tile.*/tile/ )

# Where to locate arch specific headers
hdr-arch := $(SRCARCH)

-ifeq ($(ARCH),m68knommu)
- hdr-arch := m68k
-endif
-
KCONFIG_CONFIG ?= .config
export KCONFIG_CONFIG