1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# sparc/Makefile 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun# Makefile for the architecture dependent flags and dependencies on the 6*4882a593Smuzhiyun# Sparc and sparc64. 7*4882a593Smuzhiyun# 8*4882a593Smuzhiyun# Copyright (C) 1994,1996,1998 David S. Miller (davem@caip.rutgers.edu) 9*4882a593Smuzhiyun# Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz) 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun# We are not yet configured - so test on arch 12*4882a593Smuzhiyunifeq ($(ARCH),sparc64) 13*4882a593Smuzhiyun KBUILD_DEFCONFIG := sparc64_defconfig 14*4882a593Smuzhiyunelse 15*4882a593Smuzhiyun KBUILD_DEFCONFIG := sparc32_defconfig 16*4882a593Smuzhiyunendif 17*4882a593Smuzhiyun 18*4882a593Smuzhiyunifeq ($(CONFIG_SPARC32),y) 19*4882a593Smuzhiyun##### 20*4882a593Smuzhiyun# sparc32 21*4882a593Smuzhiyun# 22*4882a593Smuzhiyun 23*4882a593SmuzhiyunCHECKFLAGS += -D__sparc__ 24*4882a593SmuzhiyunKBUILD_LDFLAGS := -m elf32_sparc 25*4882a593Smuzhiyunexport BITS := 32 26*4882a593SmuzhiyunUTS_MACHINE := sparc 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun# We are adding -Wa,-Av8 to KBUILD_CFLAGS to deal with a specs bug in some 29*4882a593Smuzhiyun# versions of gcc. Some gcc versions won't pass -Av8 to binutils when you 30*4882a593Smuzhiyun# give -mcpu=v8. This silently worked with older bintutils versions but 31*4882a593Smuzhiyun# does not any more. 32*4882a593SmuzhiyunKBUILD_CFLAGS += -m32 -mcpu=v8 -pipe -mno-fpu -fcall-used-g5 -fcall-used-g7 33*4882a593SmuzhiyunKBUILD_CFLAGS += -Wa,-Av8 34*4882a593Smuzhiyun 35*4882a593SmuzhiyunKBUILD_AFLAGS += -m32 -Wa,-Av8 36*4882a593Smuzhiyun 37*4882a593Smuzhiyunelse 38*4882a593Smuzhiyun##### 39*4882a593Smuzhiyun# sparc64 40*4882a593Smuzhiyun# 41*4882a593Smuzhiyun 42*4882a593SmuzhiyunCHECKFLAGS += -D__sparc__ -D__sparc_v9__ -D__arch64__ 43*4882a593SmuzhiyunKBUILD_LDFLAGS := -m elf64_sparc 44*4882a593Smuzhiyunexport BITS := 64 45*4882a593SmuzhiyunUTS_MACHINE := sparc64 46*4882a593Smuzhiyun 47*4882a593SmuzhiyunKBUILD_CFLAGS += -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow 48*4882a593SmuzhiyunKBUILD_CFLAGS += -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare 49*4882a593SmuzhiyunKBUILD_CFLAGS += -Wa,--undeclared-regs 50*4882a593SmuzhiyunKBUILD_CFLAGS += $(call cc-option,-mtune=ultrasparc3) 51*4882a593SmuzhiyunKBUILD_AFLAGS += -m64 -mcpu=ultrasparc -Wa,--undeclared-regs 52*4882a593Smuzhiyun 53*4882a593Smuzhiyunifeq ($(CONFIG_MCOUNT),y) 54*4882a593Smuzhiyun KBUILD_CFLAGS += -pg 55*4882a593Smuzhiyunendif 56*4882a593Smuzhiyun 57*4882a593Smuzhiyunendif 58*4882a593Smuzhiyun 59*4882a593Smuzhiyunhead-y := arch/sparc/kernel/head_$(BITS).o 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun# See arch/sparc/Kbuild for the core part of the kernel 62*4882a593Smuzhiyuncore-y += arch/sparc/ 63*4882a593Smuzhiyun 64*4882a593Smuzhiyunlibs-y += arch/sparc/prom/ 65*4882a593Smuzhiyunlibs-y += arch/sparc/lib/ 66*4882a593Smuzhiyun 67*4882a593Smuzhiyundrivers-$(CONFIG_PM) += arch/sparc/power/ 68*4882a593Smuzhiyundrivers-$(CONFIG_OPROFILE) += arch/sparc/oprofile/ 69*4882a593Smuzhiyun 70*4882a593Smuzhiyunboot := arch/sparc/boot 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun# Default target 73*4882a593Smuzhiyunall: zImage 74*4882a593Smuzhiyun 75*4882a593Smuzhiyunimage zImage uImage tftpboot.img vmlinux.aout: vmlinux 76*4882a593Smuzhiyun $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ 77*4882a593Smuzhiyun 78*4882a593Smuzhiyuninstall: 79*4882a593Smuzhiyun $(Q)$(MAKE) $(build)=$(boot) $@ 80*4882a593Smuzhiyun 81*4882a593Smuzhiyunarchclean: 82*4882a593Smuzhiyun $(Q)$(MAKE) $(clean)=$(boot) 83*4882a593Smuzhiyun 84*4882a593Smuzhiyunarchheaders: 85*4882a593Smuzhiyun $(Q)$(MAKE) $(build)=arch/sparc/kernel/syscalls all 86*4882a593Smuzhiyun 87*4882a593SmuzhiyunPHONY += vdso_install 88*4882a593Smuzhiyunvdso_install: 89*4882a593Smuzhiyun $(Q)$(MAKE) $(build)=arch/sparc/vdso $@ 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun# This is the image used for packaging 92*4882a593SmuzhiyunKBUILD_IMAGE := $(boot)/zImage 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun# Don't use tabs in echo arguments. 95*4882a593Smuzhiyunifeq ($(ARCH),sparc) 96*4882a593Smuzhiyundefine archhelp 97*4882a593Smuzhiyun echo '* image - kernel image ($(boot)/image)' 98*4882a593Smuzhiyun echo '* zImage - stripped kernel image ($(boot)/zImage)' 99*4882a593Smuzhiyun echo ' uImage - U-Boot SPARC32 Image (only for LEON)' 100*4882a593Smuzhiyun echo ' tftpboot.img - image prepared for tftp' 101*4882a593Smuzhiyunendef 102*4882a593Smuzhiyunelse 103*4882a593Smuzhiyundefine archhelp 104*4882a593Smuzhiyun echo '* vmlinux - standard sparc64 kernel' 105*4882a593Smuzhiyun echo '* zImage - stripped and compressed sparc64 kernel ($(boot)/zImage)' 106*4882a593Smuzhiyun echo ' vmlinux.aout - a.out kernel for sparc64' 107*4882a593Smuzhiyun echo ' tftpboot.img - image prepared for tftp' 108*4882a593Smuzhiyunendef 109*4882a593Smuzhiyunendif 110