Makefile 2.17 KB
Newer Older
Linus Torvalds's avatar
Linus Torvalds committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
# $Id: Makefile,v 1.52 2002/02/09 19:49:31 davem Exp $
# sparc64/Makefile
#
# Makefile for the architecture dependent flags and dependencies on the
# 64-bit Sparc.
#
# Copyright (C) 1996,1998 David S. Miller (davem@caip.rutgers.edu)
# Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz)
#

CHECKFLAGS	+= -D__sparc__ -D__sparc_v9__ -m64

CPPFLAGS_vmlinux.lds += -Usparc

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 )

NEW_GCC := $(call cc-option-yn, -m64 -mcmodel=medlow)
NEW_GAS := $(shell if $(LD) -V 2>&1 | grep 'elf64_sparc' > /dev/null; then echo y; else echo n; fi)
UNDECLARED_REGS := $(shell if $(CC) -c -x assembler /dev/null -Wa,--help | grep undeclared-regs > /dev/null; then echo y; else echo n; fi; )

export NEW_GCC

ifneq ($(NEW_GAS),y)
AS		= sparc64-linux-as
LD		= sparc64-linux-ld
NM		= sparc64-linux-nm
AR		= sparc64-linux-ar
RANLIB		= sparc64-linux-ranlib
else
AS		:= $(AS) -64
LDFLAGS		:= -m elf64_sparc
endif

ifneq ($(UNDECLARED_REGS),y)
CC_UNDECL	=
else
CC_UNDECL	= -Wa,--undeclared-regs
AS		:= $(AS) --undeclared-regs
endif

ifneq ($(NEW_GCC),y)
42
  KBUILD_CFLAGS += -pipe -mno-fpu -mtune=ultrasparc -mmedlow \
Linus Torvalds's avatar
Linus Torvalds committed
43 44
	    -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare
else
45
  KBUILD_CFLAGS += -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow \
Linus Torvalds's avatar
Linus Torvalds committed
46 47
	    -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare \
	    $(CC_UNDECL)
48
  KBUILD_AFLAGS += -m64 -mcpu=ultrasparc $(CC_UNDECL)
Linus Torvalds's avatar
Linus Torvalds committed
49 50 51
endif

ifeq ($(CONFIG_MCOUNT),y)
52
  KBUILD_CFLAGS += -pg
Linus Torvalds's avatar
Linus Torvalds committed
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
endif

head-y := arch/sparc64/kernel/head.o arch/sparc64/kernel/init_task.o

core-y				+= arch/sparc64/kernel/ arch/sparc64/mm/
core-$(CONFIG_SOLARIS_EMUL)	+= arch/sparc64/solaris/
core-y				+= arch/sparc64/math-emu/
libs-y				+= arch/sparc64/prom/ arch/sparc64/lib/

# FIXME: is drivers- right?
drivers-$(CONFIG_OPROFILE)	+= arch/sparc64/oprofile/

boot := arch/sparc64/boot

image tftpboot.img vmlinux.aout: vmlinux
	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@

archclean:
	$(Q)$(MAKE) $(clean)=$(boot)

define archhelp
  echo  '* vmlinux       - Standard sparc64 kernel'
  echo  '  vmlinux.aout  - a.out kernel for sparc64'
  echo  '  tftpboot.img  - Image prepared for tftp'
endef