xref: /OK3568_Linux_fs/kernel/arch/sparc/Makefile (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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