diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2008-12-02 23:17:12 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-12-04 09:17:16 -0800 |
commit | 5e53879008b9acefe9f43498fd36db7376e08739 (patch) | |
tree | 1e3137cabb339a834794a753f1782b312392bd32 /arch/sparc/Makefile | |
parent | 14ae84c9933f22ccad34fa6375b8908389b304f0 (diff) | |
download | op-kernel-dev-5e53879008b9acefe9f43498fd36db7376e08739.zip op-kernel-dev-5e53879008b9acefe9f43498fd36db7376e08739.tar.gz |
sparc,sparc64: unify Makefile
To unify Makefile for sparc and sparc64 a few other steps was needed:
1) separate defconfig files for sparc and sparc64 is required,
so locate these in arch/sparc/configs
2) removoval of hack in toplevel Makefile to deal with that
headers was in a separate directory compared to the rest
The unification of the Makefile required usage of several
foo-$(CONFIG_SPARCnn) +=
due to a few directories pending unification.
This will be cleaned up when we unify the remaining directories.
Included in this patch are the deletion of a few files in
sparc64 as they are no longer needed: Makefile + Kconfig.
arch/sparc64/ will after this patch is applied only
have four directories (prom, lib, kernel, boot)
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/Makefile')
-rw-r--r-- | arch/sparc/Makefile | 82 |
1 files changed, 69 insertions, 13 deletions
diff --git a/arch/sparc/Makefile b/arch/sparc/Makefile index 9c4c8b8..3c043ba 100644 --- a/arch/sparc/Makefile +++ b/arch/sparc/Makefile @@ -2,9 +2,21 @@ # sparc/Makefile # # Makefile for the architecture dependent flags and dependencies on the -# Sparc. +# Sparc and sparc64. # -# Copyright (C) 1994 David S. Miller (davem@caip.rutgers.edu) +# Copyright (C) 1994,1996,1998 David S. Miller (davem@caip.rutgers.edu) +# Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz) + +# We are not yet configured - so test on arch +ifeq ($(ARCH),sparc) + KBUILD_DEFCONFIG := sparc32_defconfig +else + KBUILD_DEFCONFIG := sparc64_defconfig +endif + +ifeq ($(CONFIG_SPARC32),y) +##### +# sparc32 # # @@ -26,10 +38,48 @@ CPPFLAGS_vmlinux.lds += -m32 # Actual linking is done with "make image". LDFLAGS_vmlinux = -r -head-y := arch/sparc/kernel/head.o arch/sparc/kernel/init_task.o +# Default target +all: zImage + + +else +##### +# sparc64 +# + +CHECKFLAGS += -D__sparc__ -D__sparc_v9__ -D__arch64__ -m64 + +# Undefine sparc when processing vmlinux.lds - it is used +# And teach CPP we are doing 64 bit builds (for this case) +CPPFLAGS_vmlinux.lds += -m64 -Usparc +LDFLAGS := -m elf64_sparc +export BITS := 64 + +KBUILD_CFLAGS += -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow \ + -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare \ + -Wa,--undeclared-regs +KBUILD_CFLAGS += $(call cc-option,-mtune=ultrasparc3) +KBUILD_AFLAGS += -m64 -mcpu=ultrasparc -Wa,--undeclared-regs + +ifeq ($(CONFIG_MCOUNT),y) + KBUILD_CFLAGS += -pg +endif + +endif -core-y += arch/sparc/kernel/ arch/sparc/mm/ arch/sparc/math-emu/ -libs-y += arch/sparc/prom/ arch/sparc/lib/ +head-$(CONFIG_SPARC32) := arch/sparc/kernel/head.o +head-$(CONFIG_SPARC32) += arch/sparc/kernel/init_task.o +head-$(CONFIG_SPARC64) := arch/sparc64/kernel/head.o +head-$(CONFIG_SPARC64) += arch/sparc64/kernel/init_task.o + +core-$(CONFIG_SPARC32) += arch/sparc/kernel/ +core-$(CONFIG_SPARC64) += arch/sparc64/kernel/ +core-y += arch/sparc/mm/ arch/sparc/math-emu/ + +libs-$(CONFIG_SPARC32) += arch/sparc/prom/ +libs-$(CONFIG_SPARC32) += arch/sparc/lib/ +libs-$(CONFIG_SPARC64) += arch/sparc64/prom/ +libs-$(CONFIG_SPARC64) += arch/sparc64/lib/ drivers-$(CONFIG_OPROFILE) += arch/sparc/oprofile/ @@ -44,23 +94,29 @@ ifdef CONFIG_KALLSYMS export kallsyms.o := .tmp_kallsyms2.o endif -# Default target -all: zImage - -boot := arch/sparc/boot +boot-y := arch/sparc/boot +boot-$(CONFIG_SPARC64) := arch/sparc64/boot -image zImage tftpboot.img: vmlinux - $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ +image zImage tftpboot.img vmlinux.aout: vmlinux + $(Q)$(MAKE) $(build)=$(boot-y) $(boot-y)/$@ archclean: - $(Q)$(MAKE) $(clean)=$(boot) + $(Q)$(MAKE) $(clean)=$(boot-y) # This is the image used for packaging -KBUILD_IMAGE := $(boot)/zImage +KBUILD_IMAGE := $(boot-y)/zImage # Don't use tabs in echo arguments. +ifeq ($(ARCH),sparc) define archhelp echo '* image - kernel image ($(boot)/image)' echo '* zImage - stripped kernel image ($(boot)/zImage)' echo ' tftpboot.img - image prepared for tftp' endef +else +define archhelp + echo '* vmlinux - Standard sparc64 kernel' + echo ' vmlinux.aout - a.out kernel for sparc64' + echo ' tftpboot.img - image prepared for tftp' +endef +endif |