1# 2# alpha/Makefile 3# 4# This file is subject to the terms and conditions of the GNU General Public 5# License. See the file "COPYING" in the main directory of this archive 6# for more details. 7# 8# Copyright (C) 1994 by Linus Torvalds 9# 10 11NM := $(NM) -B 12 13LINKFLAGS = -static -T arch/alpha/vmlinux.lds -N #-relax 14CFLAGS := $(CFLAGS) -pipe -mno-fp-regs -ffixed-8 15 16# Determine if we can use the BWX instructions with GAS. 17old_gas := $(shell if $(AS) --version 2>&1 | grep 'version 2.7' > /dev/null; then echo y; else echo n; fi) 18 19# Determine if GCC understands the -mcpu= option. 20have_mcpu := $(shell if $(CC) -mcpu=ev5 -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo y; else echo n; fi) 21 22have_mcpu_pca56 := $(shell if $(CC) -mcpu=pca56 -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo y; else echo n; fi) 23 24have_mcpu_ev6 := $(shell if $(CC) -mcpu=ev6 -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo y; else echo n; fi) 25 26have_mcpu_ev67 := $(shell if $(CC) -mcpu=ev67 -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo y; else echo n; fi) 27 28# Turn on the proper cpu optimizations. 29ifeq ($(have_mcpu),y) 30 # If GENERIC, make sure to turn off any instruction set extensions that 31 # the host compiler might have on by default. Given that EV4 and EV5 32 # have the same instruction set, prefer EV5 because an EV5 schedule is 33 # more likely to keep an EV4 processor busy than vice-versa. 34 mcpu_done := n 35 ifeq ($(CONFIG_ALPHA_GENERIC),y) 36 CFLAGS := $(CFLAGS) -mcpu=ev5 37 mcpu_done := y 38 endif 39 ifeq ($(mcpu_done)$(CONFIG_ALPHA_SX164)$(have_mcpu_pca56),nyy) 40 CFLAGS := $(CFLAGS) -mcpu=pca56 41 mcpu_done := y 42 endif 43 ifeq ($(mcpu_done)$(CONFIG_ALPHA_POLARIS)$(have_mcpu_pca56),nyy) 44 CFLAGS := $(CFLAGS) -mcpu=pca56 45 mcpu_done := y 46 endif 47 ifeq ($(mcpu_done)$(CONFIG_ALPHA_EV4),ny) 48 CFLAGS := $(CFLAGS) -mcpu=ev4 49 mcpu_done := y 50 endif 51 ifeq ($(mcpu_done)$(CONFIG_ALPHA_EV56),ny) 52 CFLAGS := $(CFLAGS) -mcpu=ev56 53 mcpu_done := y 54 endif 55 ifeq ($(mcpu_done)$(CONFIG_ALPHA_EV5),ny) 56 CFLAGS := $(CFLAGS) -mcpu=ev5 57 mcpu_done := y 58 endif 59 ifeq ($(mcpu_done)$(CONFIG_ALPHA_EV67)$(have_mcpu_ev67),nyy) 60 CFLAGS := $(CFLAGS) -mcpu=ev67 61 mcpu_done := y 62 endif 63 ifeq ($(mcpu_done)$(CONFIG_ALPHA_EV6),ny) 64 ifeq ($(have_mcpu_ev6),y) 65 CFLAGS := $(CFLAGS) -mcpu=ev6 66 else 67 ifeq ($(have_mcpu_pca56),y) 68 CFLAGS := $(CFLAGS) -mcpu=pca56 69 else 70 CFLAGS := $(CFLAGS) -mcpu=ev56 71 endif 72 endif 73 mcpu_done := y 74 endif 75endif 76 77# For TSUNAMI, we must have the assembler not emulate our instructions. 78# The same is true for IRONGATE, POLARIS, PYXIS. 79# BWX is most important, but we don't really want any emulation ever. 80 81ifeq ($(old_gas),y) 82 # How do we do #error in make? 83 CFLAGS := --error-please-upgrade-your-assembler 84endif 85CFLAGS := $(CFLAGS) -Wa,-mev6 86 87HEAD := arch/alpha/kernel/head.o 88 89SUBDIRS := $(SUBDIRS) arch/alpha/kernel arch/alpha/mm arch/alpha/lib \ 90 arch/alpha/math-emu 91CORE_FILES := arch/alpha/kernel/kernel.o arch/alpha/mm/mm.o $(CORE_FILES) 92 93ifeq ($(CONFIG_MATHEMU),y) 94 CORE_FILES := $(CORE_FILES) arch/alpha/math-emu/math-emu.o 95endif 96 97LIBS := $(TOPDIR)/arch/alpha/lib/lib.a $(LIBS) $(TOPDIR)/arch/alpha/lib/lib.a 98 99MAKEBOOT = $(MAKE) -C arch/alpha/boot 100 101rawboot: 102 @$(MAKEBOOT) rawboot 103 104# 105# My boot writes directly to a specific disk partition, I doubt most 106# people will want to do that without changes.. 107# 108msb my-special-boot: 109 @$(MAKEBOOT) msb 110 111bootimage: 112 @$(MAKEBOOT) bootimage 113 114srmboot: 115 @$(MAKEBOOT) srmboot 116 117archclean: 118 @$(MAKE) -C arch/alpha/kernel clean 119 @$(MAKEBOOT) clean 120 rm -f arch/alpha/vmlinux.lds 121 122archmrproper: 123 124archdep: 125 @$(MAKEBOOT) dep 126 127vmlinux: arch/alpha/vmlinux.lds 128 129arch/alpha/vmlinux.lds: arch/alpha/vmlinux.lds.in 130 $(CPP) $(CPPFLAGS) -xc -P arch/alpha/vmlinux.lds.in -o arch/alpha/vmlinux.lds 131 132bootpfile: 133 @$(MAKEBOOT) bootpfile 134 135bootpzfile: 136 @$(MAKEBOOT) bootpzfile 137