1 # BK Id: %F% %I% %G% %U% %#% !! 1 # $Id: Makefile,v 1.51.2.1 2002/03/14 01:26:21 kanoj Exp $ >> 2 # sparc64/Makefile 2 # 3 # 3 # This file is included by the global makefile !! 4 # Makefile for the architecture dependent flags and dependencies on the 4 # architecture-specific flags and dependencies !! 5 # 64-bit Sparc. 5 # 6 # 6 # This file is subject to the terms and condit !! 7 # Copyright (C) 1996,1998 David S. Miller (davem@caip.rutgers.edu) 7 # License. See the file "COPYING" in the main !! 8 # Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz) 8 # for more details. << 9 # 9 # 10 # Copyright (C) 1994 by Linus Torvalds << 11 # Modifications for the OpenRISC architecture: << 12 # Copyright (C) 2003 Matjaz Breskvar <phoenix@b << 13 # Copyright (C) 2010-2011 Jonas Bonn <jonas@sou << 14 # << 15 # Based on: << 16 # arch/i386/Makefile << 17 << 18 KBUILD_DEFCONFIG := or1ksim_defconfig << 19 << 20 OBJCOPYFLAGS := -O binary -R .note -R .comm << 21 LIBGCC := $(shell $(CC) $(KBUILD_CFLA << 22 << 23 KBUILD_CFLAGS += -pipe -ffixed-r10 -D__linux << 24 KBUILD_CFLAGS += -msfimm -mshftimm << 25 << 26 all: vmlinux.bin << 27 << 28 boot := arch/$(ARCH)/boot << 29 10 30 ifeq ($(CONFIG_OPENRISC_HAVE_INST_MUL),y) !! 11 # If the solaris /bin/sh wasn't so broken, I wouldn't need the following 31 KBUILD_CFLAGS += $(call cc-option,-mha !! 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 32 else 30 else 33 KBUILD_CFLAGS += $(call cc-option,-mso !! 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 34 endif 40 endif 35 41 36 ifeq ($(CONFIG_OPENRISC_HAVE_INST_DIV),y) !! 42 ifneq ($(NEW_GCC),y) 37 KBUILD_CFLAGS += $(call cc-option,-mha !! 43 CFLAGS := $(CFLAGS) -pipe -mno-fpu -mtune=ultrasparc -mmedlow \ >> 44 -ffixed-g4 -fcall-used-g5 -fcall-used-g7 -Wno-sign-compare 38 else 45 else 39 KBUILD_CFLAGS += $(call cc-option,-mso !! 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) 40 endif 50 endif 41 51 42 ifeq ($(CONFIG_OPENRISC_HAVE_INST_CMOV),y) !! 52 ifeq ($(INLINE_LIMIT),y) 43 KBUILD_CFLAGS += $(call cc-option,-mcm !! 53 CFLAGS := $(CFLAGS) -finline-limit=100000 44 endif 54 endif 45 55 46 ifeq ($(CONFIG_OPENRISC_HAVE_INST_ROR),y) !! 56 ifeq ($(CONFIG_MCOUNT),y) 47 KBUILD_CFLAGS += $(call cc-option,-mro !! 57 CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS)) >> 58 CFLAGS := $(CFLAGS) -pg 48 endif 59 endif 49 60 50 ifeq ($(CONFIG_OPENRISC_HAVE_INST_RORI),y) !! 61 LINKFLAGS = -T arch/sparc64/vmlinux.lds 51 KBUILD_CFLAGS += $(call cc-option,-mro !! 62 >> 63 HEAD := arch/sparc64/kernel/head.o arch/sparc64/kernel/init_task.o >> 64 >> 65 SUBDIRS += arch/sparc64/kernel arch/sparc64/lib arch/sparc64/mm \ >> 66 arch/sparc64/prom >> 67 >> 68 ifneq ($(CONFIG_SOLARIS_EMUL),n) >> 69 SUBDIRS += arch/sparc64/solaris 52 endif 70 endif 53 71 54 ifeq ($(CONFIG_OPENRISC_HAVE_INST_SEXT),y) !! 72 SUBDIRS += arch/sparc64/math-emu 55 KBUILD_CFLAGS += $(call cc-option,-mse !! 73 >> 74 CORE_FILES := arch/sparc64/kernel/kernel.o arch/sparc64/mm/mm.o $(CORE_FILES) >> 75 >> 76 ifeq ($(CONFIG_SOLARIS_EMUL),y) >> 77 CORE_FILES += arch/sparc64/solaris/solaris.o 56 endif 78 endif 57 79 58 libs-y += $(LIBGCC) !! 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 >> 87 >> 88 archmrproper: >> 89 rm -f $(TOPDIR)/include/asm-sparc64/asm_offsets.h >> 90 >> 91 archdep: check_asm >> 92 >> 93 check_asm: include/linux/version.h >> 94 $(MAKE) -C arch/sparc64/kernel check_asm >> 95 >> 96 >> 97 MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot >> 98 >> 99 archclean: >> 100 @$(MAKEBOOT) clean 59 101 60 PHONY += vmlinux.bin !! 102 tftpboot.img: >> 103 @$(MAKEBOOT) tftpboot.img 61 104 62 vmlinux.bin: vmlinux !! 105 image: 63 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$ !! 106 @$(MAKEBOOT) image
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.