patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / arch / alpha / Makefile
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
11 NM := $(NM) -B
12
13 LDFLAGS_vmlinux := -static -N #-relax
14 cflags-y        := -pipe -mno-fp-regs -ffixed-8
15
16 # Determine if we can use the BWX instructions with GAS.
17 old_gas := $(shell if $(AS) --version 2>&1 | grep 'version 2.7' > /dev/null; then echo y; else echo n; fi)
18
19 ifeq ($(old_gas),y)
20 $(error The assembler '$(AS)' does not support the BWX instruction)
21 endif
22
23 # Determine if GCC understands the -mcpu= option.
24 have_mcpu := $(shell if $(CC) -mcpu=ev5 -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo y; else echo n; fi)
25
26 have_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)
27
28 have_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)
29
30 have_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)
31
32 have_msmall_data := $(shell if $(CC) -msmall-data -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo y; else echo n; fi)
33
34 cflags-$(have_msmall_data) += -msmall-data
35
36 # Turn on the proper cpu optimizations.
37 ifeq ($(have_mcpu),y)
38   mcpu_done := n
39   # If GENERIC, make sure to turn off any instruction set extensions that
40   # the host compiler might have on by default.  Given that EV4 and EV5
41   # have the same instruction set, prefer EV5 because an EV5 schedule is
42   # more likely to keep an EV4 processor busy than vice-versa.
43   ifeq ($(CONFIG_ALPHA_GENERIC),y)
44     mcpu := ev5
45     mcpu_done := y
46   endif
47   ifeq ($(mcpu_done)$(CONFIG_ALPHA_SX164)$(have_mcpu_pca56),nyy)
48     mcpu := pca56
49     mcpu_done := y
50   endif
51   ifeq ($(mcpu_done)$(CONFIG_ALPHA_POLARIS)$(have_mcpu_pca56),nyy)
52     mcpu := pca56
53     mcpu_done := y
54   endif
55   ifeq ($(mcpu_done)$(CONFIG_ALPHA_EV4),ny)
56     mcpu := ev4
57     mcpu_done := y
58   endif
59   ifeq ($(mcpu_done)$(CONFIG_ALPHA_EV56),ny)
60     mcpu := ev56
61     mcpu_done := y
62   endif
63   ifeq ($(mcpu_done)$(CONFIG_ALPHA_EV5),ny)
64     mcpu := ev5
65     mcpu_done := y
66   endif
67   ifeq ($(mcpu_done)$(CONFIG_ALPHA_EV67)$(have_mcpu_ev67),nyy)
68     mcpu := ev67
69     mcpu_done := y
70   endif
71   ifeq ($(mcpu_done)$(CONFIG_ALPHA_EV6),ny)
72     ifeq ($(have_mcpu_ev6),y)
73       mcpu := ev6
74     else
75       ifeq ($(have_mcpu_pca56),y)
76         mcpu := pca56
77       else
78         mcpu=ev56
79       endif
80     endif
81     mcpu_done := y
82   endif
83   cflags-$(mcpu_done) += -mcpu=$(mcpu)
84 endif
85
86
87 # For TSUNAMI, we must have the assembler not emulate our instructions.
88 # The same is true for IRONGATE, POLARIS, PYXIS.
89 # BWX is most important, but we don't really want any emulation ever.
90 CFLAGS += $(cflags-y) -Wa,-mev6
91
92 head-y := arch/alpha/kernel/head.o
93
94 core-y                          += arch/alpha/kernel/ arch/alpha/mm/
95 core-$(CONFIG_MATHEMU)          += arch/alpha/math-emu/
96 drivers-$(CONFIG_OPROFILE)      += arch/alpha/oprofile/
97 libs-y                          += arch/alpha/lib/
98
99 # export what is needed by arch/alpha/boot/Makefile
100 LIBS_Y := $(patsubst %/, %/lib.a, $(libs-y))
101 export LIBS_Y
102
103 boot := arch/alpha/boot
104
105 #Default target when executing make with no arguments
106 all boot: $(boot)/vmlinux.gz
107
108 $(boot)/vmlinux.gz: vmlinux
109         $(Q)$(MAKE) $(build)=$(boot) $@
110
111 bootimage bootpfile bootpzfile: vmlinux
112         $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
113
114
115 prepare: include/asm-$(ARCH)/asm_offsets.h
116
117 arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
118                                    include/config/MARKER
119
120 include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
121         $(call filechk,gen-asm-offsets)
122
123 archclean:
124         $(Q)$(MAKE) $(clean)=$(boot)
125
126 CLEAN_FILES += include/asm-$(ARCH)/asm_offsets.h
127
128 define archhelp
129   echo '* boot          - Compressed kernel image (arch/alpha/boot/vmlinux.gz)'
130   echo '  bootimage     - SRM bootable image (arch/alpha/boot/bootimage)'
131   echo '  bootpfile     - BOOTP bootable image (arch/alpha/boot/bootpfile)'
132   echo '  bootpzfile    - compressed kernel BOOTP image (arch/alpha/boot/bootpzfile)'
133 endef