1 # SPDX-License-Identifier: GPL-2.0 !! 1 # $Id: Makefile,v 1.51.2.1 2002/03/14 01:26:21 kanoj Exp $ 2 KBUILD_DEFCONFIG := mmu_defconfig !! 2 # sparc64/Makefile 3 !! 3 # 4 UTS_SYSNAME = -DUTS_SYSNAME=\"Linux\" !! 4 # Makefile for the architecture dependent flags and dependencies on the >> 5 # 64-bit Sparc. >> 6 # >> 7 # Copyright (C) 1996,1998 David S. Miller (davem@caip.rutgers.edu) >> 8 # Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz) >> 9 # >> 10 >> 11 # If the solaris /bin/sh wasn't so broken, I wouldn't need the following >> 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 5 41 6 # What CPU version are we building for, and cr !! 42 ifneq ($(NEW_GCC),y) 7 # as major.minor.rev !! 43 CFLAGS := $(CFLAGS) -pipe -mno-fpu -mtune=ultrasparc -mmedlow \ 8 CPU_VER := $(CONFIG_XILINX_MICROBLAZE0_HW_VE !! 44 -ffixed-g4 -fcall-used-g5 -fcall-used-g7 -Wno-sign-compare 9 CPU_MAJOR := $(word 1, $(subst ., , $(CPU_VER) << 10 CPU_MINOR := $(word 2, $(subst ., , $(CPU_VER) << 11 CPU_REV := $(word 3, $(subst ., , $(CPU_VER) << 12 << 13 export CPU_VER CPU_MAJOR CPU_MINOR CPU_REV << 14 << 15 # Use cpu-related CONFIG_ vars to set compile << 16 # The various CONFIG_XILINX cpu features optio << 17 # rather than bools y/n << 18 << 19 # Work out HW multipler support. This is trick << 20 # 1. Spartan2 has no HW multipliers. << 21 # 2. MicroBlaze v3.x always uses them, except << 22 # 3. All other FPGa/CPU ver combos, we can tru << 23 ifeq (,$(findstring spartan2,$(CONFIG_XILINX_M << 24 ifeq ($(CPU_MAJOR),3) << 25 CPUFLAGS-1 += -mno-xl-soft-mul << 26 else << 27 # USE_HW_MUL can be 0, 1, or 2, defining a << 28 CPUFLAGS-$(subst 1,,$(CONFIG_XILINX_MICROB << 29 CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_H << 30 endif << 31 endif << 32 CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_DIV) << 33 CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_BARRE << 34 CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_PCMP_ << 35 << 36 ifdef CONFIG_CPU_BIG_ENDIAN << 37 KBUILD_CFLAGS += -mbig-endian << 38 KBUILD_AFLAGS += -mbig-endian << 39 KBUILD_LDFLAGS += -EB << 40 else 45 else 41 KBUILD_CFLAGS += -mlittle-endian !! 46 CFLAGS := $(CFLAGS) -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow \ 42 KBUILD_AFLAGS += -mlittle-endian !! 47 -ffixed-g4 -fcall-used-g5 -fcall-used-g7 -Wno-sign-compare \ 43 KBUILD_LDFLAGS += -EL !! 48 $(CC_UNDECL) 44 endif !! 49 AFLAGS += -m64 -mcpu=ultrasparc $(CC_UNDECL) 45 !! 50 endif 46 CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VE !! 51 47 !! 52 ifeq ($(INLINE_LIMIT),y) 48 # r31 holds current when in kernel mode !! 53 CFLAGS := $(CFLAGS) -finline-limit=100000 49 KBUILD_CFLAGS += -ffixed-r31 $(CPUFLAGS-y) $(C !! 54 endif 50 !! 55 51 libs-y += arch/microblaze/lib/ !! 56 ifeq ($(CONFIG_MCOUNT),y) 52 !! 57 CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS)) 53 boot := arch/microblaze/boot !! 58 CFLAGS := $(CFLAGS) -pg 54 !! 59 endif 55 # Are we making a simpleImage.<boardname> targ !! 60 56 DTB:=$(subst simpleImage.,,$(filter simpleImag !! 61 LINKFLAGS = -T arch/sparc64/vmlinux.lds 57 !! 62 58 export DTB !! 63 HEAD := arch/sparc64/kernel/head.o arch/sparc64/kernel/init_task.o 59 !! 64 60 all: linux.bin !! 65 SUBDIRS += arch/sparc64/kernel arch/sparc64/lib arch/sparc64/mm \ 61 !! 66 arch/sparc64/prom 62 archheaders: !! 67 63 $(Q)$(MAKE) $(build)=arch/microblaze/k !! 68 ifneq ($(CONFIG_SOLARIS_EMUL),n) 64 !! 69 SUBDIRS += arch/sparc64/solaris 65 PHONY += linux.bin linux.bin.gz linux.bin.ub !! 70 endif 66 linux.bin.ub linux.bin.gz: linux.bin !! 71 67 linux.bin: vmlinux !! 72 SUBDIRS += arch/sparc64/math-emu 68 linux.bin linux.bin.gz linux.bin.ub: !! 73 69 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$ !! 74 CORE_FILES := arch/sparc64/kernel/kernel.o arch/sparc64/mm/mm.o $(CORE_FILES) 70 @echo 'Kernel: $(boot)/$@ is ready' ' !! 75 71 !! 76 ifeq ($(CONFIG_SOLARIS_EMUL),y) 72 PHONY += simpleImage.$(DTB) !! 77 CORE_FILES += arch/sparc64/solaris/solaris.o 73 simpleImage.$(DTB): vmlinux !! 78 endif 74 $(Q)$(MAKE) $(build)=$(boot) $(addpref !! 79 75 @echo 'Kernel: $(boot)/$@ is ready' ' !! 80 CORE_FILES += arch/sparc64/math-emu/math-emu.o 76 !! 81 77 define archhelp !! 82 LIBS := $(TOPDIR)/lib/lib.a $(LIBS) $(TOPDIR)/arch/sparc64/prom/promlib.a \ 78 echo '* linux.bin - Create raw binary' !! 83 $(TOPDIR)/arch/sparc64/lib/lib.a 79 echo ' linux.bin.gz - Create compressed raw !! 84 80 echo ' linux.bin.ub - Create U-Boot wrapped !! 85 vmlinux.aout: vmlinux 81 echo ' simpleImage.<dt> - Create the follow !! 86 $(ELFTOAOUT) -o $(TOPDIR)/vmlinux.aout $(TOPDIR)/vmlinux 82 echo ' simpleImage.<dt> !! 87 83 echo ' simpleImage.<dt>.u !! 88 archmrproper: 84 echo ' simpleImage.<dt>.u !! 89 rm -f $(TOPDIR)/include/asm-sparc64/asm_offsets.h 85 echo ' simpleImage.<dt>.s !! 90 86 echo ' Targets with <dt> embed a device tre !! 91 archdep: check_asm 87 echo ' These targets support board with fir !! 92 88 echo ' support passing a device tree direct !! 93 check_asm: include/linux/version.h 89 echo ' name of a dts file from the arch/mic !! 94 $(MAKE) -C arch/sparc64/kernel check_asm 90 echo ' (minus the .dts extension).' !! 95 91 endef !! 96 >> 97 MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot >> 98 >> 99 archclean: >> 100 @$(MAKEBOOT) clean >> 101 >> 102 tftpboot.img: >> 103 @$(MAKEBOOT) tftpboot.img 92 104 93 MRPROPER_FILES += $(boot)/simpleImage.* !! 105 image: >> 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.