1 # SPDX-License-Identifier: GPL-2.0 !! 1 # $Id: Makefile,v 1.52 2002/02/09 19:49:31 davem 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 !! 5 # 64-bit Sparc. 6 # What CPU version are we building for, and cr !! 6 # 7 # as major.minor.rev !! 7 # Copyright (C) 1996,1998 David S. Miller (davem@caip.rutgers.edu) 8 CPU_VER := $(CONFIG_XILINX_MICROBLAZE0_HW_VE !! 8 # Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz) 9 CPU_MAJOR := $(word 1, $(subst ., , $(CPU_VER) !! 9 # 10 CPU_MINOR := $(word 2, $(subst ., , $(CPU_VER) !! 10 11 CPU_REV := $(word 3, $(subst ., , $(CPU_VER) !! 11 AFLAGS_vmlinux.lds.o += -Usparc 12 !! 12 13 export CPU_VER CPU_MAJOR CPU_MINOR CPU_REV !! 13 CC := $(shell if gcc -m64 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo gcc; else echo sparc64-linux-gcc; fi ) 14 !! 14 15 # Use cpu-related CONFIG_ vars to set compile !! 15 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; ) 16 # The various CONFIG_XILINX cpu features optio !! 16 NEW_GAS := $(shell if $(LD) -V 2>&1 | grep 'elf64_sparc' > /dev/null; then echo y; else echo n; fi) 17 # rather than bools y/n !! 17 UNDECLARED_REGS := $(shell if $(CC) -c -x assembler /dev/null -Wa,--help | grep undeclared-regs > /dev/null; then echo y; else echo n; fi; ) 18 !! 18 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; ) 19 # Work out HW multipler support. This is trick !! 19 20 # 1. Spartan2 has no HW multipliers. !! 20 export NEW_GCC 21 # 2. MicroBlaze v3.x always uses them, except !! 21 22 # 3. All other FPGa/CPU ver combos, we can tru !! 22 ifneq ($(NEW_GAS),y) 23 ifeq (,$(findstring spartan2,$(CONFIG_XILINX_M !! 23 AS = sparc64-linux-as 24 ifeq ($(CPU_MAJOR),3) !! 24 LD = sparc64-linux-ld 25 CPUFLAGS-1 += -mno-xl-soft-mul !! 25 NM = sparc64-linux-nm 26 else !! 26 AR = sparc64-linux-ar 27 # USE_HW_MUL can be 0, 1, or 2, defining a !! 27 RANLIB = sparc64-linux-ranlib 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 28 else 41 KBUILD_CFLAGS += -mlittle-endian !! 29 AS := $(AS) -64 42 KBUILD_AFLAGS += -mlittle-endian !! 30 LDFLAGS := -m elf64_sparc 43 KBUILD_LDFLAGS += -EL << 44 endif 31 endif 45 32 46 CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VE !! 33 ifneq ($(UNDECLARED_REGS),y) >> 34 CC_UNDECL = >> 35 else >> 36 CC_UNDECL = -Wa,--undeclared-regs >> 37 AS := $(AS) --undeclared-regs >> 38 endif 47 39 48 # r31 holds current when in kernel mode !! 40 ifneq ($(NEW_GCC),y) 49 KBUILD_CFLAGS += -ffixed-r31 $(CPUFLAGS-y) $(C !! 41 CFLAGS := $(CFLAGS) -pipe -mno-fpu -mtune=ultrasparc -mmedlow \ >> 42 -ffixed-g4 -fcall-used-g5 -fcall-used-g7 -Wno-sign-compare >> 43 else >> 44 CFLAGS := $(CFLAGS) -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow \ >> 45 -ffixed-g4 -fcall-used-g5 -fcall-used-g7 -Wno-sign-compare \ >> 46 $(CC_UNDECL) >> 47 AFLAGS += -m64 -mcpu=ultrasparc $(CC_UNDECL) >> 48 endif 50 49 51 libs-y += arch/microblaze/lib/ !! 50 ifeq ($(INLINE_LIMIT),y) >> 51 CFLAGS := $(CFLAGS) -finline-limit=100000 >> 52 endif 52 53 53 boot := arch/microblaze/boot !! 54 ifeq ($(CONFIG_MCOUNT),y) >> 55 CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS)) >> 56 CFLAGS := $(CFLAGS) -pg >> 57 endif 54 58 55 # Are we making a simpleImage.<boardname> targ !! 59 head-y := arch/sparc64/kernel/head.o arch/sparc64/kernel/init_task.o 56 DTB:=$(subst simpleImage.,,$(filter simpleImag << 57 60 58 export DTB !! 61 core-y += arch/sparc64/kernel/ arch/sparc64/mm/ >> 62 core-$(CONFIG_SOLARIS_EMUL) += arch/sparc64/solaris/ >> 63 core-y += arch/sparc64/math-emu/ >> 64 libs-y += arch/sparc64/prom/ arch/sparc64/lib/ 59 65 60 all: linux.bin !! 66 # FIXME: is drivers- right? >> 67 drivers-$(CONFIG_OPROFILE) += arch/sparc64/oprofile/ 61 68 62 archheaders: !! 69 boot := arch/sparc64/boot 63 $(Q)$(MAKE) $(build)=arch/microblaze/k << 64 70 65 PHONY += linux.bin linux.bin.gz linux.bin.ub !! 71 image tftpboot.img vmlinux.aout: vmlinux 66 linux.bin.ub linux.bin.gz: linux.bin << 67 linux.bin: vmlinux << 68 linux.bin linux.bin.gz linux.bin.ub: << 69 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$ 72 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ 70 @echo 'Kernel: $(boot)/$@ is ready' ' << 71 73 72 PHONY += simpleImage.$(DTB) !! 74 archclean: 73 simpleImage.$(DTB): vmlinux !! 75 $(Q)$(MAKE) $(clean)=$(boot) 74 $(Q)$(MAKE) $(build)=$(boot) $(addpref << 75 @echo 'Kernel: $(boot)/$@ is ready' ' << 76 76 77 define archhelp 77 define archhelp 78 echo '* linux.bin - Create raw binary' !! 78 echo '* vmlinux - Standard sparc64 kernel' 79 echo ' linux.bin.gz - Create compressed raw !! 79 echo ' vmlinux.aout - a.out kernel for sparc64' 80 echo ' linux.bin.ub - Create U-Boot wrapped !! 80 echo ' tftpboot.img - Image prepared for tftp' 81 echo ' simpleImage.<dt> - Create the follow << 82 echo ' simpleImage.<dt> << 83 echo ' simpleImage.<dt>.u << 84 echo ' simpleImage.<dt>.u << 85 echo ' simpleImage.<dt>.s << 86 echo ' Targets with <dt> embed a device tre << 87 echo ' These targets support board with fir << 88 echo ' support passing a device tree direct << 89 echo ' name of a dts file from the arch/mic << 90 echo ' (minus the .dts extension).' << 91 endef 81 endef 92 82 93 MRPROPER_FILES += $(boot)/simpleImage.* <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.