>> 1 # $Id: Makefile,v 1.51.2.1 2002/03/14 01:26:21 kanoj Exp $ >> 2 # sparc64/Makefile 1 # 3 # 2 # This file is subject to the terms and condit !! 4 # Makefile for the architecture dependent flags and dependencies on the 3 # License. See the file "COPYING" in the main !! 5 # 64-bit Sparc. 4 # for more details. << 5 # 6 # 6 # Copyright (C) 2001 - 2005 Tensilica Inc. !! 7 # Copyright (C) 1996,1998 David S. Miller (davem@caip.rutgers.edu) 7 # Copyright (C) 2014 Cadence Design Systems In !! 8 # Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz) 8 # 9 # 9 # This file is included by the global makefile << 10 # architecture-specific flags and dependencies << 11 10 12 # Core configuration. !! 11 # If the solaris /bin/sh wasn't so broken, I wouldn't need the following 13 # (Use VAR=<xtensa_config> to use another defa !! 12 # line... >> 13 SHELL =/bin/bash >> 14 >> 15 CC := $(shell if $(CC) -m64 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo $(CC); else echo sparc64-linux-gcc; fi ) >> 16 >> 17 NEW_GCC := $(shell if $(CC) -m64 -mcmodel=medlow -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo y; else echo n; fi; ) >> 18 NEW_GAS := $(shell if $(LD) -V 2>&1 | grep 'elf64_sparc' > /dev/null; then echo y; else echo n; fi) >> 19 UNDECLARED_REGS := $(shell if $(CC) -c -x assembler /dev/null -Wa,--help | grep undeclared-regs > /dev/null; then echo y; else echo n; fi; ) >> 20 INLINE_LIMIT := $(shell if $(CC) -m64 -finline-limit=100000 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo y; else echo n; fi; ) >> 21 >> 22 export NEW_GCC >> 23 >> 24 ifneq ($(NEW_GAS),y) >> 25 AS = sparc64-linux-as >> 26 LD = sparc64-linux-ld >> 27 NM = sparc64-linux-nm >> 28 AR = sparc64-linux-ar >> 29 RANLIB = sparc64-linux-ranlib >> 30 else >> 31 AS := $(AS) -64 >> 32 LD := $(LD) -m elf64_sparc >> 33 endif >> 34 ELFTOAOUT = elftoaout >> 35 ifneq ($(UNDECLARED_REGS),y) >> 36 CC_UNDECL = >> 37 else >> 38 CC_UNDECL = -Wa,--undeclared-regs >> 39 AS := $(AS) --undeclared-regs >> 40 endif 14 41 15 variant-y := $(CONFIG_XTENSA_VARIANT_NAME) !! 42 ifneq ($(NEW_GCC),y) >> 43 CFLAGS := $(CFLAGS) -pipe -mno-fpu -mtune=ultrasparc -mmedlow \ >> 44 -ffixed-g4 -fcall-used-g5 -fcall-used-g7 -Wno-sign-compare >> 45 else >> 46 CFLAGS := $(CFLAGS) -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow \ >> 47 -ffixed-g4 -fcall-used-g5 -fcall-used-g7 -Wno-sign-compare \ >> 48 $(CC_UNDECL) >> 49 AFLAGS += -m64 -mcpu=ultrasparc $(CC_UNDECL) >> 50 endif 16 51 17 VARIANT = $(variant-y) !! 52 ifeq ($(INLINE_LIMIT),y) >> 53 CFLAGS := $(CFLAGS) -finline-limit=100000 >> 54 endif 18 55 19 ifneq ($(VARIANT),) !! 56 ifeq ($(CONFIG_MCOUNT),y) 20 ifdef cross_compiling !! 57 CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS)) 21 ifndef CROSS_COMPILE !! 58 CFLAGS := $(CFLAGS) -pg 22 CROSS_COMPILE = xtensa_$(VARIANT)- << 23 endif << 24 endif << 25 endif 59 endif 26 60 27 # Platform configuration !! 61 LINKFLAGS = -T arch/sparc64/vmlinux.lds 28 62 29 platform-$(CONFIG_XTENSA_PLATFORM_XT2000) !! 63 HEAD := arch/sparc64/kernel/head.o arch/sparc64/kernel/init_task.o 30 platform-$(CONFIG_XTENSA_PLATFORM_ISS) << 31 platform-$(CONFIG_XTENSA_PLATFORM_XTFPGA) << 32 64 33 # temporarily until string.h is fixed !! 65 SUBDIRS += arch/sparc64/kernel arch/sparc64/lib arch/sparc64/mm \ 34 KBUILD_CFLAGS += -ffreestanding -D__linux__ !! 66 arch/sparc64/prom 35 KBUILD_CFLAGS += -pipe -mlongcalls -mtext-sect !! 67 36 KBUILD_CFLAGS += $(call cc-option,-mforce-no-p !! 68 ifneq ($(CONFIG_SOLARIS_EMUL),n) 37 KBUILD_CFLAGS += $(call cc-option,-mno-seriali !! 69 SUBDIRS += arch/sparc64/solaris 38 KBUILD_CFLAGS += $(call cc-option,-mno-fdpic,) << 39 ifneq ($(CONFIG_KERNEL_ABI_CALL0),) << 40 KBUILD_CFLAGS += -mabi=call0 << 41 KBUILD_AFLAGS += -mabi=call0 << 42 endif 70 endif 43 71 44 KBUILD_AFLAGS += -mlongcalls -mtext-section-li !! 72 SUBDIRS += arch/sparc64/math-emu 45 KBUILD_AFLAGS += $(call cc-option,-mno-fdpic,) << 46 73 47 KBUILD_LDFLAGS += -m elf32xtensa !! 74 CORE_FILES := arch/sparc64/kernel/kernel.o arch/sparc64/mm/mm.o $(CORE_FILES) 48 75 49 ifneq ($(CONFIG_LD_NO_RELAX),) !! 76 ifeq ($(CONFIG_SOLARIS_EMUL),y) 50 KBUILD_LDFLAGS += --no-relax !! 77 CORE_FILES += arch/sparc64/solaris/solaris.o 51 endif 78 endif 52 79 53 CHECKFLAGS += -D$(if $(CONFIG_CPU_BIG_ENDIAN), !! 80 CORE_FILES += arch/sparc64/math-emu/math-emu.o >> 81 >> 82 LIBS := $(TOPDIR)/lib/lib.a $(LIBS) $(TOPDIR)/arch/sparc64/prom/promlib.a \ >> 83 $(TOPDIR)/arch/sparc64/lib/lib.a >> 84 >> 85 vmlinux.aout: vmlinux >> 86 $(ELFTOAOUT) -o $(TOPDIR)/vmlinux.aout $(TOPDIR)/vmlinux 54 87 55 vardirs := $(patsubst %,arch/xtensa/variants/% !! 88 archmrproper: 56 plfdirs := $(patsubst %,arch/xtensa/platforms/ !! 89 rm -f $(TOPDIR)/include/asm-sparc64/asm_offsets.h 57 90 58 KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/% !! 91 archdep: check_asm 59 92 60 KBUILD_DEFCONFIG := iss_defconfig !! 93 check_asm: include/linux/version.h >> 94 $(MAKE) -C arch/sparc64/kernel check_asm 61 95 62 libs-y += arch/xtensa/lib/ << 63 96 64 boot := arch/xtensa/boot !! 97 MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot 65 98 66 all Image zImage uImage xipImage: vmlinux !! 99 archclean: 67 $(Q)$(MAKE) $(build)=$(boot) $@ !! 100 @$(MAKEBOOT) clean 68 101 69 archheaders: !! 102 tftpboot.img: 70 $(Q)$(MAKE) $(build)=arch/xtensa/kerne !! 103 @$(MAKEBOOT) tftpboot.img 71 104 72 define archhelp !! 105 image: 73 @echo '* Image - Kernel ELF image with !! 106 @$(MAKEBOOT) image 74 @echo '* zImage - Compressed kernel ima << 75 @echo '* uImage - U-Boot wrapped image' << 76 @echo ' xipImage - XIP image' << 77 endef <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.