kbuild: enable 'make CFLAGS=...' to add additional options to CC
[linux-3.10.git] / arch / frv / Makefile
1 #
2 # frv/Makefile
3 #
4 # This file is included by the global makefile so that you can add your own
5 # architecture-specific flags and dependencies. Remember to do have actions
6 # for "archclean" and "archdep" for cleaning up and making dependencies for
7 # this architecture
8 #
9 # This file is subject to the terms and conditions of the GNU General Public
10 # License.  See the file "COPYING" in the main directory of this archive
11 # for more details.
12 #
13 # Copyright (c) 2003, 2004 Red Hat Inc.
14 # - Written by David Howells <dhowells@redhat.com>
15 # - Derived from arch/m68knommu/Makefile,
16 #       Copyright (c) 1999,2001  D. Jeff Dionne <jeff@lineo.ca>,
17 #       Rt-Control Inc. / Lineo, Inc.
18 #
19 # Copyright (C) 1998,1999  D. Jeff Dionne <jeff@uclinux.org>,
20 #                          Kenneth Albanowski <kjahds@kjahds.com>,
21 #
22 # Based on arch/m68k/Makefile:
23 # Copyright (C) 1994 by Hamish Macdonald
24 #
25
26 CCSPECS := $(shell $(CC) -v 2>&1 | grep "^Reading specs from " | head -1 | cut -c20-)
27 CCDIR   := $(strip $(patsubst %/specs,%,$(CCSPECS)))
28 CPUCLASS := fr400
29
30 # test for cross compiling
31 COMPILE_ARCH = $(shell uname -m)
32
33 ifdef CONFIG_MMU
34 UTS_SYSNAME = -DUTS_SYSNAME=\"Linux\"
35 else
36 UTS_SYSNAME = -DUTS_SYSNAME=\"uClinux\"
37 endif
38
39 ARCHMODFLAGS    += -G0 -mlong-calls
40
41 ifdef CONFIG_GPREL_DATA_8
42 KBUILD_CFLAGS   += -G8
43 else
44 ifdef CONFIG_GPREL_DATA_4
45 KBUILD_CFLAGS   += -G4
46 else
47 ifdef CONFIG_GPREL_DATA_NONE
48 KBUILD_CFLAGS   += -G0
49 endif
50 endif
51 endif
52
53 #LDFLAGS_vmlinux        := -Map linkmap.txt
54
55 ifdef CONFIG_GC_SECTIONS
56 KBUILD_CFLAGS   += -ffunction-sections -fdata-sections
57 LINKFLAGS       += --gc-sections
58 endif
59
60 ifndef CONFIG_FRAME_POINTER
61 KBUILD_CFLAGS   += -mno-linked-fp
62 endif
63
64 ifdef CONFIG_CPU_FR451_COMPILE
65 KBUILD_CFLAGS   += -mcpu=fr450
66 AFLAGS          += -mcpu=fr450
67 ASFLAGS         += -mcpu=fr450
68 else
69 ifdef CONFIG_CPU_FR551_COMPILE
70 KBUILD_CFLAGS   += -mcpu=fr550
71 AFLAGS          += -mcpu=fr550
72 ASFLAGS         += -mcpu=fr550
73 else
74 KBUILD_CFLAGS   += -mcpu=fr400
75 AFLAGS          += -mcpu=fr400
76 ASFLAGS         += -mcpu=fr400
77 endif
78 endif
79
80 # pretend the kernel is going to run on an FR400 with no media-fp unit
81 # - reserve CC3 for use with atomic ops
82 # - all the extra registers are dealt with only at context switch time
83 KBUILD_CFLAGS   += -mno-fdpic -mgpr-32 -msoft-float -mno-media
84 KBUILD_CFLAGS   += -ffixed-fcc3 -ffixed-cc3 -ffixed-gr15 -ffixed-icc2
85 AFLAGS          += -mno-fdpic
86 ASFLAGS         += -mno-fdpic
87
88 # make sure the .S files get compiled with debug info
89 # and disable optimisations that are unhelpful whilst debugging
90 ifdef CONFIG_DEBUG_INFO
91 #KBUILD_CFLAGS  += -O1
92 AFLAGS          += -Wa,--gdwarf2
93 ASFLAGS         += -Wa,--gdwarf2
94 endif
95
96 head-y          := arch/frv/kernel/head.o arch/frv/kernel/init_task.o
97
98 core-y          += arch/frv/kernel/ arch/frv/mm/
99 libs-y          += arch/frv/lib/
100
101 core-$(CONFIG_MB93090_MB00)     += arch/frv/mb93090-mb00/
102
103 all: Image
104
105 Image: vmlinux
106         $(Q)$(MAKE) $(build)=arch/frv/boot $@
107
108 bootstrap:
109         $(Q)$(MAKEBOOT) bootstrap
110
111 archclean:
112         $(Q)$(MAKE) $(clean)=arch/frv/boot
113
114 archdep: scripts/mkdep symlinks
115         $(Q)$(MAKE) $(build)=arch/frv/boot dep