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
8 # Copyright (C) 1994 by Linus Torvalds
13 LDFLAGS_vmlinux
:= -static
-N
#-relax
14 CHECKFLAGS
+= -D__alpha__
-m64
15 cflags-y
:= -pipe
-mno-fp-regs
-ffixed-8
17 # Determine if we can use the BWX instructions with GAS.
18 old_gas
:= $(shell if
$(AS
) --version
2>&1 | grep
'version 2.7' > /dev
/null
; then echo y
; else echo n
; fi
)
21 $(error The assembler
'$(AS)' does not support the BWX instruction
)
24 # Determine if GCC understands the -mcpu= option.
25 have_mcpu
:= $(call cc-option-yn
, -mcpu
=ev5
)
26 have_mcpu_pca56
:= $(call cc-option-yn
, -mcpu
=pca56
)
27 have_mcpu_ev6
:= $(call cc-option-yn
, -mcpu
=ev6
)
28 have_mcpu_ev67
:= $(call cc-option-yn
, -mcpu
=ev67
)
29 have_msmall_data
:= $(call cc-option-yn
, -msmall-data
)
31 cflags-
$(have_msmall_data
) += -msmall-data
33 # Turn on the proper cpu optimizations.
36 # If GENERIC, make sure to turn off any instruction set extensions that
37 # the host compiler might have on by default. Given that EV4 and EV5
38 # have the same instruction set, prefer EV5 because an EV5 schedule is
39 # more likely to keep an EV4 processor busy than vice-versa.
40 ifeq ($(CONFIG_ALPHA_GENERIC
),y
)
44 ifeq ($(mcpu_done
)$(CONFIG_ALPHA_SX164
)$(have_mcpu_pca56
),nyy
)
48 ifeq ($(mcpu_done
)$(CONFIG_ALPHA_POLARIS
)$(have_mcpu_pca56
),nyy
)
52 ifeq ($(mcpu_done
)$(CONFIG_ALPHA_EV4
),ny
)
56 ifeq ($(mcpu_done
)$(CONFIG_ALPHA_EV56
),ny
)
60 ifeq ($(mcpu_done
)$(CONFIG_ALPHA_EV5
),ny
)
64 ifeq ($(mcpu_done
)$(CONFIG_ALPHA_EV67
)$(have_mcpu_ev67
),nyy
)
68 ifeq ($(mcpu_done
)$(CONFIG_ALPHA_EV6
),ny
)
69 ifeq ($(have_mcpu_ev6
),y
)
72 ifeq ($(have_mcpu_pca56
),y
)
80 cflags-
$(mcpu_done
) += -mcpu
=$(mcpu
)
84 # For TSUNAMI, we must have the assembler not emulate our instructions.
85 # The same is true for IRONGATE, POLARIS, PYXIS.
86 # BWX is most important, but we don't really want any emulation ever.
87 CFLAGS
+= $(cflags-y
) -Wa
,-mev6
89 head-y
:= arch
/alpha
/kernel
/head.o
91 core-y
+= arch
/alpha
/kernel
/ arch
/alpha
/mm
/
92 core-
$(CONFIG_MATHEMU
) += arch
/alpha
/math-emu
/
93 drivers-
$(CONFIG_OPROFILE
) += arch
/alpha
/oprofile
/
94 libs-y
+= arch
/alpha
/lib
/
96 # export what is needed by arch/alpha/boot/Makefile
97 LIBS_Y
:= $(patsubst %/, %/lib.a
, $(libs-y
))
100 boot
:= arch
/alpha
/boot
102 #Default target when executing make with no arguments
103 all boot
: $(boot
)/vmlinux.gz
105 $(boot
)/vmlinux.gz
: vmlinux
106 $(Q
)$(MAKE
) $(build
)=$(boot
) $@
108 bootimage bootpfile bootpzfile
: vmlinux
109 $(Q
)$(MAKE
) $(build
)=$(boot
) $(boot
)/$@
112 prepare
: include/asm-
$(ARCH
)/asm_offsets.h
114 arch
/$(ARCH
)/kernel
/asm-offsets.s
: include/asm
include/linux
/version.h \
115 include/config
/MARKER
117 include/asm-
$(ARCH
)/asm_offsets.h
: arch
/$(ARCH
)/kernel
/asm-offsets.s
118 $(call filechk
,gen-asm-offsets
)
121 $(Q
)$(MAKE
) $(clean)=$(boot
)
123 CLEAN_FILES
+= include/asm-
$(ARCH
)/asm_offsets.h
126 echo
'* boot - Compressed kernel image (arch/alpha/boot/vmlinux.gz)'
127 echo
' bootimage - SRM bootable image (arch/alpha/boot/bootimage)'
128 echo
' bootpfile - BOOTP bootable image (arch/alpha/boot/bootpfile)'
129 echo
' bootpzfile - compressed kernel BOOTP image (arch/alpha/boot/bootpzfile)'