Import 2.3.6
[davej-history.git] / arch / arm / Makefile
blob967ee67661c271bb930ddfc541fa7c6ef693d52b
2 # arch/arm/Makefile
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
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.
13 # Copyright (C) 1995, 1996 by Russell King
15 CFLAGS_PROC :=
16 ASFLAGS_PROC :=
18 # All processors get `-mshort-load-bytes' for now, to work around alignment
19 # problems. This is more of a hack that just happens to work than a real fix
20 # but it will do for now.
22 ifeq ($(CONFIG_CPU_26),y)
23 PROCESSOR = armo
24 TEXTADDR = 0x02080000
25 ZTEXTADDR = 0x01800000
26 ZRELADDR = 0x02080000
27 ifeq ($(CONFIG_BINUTILS_NEW),y)
28 CFLAGS_PROC += -mapcs-26 -mshort-load-bytes
29 ifeq ($(CONFIG_CPU_ARM2),y)
30 CFLAGS_PROC += -mcpu=arm2
31 ASFLAGS_PROC += -m2
32 endif
33 ifeq ($(CONFIG_CPU_ARM3),y)
34 CFLAGS_PROC += -mcpu=arm3
35 ASFLAGS_PROC += -m3
36 endif
37 else
38 ifeq ($(CONFIG_CPU_ARM2),y)
39 CFLAGS_PROC += -m2
40 ASFLAGS_PROC += -m2
41 endif
42 ifeq ($(CONFIG_CPU_ARM3),y)
43 CFLAGS_PROC += -m3
44 ASFLAGS_PROC += -m3
45 endif
46 endif
47 endif
49 ifeq ($(CONFIG_CPU_32),y)
50 PROCESSOR = armv
51 TEXTADDR = 0xC0008000
52 ifeq ($(CONFIG_BINUTILS_NEW),y)
53 CFLAGS_PROC += -mapcs-32 -mshort-load-bytes
54 ifeq ($(CONFIG_CPU_ARM6),y)
55 CFLAGS_PROC += -mcpu=arm6
56 endif
57 ifeq ($(CONFIG_CPU_ARM7),y)
58 CFLAGS_PROC += -mcpu=arm7
59 endif
60 ifeq ($(CONFIG_CPU_SA110),y)
61 CFLAGS_PROC += -mcpu=strongarm110
62 endif
63 else
64 CFLAGS_PROC += -m6
65 endif
66 ASFLAGS_PROC += -m6
67 endif
69 # Processor Architecture
70 # CFLAGS_PROC - processor dependent CFLAGS
71 # PROCESSOR - processor type
72 # TEXTADDR - Uncompressed kernel link text address
73 # ZTEXTADDR - Compressed kernel link text address
74 # ZRELADDR - Compressed kernel relocating address (point at which uncompressed kernel is loaded).
77 COMPRESSED_HEAD = head.o
79 ifeq ($(CONFIG_ARCH_A5K),y)
80 MACHINE = a5k
81 ARCHDIR = arc
82 COMPRESSED_EXTRA = $(TOPDIR)/arch/arm/lib/ll_char_wr.o
83 endif
85 ifeq ($(CONFIG_ARCH_ARC),y)
86 MACHINE = arc
87 ARCHDIR = arc
88 COMPRESSED_EXTRA = $(TOPDIR)/arch/arm/lib/ll_char_wr.o
89 endif
91 ifeq ($(CONFIG_ARCH_RPC),y)
92 MACHINE = rpc
93 ARCHDIR = rpc
94 COMPRESSED_EXTRA = $(TOPDIR)/arch/arm/lib/ll_char_wr.o
95 ZTEXTADDR = 0x10008000
96 ZRELADDR = 0x10008000
97 endif
99 ifeq ($(CONFIG_ARCH_EBSA110),y)
100 MACHINE = ebsa110
101 ARCHDIR = ebsa110
102 ZTEXTADDR = 0x00008000
103 ZRELADDR = 0x00008000
104 endif
106 ifeq ($(CONFIG_ARCH_EBSA285),y)
107 MACHINE = ebsa285
108 ARCHDIR = ebsa285
109 ZTEXTADDR = 0x00008000
110 ZRELADDR = 0x00008000
111 endif
113 ifeq ($(CONFIG_ARCH_NEXUSPCI),y)
114 MACHINE = nexuspci
115 ARCHDIR = nexuspci
116 ZTEXTADDR = 0x40200000
117 ZRELADDR = 0x40008000
118 COMPRESSED_EXTRA = $(TOPDIR)/arch/arm/lib/ll_char_wr_scc.o
119 COMPRESSED_HEAD = head-nexuspci.o
120 endif
122 ifeq ($(CONFIG_ARCH_VNC),y)
123 TEXTADDR = 0xC000C000
124 MACHINE = vnc
125 ARCHDIR = vnc
126 endif
128 ifeq ($(CONFIG_ARCH_TBOX),y)
129 MACHINE = tbox
130 ARCHDIR = tbox
131 ZTEXTADDR = 0x80008000
132 ZRELDIR = 0x80008000
133 endif
135 PERL = perl
136 ifeq ($(CONFIG_BINUTILS_NEW),y)
137 LD = $(CROSS_COMPILE)ld -m elf32arm
138 else
139 LD = $(CROSS_COMPILE)ld -m elf_arm
140 endif
141 OBJCOPY = $(CROSS_COMPILE)objcopy -O binary -R .note -R .comment -S
142 OBJDUMP = $(CROSS_COMPILE)objdump
143 CPP = $(CC) -E
144 ARCHCC := $(word 1,$(CC))
145 GCCLIB := `$(CC) $(CFLAGS_PROC) --print-libgcc-file-name`
146 #GCCARCH := -B/usr/bin/arm-linuxelf-
147 HOSTCFLAGS := $(CFLAGS:-fomit-frame-pointer=)
148 ifeq ($(CONFIG_FRAME_POINTER),y)
149 CFLAGS := $(CFLAGS:-fomit-frame-pointer=)
150 endif
151 CFLAGS := $(CFLAGS_PROC) $(CFLAGS) -pipe
152 ASFLAGS := $(ASFLAGS_PROC) $(ASFLAGS)
153 LINKFLAGS = -T $(TOPDIR)/arch/arm/vmlinux-$(PROCESSOR).lds -e stext -Ttext $(TEXTADDR)
154 ZLINKFLAGS = -Ttext $(ZTEXTADDR)
156 SUBDIRS := $(SUBDIRS:drivers=arch/arm/drivers) arch/arm/lib arch/arm/kernel arch/arm/mm
157 HEAD := arch/arm/kernel/head-$(PROCESSOR).o arch/arm/kernel/init_task.o
158 CORE_FILES := arch/arm/kernel/kernel.o arch/arm/mm/mm.o $(CORE_FILES)
159 LIBS := arch/arm/lib/lib.a $(LIBS) $(GCCLIB)
161 BLOCK_DRIVERS := drivers/block/block.a
162 CDROM_DRIVERS := drivers/cdrom/cdrom.a
163 ifeq ($(CONFIG_FB),y)
164 CHAR_DRIVERS := arch/arm/drivers/char1/char1.a drivers/char/char.a arch/arm/drivers/char1/char1.a
165 else
166 ifeq ($(CONFIG_VGA_CONSOLE),y)
167 CHAR_DRIVERS := arch/arm/drivers/char1/char1.a drivers/char/char.a arch/arm/drivers/char1/char1.a
168 else
169 CHAR_DRIVERS := arch/arm/drivers/char/char.a
170 endif
171 endif
172 MISC_DRIVERS := drivers/misc/misc.a
173 NET_DRIVERS := drivers/net/net.a
174 PARIDE_DRIVERS := drivers/block/paride/paride.a
175 PCI_DRIVERS := drivers/pci/pci.a
176 SCSI_DRIVERS := drivers/scsi/scsi.a
177 SOUND_DRIVERS := drivers/sound/sound.a
178 VIDEO_DRIVERS := drivers/video/video.a
179 PNP_DRIVERS := drivers/pnp/pnp.a
181 ifeq ($(CONFIG_ARCH_ACORN),y)
182 BLOCK_DRIVERS += drivers/acorn/block/acorn-block.a
183 CHAR_DRIVERS += drivers/acorn/char/acorn-char.a
184 NET_DRIVERS += drivers/acorn/net/acorn-net.a drivers/net/net.a
185 SCSI_DRIVERS += drivers/acorn/scsi/acorn-scsi.a
186 endif
188 DRIVERS := $(BLOCK_DRIVERS) $(CHAR_DRIVERS) $(MISC_DRIVERS) $(NET_DRIVERS)
190 ifeq ($(CONFIG_FB),y)
191 DRIVERS := $(DRIVERS) $(VIDEO_DRIVERS)
192 else
193 ifeq ($(CONFIG_VGA_CONSOLE),y)
194 DRIVERS := $(DRIVERS) $(VIDEO_DRIVERS)
195 endif
196 endif
197 ifeq ($(CONFIG_SCSI),y)
198 DRIVERS := $(DRIVERS) $(SCSI_DRIVERS)
199 endif
200 ifneq ($(CONFIG_CD_NO_IDESCSI)$(CONFIG_BLK_DEV_IDECD)$(CONFIG_BLK_DEV_SR),)
201 DRIVERS := $(DRIVERS) $(CDROM_DRIVERS)
202 endif
203 ifdef CONFIG_PCI
204 DRIVERS := $(DRIVERS) $(PCI_DRIVERS)
205 endif
206 ifeq ($(CONFIG_SOUND),y)
207 DRIVERS := $(DRIVERS) $(SOUND_DRIVERS)
208 endif
209 ifeq ($(CONFIG_PARIDE),y)
210 DRIVERS := $(DRIVERS) $(PARIDE_DRIVERS)
211 endif
212 ifdef CONFIG_PNP
213 DRIVERS := $(DRIVERS) $(PNP_DRIVERS)
214 endif
216 symlinks::
217 $(RM) include/asm-arm/arch include/asm-arm/proc
218 (cd include/asm-arm; ln -sf arch-$(ARCHDIR) arch; ln -sf proc-$(PROCESSOR) proc)
220 # Once we've finished integrating the sources, the @$(MAKE) will disappear
221 archmrproper:
222 rm -f include/asm-arm/arch include/asm-arm/proc
223 @$(MAKE) -C arch/$(ARCH)/drivers mrproper
225 arch/arm/kernel: dummy
226 $(MAKE) linuxsubdirs SUBDIRS=arch/arm/kernel
228 arch/arm/mm: dummy
229 $(MAKE) linuxsubdirs SUBDIRS=arch/arm/mm
231 arch/arm/lib: dummy
232 $(MAKE) linuxsubdirs SUBDIRS=arch/arm/lib
234 MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot
236 zImage: vmlinux
237 @$(MAKEBOOT) zImage
239 zinstall: vmlinux
240 @$(MAKEBOOT) zinstall
242 Image: vmlinux
243 @$(MAKEBOOT) Image
245 install: vmlinux
246 @$(MAKEBOOT) install
248 # My testing targets (that short circuit a few dependencies)
249 zImg:; @$(MAKEBOOT) zImage
250 Img:; @$(MAKEBOOT) Image
251 i:; @$(MAKEBOOT) install
252 zi:; @$(MAKEBOOT) zinstall
254 archclean:
255 @$(MAKEBOOT) clean
256 $(RM) arch/arm/lib/constants.h
258 archdep:
259 @$(MAKEBOOT) dep
260 sed -e /^MACHINE..*=/s,= .*,= rpc,;/^PROCESSOR..*=/s,= .*,= armv, linux/arch/arm/Makefile.normal