[PATCH] xtensa: Architecture support for Tensilica Xtensa Part 1
[linux-3.10.git] / arch / xtensa / Makefile
1 #
2 # This file is subject to the terms and conditions of the GNU General Public
3 # License.  See the file "COPYING" in the main directory of this archive
4 # for more details.
5 #
6 # Copyright (C) 2001 - 2005  Tensilica Inc.
7 #
8 # This file is included by the global makefile so that you can add your own
9 # architecture-specific flags and dependencies. Remember to do have actions
10 # for "archclean" and "archdep" for cleaning up and making dependencies for
11 # this architecture
12
13 # Core configuration.
14 # (Use CPU=<xtensa_config> to use another default compiler.)
15
16 cpu-$(CONFIG_XTENSA_CPU_LINUX_BE)       := linux_be
17 cpu-$(CONFIG_XTENSA_CPU_LINUX_CUSTOM)   := linux_custom
18
19 CPU = $(cpu-y)
20 export CPU
21
22 # Platform configuration
23
24 platform-y                                      := common
25 platform-$(CONFIG_XTENSA_PLATFORM_XT2000)       := xt2000
26 platform-$(CONFIG_XTENSA_PLATFORM_ISS)          := iss
27
28 PLATFORM = $(platform-y)
29 export PLATFORM
30
31 #LDFLAGS_vmlinux                := -T$(word 1,$(LINKSCRIPT))
32 AFLAGS_vmlinux.lds.o    := -Uxtensa
33 CPPFLAGS                += -Iarch/xtensa -Iinclude/asm  -mlongcalls  -g
34 AFLAGS                  += -Iarch/xtensa -Iinclude/asm
35 CPP                     = $(CC) -E $(CFLAGS)
36
37 cflags-y        += -Iarch/xtensa -pipe -mlongcalls
38
39
40 KBUILD_DEFCONFIG := common_defconfig
41
42 # ramdisk/initrd support
43 # You need a compressed ramdisk image, named ramdisk.gz in
44 # arch/xtensa/boot/ramdisk
45
46 core-$(CONFIG_EMBEDDED_RAMDISK) += arch/xtensa/boot/ramdisk/
47
48 # Test for cross compiling
49
50 ifneq ($(CPU),)
51   COMPILE_ARCH = $(shell uname -m)
52
53   ifneq ($(COMPILE_ARCH), xtensa)
54     ifndef CROSS_COMPILE
55       CROSS_COMPILE = xtensa_$(CPU)-
56     endif
57   endif
58 endif
59
60 #
61
62 LIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
63
64 head-y          := arch/xtensa/kernel/head.o
65 core-y          += arch/xtensa/kernel/ \
66                    arch/xtensa/mm/ arch/xtensa/platform-$(PLATFORM)/
67 libs-y          += arch/xtensa/lib/ $(LIBGCC)
68
69 boot    := arch/xtensa/boot
70
71 arch/xtensa/kernel/asm-offsets.s: \
72         arch/xtensa/kernel/asm-offsets.c \
73         include/asm-xtensa/.platform
74
75 include/asm-xtensa/offsets.h: arch/xtensa/kernel/asm-offsets.s
76         $(call filechk,gen-asm-offsets)
77
78 prepare: include/asm-xtensa/.platform include/asm-xtensa/offsets.h
79
80 # Update machine cpu and platform symlinks if something which affects
81 # them changed.
82
83 include/asm-xtensa/.platform: $(wildcard include/config/arch/*.h)
84         @echo '  Setting up cpu ($(CPU)) and platform ($(PLATFORM)) symlinks'
85         $(Q)rm -f include/asm-xtensa/platform
86         $(Q)rm -f include/asm-xtensa/xtensa/config
87         $(Q)(cd include/asm-xtensa/; ln -sf platform-$(PLATFORM) platform)
88         $(Q)(cd include/asm-xtensa/xtensa; ln -sf config-$(CPU) config)
89
90 all: zImage
91
92 bzImage : zImage
93
94 zImage zImage.initrd: vmlinux
95         $(Q)$(MAKE) $(build)=$(boot) $@
96
97 CLEAN_FILES     += arch/xtensa/vmlinux.lds include/asm-xtensa/offset.h
98
99 define archhelp
100   @echo '* zImage      - Compressed kernel image (arch/xtensa/boot/images/zImage.*)'
101 endef
102