Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 | CHECKFLAGS += -D__alpha__ -m64 | |
15 | cflags-y := -pipe -mno-fp-regs -ffixed-8 | |
16 | ||
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) | |
19 | ||
20 | ifeq ($(old_gas),y) | |
21 | $(error The assembler '$(AS)' does not support the BWX instruction) | |
22 | endif | |
23 | ||
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) | |
30 | ||
31 | cflags-$(have_msmall_data) += -msmall-data | |
32 | ||
33 | # Turn on the proper cpu optimizations. | |
34 | ifeq ($(have_mcpu),y) | |
35 | mcpu_done := n | |
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) | |
41 | mcpu := ev5 | |
42 | mcpu_done := y | |
43 | endif | |
44 | ifeq ($(mcpu_done)$(CONFIG_ALPHA_SX164)$(have_mcpu_pca56),nyy) | |
45 | mcpu := pca56 | |
46 | mcpu_done := y | |
47 | endif | |
48 | ifeq ($(mcpu_done)$(CONFIG_ALPHA_POLARIS)$(have_mcpu_pca56),nyy) | |
49 | mcpu := pca56 | |
50 | mcpu_done := y | |
51 | endif | |
52 | ifeq ($(mcpu_done)$(CONFIG_ALPHA_EV4),ny) | |
53 | mcpu := ev4 | |
54 | mcpu_done := y | |
55 | endif | |
56 | ifeq ($(mcpu_done)$(CONFIG_ALPHA_EV56),ny) | |
57 | mcpu := ev56 | |
58 | mcpu_done := y | |
59 | endif | |
60 | ifeq ($(mcpu_done)$(CONFIG_ALPHA_EV5),ny) | |
61 | mcpu := ev5 | |
62 | mcpu_done := y | |
63 | endif | |
64 | ifeq ($(mcpu_done)$(CONFIG_ALPHA_EV67)$(have_mcpu_ev67),nyy) | |
65 | mcpu := ev67 | |
66 | mcpu_done := y | |
67 | endif | |
68 | ifeq ($(mcpu_done)$(CONFIG_ALPHA_EV6),ny) | |
69 | ifeq ($(have_mcpu_ev6),y) | |
70 | mcpu := ev6 | |
71 | else | |
72 | ifeq ($(have_mcpu_pca56),y) | |
73 | mcpu := pca56 | |
74 | else | |
75 | mcpu=ev56 | |
76 | endif | |
77 | endif | |
78 | mcpu_done := y | |
79 | endif | |
80 | cflags-$(mcpu_done) += -mcpu=$(mcpu) | |
81 | endif | |
82 | ||
83 | ||
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 | |
88 | ||
89 | head-y := arch/alpha/kernel/head.o | |
90 | ||
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/ | |
95 | ||
96 | # export what is needed by arch/alpha/boot/Makefile | |
97 | LIBS_Y := $(patsubst %/, %/lib.a, $(libs-y)) | |
98 | export LIBS_Y | |
99 | ||
100 | boot := arch/alpha/boot | |
101 | ||
102 | #Default target when executing make with no arguments | |
103 | all boot: $(boot)/vmlinux.gz | |
104 | ||
105 | $(boot)/vmlinux.gz: vmlinux | |
106 | $(Q)$(MAKE) $(build)=$(boot) $@ | |
107 | ||
108 | bootimage bootpfile bootpzfile: vmlinux | |
109 | $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ | |
110 | ||
1da177e4 LT |
111 | archclean: |
112 | $(Q)$(MAKE) $(clean)=$(boot) | |
113 | ||
1da177e4 LT |
114 | define archhelp |
115 | echo '* boot - Compressed kernel image (arch/alpha/boot/vmlinux.gz)' | |
116 | echo ' bootimage - SRM bootable image (arch/alpha/boot/bootimage)' | |
117 | echo ' bootpfile - BOOTP bootable image (arch/alpha/boot/bootpfile)' | |
118 | echo ' bootpzfile - compressed kernel BOOTP image (arch/alpha/boot/bootpzfile)' | |
119 | endef |