C6X: build infrastructure
[linux-3.10.git] / arch / c6x / Makefile
1 #
2 # linux/arch/c6x/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
9 cflags-y += -mno-dsbt -msdata=none
10
11 cflags-$(CONFIG_C6X_BIG_KERNEL) += -mlong-calls
12
13 CFLAGS_MODULE   += -mlong-calls -mno-dsbt -msdata=none
14
15 CHECKFLAGS      +=
16
17 KBUILD_CFLAGS   += $(cflags-y)
18 KBUILD_AFLAGS   += $(cflags-y)
19
20 ifdef CONFIG_CPU_BIG_ENDIAN
21 KBUILD_CFLAGS   += -mbig-endian
22 KBUILD_AFLAGS   += -mbig-endian
23 LINKFLAGS       += -mbig-endian
24 KBUILD_LDFLAGS  += -mbig-endian
25 LDFLAGS += -EB
26 endif
27
28 head-y          := arch/c6x/kernel/head.o
29 core-y          += arch/c6x/kernel/ arch/c6x/mm/ arch/c6x/platforms/
30 libs-y          += arch/c6x/lib/
31
32 # Default to vmlinux.bin, override when needed
33 all: vmlinux.bin
34
35 boot := arch/$(ARCH)/boot
36
37 # Are we making a dtbImage.<boardname> target? If so, crack out the boardname
38 DTB:=$(subst dtbImage.,,$(filter dtbImage.%, $(MAKECMDGOALS)))
39 export DTB
40
41 ifneq ($(DTB),)
42 core-y  += $(boot)/
43 endif
44
45 # With make 3.82 we cannot mix normal and wildcard targets
46
47 vmlinux.bin: vmlinux
48         $(Q)$(MAKE) $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
49
50 dtbImage.%: vmlinux
51         $(Q)$(MAKE) $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
52
53 archclean:
54         $(Q)$(MAKE) $(clean)=$(boot)
55
56 define archhelp
57   @echo '  vmlinux.bin     - Binary kernel image (arch/$(ARCH)/boot/vmlinux.bin)'
58   @echo '  dtbImage.<dt>   - ELF image with $(arch)/boot/dts/<dt>.dts linked in'
59   @echo '                  - stripped elf with fdt blob'
60 endef